# Stage 1B round 4: USB03 and USB02 cross-controller diagnostic

Status: complete
Type: evidence
Updated: 2026-08-01
Next Action: none; the nonessential readiness gate was corrected and the broad baseline passed

Project Map: work/maps/map-smi-firmware-stabilization-and-qualification.md
Workpackage: work/wp/completed/wp-restore-broad-usb-compatibility-baseline.md
Checklist: work/checklists/checklist-stage-1b-four-drive-usb-compatibility-baseline.md
Incident: work/incidents/incident-usb02-stage1b-post-open-session-failure.md

## Allocation and first-insertion discriminator

| Controller | USB drive | Media generation | Handoff acceptance | Initial result |
| --- | --- | ---: | ---: | --- |
| A / `1751136` | `USB03_32G` | `4` | `15` | mounted |
| B / `1751219` | `USB02_8G` | `4` | `15` | mounted |

Both drives mounted on their first insertion with valid FileX pointers and no
retry, VBUS diagnostic, or controller power cycle. USB02's immediate success
on Controller B proves it is not an inherently incompatible specimen. The
round 3 failure is a session transient made terminal by application teardown.

Both controllers retained the pinned Release S-record SHA-256
`713B60D7D5B58E55FB6979FCAAC5E0BE551E4ECA5D6D637EA06B4768F4E90655`.
Controller A retained SD CID `035344535330384780976F0084018559` and
Controller B retained SD CID `035344535330384780976F0085018507`; protocol,
CID-valid, representative-sector-read, and HPT-ready gates passed.

## Controller workflows

| Gate | USB03 on A | USB02 on B |
| --- | ---: | ---: |
| WAV load / playback | PASS / returned idle | PASS / returned idle |
| PID request | accepted | accepted |
| Image result / progress | success / `1000` | success / `1000` |
| Image bytes / writes / maximum | `8,388,864 / 8,193 / 1,024` | `8,388,864 / 8,193 / 1,024` |
| Image elapsed | `405.35 s` | `251.24 s` |
| Image FileX errors | `0` | one accepted first-publication `FX_NOT_FOUND` probe |
| HPT request / records | `3 / 65` healthy | `4 / 61` degraded historical |
| HPT gaps / complete / published | `0 / 1 / 1` | `0 / 1 / 1` |
| HPT/USB/first USB failure | `0 / 0 / 0` | `0 / 0 / 0` |
| HPT bytes / writes / maximum | `3,990 / 4 / 1,024` | `3,739 / 4 / 1,024` |
| HPT total elapsed | `11.16 s` | `10.90 s` |

Controller A began and ended the round with cumulative
`usb_app_errors=1`, the preserved round 3 failure count. It did not increase.
Controller B remained at `usb_app_errors=0`; both system-error counters stayed
zero.

## Independent Pi validation

The drives were identified by canonical label and UUID, remained unmounted for
read-only FAT checks, and were mounted read-only only for content inspection.
Both scans reached the final filesystem sector, found consistent FAT state,
and left the filesystems unchanged. Their only notice was the unchanged
Windows root-label versus blank boot-label convention.

USB03 contained:

- the exact 8,388,864-byte image with SHA-256
  `908966E3460C1594D21DE0B379BE2B06F1D51057A7EC5D1C25D0540F2381D7D9`;
- two PID files, including the new round 4 file, each with SHA-256
  `6BCB89F2EFACC503B950EF00151A51AF8353C40B53781110C14DDC441737FC3A`;
- `R4A_USB03.csv`, 3,990 bytes, SHA-256
  `E8326B9E5003E60EFBE2191B31E525052E55F11C86715F983EAB14A00953A05E`,
  ending `Export completion: COMPLETE; records published: 65`;
- the prior valid round 3 CSV and unchanged WAV hashes.

USB02 contained:

- the exact 8,388,864-byte image with the same canonical image hash;
- a 225-byte PID file with the same canonical PID hash;
- `R4B_USB02.csv`, 3,739 bytes, SHA-256
  `144E29BDC65C08ECBDCC22D665B0F804A26E2E34F0A1CF1F563F198B25FB7B63`,
  ending `Export completion: COMPLETE; records published: 61`;
- unchanged WAV hashes.

Neither drive contained `.tmp`, `.part`, or `.bak` files. The Pi kernel logged
no reset, SCSI sense, medium, buffer-I/O, offline, or block-I/O errors. Both
drives were left unmounted.

## Disposition

Round 4 passes as a cross-controller diagnostic and completes one successful
workflow observation for USB02 and USB03 on the opposite hardware variants.
It does not erase round 3. Stage 1B remains failed because the current firmware
turns one transient post-open status into permanent loss of a still-attached
session. Correct and repeat that gate before USB09 or the isolated 32 KiB
experiment.

## Raw evidence

- `work/evidence/hpt-log-store-circular-mirror/controller-a/stage1b-round4-usb03-20260731/`
- `work/evidence/hpt-log-store-circular-mirror/controller-b/stage1b-round4-usb02-20260731/`
