preserve hardened USB smoke evidence

This commit is contained in:
Jay
2026-08-17 17:37:39 -04:00
parent 73e5680fc3
commit 00f52ecf0f
7 changed files with 93 additions and 22 deletions
@@ -99,3 +99,19 @@ sample gaps/resets, timestamp anomalies, sensor status, saturation flags, drops,
and acquisition overruns. Sequence classification is wrap-aware. The capture
tool also accepts `--wire PATH` to preserve every serial byte before parsing,
including startup text, corrupt frames, and trailing fragments.
For deterministic fresh-session validation, `capture_binary.py --reset` releases
DTR/RTS, clears the prior input session, then pulses the C3 reset line while the
same reader remains open. This follows ESP-IDF monitor's USB Serial/JTAG reset
ordering and avoids a flash-to-capture port-open race.
Commit `73e5680` was built, flashed, and then captured through this reset path.
The result contains 1,184 contiguous samples, sequences 0 through 1,183, with
zero packet/sample gaps, resets, CRC failures, reported drops, loop overruns,
trailing bytes, or timestamp saturation. Raw-wire offline decoding produced CSV
byte-for-byte identical to live rendering. Both artifacts are tracked:
- `tests/fixtures/direct_usb_73e5680.trk`, SHA-256
`fd34bb3bf8f92a64960024f1287e553c03076ff3714fe629ec629bec81ddf821`
- `tests/fixtures/direct_usb_73e5680.wire`, SHA-256
`82d6d17bbf0729e9bfc53f337ec9adf70bcb5e5898b039685eda5dfa19cf4eea`