Skip to content

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

Merged
3 commits merged into
mainfrom
fix/strip-register-constraints
Oct 30, 2026
Merged

3 commits merged 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.

@atomicdeploy atomicdeploy closed this pull request by merging all changes into main in b8cd35e Oct 30, 2026
@atomicdeploy
atomicdeploy deleted the fix/strip-register-constraints 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 d9d0f8c 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