pixalynx/cm5-minimal-carrier
A 4-layer Raspberry Pi CM5 carrier board routes USB‑C 5V power through an RT9742 load switch with TVS protection and capacitive filtering, while providing ESD-protected HDMI output, CM5 connectors, test points, and ground/power planes.
- Version
- 0.1.1
- License
- unset
- Stars
- 0
models/README.md
# Component 3D models
These are visualization assets; copper, pad numbering, BOM and pick-and-place data remain defined by the tsCircuit design. All 15 placed carrier components have an attached body model. The tsCircuit 3D preview also includes the CM5 module seated 1.5 mm above the carrier surface; the static KiCad render remains carrier-only.
- `cm5-socket.step`: Amphenol 10164227-1001A1RLF model supplied with the official Raspberry Pi CM5IO revision 2 design files.
- `hdmi-reference.step`: 471511051 model supplied with CM5IO. The reference footprint uses this model for its EDAC connector. It is a **visual proxy**, not an exact EDAC 690-019-298-412 clearance model. Obtain the exact EDAC drawing/model before enclosure approval.
- `usb-c.step`: KiCad GCT USB4105 model, matching the USB-C connector family.
- `sot23.step`, `esd-uson.step`, `d-sma.step`, `cap*.step`: KiCad generic package models, not manufacturer-certified models for each MPN. They illustrate population and orientation; use component datasheets for mechanical tolerances.
Sources: official [CM5IO design files](https://pip.raspberrypi.com/categories/1098-design-files), [KiCad 3D model library](https://gitlab.com/kicad/libraries/kicad-packages3D). The official reference's model provenance notice is retained in `../references/CM5IO-README.TXT`; KiCad library licensing is in `../references/KICAD-LICENSE.md`.
`catalog.json` records source-model transforms. KiCad interprets model Euler angles with the opposite sign to the standard mathematical rotations recorded here. The tsCircuit preview uses normalized OBJ meshes with these transforms baked in, avoiding differing compound-rotation conventions between viewers. Generic OBJ/MTL assets are embedded in the emitted circuit JSON. Materials are also embedded as `newmtl`/`endmtl` blocks inside each OBJ because the tsCircuit OBJ viewer does not consume the separate MTL URL. This prevents the all-grey appearance seen in the earlier published preview. U1/D1 now use locally imported catalogue assets instead of the generic preview bodies; the KiCad export retains its generic package STEP models.
To regenerate preview meshes from the retained STEP sources:
```sh
bun scripts/normalize-cad-models.ts
python3 scripts/prepare-cad.py
bun run build
```
Normal builds reuse the checked-in OBJ/MTL meshes. The KiCad export references original STEP files through `${KIPRJMOD}/../models`; keep the project folders together.
## CM5 module in tsCircuit
`cm5-module.glb` is the same normalized, indexed official R5 CM5 model used by the assembly studio. Source: [Raspberry Pi CM5 design files](https://pip.raspberrypi.com/categories/1096-design-files); conversion and source SHA-256 are recorded in `cm5-module-provenance.json`. Presentation colours are adjusted. It is a representative module reference; the intended carrier configuration remains a pre-programmed, non-wireless eMMC CM5.
The module is an extra `<cadmodel>` child of J1, preserving J1’s own socket model and the original 15 electrical/PCB components. Its centre is (−10, 0), with its PCB datum 1.5 mm above the carrier top (z = 2.3 mm in tsCircuit’s board-centred coordinates). It adds no pads, routes or JLC placement/BOM rows. A local static-file import keeps the 16 MB GLB separate from the source and circuit JSON.
## Catalogue imports for D1 and U1
The tsCircuit board now instantiates the exact `tsci import` definitions for C87074 and C3235509 from `imports/`. Downloaded models include their original material colours. The existing copper footprints and pin assignments remain the board’s authoritative geometry; imported footprint dimensions were not silently substituted. See [import notes](https://tscircuit.com/pixalynx/cm5-minimal-carrier/blob/imports/README.md).