# CM5 Carrier — Pinouts, Nets & BOM Companion to `CM5_Carrier_Design.md`. This is the schematic-capture worksheet: connector pinouts, the net list grouped by interface, and a BOM with candidate MPNs. > **Sourcing note on CM5 ball/pin numbers:** the two 100-pin connectors (J1 = pins 1–100 top, J2mod = pins 101–200 bottom) carry every CM5 signal. Rather than transcribe 200 pins (error-prone), this sheet references CM5 signals by their **datasheet net names**; pull exact pin numbers from the official CM5 KiCad symbol when capturing. All *user-facing* connector pinouts (40-pin, 14-pin J2, USB, GPS, PPS, UART) are given exactly. The 40-pin map below is verified against the CM5/Pi-5 standard. --- ## 1. Connector inventory & reference designators | RefDes | Connector | Notes | |--------|-----------|-------| | J1 / J2MOD | 2× 100-pin DF40 (to CM5) | Hirose DF40C-100DS-0.4V mate; 1.5/2.0/4.0 mm stack options | | J_PWR | 15 VDC input | barrel jack or 2-pin locking | | J_ETH | RJ45 magjack (GbE) | 1:1, integrated magnetics | | J_E | M.2 E-key socket (2230) | Wi-Fi (AW7915) | | J_USB1 | USB-A (USB3) | | | J_USB2 | USB-A (USB3) | | | J_UPROG | USB-C | rpiboot/programming | | J_GPIO | 40-pin 2.54 mm header | Pi HAT | | J2 | 14-pin 2.54 mm header | CM5IO J2 reference | | J_UART | 3-pin header | debug UART | | J_GPS | 5-pin header | PPS+UART+3V3+GND | | J_PPS1 | 2-pin header | PPS tap → UWB | | J_PPS2 | 2-pin header | PPS tap → scope/spare | | BT1 | CR2032 holder | RTC backup | | J_FAN | 4-pin JST-SH | PWM fan (optional, keep from ref) | --- ## 2. 40-pin GPIO header (J_GPIO) — exact pinout Standard Raspberry Pi / CM5 HAT pinout. **BCM GPIO** numbering. | Pin | Signal | | Pin | Signal | |-----|--------|--|-----|--------| | 1 | 3V3 | | 2 | 5V | | 3 | GPIO2 (SDA1) | | 4 | 5V | | 5 | GPIO3 (SCL1) | | 6 | GND | | 7 | GPIO4 (GPCLK0) | | 8 | GPIO14 (TXD0) | | 9 | GND | | 10 | GPIO15 (RXD0) | | 11 | GPIO17 | | 12 | GPIO18 (PCM_CLK) | | 13 | GPIO27 | | 14 | GND | | 15 | GPIO22 | | 16 | GPIO23 | | 17 | 3V3 | | 18 | GPIO24 | | 19 | GPIO10 (MOSI) | | 20 | GND | | 21 | GPIO9 (MISO) | | 22 | GPIO25 | | 23 | GPIO11 (SCLK) | | 24 | GPIO8 (CE0) | | 25 | GND | | 26 | GPIO7 (CE1) | | 27 | GPIO0 (ID_SD) | | 28 | GPIO1 (ID_SC) | | 29 | GPIO5 | | 30 | GND | | 31 | GPIO6 | | 32 | GPIO12 (PWM0) | | 33 | GPIO13 (PWM1) | | 34 | GND | | 35 | GPIO19 (PCM_FS) | | 36 | GPIO16 | | 37 | GPIO26 | | 38 | GPIO20 (PCM_DIN) | | 39 | GND | | 40 | GPIO21 (PCM_DOUT) | **NMEA UART assignment (CORRECTED):** use **UART2** on GPIO4 (pin 7) / GPIO5 (pin 29) → cross to GPS RX/TX on J_GPS, enabled via `dtoverlay=uart2`. The **debug console keeps UART0** (GPIO14/15, pins 8/10) — there are no dedicated debug-UART pins on the CM5 connector (correction C2). Pins 7/29 are committed to GPS when J_GPS is fitted. **Vref:** Pin 1/17 3V3 sets HAT logic level. CM5 GPIO bank is 3.3 V by default (R5 fitted equivalent); do not feed 1.8 V unless a deliberate Vref change is made on the module side. --- ## 3. 14-pin header (J2) — exact CM5IO reference | Pin | Net | Function | |-----|-----|----------| | 1 | nRPIBOOT | jumper 1–2 → boot from USB | | 2 | GND | | | 3 | EEPROM_nWP | jumper 3–4 → write-protect EEPROM | | 4 | GND | | | 5 | NC | (reference: unassigned) | | 6 | **SYNC** | IEEE 1588 timing — driven by PPS dist block (input to CM5). Maps to CM5 pin 18 `Ethernet_SYNC_OUT`, **3.3 V**. | | 7 | NC | | | 8 | NC | | | 9 | NC | | | 10 | NC | | | 11 | NC | | | 12 | PMIC_ENABLE | power enable/disable | | 13 | BUTTON (wake/shutdown) | push-button | | 14 | GND | button return | > **CORRECTED (per `refs/CM5IO.kicad_sym`):** the CM5 timing pin is a single **`Ethernet_SYNC_OUT` on connector pin 18, at 3.3 V**, bidirectional (configurable as input). There is no separate 1.8 V SYNC_IN. **No level translation is needed** — the 3.3 V GPS PPS drives it directly through the Schmitt + a series R. See `CM5_Carrier_PinMap.md` §5 and correction C1. --- ## 4. M.2 E-key (J_E) — net assignment (Wi-Fi only, AW7915) A+E key edge. Populate PCIe + control; leave USB pins NC. | M.2 pin(s) | Net | To | |------------|-----|-----| | 32, 34 (PERST0#, etc.) | PCIE_PERST# | CM5 PCIe PERST | | CLKREQ0# | PCIE_CLKREQ# | CM5 PCIe CLKREQ | | REFCLK+ / REFCLK− | PCIE_REFCLK_P/N | CM5 PCIe refclk (100 MHz) | | PETp0/PETn0 | PCIE_TX_P/N | CM5 PCIe TX (AC-coupled on CM5) | | PERp0/PERn0 | PCIE_RX_P/N | CM5 PCIe RX (AC-couple caps on carrier) | | W_DISABLE1# (RF_KILL) | WIFI_DISABLE# | pull-up + optional GPIO | | 3.3 V pins | +3V3_RF | from 15→3.3 V 4 A RF buck (direct) | | GND | GND | | | USB D+/D− (E-key) | **NC** | Bluetooth not used | PCIe pair impedance ~85 Ω diff. Keep REFCLK as a matched pair; series-couple per M.2 spec. --- ## 5. USB assignments | Port | CM5 source net | ESD | |------|----------------|-----| | J_USB1 (USB-A) | USB3_0 (SS pairs + USB2 D±) | USBLC6-2SC6 | | J_USB2 (USB-A) | USB3_1 (SS pairs + USB2 D±) | USBLC6-2SC6 | | J_UPROG (USB-C) | USB2_0 (D±) + CC1/CC2 5.1k | USBLC6-2SC6 | - USB-C is **device/programming** (rpiboot): wire D± to CM5 USB 2.0 port; CC1/CC2 each get 5.1 kΩ to GND (sink/UFP). Pair with nRPIBOOT jumper on J2. - USB-A SuperSpeed pairs ~90 Ω diff; USB2 D± ~90 Ω diff. - VBUS to USB-A from 5 V via current-limit switch (~0.9–1.2 A/port). --- ## 6. PPS / timing distribution — nets ``` J_GPS.PPS (3V3) ─► [TVS] ─► [Schmitt LVC1G17, 3V3] ─► PPS_CLEAN(3V3) ─┬─► [Rs 33–100Ω] ─► CM5 pin 18 (SYNC, 3V3, cfg input) ├─► J_PPS1 (UWB tap, 3V3) └─► J_PPS2 (scope tap, 3V3) ``` | Net | From | To | Level | |-----|------|----|-------| | GPS_PPS_RAW | J_GPS.1 | TVS → Schmitt in | 3.3 V | | PPS_CLEAN | Schmitt out | fan-out (3 loads) | 3.3 V | | PPS_SYNC | via Rs | CM5 pin 18 (SYNC) | **3.3 V** | | NMEA_TX | CM5 GPIO4 (UART2 TX, pin 7) | J_GPS.RX | 3.3 V | | NMEA_RX | CM5 GPIO5 (UART2 RX, pin 29) | J_GPS.TX | 3.3 V | **Corrected detail:** CM5 SYNC (pin 18) is **3.3 V** — no level translation. The Schmitt squares the off-board GPS edge and the series Rs guards against a driver fight (pin 18 is bidirectional; board always configures it as input). PPS_CLEAN feeds all three loads at 3.3 V. **NMEA moved to UART2 (GPIO4/5)** so the debug console keeps UART0 (GPIO14/15) — see correction C2 in `CM5_Carrier_PinMap.md`. ### J_GPS (5-pin) pinout | Pin | Net | |-----|-----| | 1 | PPS (in, 3V3) | | 2 | NMEA_RX ← GPS TX (CM5 GPIO5 / UART2 RX, pin 29) | | 3 | NMEA_TX → GPS RX (CM5 GPIO4 / UART2 TX, pin 7) | | 4 | +3V3_AUX (out, to power module) | | 5 | GND | ### J_PPS1 / J_PPS2 (2-pin each) | Pin | Net | |-----|-----| | 1 | PPS_CLEAN (3V3) | | 2 | GND | --- ## 7. Power tree — nets ``` J_PWR (15V) ─► D_REV(ideal-diode FET) ─► VIN_PROT ─► [TVS] VIN_PROT ─► U_BUCK5 (15→5V, 5A) ─► +5V ─┬─► CM5 +5V (J1 5V input pins) └─► USB VBUS switch ─► USB-A ×2 VIN_PROT ─► U_BUCK33R (15→3.3V, 4A) ─► +3V3_RF ─► E-key (AW7915) [direct, noise-isolated] VIN_PROT ─► U_BUCK33A (15→3.3V, 1A) ─► +3V3_AUX ─┬─► GPS module ├─► PPS Schmitt buffer (3V3) ├─► IO pull-ups └─► RTC domain ``` | Rail | Source | Current | Load | |------|--------|---------|------| | VIN_PROT | 15 V via ideal-diode | board total | buck inputs | | +5V | U_BUCK5 | ≥5 A | CM5, USB VBUS, fan | | +3V3_RF | U_BUCK33R (direct 15→3.3) | 4 A | AW7915 (3–3.5 A) — isolated RF rail | | +3V3_AUX | U_BUCK33A (direct 15→3.3) | ~1 A | GPS, PPS buffer, IO, RTC — quiet rail | | +VRTC | CR2032 / +3V3_AUX ORing | µA | CM5 RTC domain | All three bucks see 15 V → rate ≥20 V. The 15→3.3 stages run ~22% duty; pick low-duty-capable controllers. CM5 +5 V input lands on the DF40 **+5V (input)** pins (per 40-pin ref: pins 77/79/81/83 are +5V on the HAT; the module 5 V input is on the DF40 power pins — pull exact pins from KiCad). --- ## 8. Ethernet — nets (no external PHY) CM5 BCM54210PE PHY pins (from DF40) → magjack. Per CM5 datasheet, a 1:1 magjack + ESD is all that's required. | CM5 net | Magjack | Notes | |---------|---------|-------| | ETH_PAIR0_P/N | TX+/− (or MDI0) | 100 Ω diff | | ETH_PAIR1_P/N | MDI1 | | | ETH_PAIR2_P/N | MDI2 | | | ETH_PAIR3_P/N | MDI3 | gigabit uses all 4 | | ETH_nLED1/2/3 | jack LEDs (3V3) | activity/link | | Bob-Smith term + ESD | cable side | TVS array, 75 Ω + 1 nF terms | PoE pins of the magjack: leave **unloaded / NC** (no PoE in this design). --- ## 9. RTC | Net | Part | Notes | |-----|------|-------| | RTC_SDA/SCL | CM5 I2C (dedicated RTC I2C on CM5) | CM5 has internal RTC; carrier provides battery backup | | +VRTC | CR2032 via BT1 | back-up to CM5 RTC battery pin | > CM5 has an **on-module RTC**; the carrier mainly provides the **CR2032 backup cell** to the CM5 RTC battery input (per CM5IO reference). If an *external* I²C RTC is also wanted (redundancy), add e.g. PCF85063A on a GPIO I²C — optional, default is just the coin cell to CM5. --- ## 10. Bill of Materials (per board) — candidate MPNs | # | RefDes | Qty | Description | Candidate MPN | ~$ | |---|--------|-----|-------------|---------------|-----| | 1 | J1,J2MOD | 2 | 100-pin DF40 0.4 mm receptacle | Hirose DF40C-100DS-0.4V(51) | 12–18 | | 2 | U_BUCK5 | 1 | Sync buck 15→5 V, ≥5 A (≥20 V Vin) | TI TPS54560 / MPS MP2316 | 1.5–3 | | 3 | U_BUCK33R | 1 | Sync buck **15→3.3 V, 4 A** (RF rail, ≥20 V Vin, low-duty) | TI TPS54424 / MPS MP2143 | 1–2 | | 3b | U_BUCK33A | 1 | Sync buck **15→3.3 V, 1 A** (AUX/quiet rail, ≥20 V Vin) | TI TPS54202 / MPS MP2459 | 0.5–1.2 | | 4 | D_REV | 1 | Ideal-diode/reverse-polarity ctrl + FET | TI LM74700-Q1 + CSD18xx FET | 1.2–2.5 | | 5 | TVS_IN | 1 | TVS, >15 V standoff (e.g. 18 V) | SMBJ18A | 0.2 | | 6 | J_ETH | 1 | RJ45 1:1 GbE magjack | Pulse JXD0-0001NL / Bel V890-1AX | 2–4 | | 7 | ESD_ETH | 1 | Ethernet ESD array | TI TPD4E1U06 / Bourns | 0.3–0.6 | | 8 | J_E | 1 | M.2 E-key (A+E) 2230 conn + standoff | Amphenol/Attend 119A-92A00 | 1.2–2 | | 9 | C_PCIE | 4 | PCIe RX AC-couple 0.1 µF | GRM 0402 100 nF | 0.05 | | 10 | J_USB1/2 | 2 | USB-A USB3.0 right-angle | Amphenol UE27AC54100 | 0.8–1.4 ea | | 11 | J_UPROG | 1 | USB-C 16-pin (USB2 + CC) | GCT USB4085 | 0.5–1 | | 12 | ESD_USB | 3 | USB ESD array | ST USBLC6-2SC6 | 0.15 ea | | 13 | U_VBUS | 1 | USB VBUS current-limit switch | TI TPS2552 / AP22653 | 0.5–1 | | 14 | U_SCHMITT | 1 | Single Schmitt buffer 3V3 | TI SN74LVC1G17 | 0.1 | | 15 | ~~U_LVLSHIFT~~ | 0 | **REMOVED** — SYNC is 3.3 V, no translation needed (correction C1). Replace with one 0402 series R (in passives). | — | — | | 16 | TVS_PPS | 1 | Low-cap TVS on PPS in | ESD9B / PESD | 0.1 | | 17 | J_GPS | 1 | 5-pin 2.54 header | generic | 0.1 | | 18 | J_PPS1/2 | 2 | 2-pin 2.54 header | generic | 0.05 ea | | 19 | J_GPIO | 1 | 40-pin 2.54 dual header | generic | 0.5–0.8 | | 20 | J2 | 1 | 14-pin 2.54 header | generic | 0.2 | | 21 | J_UART | 1 | 3-pin 2.54 header | generic | 0.05 | | 22 | BT1 | 1 | CR2032 holder + cell | Keystone 1058 + cell | 0.4–0.8 | | 23 | J_PWR | 1 | 15 V barrel jack or 2-pin | CUI PJ-102AH | 0.4–0.8 | | 24 | J_FAN | 1 | 4-pin JST-SH PWM fan → CM5 FAN_PWM (pin 19) + FAN_TACHO (pin 16) | JST SM04B-SRSS | 0.3 | | 25 | — | ~60 | Passives (R/C/L), LEDs, TP, jumpers | 0402/0603 | 2–4 | | | | | **Per-board BOM total** | | **~28–47** | DF40 pair (line 1) = ~45–60% of BOM. Everything else commodity. --- ## 11. Net list summary (by interface) | Interface | Nets | Endpoints | |-----------|------|-----------| | Power in | J_PWR, VIN_PROT, +5V, +3V3_RF, +3V3_AUX, +VRTC | J_PWR → D_REV → 3 bucks → CM5/E-key/IO | | PCIe (E-key) | PCIE_TX_P/N, PCIE_RX_P/N, REFCLK_P/N, PERST#, CLKREQ#, W_DISABLE# | CM5 ↔ J_E | | Ethernet | ETH_PAIR0-3_P/N, ETH_nLED1-3 | CM5 PHY ↔ J_ETH | | USB3 #1 | USB3_0 SS±, USB2 D± | CM5 ↔ J_USB1 | | USB3 #2 | USB3_1 SS±, USB2 D± | CM5 ↔ J_USB2 | | USB2 prog | USB2_0 D±, CC1/CC2 | CM5 ↔ J_UPROG | | PPS/timing | GPS_PPS_RAW, PPS_CLEAN, PPS_SYNC_18 | J_GPS → buffer → CM5 SYNC + J_PPS1/2 | | NMEA UART | NMEA_TX, NMEA_RX | J_GPIO(14/15) ↔ J_GPS | | Debug UART | DBG_TX, DBG_RX | CM5 debug UART ↔ J_UART | | GPIO | GPIO0-27 | CM5 ↔ J_GPIO | | Boot/ctrl | nRPIBOOT, EEPROM_nWP, PMIC_EN, BUTTON | CM5 ↔ J2 | | RTC | +VRTC, RTC_SDA/SCL | BT1 → CM5 | --- ## 12. Schematic-capture checklist 1. Import CM5 KiCad symbol from `refs/CM5IO.kicad_sym` — pin map is now resolved in `CM5_Carrier_PinMap.md` (all 200 pins). 2. **SYNC (pin 18) is 3.3 V** — drive directly from the Schmitt via a series R; **no level translator** (corrected). 3. AC-couple PCIe **RX** on carrier (TX coupled on CM5). 4. CC 5.1 kΩ pulldowns on USB-C; nRPIBOOT jumper logic. 5. Magjack PoE pins NC; Bob-Smith + ESD on cable side. 6. Both 15→3.3 buck inductors/thermals sized for their rails (RF 4 A, AUX 1 A); all bucks rated ≥20 V Vin, low-duty-capable. 7. VBUS current-limit per USB-A port. 8. Confirm CM5 5 V input pin group and decoupling per datasheet.