feat(dev): device screenshot over USB
Adds a way to capture the live LVGL screen off the device and rebuild it as a PNG on the host, so UI changes can be verified remotely without a camera. A watcher task polls the USB-serial-JTAG RX for a trigger byte and streams the current screen as raw RGB565 straight to the USB FIFO (framed by ###SHOT_BEGIN/END### with a CRC); firmware/tools/device_shot.py and the device-screenshot skill drive it from the host. Writing straight to the USB FIFO bypasses the primary UART console, which at 115200 baud would take ~37s per frame. The whole capability is behind DESKLOCK_DEVMODE (off by default, enable at deploy time with -DDESKLOCK_DEVMODE=ON) so production spends no internal RAM on the watcher and nothing extra runs on the render path. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LKPbR6DY2JygHbyLjxm7Uu
This commit is contained in:
@@ -32,6 +32,10 @@ CONFIG_ESP_WIFI_SOFTAP_SUPPORT=y
|
||||
# custom fonts are uncompressed, but enable the decoder as belt-and-braces
|
||||
CONFIG_LV_USE_FONT_COMPRESSED=y
|
||||
|
||||
# lv_snapshot_take() — render the live screen to a buffer for the dev
|
||||
# screenshot-over-USB dump (face_screenshot_dump)
|
||||
CONFIG_LV_USE_SNAPSHOT=y
|
||||
|
||||
# ESP-Hosted board variant + wifi-remote data-path tuning (from factory brookesia config;
|
||||
# without these the RPC control path works but data frames never flow)
|
||||
CONFIG_SLAVE_IDF_TARGET_ESP32C6=y
|
||||
|
||||
Reference in New Issue
Block a user