Skip to content

fix: restore AVR strip output and avoid late-frame idle time - #693

Open
DRSDavidSoft wants to merge 2 commits into
mainfrom
fix/strip-register-constraints
Open

DRSDavidSoft wants to merge 2 commits into
mainfrom
fix/strip-register-constraints

Conversation

@DRSDavidSoft

@DRSDavidSoft DRSDavidSoft commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

The host acknowledged strip frames while the physical strip remained dark. GCC assigned both the mutable next-bit operand and the constant low-port value to r24, preventing low transitions. Early-clobber constraints, a read/write pointer and a memory clobber correct the sender. A linked-AVR waveform gate checks all byte values, boundaries and full frames.

The user physically confirmed rainbow output with corrected firmware BC491357. They also reported low FPS: complete 100-pixel frame commands measured 66–76 ms, and the old 50 ms scheduling grid waited until 100 ms. Late frames now render current animation time immediately and rebase without stale-frame bursts.

Validation:

  • Old linked image fails the register-alias regression; corrected image passes every waveform case.
  • MiniCore compile: 32,280 bytes flash, 1,570 bytes static SRAM, 231-byte stack margin.
  • Guarded firmware upload, complete flash readback, settings restore and authentication succeeded.
  • Focused strip Go tests and all 94 build-tooling tests pass. Local Go testing used 1.27.1 with an external modfile because the pinned 1.27.2 download returned HTTP 403; repository pins are unchanged.
  • All PR CI checks pass, including Windows host and AVR firmware.
  • Rechecked 2026-10-20: board connection recovered. Installed the verified Windows CI host 0.0.0-ci.1631 from merge bff7a15, containing this branch and current main. Full 100-pixel rainbow is streaming, including successful dispatch through Pealayer's hardware.strip.rainbow RPC.
  • Pealayer is connected to the physical board. Native visual connection, health, JSON-RPC, smoke exit 0 and no new crash events were verified. No media is currently decoded; synchronized playback/cues and physical motion are not accepted by this evidence. Physical smoothness after the pacing change remains unconfirmed.

Handoff: branch fix/strip-register-constraints, commit 7374de4, verified on GitHub. Relevant source worktrees are clean. Corrected firmware BC491357 remains installed. The updated installed host is streaming the full rainbow, and Pealayer is connected.

Remaining: rising framing errors with zero CRC errors and stable reset count (#696); helper-driven host self-update staging (#695); programmer adapter compatibility (#694). After self-update retained the original image, the verified candidate was activated with the old host stopped and rollback retained. Private backups, device/config state and screenshots remain local. Stop strip streaming before precise MCU recording/playback. No production timing guarantee is claimed.

Related: #71, #390, standalone FastLED comparison #692.

@DRSDavidSoft DRSDavidSoft changed the title fix: prevent AVR strip sender register aliasing fix: restore AVR strip output and avoid late-frame idle time Oct 19, 2026
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.

1 participant