You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Severity: LOW · Effort: Small · Batch: 5 · Status: Code done in #21 (29b54d2), awaiting bench verification
Found in the second full review of the firmware. Recorded with the rest of the pass (F-19…F-44) in docs/REVIEW_REMEDIATION_PLAN_2.md, which is where its status is kept.
The double read compensates for a missing write → delay → read sequence (the Seesaw needs time
to prepare a response). Rotation during the 5 ms between reads is lost. Split each transaction
into a write, a short delay and a read, and drop the double read — bench-verify before merging.
Acceptance Criteria
Every Seesaw read is a write, a 500 µs wait (Adafruit's library uses 250 µs), and a
read, each its own transaction. Every register is read once.
Bench, before merging: slow single clicks each register exactly one step, a fast
spin tracks without lost steps, and the button still presses and releases. If reads
fail or return garbage, the F-19 bound drops them, so the knob stays still rather than
jumping.
Related: #9 (moving the display port off the legacy I2C driver). The encoder HAL uses the same legacy bus, so the two should be done with each other in mind.
Activity
fix: synchronise callbacks, stream the roster, write NVS off the LVGL…