Raspberry Pi CM4/CM3+ Customized Compute Module
Budget: ₹12,500 – ₹37,500 INR
1. Compute module
- MUST support both the Raspberry Pi CM4 (BCM2711) and CM3+ (BCM2837B0) as the compute module, as a supply hedge. Both retain the
hardware H.264 encoder (Pi 5 does not) and expose MIPI CSI.
- Because CM4 (two 100-pin connectors) and CM3+ (SODIMM edge) are mechanically different, "both footprints" is implemented as two carrier
spins sharing one schematic + identical peripherals/firmware, not one board taking either module.
- MUST use the Wireless eMMC SKU of whichever module (onboard WiFi/BT + onboard flash).
2. Camera (MIPI)
- MUST provide 1× MIPI CSI-2, ≥2 data lanes, wired to the standard Pi camera FPC pinout so existing IMX296 modules plug in directly, no
adapter.
- MUST run with stock dtoverlay=imx296 + libcamera imx296_mono.json — no kernel/ISP changes vs. the current Zero 2W image.
- MUST break out the camera STROBE / XVS pin to the on-board IMU FSYNC path (see §4).
3. Host link (USB-C)
- MUST provide 1× USB-C carrying the module's USB 2.0 OTG / dwc2 port in composite gadget mode — UVC video + CDC-ACM serial on one cable
— matching the current Zero 2W gadget shape.
- USB-C MUST carry data + 5V power on the same connector (single-cable operation to an Android host).
- MUST route the OTG port specifically (not a host-only port).
- MAY expose one debug USB host port (bench only, not populated in production).
4. IMU & sync
- MUST populate an ICM-20948 on-board (9-axis, magnetometer), on a dedicated SPI or I²C bus.
- MUST tie the IMU FSYNC input to the camera STROBE pin (level-shifted as needed) so every frame latches an IMU timestamp — preserving
the validated sub-1 ms cam-IMU sync in firmware, with the IMU out of the video data path.
- SHOULD support IMU @ 400 Hz (current MicroAGI/Lite config) or higher.
5. Power
- MUST accept 5V via USB-C.
- MUST provide a pogo-pin pad set as an alternate input for a LiPo / battery capsule.
- MUST include an on-board LiPo charge IC + cell protection (charges the pack from USB-C 5V; powers the system from pack or USB-C).
- MUST safely OR the two sources (USB-C + pogo) with no back-feed (ideal-diode / power-mux).
- SHOULD expose battery voltage / charge state to the module (I²C fuel gauge or ADC) for low-battery handling.
6. Storage
- OS + recordings live on the module's eMMC; no microSD (eMMC and SD share one bus on CM4/CM3+ — eMMC wins, SD is forfeited).
- MUST specify a 32 GB eMMC SKU (the largest offered). Budget: ~5–6 h of GS H.264 after OS overhead.
- Because storage is non-removable, the board MUST support session offload over WiFi and/or USB (no card-swap workflow). (Residual risk:
not suited to all-day continuous local capture; flag if that use-case appears.)
7. Mechanical / size
- MUST stay as close as practical to the Zero 2W footprint (65 × 30 mm); the carrier area is the size driver, so stack the module over
the carrier rather than spreading connectors laterally.
- MUST place the IMX296 FPC connector and USB-C on edges consistent with the head-mount enclosure + cable routing.
- SHOULD provide mounting holes matching the head-mount housing.
- (CM3+ SODIMM spin will be slightly larger in z/area than the CM4 spin — accepted.)
8. Thermal (known production blocker — do not regress)
- MUST provide a thermal path off the SoC (heatsink pad / enclosure contact) sufficient to sustain 30 fps H.264 with no throttle at 35–45
°C ambient in a sealed housing. (Zero 2W throttles 333→200 MHz at 72 °C, dropping 30→24 fps; the carrier must beat this.)
- SHOULD expose SoC temperature for fleet telemetry.
9. Acceptance gate (software)
- MUST boot the existing Headspace Lite Pi image with no source changes beyond device-tree/overlay config, and pass: IMX296 enumerates →
gadget mode presents UVC+CDC → hardware H.264 records at 30 fps → on-board ICM-20948 streams → cam-IMU sync sub-1 ms → recording lands on
eMMC → offload over WiFi/USB works.
10. Procurement to confirm before layout
1. CM4 Wireless + 32 GB eMMC SKU procurable in target volume.
2. CM3+ Wireless + eMMC SKU procurable (the hedge spin).
3. ICM-20948 stock (or pin-compatible fallback) at volume.
- MUST support both the Raspberry Pi CM4 (BCM2711) and CM3+ (BCM2837B0) as the compute module, as a supply hedge. Both retain the
hardware H.264 encoder (Pi 5 does not) and expose MIPI CSI.
- Because CM4 (two 100-pin connectors) and CM3+ (SODIMM edge) are mechanically different, "both footprints" is implemented as two carrier
spins sharing one schematic + identical peripherals/firmware, not one board taking either module.
- MUST use the Wireless eMMC SKU of whichever module (onboard WiFi/BT + onboard flash).
2. Camera (MIPI)
- MUST provide 1× MIPI CSI-2, ≥2 data lanes, wired to the standard Pi camera FPC pinout so existing IMX296 modules plug in directly, no
adapter.
- MUST run with stock dtoverlay=imx296 + libcamera imx296_mono.json — no kernel/ISP changes vs. the current Zero 2W image.
- MUST break out the camera STROBE / XVS pin to the on-board IMU FSYNC path (see §4).
3. Host link (USB-C)
- MUST provide 1× USB-C carrying the module's USB 2.0 OTG / dwc2 port in composite gadget mode — UVC video + CDC-ACM serial on one cable
— matching the current Zero 2W gadget shape.
- USB-C MUST carry data + 5V power on the same connector (single-cable operation to an Android host).
- MUST route the OTG port specifically (not a host-only port).
- MAY expose one debug USB host port (bench only, not populated in production).
4. IMU & sync
- MUST populate an ICM-20948 on-board (9-axis, magnetometer), on a dedicated SPI or I²C bus.
- MUST tie the IMU FSYNC input to the camera STROBE pin (level-shifted as needed) so every frame latches an IMU timestamp — preserving
the validated sub-1 ms cam-IMU sync in firmware, with the IMU out of the video data path.
- SHOULD support IMU @ 400 Hz (current MicroAGI/Lite config) or higher.
5. Power
- MUST accept 5V via USB-C.
- MUST provide a pogo-pin pad set as an alternate input for a LiPo / battery capsule.
- MUST include an on-board LiPo charge IC + cell protection (charges the pack from USB-C 5V; powers the system from pack or USB-C).
- MUST safely OR the two sources (USB-C + pogo) with no back-feed (ideal-diode / power-mux).
- SHOULD expose battery voltage / charge state to the module (I²C fuel gauge or ADC) for low-battery handling.
6. Storage
- OS + recordings live on the module's eMMC; no microSD (eMMC and SD share one bus on CM4/CM3+ — eMMC wins, SD is forfeited).
- MUST specify a 32 GB eMMC SKU (the largest offered). Budget: ~5–6 h of GS H.264 after OS overhead.
- Because storage is non-removable, the board MUST support session offload over WiFi and/or USB (no card-swap workflow). (Residual risk:
not suited to all-day continuous local capture; flag if that use-case appears.)
7. Mechanical / size
- MUST stay as close as practical to the Zero 2W footprint (65 × 30 mm); the carrier area is the size driver, so stack the module over
the carrier rather than spreading connectors laterally.
- MUST place the IMX296 FPC connector and USB-C on edges consistent with the head-mount enclosure + cable routing.
- SHOULD provide mounting holes matching the head-mount housing.
- (CM3+ SODIMM spin will be slightly larger in z/area than the CM4 spin — accepted.)
8. Thermal (known production blocker — do not regress)
- MUST provide a thermal path off the SoC (heatsink pad / enclosure contact) sufficient to sustain 30 fps H.264 with no throttle at 35–45
°C ambient in a sealed housing. (Zero 2W throttles 333→200 MHz at 72 °C, dropping 30→24 fps; the carrier must beat this.)
- SHOULD expose SoC temperature for fleet telemetry.
9. Acceptance gate (software)
- MUST boot the existing Headspace Lite Pi image with no source changes beyond device-tree/overlay config, and pass: IMX296 enumerates →
gadget mode presents UVC+CDC → hardware H.264 records at 30 fps → on-board ICM-20948 streams → cam-IMU sync sub-1 ms → recording lands on
eMMC → offload over WiFi/USB works.
10. Procurement to confirm before layout
1. CM4 Wireless + 32 GB eMMC SKU procurable in target volume.
2. CM3+ Wireless + eMMC SKU procurable (the hedge spin).
3. ICM-20948 stock (or pin-compatible fallback) at volume.
Related categories:
PCB Layout
Raspberry Pi
Circuit Board Layout
Embedded Systems
PCB Design and Layout