Skip to content

feat(panel): add 160×50 screen profile + ESP32‑S3 embedded‑graphics demo - #2

Merged
IvanLi-CN merged 4 commits into
mainfrom
feat/panel-160x50-adaptation
Sep 27, 2025
Merged

IvanLi-CN merged 4 commits into
mainfrom
feat/panel-160x50-adaptation

Conversation

@IvanLi-CN

Copy link
Copy Markdown
Owner

This PR adds support and a complete demo for the new 160×50 GC9D01 panel variant.

What’s included

  • New feature flag panel_160x50 selecting the narrow 50×160 panel init
    • MADCTL=0x00, X offset=15; GIP/Gamma/VREG/SOU aligned with direct-SPI vendor script
    • Physical addressing (50×160) and dx/dy applied in init and flush()
  • Default library Config updated to 160×40 logical (breaking for old FRAME_* constants)
  • New example: examples/esp32s3-160-50-embedded-graphics
    • Uses ESP32‑S3 async SPI, includes esp_app_desc for espflash
    • Full embedded‑graphics demo set (fills, checkerboards, shapes, lines, text, triangles, grid)

Why

  • Unifies behavior with examples/esp32s3-160-50-direct-spi, fixing right-edge blanking and orientation/offset inconsistencies on the 160×50 module.

Notes

  • No logging noise in the example by default; visuals match STM32 embedded-graphics demo adapted to 160×50.
  • Minimal SpiDevice adapter to avoid embassy time-queue linking conflicts.

BREAKING CHANGE

  • Default frame constants reflect 160×40; use Config::frame_bytes() or frame_pixels() instead.

…ndscape rendering\n\n- Keep init sequence 1:1 with vendor sample (RST timing, all registers, MADCTL=0x00, 2A/2B, 0x11/0x29/0x2C)\n- Render with logical 160x50 using robust rotation mapping (Landscape)\n- Apply column offset X_OFFSET=15 to match 0x2A start 0x000F\n- Remove debug logs and calibration corner markers for a clean demo\n\nNo changes outside examples directory.
- esp32s3: rename to examples/esp32s3-160-50-direct-spi; update package/bin names
- stm32g4: rename to 160×40 variants:
  * examples/stm32g4-160-40
  * examples/stm32g4-160-40-embedded-graphics
  * examples/stm32g4-160-40-direct-spi
  * examples/stm32g4-160-40-90-complex-patterns
  * examples/stm32g4-160-40-direct-spi-90-complex-patterns
- update all README paths and notes to reflect new names
- update scripts/build-all.sh and CI workflow matrices
- fix cross-references (esp32s3 readme -> stm32g4-160-40-direct-spi)

Note: changes are limited to examples/ + docs/workflows references.
… example

- Introduce feature flag panel_160x50 to select narrow 50x160 panel init (MADCTL=0x00, X offset=15)
- Align init/GIP/Gamma/VREG/SOU with direct-SPI vendor script
- Fix address windowing: physical (50x160) and dx/dy applied in init and flush
- Add example examples/esp32s3-160-50-embedded-graphics with ESP-IDF app descriptor and full demo set
- Provide minimal SpiDevice adapter and avoid embassy time-queue conflict

BREAKING CHANGE: default Config now 160x40; FRAME_BUF_SIZE/MAX_FRAME_PIXELS updated
…or esp32s3-160-50-embedded-graphics\n- Rewrite direct-SPI README to English and cross-reference demos\n- Update root README with panel_160x50, offsets, ESP32-S3 examples, and migration notes
@IvanLi-CN
IvanLi-CN force-pushed the feat/panel-160x50-adaptation branch from 157341f to 129a072 Compare September 26, 2025 16:37
@IvanLi-CN
IvanLi-CN merged commit 6b75d9d into main Sep 27, 2025
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant