pod RIO investigation day-end: board mutes ~13s after each start (render-load/power-rail hypothesis for tomorrow); USB re-enum does NOT revive it; keep tools/probe_rio.ps1 (raw COM1 hand-poll); note the stall-detector keying fix needed

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Joe DiPrima
2026-08-10 13:40:53 -05:00
co-authored by Claude Fable 5
parent 9754fb1295
commit 47dcc62fc1
2 changed files with 42 additions and 0 deletions
+16
View File
@@ -525,6 +525,22 @@ USB **selective suspend disabled** system-wide on the cab the same day (powercfg
for the random-period idle dropouts. Hardware to-do: FTDI adapter into a REAR motherboard USB
port, reseat its USB end. ⚠ A first "print-deadlock" diagnosis of the boot wedge was WRONG
(confounded A/B) and is retracted — the dump is the authority.
**Day-end state (2026-08-10 evening) + the pick-up plan.** The 881 soak measured the fault
precisely: the board answers for **~13 s after each fresh game start** (254 replies at 20 Hz),
then goes MUTE on analog for minutes while host→board writes keep completing (`req=3846 rep=254
age=240s`, txTO frozen at 1, abandon=0). Direct hand-poll (`tools/probe_rio.ps1`, also at
`C:\bt411\probe_rio.ps1` — raw COM1 CHECK/VERSION/ANALOG with correct [cmd][sum&0x7F] framing,
DTR/RTS raised): **zero bytes**. USB re-enumeration of BOTH FTDI converters + immediate re-poll:
**still zero** — which argues AGAINST the adapter (a wedged adapter RX clears on re-enum) and AT
the board. ⚠ [T4 hypothesis for tomorrow]: 13 s ≈ when the mission render load lights up — a
**power rail sagging under the cab's full load** would also explain the original mid-combat
dropouts (explosion/load transients) and the button "revival" (load dips + harness jostle).
Tomorrow, with hands: (1) loopback plug on the FTDI (TX→RX jumper, probe echoes = adapter fully
exonerated); (2) 5 V/12 V at the RIO board while a mission loads (the 13 s correlation is the
test); (3) swap in one of the spare Prolific adapters as cheap elimination; (4) rear-mobo USB
port + ghost-COM cleanup regardless. ⚠ My STALL/RECOVER edge detector in 881 keys on
request-age, which the 50 ms poll keeps resetting — it never fires; the `age=` field carries the
real signal (fix the keying to reply-age at the next build).
**Remote minidump procedure (worked over SSH, no tools install):** 32-bit dump of the wedged pid
via `C:\Windows\SysWOW64\rundll32.exe C:\Windows\SysWOW64\comsvcs.dll, MiniDump <pid>
C:\bt411\w.dmp full` → scp home → local x86 cdb (`where.exe cdb` resolves the bt411-tools copy)
+26
View File
@@ -0,0 +1,26 @@
# Hand-poll the RIO board over COM1 -- no game involved. Wire format per
# PCSerialPacket::SendPacket: [cmd][checksum = sum & 0x7F].
$p = New-Object System.IO.Ports.SerialPort COM1,9600,None,8,One
$p.DtrEnable = $true
$p.RtsEnable = $true
$p.ReadTimeout = 200
$p.Open()
'PORT OPEN CTS=' + $p.CtsHolding + ' DSR=' + $p.DsrHolding
function Send-Cmd([byte[]]$bytes, [string]$name) {
$p.DiscardInBuffer()
$p.Write($bytes, 0, $bytes.Length)
Start-Sleep -Milliseconds 700
$got = @()
while ($p.BytesToRead -gt 0) { $got += [byte]$p.ReadByte() }
$hex = ($got | ForEach-Object { $_.ToString('X2') }) -join ' '
"$name -> $($got.Count) byte(s): $hex"
}
Send-Cmd @([byte]0x80, [byte]0x00) 'CHECK 0x80'
Send-Cmd @([byte]0x81, [byte]0x01) 'VERSION 0x81'
Send-Cmd @([byte]0x82, [byte]0x02) 'ANALOG 0x82'
Start-Sleep -Seconds 2
Send-Cmd @([byte]0x82, [byte]0x02) 'ANALOG again'
$p.Close()
'DONE'