What
Design improvements for the 320×240 TFT dashboard — the physical screen on the device.
Why
The TFT is the face of SIMUT. A better layout, clearer widgets, or smoother transitions make the device feel significantly more polished. Pure design/prototyping task — submit mockups without writing C++. The maintainer helps with implementation.
⚠️ Hard constraints (corrected)
- 320×240 pixels, 16-bit RGB565. No alpha blending, no gradients, limited gamut — colors shift versus your monitor.
- Safe area is 4..315 × 4..235. The outer 4 px on every edge is frame, not canvas. Content placed there is clipped on the panel even though it looks fine in a mockup, and
/api/screenshot reads through that offset — so a screenshot can look correct while the panel does not. Design inside 312×232.
- Resistive touchscreen (XPT2046). Touch targets ≥ 30×30 px, no multi-touch, simple swipe zones at best.
- Fonts. The default path (
setFont(NULL)) renders CP437, where 0xE7 is τ, not ç — accented Portuguese/Spanish text has to go through unaccent() or use the other font. Do not assume your mockup's diacritics survive.
- RP2040 at 133 MHz. Core 1 drives the display while Core 0 polls sensors.
- Flash: 95.2% used, 50,268 B headroom (measured on
main, release build). Earlier text here said 98.7%; that predates the WebUI factoring and minifier work. New sprite/icon data still has to be small, but a few KB is affordable.
Already shipped — do not re-propose
- Render performance. The DMA fast path landed in v2.1.6-beta: sub-width DMA,
fastClear, chrome via canvas, SPI at 62.5 MHz — a full repaint went from 254 ms to 121 ms. "Smooth transitions" is a design question now, not a throughput one.
- Graph bucketing. v2.1.8-beta replaced stride sampling with time buckets plus a min/max band (n=180 → 1435 points represented).
- Themes. 50 built-in palettes, 24 themeable color roles including alarm/caution/selection chrome, all audited for contrast, plus runtime
.thm files. Color work belongs in a .thm, not in this issue.
What you can contribute — pick ONE
Submit mockups as 320×240 PNG (content inside the 4 px frame). The maintainer will help with C++ implementation:
- Dashboard widget redesign — sensor cards: icon + value + trend arrow
- Graph view — axis labels, grid, multi-sensor colors, touch tooltips
- Status bar — WiFi signal, NTP sync, alarm count, clock in a compact top bar
- Touch navigation — icon-based tab bar, simple swipe zones
- Alarm screen — clear severity levels, attention-grabbing but not panic-inducing
- Setup wizard — first boot: WiFi, sensor naming, admin password display
- Boot screen — see the note below
- Transition storyboard — how screens should move between each other
Note on the boot screen: it cannot be captured by /api/screenshot, because the web server only pumps inside loop() and the boot screen is drawn before loop() starts. Any boot-screen design has to be reviewed as a mockup or photographed off the panel.
How to contribute mockups
- Create a 320×240 canvas, keep content within 4..315 × 4..235
- Design at 1:1 pixel scale
- Export as PNG
- Annotate with hex color values
- Describe the rationale in 2-3 sentences
Acceptance
References
src/DisplayManager*.cpp — rendering
src/Themes.h — the 24 themeable color roles
docs/images/tft-dashboard.png, docs/images/tft-tour.gif — current UI
What
Design improvements for the 320×240 TFT dashboard — the physical screen on the device.
Why
The TFT is the face of SIMUT. A better layout, clearer widgets, or smoother transitions make the device feel significantly more polished. Pure design/prototyping task — submit mockups without writing C++. The maintainer helps with implementation.
/api/screenshotreads through that offset — so a screenshot can look correct while the panel does not. Design inside 312×232.setFont(NULL)) renders CP437, where0xE7isτ, notç— accented Portuguese/Spanish text has to go throughunaccent()or use the other font. Do not assume your mockup's diacritics survive.main, release build). Earlier text here said 98.7%; that predates the WebUI factoring and minifier work. New sprite/icon data still has to be small, but a few KB is affordable.Already shipped — do not re-propose
fastClear, chrome via canvas, SPI at 62.5 MHz — a full repaint went from 254 ms to 121 ms. "Smooth transitions" is a design question now, not a throughput one..thmfiles. Color work belongs in a.thm, not in this issue.What you can contribute — pick ONE
Submit mockups as 320×240 PNG (content inside the 4 px frame). The maintainer will help with C++ implementation:
Note on the boot screen: it cannot be captured by
/api/screenshot, because the web server only pumps insideloop()and the boot screen is drawn beforeloop()starts. Any boot-screen design has to be reviewed as a mockup or photographed off the panel.How to contribute mockups
Acceptance
References
src/DisplayManager*.cpp— renderingsrc/Themes.h— the 24 themeable color rolesdocs/images/tft-dashboard.png,docs/images/tft-tour.gif— current UI