# Controller A USB main-compatible transport qualification

Date: 2026-07-27

## Outcome

Controller A physically persisted the complete firmware image after the USB
transport was restored to the conservative limits used by `main`. Controller
telemetry completed close, media flush, logical disconnect, remount, and exact
size verification. After physical removal, independent Raspberry Pi inspection
found the same 8,388,864-byte IMX and a clean FAT32 filesystem.

This closes the IMX false-success reproduction. A later run on the correctly
identified `A-CTRL-2` also physically persisted PID and HPT CSV publication.
The final FAT gate found a stale FSInfo free-cluster summary, so complete USB
parity remains open pending disposition of that filesystem metadata finding.

## Exact identities

- controller assembly: `1751136`
- J-Link: `69664082`
- hardware variant: `0`
- deployed S-record SHA-256:
  `F09B9156C10E100BA38652FF1204110F1E6B7477D4018AECA11691A7D8D6BDEC`
- controller SD raw CID: `035344535330384780976F0084018559`
- Pi-observed USB serial: `071C49DE25C08808`
- Pi-observed FAT label: `B-CTRL-2`
- Pi-observed FAT UUID: `C197-8ABD`

The observed USB label does not match the operator name `A-CTRL-2`; the serial,
label, and UUID above are authoritative for this run.

The subsequent PID/HPT run used the correctly identified `A-CTRL-2`:

- Pi-observed USB serial: `071C49DE246A1F97`
- Pi-observed FAT label: `A-CTRL-2`
- Pi-observed FAT UUID: `8B67-9B27`

## Controller result

- image bytes: `8388864`
- write calls: `8193`
- maximum write: `1024`
- FileX errors: `0`
- system errors: `0`
- close ticks: `1`
- media-flush ticks: `70`
- durability result: verified after one disconnect/remount
- remount-verified bytes: `8388864`

## Independent Pi result

- `fsck.fat -n -v /dev/sda1`: clean, 9 files, 568 allocated clusters
- IMX: `7520553_SMI_00_05_00.imx`, `8388864` bytes
- IMX SHA-256:
  `837A8F7D780442407E0C9D5C66085C4BEBC97702D914C7A31DB6CA9A550DF12C`
- `W00.wav`: `198566` bytes,
  SHA-256 `37A9DC665366F06D8081B23ECF88BDB30CF81546C3A10EDA1BE827DE2D006B92`
- `W01.wav`: `176516` bytes,
  SHA-256 `E22FC8FFF2CF68878C56EA87660CA2325E0FBF04CF091AAEB112A7F274B1B2F7`

## Root-cause disposition

The failure followed the newer enlarged shared USB transport settings and
cleared when the `main`-compatible sizes were restored: 1 KiB USB storage
transfer and buffer, 512-byte USBHS bulk payload, and 1 KiB IMX writes. The
70,656-byte USBX pool and the newer cache/STOP/remount telemetry were retained.

The evidence supports a transport-size compatibility regression, not defective
media and not a requirement for physical VBUS removal. It does not isolate
which USBX, USBHS, controller, or device layer mishandles the larger requests.

Detailed controller captures are under
`work/evidence/hpt-log-store-circular-mirror/controller-a/usb-main-compatible-transport-20260727/`.

## Actual A-CTRL-2 PID and HPT result

PID survived physical removal:

- file: `MainPid 2026-07-27 13-46.txt`
- bytes: `225`
- SHA-256:
  `6BCB89F2EFACC503B950EF00151A51AF8353C40B53781110C14DDC441737FC3A`

HPT export survived physical removal:

- file: `A2_USB_DURABLE_20260727.csv`
- bytes: `157811`
- SHA-256:
  `F4E9326C9426C01D313A944D2DE1722F3B47E745F562F90351530187AE0533B4`
- selected/healthy records: `3127` / `3127`
- snapshot gaps / requested-range gaps: `0` / `0`
- physical file line count: `3145`
- terminal marker:
  `Export completion: COMPLETE; records published: 3127`

The final unmounted `fsck.fat -n -v` did not modify the stick and returned
status `1`: the FSInfo free-cluster summary recorded `1893431`, while a FAT
scan found `1893429`. File contents and directory entries remained readable,
but the final FAT-clean gate is not satisfied until this two-cluster metadata
discrepancy is diagnosed or explicitly accepted.

## B-CTRL comparison on Controller A

A different B-controller stick was run through the same Controller A PID and
HPT workflows to separate firmware behavior from A-CTRL-2 media state.

- Pi device identity: `_USB_DISK_2.0-0:0`
- FAT label: `B-CTRL`
- FAT UUID: `C1DF-29CD`
- cluster size: `4096` bytes
- PID: `MainPid 2026-07-27 14-51.txt`, `225` bytes
- HPT CSV: `B2_ON_A_DURABLE_20260727.csv`, `157811` bytes
- HPT SHA-256:
  `D7394AB2FFA65571AB2C1AC71428424897CC1A4E29C2DA672FC22ED605534085`
- physical CSV lines: `3145`
- completion marker: `COMPLETE`, `3127` records
- `fsck.fat -n -v`: exit `0`, clean, 9 files, 2257/490295 clusters

The clean comparison after identical Controller A writes shows that the stale
two-cluster FSInfo count is specific to A-CTRL-2's media/format state. It is
not evidence of a general failure in the conservative firmware write path.

## Fresh-format B-CTRL repeat

To exclude any possibility that pre-existing files masked the comparison, the
`B-CTRL` stick was reformatted as FAT32, restored with only `W00.wav` and
`W01.wav`, and run again on Controller A after a qualified coordinated power
cycle.

Post-removal Pi inspection found exactly four user files:

- `W00.wav`: `198566` bytes, SHA-256
  `37A9DC665366F06D8081B23ECF88BDB30CF81546C3A10EDA1BE827DE2D006B92`
- `W01.wav`: `176516` bytes, SHA-256
  `E22FC8FFF2CF68878C56EA87660CA2325E0FBF04CF091AAEB112A7F274B1B2F7`
- `MainPid 2026-07-27 15-15.txt`: `225` bytes, SHA-256
  `6BCB89F2EFACC503B950EF00151A51AF8353C40B53781110C14DDC441737FC3A`
- `BCTRL_CLEAN_A_20260727.csv`: `157811` bytes, SHA-256
  `29CD87094E9027AD649C29F891F845884D992EED9AC20FD5B07C5510D2136045`

The CSV had `3145` physical lines and ended with
`Export completion: COMPLETE; records published: 3127`.
Unmounted `fsck.fat -n -v` returned exit `0`, with 5 filesystem files
(including the FAT volume label entry) and 134/490295 allocated clusters.
No old IMX, PID, or CSV was present. This repeat independently confirms the
conservative Controller A write path on freshly formatted media.

## Reformatted A-CTRL-2 on Controller B

`A-CTRL-2` was freshly formatted, restored with only W00/W01, and tested on
Controller B using B's exact deployed artifact profile:

- deployed S-record SHA-256:
  `486B048B65BCE801CA26DD6B4448F11B92F6B4C815DAFE082E48CBD4F170CCF9`
- USB serial: `071C49DE246A1F97`
- fresh FAT UUID: `D1B6-B768`
- PID: `MainPid 2026-07-27 15-37.txt`, `225` bytes, SHA-256
  `6BCB89F2EFACC503B950EF00151A51AF8353C40B53781110C14DDC441737FC3A`
- HPT CSV: `A2_ON_B_CLEAN_20260727.csv`, `161391` bytes, SHA-256
  `6138C25525AAC3F473ABBEE78CC5A7A153B277AA76BA80AEC0C12315F8D236C3`
- physical CSV lines: `3215`
- terminal marker: `COMPLETE`, `3197` records
- physical WAV hashes matched the fixture masters
- unmounted `fsck.fat -n -v`: exit `0`, 5 files, 36/1893477 clusters

Controller B published with its older 16 KiB HPT writes and 128 KiB USB
buffer. The clean result proves A-CTRL-2 is not intrinsically failing. Its
earlier two-cluster FSInfo mismatch was stale pre-format metadata and did not
recur after reformatting and Controller B publication.

The 81 degraded rows in this Controller B export were traced to the preserved
intentional lane-retirement campaign, not USB or new media failure. See
`work/evidence/controller-b-81-degraded-hpt-records-root-cause-20260727.md`.

## Reformatted A-CTRL-2 repeat on Controller A

After a second fresh FAT32 format, A-CTRL-2 was restored with only W00/W01 and
retested on Controller A's conservative candidate.

- USB serial: `071C49DE246A1F97`
- fresh FAT UUID: `4786-19C3`
- PID: `MainPid 2026-07-27 16-09.txt`, `225` bytes, SHA-256
  `6BCB89F2EFACC503B950EF00151A51AF8353C40B53781110C14DDC441737FC3A`
- HPT CSV: `A2_CLEAN_A_RETEST_20260727.csv`, `157811` bytes, SHA-256
  `64017D356A24C49085ECF65EDEFACD0294FE479C63755A50CB55F33802230B21`
- CSV physical lines: `3145`
- completion marker: `COMPLETE`, `3127` records
- healthy/degraded records: `3127 / 0`
- snapshot/requested gaps: `0 / 0`
- physical WAV hashes matched the fixture masters
- exact root file set: W00, W01, one new PID, one new CSV
- unmounted `fsck.fat -n -v`: exit `0`, 5 files, 36/1893477 clusters

The former two-cluster FSInfo mismatch did not recur. A-CTRL-2 is now cleanly
proven on both Controller A and Controller B after reformatting.
