next iteration on display, still some artifacting issues, and ux with buttons states and updating
This commit is contained in:
1 parent
45998b6176
commit
ae5d12b3a2
14 files changed
+860
-398
No files matched your search
@@ -2,20 +2,22 @@
|
||||
|
||||
## Not yet verified on hardware
|
||||
|
||||
Flashed and booting clean (icons on, first poll ~8s, no errors), but eyes and
|
||||
fingers haven't confirmed:
|
||||
Flashed and booting clean (two-phase display init, icons on, first poll ~9s,
|
||||
no errors), but eyes and fingers haven't confirmed:
|
||||
|
||||
1. Touch actually toggling a light end-to-end. Tiles are now **optimistic**:
|
||||
they flip on tap immediately and hold that state up to 5s until HA
|
||||
confirms (see `light_hold_t` in ui_manager.c). If a tile flips then snaps
|
||||
back 5s later, the command failed — check `ha_client` on serial.
|
||||
2. Whether the full-screen invalidate after each poll actually bounds the
|
||||
left-edge artefacts (it repaints them away; it cannot prevent them). If
|
||||
lines still persist for longer than one poll interval, that mechanism is
|
||||
not working and the next lever is pausing only around LVGL's flush.
|
||||
3. That the six light tiles are comfortable finger targets at ~125px, and
|
||||
that sliders track the finger without jumping (poll updates skip pressed
|
||||
sliders by design).
|
||||
1. Slider feel: press sends one command at the touch position immediately,
|
||||
drag is display-only tracking the finger, lift sends the final level.
|
||||
Poll data never moves a pressed knob.
|
||||
2. Trend arrows appear ~5 minutes after boot (indoor big card, outdoor and
|
||||
pressure cells) once the local ring has history. They are local-history
|
||||
based and reset on reboot — that is by design, not a bug.
|
||||
3. Artefact lifetime: interactions schedule a one-shot full repaint 600ms
|
||||
after the last touch, and every poll repaints too. Artefacts should now
|
||||
visibly self-clean in under a second after touching, and within a poll
|
||||
otherwise. If they *persist* beyond that, the repaint isn't reaching
|
||||
them; if they merely *recur* during interaction, that is the PSRAM
|
||||
bandwidth ceiling (README) and the honest remaining levers are fewer
|
||||
redraws or 120MHz PSRAM on a newer IDF.
|
||||
|
||||
## Done
|
||||
|
||||
@@ -95,8 +97,10 @@ hosts the thermostat before building it twice.
|
||||
- The `°` glyph exists in LVGL's built-in Montserrat fonts; the `·` separator
|
||||
that does not appears only in log strings, never on screen.
|
||||
- LVGL recursive-mutex locking is consistent across all UI entry points.
|
||||
- Init order in `main.c` is deliberate and load-bearing: WiFi/NVS before
|
||||
`display_init()`, `backlight_init()` before `touch_init()`. Never reorder.
|
||||
- Init order in `main.c` is deliberate and load-bearing:
|
||||
`display_alloc()` before WiFi (contiguous bounce buffers from a virgin
|
||||
heap), WiFi/NVS before `display_start()` (flash writes finished before
|
||||
scan-out), `backlight_init()` before `touch_init()`. Never reorder.
|
||||
- The bounce buffer is enabled and load-bearing.
|
||||
- Board is N16R8 (16MB flash / 8MB octal PSRAM).
|
||||
- `touch_get_indev()`, `display_get_panel()` and `lvgl_port_is_paused()` are
|
||||
|
||||
Reference in new issue
Block a user