ShiboSoftwareDev/linux-gameboy-advance

A multilayer PCB carrier/router board integrating USB-C power/data, battery charging and regulation, display/SD interfaces, UART/I²C/SPI headers, controls, audio/volume hardware, and RGB status LEDs with reviewed routed copper and vias.

Version
1.0.138
License
unset
Stars
0

mechanical/ENCLOSURE_AUDIT.md

# USB and assembly review — 18 October 2026

Status: **draft, not published, not fabrication-qualified**. The guard in `external-parts.json` remains active. Earlier LiPo exports are not valid evidence for the AA design.

**Later whole-board scan: fabrication gate FAILED.** `verification.json` now records `BLOCKED_BY_WHOLE_BOARD_DRILL_CLEARANCE`. At (3.8, 6.15), the 0.30 mm HPCOM/HPCOMFB via is 0.400 mm from the centreline of a different-net 0.12 mm HPL trace, leaving only **0.190 mm**, below the **0.200 mm** target. The previously passing accessory-only check did not cover that inherited module copper. The all-board scan reports further candidates, including repeated segments and pour-covered hints that need separate review. Do not treat native DRC, shorts, or the checks described below as fabrication approval. See `tmp/all-via-trace-clearance.json` and `assembly/resolution-status.json`.

## Corrections implemented

- One USB-C supplies power and native USB/FEL data. Reset-high PCF8575 P17 disconnects the complete backlight input through an AO3401A and holds PAM8403 in shutdown through an AO3400A. Linux leaves these loads off until explicitly enabled. The internal RGB remains software-controlled, not an automatic ROM/FEL indicator; no exterior aperture was added.
- TPS2553 ILIM is 100 kΩ parallel with 150 kΩ: approximately 0.390–0.494 A including resistor tolerance. This is a current ceiling, **not permission to draw that much before USB configuration**. No Type-C current-advertisement detector was added.
- Both speaker output branches were widened from 0.12 to 0.25 mm. Twenty-four selected power/return paths are checked at 0.50 mm, and two local regulator escapes at 0.25 mm. Width checks do not approve regulator-loop geometry or load transients.
- Four remaining native width warnings point to thinner branches elsewhere on the same net. Each requested direct endpoint-to-endpoint path meets its requested width. `check-width-warnings.mjs` records the actual route IDs and includes negative controls that detect either speaker branch being narrowed again. It does not delete warnings.
- The active module's C_TV_REF terminal approaches were restored to orthogonal/45-degree geometry after its courtyard relocation. A negative-control test rejects the previous stretched stub.
- JLCPCB marked flash listing C113767 unavailable for purchase. U_FLASH now uses the orderable C97521 listing for the identical W25Q128JVSIQ MPN and SOIC-8-208mil package, already used by its CAD model and assembly-part metadata. The source edit changes only this supplier code. The one-off full-record fingerprint included the build's source-filesystem hash and could not be used as a geometry comparison; explicit connectivity/placement, DRC and shorts checks were rerun instead.
- BH4AAW keepers now have 1 mm of guided adjustment across the drawing's 15.38–16.38 mm depth range. M2x5 screws retain 2–3 mm insert engagement and at least 0.8 mm blind-tip clearance. Tests cover 101 holder heights. Actual contact with the holder frame remains unqualified.
- Ten integral PA12 clips retain the two factory speaker leads separately. Four S-bends accommodate 147/152/157 mm lead lengths without moving the fixed clip seats; modeled minimum bend radius is 2.4 mm. The 0.65 mm throat and 1.2 mm channel assume 0.8 mm insulation OD and require a real-wire/printed-coupon check.
- Battery-door tongue clearance was widened locally after the motion test found contact at 6° and 8° insertion angles. The revised preview passes all 305 motion/interference probes; this does not prove every possible insertion path.
- Export, fastener, connected-solid, button-travel and motion checks now use the AA holder, allowed hardware and 17 printable bodies, not removed LiPo hardware. Preview-only checks cannot qualify the release reports.

## Evidence and limits

Routed electrical checks preserve 547 retained terminals in 126 groups and all 22 fixed external controls/connectors. Four layers, top-side fitting and 605 vias with 0.30 mm holes / 0.45 mm pads remain. Minimum via-hole edge gap was 0.202524 mm. Accessory trace-to-via-hole clearance was at least 0.225 mm against 0.20 mm. Native edge-copper and all-layer Gerber shorts checks passed. Re-run after any connector movement.

The electrical build before the final mechanical rebuild had **0 emitted errors and 176 warnings**. Schematic placement/style analysis reported zero issues. TypeScript, five host-only firmware tests, wire-path and keeper-stack tests passed. No target-kernel build or populated-board test was performed.

Use `verification.json`, `assembly/linux-gameboy-advance-assembly.json`, `assembly/collision-checks.json`, `tmp/aa-assembly-interference.json` and `tmp/width-warning-review.json` for exact hashes and fresh outcomes. Supplier surface sampling and simplified purchased-part envelopes limit collision coverage. The intentional volume-collar press fit is not counted as a clearance approval.

The generic module suite is **not green**: its optional all-breakouts fixture still has a TVIN1 via touching C_TV_REF; other unused profiles have stored-copper failures. This handheld does not request TVIN1. Its full-board checks are independent. Fixture failures remain visible, not suppressed.

The 176 warnings consist of 80 reference-designator conventions, 1 unnamed trace, 54 power/ground pin declarations, 23 underspecified-pin declarations, 3 bare testpoint MPNs, 2 internal-connector orientation heuristics, 4 reconciled width warnings and 9 trace-angle style warnings. Electrical pin declarations, regulator loops and physical power tests remain separate review items.

Sourcing covers 144 fitted components / 66 SKUs. Orderability and confirmed assembly quantity are reported separately; some SKUs remain quantity-unconfirmed. LCSC retail stock is not reserved JLCPCB assembly inventory. See the latest `jlc-availability.json` for exact results, evidence and timestamps.

## Remaining release blockers

0. **Whole-board drill clearance:** reroute the inherited copper with at least 0.20 mm finished-drill-to-foreign-trace clearance while retaining 0.30/0.45 mm vias. The normal pad/trace DRC margin is insufficient for this drill requirement. Do not shrink the requested drill or weaken the check to obtain a pass.
1. **Battery physical qualification:** the authorized repair now places J_BAT at (-53,-25), rotation 180, facing the existing PCB slot. The initial left-facing inward trial was rejected because it collided with the speaker and retainer. The left speaker screw/post moves internally to (-51.5,-18.5), using the same screw and insert. JST catalog dimensions now drive the 6.85 x 5.8 x 4.5 mm plug envelope and 9.6 mm mated length; a dimension-checked KiCad community header replaces the mismatched old CAD. Formed leads have 4.5 mm centreline bend radii, 2 mm straight exits, separate integral clips, and approximately 93.12/96.05 mm free lengths. Real holder exits, final cut/strip/crimp lengths, latch/contact mating and printed retention still need a sample. See `battery-harness.json` and `imports/JST-PH-MODEL.md`; neither model is falsely identified as manufacturer production CAD.
2. **Purchased-part/print fit:** obtain a BH4AAW sample or accurate frame/cell-access measurements, measure speaker insulation OD, and qualify keeper contact, clips, volume collar and screw seats with printed coupons. MPD's solid envelope cannot establish these details.
3. **Release evidence:** complete fresh full-board build/export/motion checks after final harness changes; regenerate cloud/fabrication artifacts. Unused module profiles require separate repair before the entire reusable-module suite can be called passing.
4. **Electrical prototype tests:** measure USB-only enumeration/FEL/flashing current, inrush and flash-write transients; then UI load, AA sag/source transfer/runtime and backlight regulation. Current limit alone does not establish USB compliance or runtime.

Sources inspected: [TPS2553](https://www.ti.com/lit/ds/symlink/tps2553.pdf), [PAM8403](https://www.diodes.com/_files/datasheets/PAM8403.pdf), [AP3031](https://www.diodes.com/_files/datasheets/AP3031.pdf), [JST SH](https://www.jst.com/wp-content/uploads/2025/06/eSH.pdf), [BH4AAW drawing](https://www.batteryholders.com/uploads/parts/BH4AAW/datasheets/BH4AAW-datasheet.pdf), [speaker drawing](https://www.sameskydevices.com/product/resource/cms-23558n-l152.pdf).