Skip to content

fix: defer RF decoding to preserve UART reception - #700

Merged
atomicdeploy merged 5 commits into
mainfrom
fix/rf-serial-starvation
Oct 30, 2026
Merged

atomicdeploy merged 5 commits into
mainfrom
fix/rf-serial-starvation

Conversation

@DRSDavidSoft

@DRSDavidSoft DRSDavidSoft commented Oct 26, 2026 •

Copy link
Copy Markdown
Collaborator

Problem and change

RF protocol decoding ran inside INT0, delaying UART receive servicing during 115200-baud strip streaming. Capture the completed pulse buffer in the interrupt and decode it in the main loop while UART interrupts remain enabled. The buffer stays owned until decoding completes; receive rearming discards obsolete work.

Based on #697, which includes the LED register-allocation fix from #693. Related: #696.

Validation

  • Native RF fixture passes: decoding outside ISR, immutable pending buffer, waveform identity, resynchronization and rearming.
  • AVR compile, SRAM/flash guards and WS2811 waveform checks passed.
  • Guarded board upload verified flash and restored EEPROM.
  • Before: one framing error after 498 acknowledged 38-pixel frames.
  • After: 2,442 acknowledged frames over 180 seconds, zero framing/CRC errors and no reset. One of 2,443 HTTP requests exceeded the five-second client deadline; outcome unknown, so host latency investigation remains open.

Remaining gates

Trace-free firmware 5B86029E was independently read back, EEPROM restored/verified and recovery latch cleared. The later byte-index size optimization passes both default and EEPROM-menu-label builds, RF boundary tests and waveform checks but is not deployed while the coordinated playback investigation owns the board. Complete final-image long streaming, host scheduling, physical RF reception, Pealayer playback/effects and user visual acceptance. Private logs, machine settings and firmware backups remain local.

Base automatically changed from fix/strip-serial-diagnostics to main October 30, 2026 16:19
@atomicdeploy
atomicdeploy merged commit cdbeac9 into main Oct 30, 2026
15 checks passed
@atomicdeploy
atomicdeploy deleted the fix/rf-serial-starvation branch October 30, 2026 16:19
@atomicdeploy

Copy link
Copy Markdown
Owner

Integrated through #701, merged normally as b8cd35e after all24 final-head checks passed. Your exact head cdbeac9 is an ancestor of merged main, and the reviewed implementation plus regression tests remain in functional source. This earlier checkpoint is superseded as an integration vehicle, not discarded. Remaining physical, runtime/package and acceptance gates stay in docs/verification/pr-integration.md and their owning issues; no production mutation or verifier relaxation occurred in this pass.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants