scroll_speed is now a float (0.05-30 dots per second, e.g. 0.25 = one dot
every 4 s). Page format 5; version 4 pages are converted, version 3 goes
through version 4.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- net/ha_api: the HTTP requests run in a FreeRTOS task on core 0; loop()
only hands over copies through queues. The web UI's test button polls.
No more 3-4 s loop() stalls once a minute; timeout raised to 5 s.
- Progress bar page element (page format 4, v3 pages are converted)
- Plex user setting (settings v6): {plex_user} in entity ids
- Plex page (examples): watchers, play/pause icon, title, progress
- Bitmaps cached in RAM: a LittleFS read took ~100 ms on every render
and web preview; long JSON lists sent in 2 KB pieces
- Backup includes the refresh settings and the Plex user
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Nano's periodic full redraw blocked for ~0.8 s. A frame that arrived
meanwhile overflowed its 64-byte serial buffer; lost bytes in a bitmap
shift the rest of the image (picture moved up), and diff frames never
repaired it.
- Nano: all drawing (frames, effects, the dot refresh) runs from update()
in ~1 ms slices; the refresh pauses while a frame is received or shown
- New commands: C (reply with the image checksum) and I (refresh minutes,
EEPROM)
- ESP32: NanoMonitor asks for the checksum after frames and sends the whole
image again on a mismatch, missing answer or Nano restart; counts ERR
replies. Periodic whole-image resync.
- Settings: "Dot refresh" and "Image resync" intervals (settings v5,
v4 records are migrated)
- System tab: loop timing, free memory, frame check counts
- test_driver: the real driver against a simulated panel
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- README is the overview; web UI, pages, Home Assistant, how it works,
wiring, Nano over WiFi and the recovery app have their own page in docs/.
- docs/web-ui.md has a screenshot of every tab, made with headless Edge by
tools/make_webui_screenshots.py.
- The web UI opens a page in the editor with #pages/<name>. Version 2.7.2.
- The reply wire is fitted (flashing the Nano over WiFi works).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tools/make_page_screenshots.py asks the ESP32 to draw every page (with the
current Home Assistant values) and writes them as PNG in the style of the web
UI's live view to Pictures/pages/.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>