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
+8
-1
@@ -55,6 +55,13 @@ const uint32_t HA_ERROR_INTERVAL = 60000;
|
||||
// this one (characters per ms at NANO_BAUD) and flipped its changed dots, plus a margin
|
||||
const uint32_t NANO_CHARS_PER_MS = NANO_BAUD / 10000;
|
||||
const uint32_t FRAME_MARGIN = 20;
|
||||
// Frame check (logic/frame_check.h): after a frame the Nano is asked for the checksum of
|
||||
// its image (C), at most this often (moving pages send many frames)
|
||||
const uint32_t FRAME_CHECK_INTERVAL = 3000;
|
||||
// No answer this long: counted as lost (the C or the frame before it got garbled)
|
||||
const uint32_t FRAME_CHECK_TIMEOUT = 2000;
|
||||
// A wrong image is repaired by sending the whole image again, at most this often
|
||||
const uint32_t FRAME_REPAIR_MIN_GAP = 10000;
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Flashing the Nano over WiFi (see README.md, pio run -e nano_ota -t upload)
|
||||
@@ -105,7 +112,7 @@ const uint32_t SETUP_AP_DELAY = 20000; // open the AP when WiFi fails thi
|
||||
const uint32_t WIFI_CONNECT_TIMEOUT = 30000;
|
||||
const uint32_t WIFI_RESTART_TIME = 10UL * 60 * 1000;
|
||||
|
||||
#define FIRMWARE_VERSION "2.7.2"
|
||||
#define FIRMWARE_VERSION "2.8.0"
|
||||
|
||||
// Home Assistant device id (do not change: Home Assistant's entities are linked to it)
|
||||
const uint8_t HA_DEVICE_ID[] = {0x34, 0x86, 0x5d, 0x3a, 0x08, 0x28};
|
||||
|
||||
Reference in new issue
Block a user