125000 bench: RX overrun confirmed (NAK=1082, lamps dead) — CPU is the wall
Board->PC near-perfect at 125k (framing 5) while PC->board shredded by packet length (2-byte polls 60% delivered, 4-byte lamp cmds ~2/3 NAKed as checksum-corrupt): the 2MHz HC11 RX ISR can't drain back-to-back bytes at 80us. MAX232 acquitted; zero wedges even at 40% inbound loss. 62500 image built as the sweet-spot candidate (RIOv4_2_patched_62500.bin). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -304,3 +304,17 @@ just survivable. To actually harvest the bandwidth, the next dial is
|
||||
host-side: drop the 55ms analog poll interval (the board now answers in
|
||||
~4.6ms of wire time). Cabinet adoption still gated on game-side baud
|
||||
patches; 9600 patched chip remains the production standard meanwhile.
|
||||
|
||||
### 125000 bench results (2026-07-18) — CPU wall found; RX overrun confirmed
|
||||
|
||||
`testlogs/riomash-patched-125000-20260718-125310.log` (103s): zero wedges
|
||||
(all gaps self-recovered <=0.52s even here), but the board's RX drowns:
|
||||
NAK=1082 (~2/3 of the ~1650 lamp commands arrived checksum-corrupt —
|
||||
overrun-dropped bytes; lamps visibly dead), analog delivery 60.6% (2-byte
|
||||
requests survive better than 4-byte packets), both status exchanges
|
||||
failed. Direction asymmetry nails the cause: board->PC was near-perfect
|
||||
(framing 5), so the MAX232 leg is fine at 125k — the 2MHz HC11 RX ISR
|
||||
(~160 E-cycles/byte, 1-byte buffer) is the wall, exactly as the cycle
|
||||
estimate predicted. Verdict: 125000 NOT viable. Sweet-spot candidate:
|
||||
`RIOv4_2_patched_62500.bin` (320 cycles/byte, MAX232 in-spec, ACK-wait
|
||||
80 ticks = 12.8ms), sha256 below, awaiting bench.
|
||||
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,29 @@
|
||||
== RIO mash test :: COM1 @ 125000 8N1, 300s, chip label 'patched-125000' ==
|
||||
lamp echo ON (drives reply/lamp collisions), wedge threshold 2.0s, app auto-recovery DISABLED
|
||||
log: C:\VWE\riojoy\riomash-patched-125000-20260718-125310.log
|
||||
firmware: 4.2
|
||||
counters before: (no status reply — reply path dead?)
|
||||
|
||||
>>> MASH NOW: two hands, 8 lamp buttons, as fast as you can. <<<
|
||||
>>> Test runs 300s. A wedge alarm will beep + banner. <<<
|
||||
>>> Ctrl+C ends the run early and still prints the summary. <<<
|
||||
|
||||
[ 33.05s] progress: presses=147 (147/min) analog=344 maxGap=0.31s wedges=0
|
||||
[ 63.12s] progress: presses=472 (449/min) analog=668 maxGap=0.37s wedges=0
|
||||
[ 93.14s] progress: presses=741 (477/min) analog=999 maxGap=0.44s wedges=0
|
||||
[ 103.09s] operator stop (Ctrl+C) — ending run, snapshotting counters...
|
||||
|
||||
== MASH SUMMARY [patched-125000] ==
|
||||
run : 103s on COM1, lamps on, wedge threshold 2.0s
|
||||
firmware : 4.2
|
||||
presses/releases : 827 / 824 (470 presses/min)
|
||||
analog replies : 1134 (~1872 poll slots; 60.6%), sentinels 0
|
||||
framing / NAK : 5 / 1082
|
||||
gap histogram : <100ms:804 100-250ms:298 250-500ms:30 0.5-1s:1 1-2s:0 2-5s:0 >5s:0
|
||||
longest gaps : 0.52s@95.7s, 0.44s@63.3s, 0.44s@86.0s, 0.38s@79.8s, 0.37s@56.4s, 0.37s@73.4s, 0.37s@81.5s, 0.34s@95.3s, 0.31s@40.8s, 0.31s@58.4s
|
||||
wedge events : 0
|
||||
counters before : (no status reply — reply path dead?)
|
||||
counters after : (no status reply — reply path dead?)
|
||||
counter delta : (incomplete — a snapshot got no reply)
|
||||
verdict : PASS — no wedge; compare gap histogram + counter delta to baseline
|
||||
log file : C:\VWE\riojoy\riomash-patched-125000-20260718-125310.log
|
||||
Reference in New Issue
Block a user