UI builder
Every screen of the opentone firmware, drawn exactly as the device draws it (320×240, RGB565). Preview walks through the screens like a slideshow (←/→ keys work too). Spec adds the implementation details: pixel geometry, the redraw budget, the chunk grid, the sprites and the title-screen timeline.
Change the palette on the left to re-theme everything. Edits stay in this tab until you press Save, which keeps the palette in this browser.
Using the export
Export downloads opentone-ui.zip:
- sprites.h: the sprite pixel arrays (and 1-bit masks for
play/pause/speaker), aSpritestruct, andblitSprite/blitSpriteToDisplayhelpers, in the same shape asscripts/gen-sprites.pyproduces. - theme.h: the
COLOR_*macros for your palette. - logo.h: the title screen (logo, landing squash frame, wordmark, theme-derived logo palette,
BOOT_*timeline and blit helpers). Goes tosoftware/src/ui/logo.h;ui/boot_screen.hppplays it. - palette.json: the palette as hex colours.
- png/: an 8× PNG preview of each sprite.
The tinted glyphs (play, pause, speaker) ship both a mask and a pre-tinted pixel array, so you can either blit them through the mask with a runtime tint, or blit the pixels directly. The bt and chevron_r sprites are exported too, but the firmware draws the same rows itself (ui/bt_widgets.hpp).