Skip to content

Board: Waveshare ESP32-S3-Touch-LCD-7 - #15

Merged
bdbarnett merged 1 commit into
mainfrom
lcd7-board
Sep 25, 2026
Merged

bdbarnett merged 1 commit into
mainfrom
lcd7-board

Conversation

@bdbarnett

@bdbarnett bdbarnett commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

A board directory for the ESP32-S3-Touch-LCD-7: the 4.3" board's sdkconfig.board and partition table, plus sdkconfig.lcd7, which keeps internal DMA RAM free (SPIRAM_MALLOC_ALWAYSINTERNAL=512, fewer Wi-Fi RX buffers, a 16 KB TCP window) and sets FREERTOS_HZ=1000, because sleep_ms() under one tick busy-waits holding the GIL. Each setting's reason is in the fragment.

Measured on the board with a Spotify remote UI on the panel and a Spotify Connect speaker usermod playing into a USB sound card. The resulting sdkconfig is identical to the image those runs used. Companion PRs: PyDevices/pydevices#96 (board_config) and PyDevices/displayif#42 (bounce_rows).

…g.lcd7)

The 4.3" board's sdkconfig.board and partition table (same chip, memory and
flash layout; boards flashed as the 4.3 keep their filesystem), then this
board's fragment, appended last so it wins:

- SPIRAM_MALLOC_ALWAYSINTERNAL 8192 -> 512, fewer Wi-Fi RX buffers, a 16 KB
  TCP window: internal DMA RAM, which the RGB panel's bounce buffers, the
  Wi-Fi driver, hardware AES and the USB host all need, sat at 24 bytes free
  with the shared settings, then esp-aes failed and Wi-Fi dropped.
- FREERTOS_HZ 100 -> 1000: sleep_ms() under a tick busy-waits with the GIL
  held, keeping the UI thread 54 % busy while idle.

Measured 2026-09-25 with spotapi's remote on the panel and earful streaming
into a USB sound card (earful docs/lcd-7.md). Built from this directory the
sdkconfig is identical to the image those measurements ran on. The board's
board_config.py side is PyDevices/pydevices#96 (bounce_rows=10, 14 MHz).
@bdbarnett
bdbarnett merged commit 8028748 into main Sep 25, 2026
@bdbarnett
bdbarnett deleted the lcd7-board branch September 25, 2026 11:52
bdbarnett added a commit that referenced this pull request Sep 25, 2026
#17)

Follow-up to #15. Measured with a Spotify remote UI on the panel, no playback: full-screen redraw 176 → 146 ms with 64-byte data cache lines alone (no memory cost), then 117 ms with a 32 KB instruction cache as well. A list row went 66 → 44 ms, and a panel switch 176 → 146 ms. The instruction cache costs 16 KB of internal RAM: DMA-capable free goes from 64 to 48 KB (minimum 45 KB), measured via the speaker app's debug endpoint. A 64 KB data cache got rows to 30 ms but left ~13 KB, too little for Wi-Fi to be safe, so it isn't included.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant