Skip to content

v0.4.0: device-bezel window, board-named targets

Choose a tag to compare

@rvben rvben released this 03 Jul 08:13
v0.4.0
e378cc2

Highlights

Device-bezel window

serve --window now presents the device instead of a bare framebuffer:

  • The screen renders pixel-exact inside a slim device bezel. Bezel chrome draws at desktop density, so --scale N enlarges the screen while the chrome stays crisp.
  • Physical buttons appear as clickable nubs on the bezel edge, at the positions the board declares (SimButton gained edge/pos fields; existing board definitions compile unchanged). Hover a nub for its label and keyboard shortcut.
  • ? opens a key-map overlay; backtick opens a hardware-controls panel (battery level, charging/USB, rotation) on boards that declare those capabilities.
  • Input semantics hardened: opening an overlay releases every held button and in-flight drag, so no phantom input leaks into the firmware.
  • Layout math lives in an SDL-free module with unit tests; SDL2 remains optional.

Targets are named by the board, not the app

The target formerly named agentgauge is now waveshare_amoled_18 (Waveshare ESP32-S3-Touch-AMOLED-1.8, 480x480). Boards are a finite, stable set while firmwares are open-ended, so target ids follow the hardware, matching cyd/cyd_tft. The agentgauge firmware itself keeps its name. If you scripted --target agentgauge, switch to --target waveshare_amoled_18.

More

  • motion injection and serial expect for scenario tests against motion-driven firmware behavior.
  • The firmware's LVGL font sources are now globbed, so the sim build tolerates the firmware adding or dropping font sizes between checkouts.

Fixes

  • serve schema describes the bezel window accurately.
  • The board-variant integration tests skip cleanly when the firmware checkout is absent.

Binaries below carry the generic targets (sample_gfx, cyd, cyd_tft); the waveshare_amoled_18 target needs a source build against a firmware checkout (see README). esprite is alpha software; interfaces may change.