Projects, examples and shared board support for the Waveshare ESP32-S3-Touch-LCD-3.49 V2, built with ESP-IDF and LVGL.
Build · Hardware · Development
Keep a clock and CPU/MEM/network readings beside recent desktop notifications. Swipe through cards, dismiss them, or return to an app with the optional Open action. English and common Simplified Chinese text, styled Latin bodies and remembered USB pairing make it useful as an everyday desk display.
Project and setup · Display behavior · Media source
A small bouncing-ball scene that exercises the display pipeline. Recorded board trials reached about 45 fps with low CPU use. Its shadow framebuffer, transpose of changed regions and GDMA staging form the shared rendering path used by both projects.
Project and build · Rendering findings · Media source
Both previews use production LVGL code with virtual time; the notification demo also uses synthetic messages and pointer input. Playback timing is separate from measured panel performance.
Each project is a standalone firmware application. One runs on the board at a time; both use the shared display component.
Built for the Waveshare ESP32-S3-Touch-LCD-3.49, V2 revision: ESP32-S3, 16 MiB flash, 8 MiB PSRAM and a 172 × 640 AXS15231B touch display. The current applications use 640 × 172 landscape. See the official hardware documentation for version identification, pinouts and schematics.
Install the ESP-IDF Installation Manager CLI, then run from the repository root:
./scripts/setup.sh
. scripts/env.sh
idf.py -C projects/render-bench build
# or: idf.py -C projects/notification-panel buildFollow the selected project's guide for flashing and any host dependencies.
- Development: toolchain, repository layout, shared checks and checkout migration.
- Shared display component: panel, framebuffer, DMA and touch support.
- Adding a project: application boundaries and integration checks.
- Presentation media: gallery sources, regeneration and capture guidance.

