Repository navigation
ESP-026: land the ESP-IDF display spike (verified on glass) - #138
Merged
Merged
Conversation
Port the KitchenSync Touch 1.47" LCD to the ESP-IDF firmware. Increment 1 proves the
LovyanGFX Panel_ST7789 + Bus_SPI config comes up under ESP-IDF's SPI on the S3.
- ks_display.{h,cpp}: LGFX config copied verbatim from ktouch_display.cpp; backlight on
ledc (was analogWrite); render task draws a test frame. No touch / live data yet.
- idf_component.yml: LovyanGFX managed component, esp32s3 target only.
- Kconfig: KS_TOUCH_DISPLAY (depends on IDF_TARGET_ESP32S3, default n).
- CMakeLists: always compile ks_display.cpp (no-op stub when flag off).
- ks_main.c: one guarded call + include; P4 build unaffected.
Spike — not for merge until verified on glass.
sdkconfig.defaults.esp32s3 auto-loads only for the S3 target, so a fresh 'idf.py set-target esp32s3' comes up display-enabled and P4 is untouched.
…stry component LovyanGFX is not in the Espressif component registry (the ^1.1.16 registry pin failed to resolve). Pull it from GitHub pinned to tag 1.2.21 — the exact version the Arduino firmware already ships (THIRD_PARTY.md, BSD-2-Clause). Gated to the S3 target.
Split the two-statement brightness clamp onto separate lines. ESP-IDF builds with -Werror=misleading-indentation (Arduino did not). Full esp32s3 build now green.
…G console
- ks_display.cpp: AXS5106L over i2c_master (SDA42/SCL41, 0x63) + GPIO47 reset,
reusing the host-tested axs5106l.c parser (added to CMake SRCS by path). Taps are
echoed on screen ('TAP x,y') and to the log.
- sdkconfig.defaults.esp32s3: route the console to USB-Serial-JTAG (the Arduino
build's hwcdc). ESP-IDF's UART default left the USB port dark after boot, so the
cu.usbmodem port vanished and esptool could not auto-reset. Now it persists +
serial logs work. (Builds green; hardware verification pending the next flash.)
Portrait-native AXS5106L coords -> setRotation(7) landscape: sx=319-raw_y, sy=171-raw_x (verified against a corner tap). Draws a dot at the mapped point.
…d-mode gotcha Rebased the display spike onto master (clean), rebuilt esp32s3, reflashed the Waveshare S3-Touch — panel shows "ESP-IDF DISPLAY OK". Landing the spike. Note the board latches DOWNLOAD mode on every host-issued USB reset (esptool/monitor/DTR), so a fresh flash boots dark and silent until a physical power-cycle — looks like a crash, isn't one. Claude-Session: https://claude.ai/code/session_01F7YsQgso3KNpeXbP5vNVj6
Skeyelab
enabled auto-merge (squash)
July 17, 2026 04:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Lands
spike/esp-026-display-esp-idf(rebased onto master, clean). LovyanGFX + AXS5106Lon ESP-IDF, verified on the Waveshare S3-Touch ("ESP-IDF DISPLAY OK"). Clears ESP-026's
stated gate: the display — the migration's only real hardware unknown — is proven on ESP-IDF.
ks_display.{h,cpp},CONFIG_KS_TOUCH_DISPLAY(S3-only), LovyanGFX pinned git dep,sdkconfig.defaults.esp32s3, one guarded call inks_main.c.KitchenSyncTouchuntouched.https://claude.ai/code/session_01F7YsQgso3KNpeXbP5vNVj6