abse/museair-usb

USB-C–powered ESP32-C3 controller board with AP63203 buck conversion, AP2112K 3.3V regulation, I²C SEN62 sensor interface, status LED, buttons, UART/I²C headers, and extensive decoupling.

Version
0.5.7
License
unset
Stars
0

assembly-assets/INSTALLATION.md

# Top-service horizontal assembly — local draft

The enclosure base is one connected part containing all four full-height walls, floor, PCB ledges and floor bosses. Only the flat top lid removes. `assembly.circuit.tsx` provides independent CAD IDs `ENCLOSURE_BASE` and `REMOVABLE_TOP_LID`, with separate `showBase` and `showLid` props. Publication status is recorded in validation/direct-speaker-publication.json.

## Installation and removal

1. Install four M2 insert envelopes in the internal PCB ledges and two in the blind floor bosses. The CAD envelopes are 3.2 mm outside diameter and 3 mm long; choose an actual insert and adjust its installation pocket to its supplier specification before printing. Threads/knurling and heat insertion are not modeled.
2. Seat the sensor in the derived teal holder, retain it with the two straps, and install the port seals. The holder has only two low feet, with no upper screw tabs or upper access bores. Two internal M2 x 5 screws pass through 2 mm thick feet into the floor inserts. Insert engagement is nominally 3 mm. The case underside stays closed.
3. Connect the keyed GH6 sensor lead and route the approximately 64 mm centerline through the open upper-rim relief, away from air apertures and straps. Wire colors are illustrative; verify the six cavities against the manufacturer's numbering.
4. Install the wide display in its front-wall recess, against the integrated rear retaining ribs. Reserve nominal 0.25 mm adhesive between the panel back and ribs; select the actual tape and adjust the gap to its specification before printing. The right ribs leave the 60 mm side flex and its fold open. Install Same Sky CMS-28588N-L152A in the opposite-USB wall cradle, with a 1 mm rim gasket. Its original Molex51021-0200 PicoBlade plug connects directly to imported Molex53261-0271 J7 after shortening/recrimping the stock leads to red27±1mm and black23±1mm; see SPEAKER-ASSEMBLY.md.
5. Place the PCB on its four internal ledges using the original four PCB holes. Four M2 x 5 screws, with 0.5 mm insulating washers, clamp the PCB into the base-wall inserts. The modeled engagement is 2.9 mm. No PCB screw enters the lid or protrudes outside the box. Keep metal hardware isolated from copper and validate the actual washer dimensions/keepout before assembly.
6. Connect the factory display flex to top-side J8, the speaker lead to top-side J7 and the sensor lead to J3, then close the flat lid with its four separate recessed closure screws. These existing plastic pilot holes need a compatible screw and thread-strength qualification. No insert installation or hardware fit has been physically validated.
7. To service: unplug USB power, remove only the four lid screws and lid, unlock and unplug J8 display flex, unplug J7 speaker and J3 sensor leads, then undo the four PCB screws and lift the PCB clear. The holder's two screws are now accessible straight down from the open top. Removing them allows the holder and sensor to lift together. Disconnect/remove the harness as needed. Never pull the board while a connector remains attached.

## Manufacturer connector and cable check

[Sensirion SEN6x datasheet v0.92](../docs/history/research/SEN6x-datasheet.pdf), page 15, Figure 4 and Tables 15/16: connector is on the side adjacent to the outlet. Sensor connector ACES 51468-0064N-001; cable mate ACES 51452-006H0H0-001 or compatible JST GHR-06V-S. Minimum wire is AWG26 (or thicker), specified maximum cable length is 500 mm; the I2C guidance recommends as short as possible, under 100 mm, and/or shielding.

The official sensor STEP confirms the connector is in the recessed rear face in this horizontal orientation, not on the top cover. CAD sections locate its inner opening at assembly-world X=0.075..8.825 mm and Z=24.9..26.95 mm, near Y=-6.7 mm. The modeled cable-side plug nose aligns to this opening; its shape is an envelope, not certified connector CAD. Sensor pin assignment: 1 VDD, 2 GND, 3 SDA, 4 SCL, 5 GND/NC, 6 VDD/NC. Use the PCB's existing pin map and verify cavity continuity before power.

The manufacturer mechanical guide also requires firm retention, flexible vibration decoupling and appropriate air sealing. The existing air passages and nominal 4 mm sensor-to-PCB gap are preserved. Sensor CAD © Sensirion; board component CAD from JLCEDA/EasyEDA imports. No electrical routing is changed by this revision.

## Verification and reproduction

`top-service-fit-audit.json` checks one-solid base topology, valid BREP geometry, sensor/holder/case/PCB-envelope clearances and six unobstructed 3 mm screwdriver paths. `sensor-cable-fit.json` checks the cable envelope against the sensor, holder, enclosure and PCB envelope. These establish modeled fit only, not hardware, airflow, thermal or RF performance. Selected inserts, screws, washer dimensions, tolerances, cable bends, seals and retention need prototype checks.

Use `scripts/generate-horizontal-enclosure.py`, `scripts/generate-horizontal-cables.py`, `scripts/prepare-horizontal-assembly.py` and `scripts/sync-horizontal-sensor.py`. `MUSEAIR_HORIZONTAL_OUT` selects the CAD output directory; the default is `mechanical/horizontal`. Run `scripts/check-top-service-mechanics.py` and `scripts/check-horizontal-cable-fit.py` after generating. Keep the main preview on the PCB; the assembly remains in its own file.

### USB-C display update
The assembly omits the illustrative custom USB cable and plug. The PCB group retains the imported JLCPCB C165948 TYPE-C-31-M-12 socket CAD. This model represents the board receptacle; no cable-side plug model was verified. Local close-ups are in `preview/top-service/usb-closeup.png` and `usb-bare.png`. No publication performed.

### Current PCB and new USB cable revision
Supersedes the cable omission above. PCB display regenerated from current dist/index/circuit.json using 33 imported JLCPCB component placements (17 model assets); standalone U3 sensor remains in its own assembly group. New illustrative USB-C cable has an oblong metal nose, rounded molded grip, tapered ribbed strain relief and a continuous curve to the desk. Actual cable fit is untested. Updated CAD snapshots: preview/top-service/cable-desk.png, usb-closeup.png and open.png. No publication.

### PCB-end sensor cable plug
Added an illustrative GHR-06V-S mating housing at J3, with six 1.25 mm wire entries, keyed nose and latch. Position follows J3 imported socket CAD: assembly center (-7,-18), socket front y=-20.432 mm. Plug body x=-11.3..-2.7, y=-23.1..-20.55, z=39.15..42.05 mm; keyed nose enters the socket intentionally. Wire fan now ends inside the housing, with the bound bundle ending at y=-24.1. Supplier dimensions, terminal cavities and keyed engagement remain approximate and need an actual housing/fit check. Updated local image: preview/top-service/pcb-connector.png. This revision has not been pushed.

## Display and audio revision

The PCB now has 65 top-side JLC/EasyEDA component models. The assembly has 19 independent CAD groups; the base and lid remain separately hideable. The new integrated display retaining ribs belong to the base. The lid microphone aperture is at world (-0.7, 12) mm, aligned to the offset acoustic port in the imported ZTS6216 CAD and its manufacturer drawing.

The display flex is a 5.5 mm wide, 0.3 mm thick ribbon with an exact nominal 60 mm routed centerline. It turns back with a 3.6 mm radius, folds diagonally around a 3 mm radius, rises outside the PCB edge and enters the top-side connector around a 2.5 mm radius. Manufacturer approval of these bends, insertion/contact orientation and physical tolerance fit still require a sample.

Speaker wires rise around the PCB edge and cross above the board. Mesh checks allow only intended connector mating contacts and find no unintended cable/component contacts. Off-board speaker and plug models are supplier-dimension envelopes; PCB component CAD uses the actual imported models. A matching GH-2 plug is not supplied with the selected bare-wire speaker and must be factory crimped.

Local snapshots and interactive viewer: `preview/display-audio/`. Display screen values are illustrative. Electrical implementation and firmware/procurement limits: `docs/research/display-audio/IMPLEMENTATION.md`. No publication was performed for this revision.


### Local rounded USB-C surround revision

Speaker/grille/cradle now on the negative-X end wall. The GH2 lead rises around the left PCB edge. The USB opening is a rounded, integral recessed surround, with a 1.2 mm face and a 9.54 x 4.7 mm aperture. Socket front projects 0.475 mm past the local lip, while remaining 3.225 mm behind the overall outer wall. Overall enclosure, display/flex and PCB mounting coordinates stay unchanged. Nominal socket/plug mesh checks pass; physical cable insertion and print tolerances require a sample. See validation/usb-surround-fit.json.


### Current PCB shift toward USB-C

Shared `scripts/horizontal-layout.py` sets PCB assembly X translation to +2.5 mm and surround face X to 39.3 mm. Electrical layout is unchanged. The socket is nearly flush with this lip, 0.725 mm behind the overall outer wall; PCB side gap is 0.5 mm. Four PCB mounts follow the PCB. Two right closure posts move slightly toward the corners to avoid the shifted board; matching lid screw holes follow. Microphone hole/gasket, button and lightpipe follow their PCB components. The fixed display retains its exact 60 mm FPC and nominal original bend radii; the sensor and speaker cables adjust only their service runs/mating ends. Check top-service mechanics, display/audio meshes, horizontal sensor cable and shifted PCB fit scripts. J6 has only 2.53 mm between its imported model and the inner wall: programming is still intended before enclosure installation; the actual SH3 lead envelope and wire bends require qualification for programming in the fitted enclosure. This supersedes unchanged-pose dimensions in the earlier USB surround section.


## Raised ASK cap — 7 October 2026

ASK now uses TS-1102S-B-H-B / C480275, nominal 7.5 mm actuator height. The plastic cap is a separate ASK_BUTTON_CAP CAD group, with independent showButton prop; lid and base remain separate. Its floating cup contacts the actuator and snaps below the lid, with nominal .60 mm head clearance and .25 mm stroke. Imported switch CAD is corrected to the H variant from its manufacturer drawing. Cap/actuator CAD checks include ±.20 mm switch height; printed snap retention, overtravel force and physical fit remain untested. See docs/research/ask-button/IMPLEMENTATION.md and validation/ask-button-mechanics.json.