diff --git a/RIOv4_2-ANALYSIS.md b/RIOv4_2-ANALYSIS.md index e39409be..e7791b64 100644 --- a/RIOv4_2-ANALYSIS.md +++ b/RIOv4_2-ANALYSIS.md @@ -240,3 +240,27 @@ heavier mash is decisive. Remaining (cabinet): overnight idle soak + a native-game session. Both check snapshots also reported a board/lamp fault item — persistent across chips, likely a real tired lamp; inspect separately. + +## 31250-baud bench run (2026-07-18) — patch holds; retry window is byte-scaled + +`testlogs/riomash-patched-31250-20260718-003114.log` (127s mash, FTDI +COM1 @ 31250, latency timer already 1ms): **zero wedges**, but +framing=5655, analog replies at 215% of poll slots (duplicates), and +AbandonCount=65 — a reply-retry storm. Reading: the board's reply +ACK-wait window scales with BYTE TIME, not wall clock. At 9600 the +window (~5+ms) hides USB turnaround entirely (zero framing in both +9600 runs); at 31250 it shrinks to ~1.6ms, which USB cannot reliably +beat, so most replies retransmit and 65 exhausted all 4 retries. + +Two conclusions: +1. **Brutal confirmation of the wedge patch**: 65 trips through the + give-up path in 127s, every one self-recovered ($DFF0 stub). The + unpatched firmware would have latched dead on the first. +2. **31250 needs one more firmware tweak to be clean**: widen the + reply-retry wait (the pacing/limit around the $D90E/$D9BE retry + machine) so the window stays >=10ms of wall clock at 31250. Until + then: cabinets run the 9600 patched chip (validated clean); 31250 + stays a bench branch. Note the duplicate replies also mean the raw + reply rate overstates throughput — unique samples are still capped + by the host's 55ms poll; harvesting the speed needs a faster poll + AFTER the retry window is fixed.