Public Access
Fix shifted pictures: non-blocking Nano drawing, frame check, refresh settings
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>
This commit is contained in:
1 parent
58a7cb03c2
commit
090c2bf8ae
45 files changed
+1265
-157
No files matched your search
@@ -58,7 +58,9 @@ src/recovery/ ESP32 recovery app: WiFi setup page + OTA
|
||||
partitions.csv ESP32 flash layout (recovery app + two clock firmware slots)
|
||||
test/test_nano/ unit tests for the Nano firmware (run on the PC)
|
||||
test/test_esp32/ unit tests for the ESP32 logic (run on the PC)
|
||||
test/test_driver/ unit tests for the display driver with a simulated panel
|
||||
test/mocks/ fake Arduino, EEPROM and display driver for the Nano tests
|
||||
test/driver_mocks/ fake Arduino and Adafruit GFX for the driver tests
|
||||
tools/ uploader for flashing the Nano over WiFi, font and picture scripts
|
||||
docs/ documentation (see below)
|
||||
Pictures/ photos, pictures of the pages and screenshots of the web UI
|
||||
@@ -92,7 +94,7 @@ pio run -e nano_ota -t upload # flash the Nano over WiFi, through the ESP32
|
||||
pio run -e esp32 -t upload # flash the ESP32 over the air
|
||||
pio run -e esp32_usb -t upload # flash the ESP32 over USB
|
||||
pio device monitor -e nano # serial monitor
|
||||
pio test -e test_nano -e test_esp32 # run the unit tests on the PC
|
||||
pio test -e test_nano -e test_esp32 -e test_driver # run the unit tests on the PC
|
||||
```
|
||||
|
||||
The unit tests need `gcc`/`g++` on your PATH. On Windows you can get it from
|
||||
@@ -135,3 +137,6 @@ In VS Code you can also pick the environment in the PlatformIO status bar.
|
||||
- [ ] **Check the boot timing.** Build the Nano with `MEASURE_REFRESH` to see how long a
|
||||
full redraw takes. If the reply wire isn't fitted, check that 3 s
|
||||
(`NANO_BOOT_TIMEOUT`) is enough for the Nano to boot.
|
||||
- [ ] **Watch the frame check.** After a few days, look at System, "Frame check": any
|
||||
"wrong" or "no answer" counts mean bytes still get lost somewhere; "Nano restarted"
|
||||
means power dips (e.g. while many dots flip).
|
||||
Reference in new issue
Block a user