Highlights
A genuine LVGL app, fully drivable under the emulator
tools/qemu/lvgl_demo is a real LVGL 9 application (a two-screen device control panel) on the standard component stack - lvgl + esp_lvgl_port + the standard esp_lcd_touch interface. esprite taps flip its switch, set its slider, and BOOT changes screens, with every state byte-matched against committed goldens. It runs on the same board spec as the bundled fixture: ESPRITE_QEMU_IMAGE selects the firmware.
- New component
esp_lcd_touch_esprite: the standard touch-driver contract implemented over the input agent, so touch reaches LVGL through a normal indev driver - no esprite-specific input code in the application. - Guest-held taps: the agent's new
tap x y msverb holds the press guest-side; live-state touch pollers (LVGL indev drivers) can miss a host-paced press entirely. - Capture pumping around injections: a pending frame blocks the guest's whole UI task, input polling included, until the host consumes it; the backend now syncs the display around every tap, swipe, and gpio injection so interactions complete.
- The README documents the full recipe, including the full-refresh + static-buffer display rule for RAM-tight chips.
The informational CI job builds and caches the LVGL image alongside the fixture and runs the whole gated suite against real emulated firmware on every push.
Binaries below carry the generic native targets plus both qemu board specs; the waveshare_amoled_18 target needs a source build against a firmware checkout (see README). esprite is alpha software; interfaces may change.