VersaMCU/doc
cjjohn 13c3e41c91 Add lightweight READ_STATUS command to avoid blocking LED updates during polling
CONFIG_READ was being (ab)used by the Windows viewer's Live-Sync feature
to poll just the active profile every 1.5s, but the handler sends the
full 740-byte config as ~124 blocking chunk packets from inside
poll_vendor() -- which runs before updateLEDs() in the same loop
iteration (see the loop-order comment at the top of
CMainController.cpp). Every poll cycle stalled updateLEDs() long enough
that running Pulse/Blink animations visibly stuttered, since their
brightness is computed from an absolute millis() timestamp and jumps
forward once the stall clears instead of catching up smoothly.

Added USB_CMD_READ_STATUS (0x06) / USB_EVT_STATUS (0x86): a single NVM
read (no serial I/O) and one 8-byte reply packet with the active
profile in Data[1], no chunking. Documented in
doc/07_serial_protocol.md alongside why CONFIG_READ is unsuitable for
polling. CONFIG_READ stays as-is for actual full-dump use (e.g. "Vom
Board laden").

Verified on hardware after flashing via env:versapad_usb: READ_STATUS
returns the correct profile in ~well under CONFIG_READ's dump time,
Live-Sync no longer visibly disturbs LED animations.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-07 15:37:21 +02:00
..
00_architecture.md Harden firmware state and transfer handling 2026-07-24 09:49:21 +02:00
01_matrix.md Harden firmware state and transfer handling 2026-07-24 09:49:21 +02:00
02_encoder.md Harden firmware state and transfer handling 2026-07-24 09:49:21 +02:00
03_action_engine.md Harden firmware state and transfer handling 2026-07-24 09:49:21 +02:00
04_macro_system.md Harden firmware state and transfer handling 2026-07-24 09:49:21 +02:00
05_led_system.md Harden firmware state and transfer handling 2026-07-24 09:49:21 +02:00
06_nvm_config.md Harden firmware state and transfer handling 2026-07-24 09:49:21 +02:00
07_serial_protocol.md Add lightweight READ_STATUS command to avoid blocking LED updates during polling 2026-08-07 15:37:21 +02:00
08_development.md Fold bootloader documentation into the main doc/ index 2026-08-05 22:49:56 +02:00
09_known_limitations.md Fold bootloader documentation into the main doc/ index 2026-08-05 22:49:56 +02:00
10_usb_bootloader.md Guard env:versapad's upload against overwriting the bootloader 2026-08-05 23:27:02 +02:00
INDEX.md Fold bootloader documentation into the main doc/ index 2026-08-05 22:49:56 +02:00