Raspberry Pi Compute Module 4
Colophon
©2020-2023 Raspberry Pi Ltd (formerly Raspberry Pi (Trading) Ltd.)
The documentation around the Raspberry Pi Compute Module 4 is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND).
build-date: 2023-11-24
build-version: githash: 3ee4166-dirty
Legal Disclaimer Notice
Technical and reliability data for Raspberry Pi products are provided "as is". Raspberry Pi Ltd disclaims all warranties, including implied warranties of merchantability and fitness for a particular purpose. To the maximum extent permitted by law, Raspberry Pi Ltd shall not be liable for any direct, indirect, incidental, special, exemplary, or consequential damages arising from the use of these resources. Raspberry Pi Ltd reserves the right to make modifications to its resources and products at any time without notice. Resources are intended for skilled users, who are responsible for their selection and use. Use of Raspberry Pi products in high-risk activities, such as nuclear facilities, aircraft navigation, weapons systems, or safety-critical applications, is expressly prohibited, and Raspberry Pi Ltd disclaims any warranty of fitness for such uses.
Chapter 1. Introduction
1.1. Introduction
The Raspberry Pi Compute Module 4 (CM4) is a System on Module (SoM) that integrates a processor, memory, eMMC Flash, and power circuitry. It enables designers to incorporate Raspberry Pi hardware and software into their custom systems and form factors. The CM4 offers additional I/O interfaces beyond those found on standard Raspberry Pi boards, providing greater design flexibility.
The CM4 design is based on the Raspberry Pi 4 Model B. For cost-sensitive applications, a version without eMMC, known as the Raspberry Pi Compute Module 4 Lite (CM4Lite), is available.
Unlike previous Compute Modules that shared a DDR2-SODIMM mechanical form factor, the CM4 and CM4Lite feature a new design. Their electrical interface uses two 100-pin high-density connectors, and the physical form factor is more compact when connectors are considered.
This redesign accommodates new interfaces such as a second HDMI port, PCIe, and Ethernet, which were not feasible with the previous form factor.
Note: Unless otherwise stated, "CM4" in this document also refers to CM4Lite.
1.2. Features
- Broadcom BCM2711, quad-core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
- Small Footprint: 55mm x 40mm x 4.7mm module
- 4 x M2.5 mounting holes
- H.265 (HEVC) up to 4Kp60 decode, H.264 up to 1080p60 decode, 1080p30 encode
- OpenGL ES 3.0 graphics
- Options for 1GB, 2GB, 4GB, or 8GB LPDDR4-3200 SDRAM with ECC (see Appendix B)
- Options for 0GB (CM4Lite), 8GB, 16GB, or 32GB eMMC flash memory (see Appendix B)
- Peak eMMC bandwidth of 100MBps (four times faster than previous Compute Modules)
- Optional certified radio module (see Appendix B) with:
- 2.4 GHz, 5.0 GHz IEEE 802.11 b/g/n/ac wireless
- Bluetooth 5.0, BLE
- On-board electronic switch for selecting between PCB trace or external antenna
- Gigabit Ethernet PHY supporting IEEE 1588
- 1 x PCIe 1-lane Host, Gen 2 (5Gbps)
- 1 x USB 2.0 port (high speed)
- 28 x GPIO pins supporting 1.8V or 3.3V signalling and peripheral options:
- Up to 5 x UART
- Up to 5 x I2C
- Up to 5 x SPI
- 1 x SDIO interface
- 1 x DPI (parallel RGB display)
- 1 x PCM
- Up to 2 x PWM channels
- Up to 3 x GPCLK outputs
- 2 x HDMI 2.0 ports (up to 4Kp60 supported)
- MIPI DSI:
- 1 x 2-lane MIPI DSI display port
- 1 x 4-lane MIPI DSI display port
- MIPI CSI-2:
- 1 x 2-lane MIPI CSI camera port
- 1 x 4-lane MIPI CSI camera port
- 1 x SDIO 2.0 (CM4Lite)
- Single +5V PSU input.
Chapter 2. Interfaces
2.1. Wireless
The CM4 can be equipped with an on-board wireless module based on the Cypress CYW43455, supporting both 2.4 GHz and 5.0 GHz IEEE 802.11 b/g/n/ac wireless, and Bluetooth 5.0, BLE. These interfaces can be enabled or disabled as needed. For example, in a kiosk application, a service engineer could enable wireless operation and then disable it.
The CM4 features an on-board antenna. If used, it should be positioned away from metal, including ground planes (refer to Chapter 3). An alternative standard U.FL connector is available for an external antenna. Raspberry Pi Ltd provides an antenna kit certified for the CM4. Using a different antenna requires separate certification.
Warning: Raspberry Pi Ltd cannot assist with certification for third-party antennas.
Antenna selection (internal or external) is configured via the config.txt
file at boot time. Use dtparam=ant1
for the internal antenna or dtparam=ant2
for the external antenna.
2.1.1. WL_nDisable
This pin has multiple functions:
- Monitors the wireless networking module's enable/disable state (high indicates powered up).
- When driven low, it prevents the wireless module from powering up, saving power or ensuring the interface is disabled. Re-initialization of the driver is needed if the interface is enabled after being disabled.
Note: On CM4 modules without wireless, this pin is reserved.
2.1.2. BT_nDisable
This pin also has multiple functions:
- Monitors the Bluetooth module's enable/disable state (high indicates powered up).
- When driven low, it prevents the Bluetooth module from powering up, saving power or ensuring the interface is disabled. Re-initialization of the driver is needed if the interface is enabled after being disabled.
Note: On CM4 modules without wireless, this pin is reserved.
2.2. Ethernet
The CM4 includes an on-board Gigabit Ethernet PHY, the Broadcom BCM54210PE, featuring IEEE 1588-2008 compliance and MDI crossover, pair skew, and pair polarity correction. A standard 1:1 RJ45 MagJack provides the Ethernet connection. Figure 2 illustrates typical wiring for a MagJack with PoE and ESD protection.
Differential Ethernet signals should be routed as 100Ω differential pairs with appropriate clearances. Length matching between pairs should be better than 50mm, and within a pair, ideally better than 0.15mm.
The PHY supports up to three low-active LEDs for status feedback, configurable by the OS driver. It also provides SYNC_IN and SYNC_OUT signals at 3.3V for IEEE 1588-2008 support.
2.3. PCIe (Gen2 x1)
The CM4 integrates a PCIe 2.0 x1 host controller. Unlike the Raspberry Pi 4 Model B, where this controller is connected to a USB 3 host controller, the CM4 allows designers to choose its interface usage.
Warning: Ensure a suitable OS driver is available for the chosen host controller before prototyping.
Note: The on-board PCIe Host controller does not support 64-bit accesses from the ARM; these must be split into two 32-bit accesses.
Connecting a PCIe device follows standard PCIe conventions. The CM4 includes on-board AC coupling capacitors for CLK and PCIe_TX signals. PCIe_RX signals require external coupling capacitors near the driving source. PCIe conventions dictate swapping TX/RX pairs when wiring directly to an IC. The PCIe_CLK_nREQ must be connected for clock signal generation, and PCIe_nRST for device reset.
Differential PCIe signals should be routed as 90Ω differential pairs with suitable clearances. While pair-to-pair length matching is not critical, signals within a pair should be length-matched to better than 0.1mm.
Tip: Kernels 5.10 and newer support MSI-X, with up to 32 IRQs available. If interrupt issues occur, adding pci=nomsi
to cmdline.txt
may resolve them.
2.4. USB 2.0 (high speed)
The USB 2.0 interface supports up to 480Mbps signaling. Differential pairs should be routed as 90Ω pairs, with signal length matching ideally better than 0.15mm.
Tip: The firmware disables the USB interface by default for power saving. In recent Raspberry Pi OS (Bullseye) versions, it is automatically enabled with otg_mode=1
in config.txt
. For other OS versions or older Raspberry Pi OS, add this setting to config.txt
.
Note: The port can function as a USB On-The-Go (OTG) port. Users have reported success with this functionality. The USB_OTG_ID pin selects between USB host and device modes. For fixed slave or master operation, tie the USB_OTG_ID pin to ground.
2.5. GPIO
There are 28 General Purpose I/O (GPIO) pins, corresponding to the Raspberry Pi 4 Model B's 40-pin header. These pins provide access to internal peripherals like SMI, DPI, I2C, PWM, SPI, and UART. The BCM2711 ARM peripherals book details these features and multiplexing options. Drive strength and slew rate should be minimized to reduce EMC issues. GPIO2 and GPIO3 have 1.8kΩ pull-up resistors.
The BCM2711 GPIO bank is powered by GPIO_VREF, which can be connected to +1.8V for 1.8V signaling or +3.3V for 3.3V signaling. The total load on the 28 GPIO pins should not exceed 50mA. GPIO_VREF must be powered for the CM4 to start correctly.
2.5.1. Alternative function assignments
Up to six alternative functions are available for GPIO pins. Table 1 provides an overview of these assignments, with a detailed legend in Table 2.
GPIO | Pull | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
---|---|---|---|---|---|---|---|
GPIO0 | High | SDA0 | SA5 | PCLK | SPI3_CE0_N | TXD2 | SDA6 |
GPIO1 | High | SCL0 | SA4 | DE | SPI3_MISO | RXD2 | SCL6 |
GPIO2 | High | SDA1 | SA3 | LCD_VSYNC | SPI3_MOSI | CTS2 | SDA3 |
GPIO3 | High | SCL1 | SA2 | LCD_HSYNC | SPI3_SCLK | RTS2 | SCL3 |
GPIO4 | High | GPCLK0 | SA1 | DPI_D0 | SPI4_CE0_N | TXD3 | SDA3 |
GPIO5 | High | GPCLK1 | SA0 | DPI_D1 | SPI4_MISO | RXD3 | SCL3 |
GPIO6 | High | GPCLK2 | SOE_N / SE | DPI_D2 | SPI4_MOSI | CTS3 | SDA4 |
GPIO7 | High | SPI0_CE1_N | SWE_N / SRW_N | DPI_D3 | SPI4_SCLK | RTS3 | SCL4 |
GPIO8 | High | SPI0_CE0_N | SD0 | DPI_D4 | BSCSL/CE_N | TXD4 | SDA4 |
GPIO9 | Low | SPI0_MISO | SD1 | DPI_D5 | BSCSL/MISO | RXD4 | SCL4 |
GPIO10 | Low | SPI0_MOSI | SD2 | DPI_D6 | BSCSL SDA/ MOSI | CTS4 | SDA5 |
GPIO11 | Low | SPI0_SCLK | SD3 | DPI_D7 | BSCSL SCL/ SCLK | RTS4 | SCL5 |
GPIO12 | Low | PWM0_0 | SD4 | DPI_D8 | SPI5_CE0_N | TXD5 | SDA5 |
GPIO13 | Low | PWM0_1 | SD5 | DPI_D9 | SPI5_MISO | RXD5 | SCL5 |
GPIO14 | Low | TXD0 | SD6 | DPI_D10 | SPI5_MOSI | CTS5 | TXD1 |
GPIO15 | Low | RXD0 | SD7 | DPI_D11 | SPI5_SCLK | RTS5 | RXD1 |
GPIO16 | Low | <reserved> | SD8 | DPI_D12 | CTS0 | SPI1_CE2_N | CTS1 |
GPIO17 | Low | <reserved> | SD9 | DPI_D13 | RTS0 | SPI1_CE1_N | RTS1 |
GPIO18 | Low | PCM_CLK | SD10 | DPI_D14 | SPI6_CE0_N | SPI1_CE0_N | PWM0_0 |
GPIO19 | Low | PCM_FS | SD11 | DPI_D15 | SPI6_MISO | SPI1_MISO | PWM0_1 |
GPIO20 | Low | PCM_DIN | SD12 | DPI_D16 | SPI6_MOSI | SPI1_MOSI | GPCLK0 |
GPIO21 | Low | PCM_DOUT | SD13 | DPI_D17 | SPI6_SCLK | SPI1_SCLK | GPCLK1 |
GPIO22 | Low | SD0_CLK | SD14 | DPI_D18 | SD1_CLK | ARM_TRST | SDA6 |
GPIO23 | Low | SD0_CMD | SD15 | DPI_D19 | SD1_CMD | ARM_RTCK | SCL6 |
GPIO24 | Low | SD0_DAT0 | SD16 | DPI_D20 | SD1_DAT0 | ARM_TDO | SPI3_CE1_N |
GPIO25 | Low | SD0_DAT1 | SD17 | DPI_D21 | SD1_DAT1 | ARM_TCK | SPI4_CE1_N |
GPIO26 | Low | SD0_DAT2 | <reserved> | DPI_D22 | SD1_DAT2 | ARM_TDI | SPI5_CE1_N |
GPIO27 | Low | SD0_DAT3 | <reserved> | DPI_D23 | SD1_DAT3 | ARM_TMS | SPI6_CE1_N |
GPIO | Pull | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 |
---|---|---|---|---|---|---|---|
GPIO44 | - | GPCLK1 | SDA0 | SDA1 | <reserved> | SPI0_CE1_N | SD_CARD_VOLT |
GPIO45 | - | PWM0_1 | SCL0 | SCL1 | <reserved> | SPI0_CE2_N | SD_CARD_PWR0 |
Table 2. GPIO pins alternative function legend
Name | Function |
---|---|
SDA0 | BSC master 0 data linea |
SCL0 | BSC master 0 clock linea |
SDAx | BSC master 1,3,4,5,6 data lineb |
SCLx | BSC master 1,3,4,5,6 clock lineb |
GPCLKx | General purpose clock 0,1,2 |
SPIx_CE2_N | SPI 0,3,4,5,6 chip select 2 |
SPIx_CE1_N | SPI 0,3,4,5,6 chip select 1 |
SPIx_CE0_N | SPI 0,3,4,5,6 chip select 0 |
SPIx_MISO | SPI 0,3,4,5,6 MISO |
SPIx_MOSI | SPI 0,3,4,5,6 MOSI |
SPIx_SCLK | SPI 0,3,4,5,6 serial clock |
PWMx_0 | PWM 0,1 channel 0 |
PWMx_1 | PWM 0,1 channel 1 |
TXDx | UART 0,2,3,4,5 transmit data |
RXDx | UART 0,2,3,4,5 receive data |
CTSx | UART 0,2,3,4,5 clear to send |
RTSx | UART 0,2,3,4,5 request to send |
PCM_CLK | PCM clock |
PCM_FS | PCM frame sync |
PCM_DIN | PCM data in |
PCM_DOUT | PCM data out |
SAx | Secondary mem address bus |
SOE_N / SE | Secondary mem controls |
SWE_N / SRW_N | Secondary mem controls |
SDx | Secondary mem data bus |
BSCSL SDA / MOSI | BSC slave data, SPI slave MOSI |
BSCSL SCL / SCLK | BSC slave clock, SPI slave clock |
BSCSL-/MISO | BSC <not used>, SPI MISO |
BSCSL-/CE_N | BSC <not used>, SPI CSn |
SPI1_CE2_N | SPI 1 chip select 2c |
SPI1_CE1_N | SPI 1 chip select 1 |
SPI1_CE0_N | SPI 1 chip select 0 |
SPI1_MISO | SPI 1 MISO |
SPI1_MOSI | SPI 1 MOSI |
SPI1_SCLK | SPI 1 serial clock |
TXD1 | UART 1 transmit data |
RXD1 | UART 1 receive data |
CTS1 | UART 1 clear to send |
RTS1 | UART 1 request To send |
ARM_TRST | ARM JTAG reset |
ARM_RTCK | ARM JTAG return clock |
ARM_TDO | ARM JTAG data out |
ARM_TCK | ARM JTAG clock |
ARM_TDI | ARM JTAG data in |
ARM_TMS | ARM JTAG mode select |
PCLK | Display parallel interface |
DE | Display parallel interface |
LCD_VSYNC | Display parallel interface |
LCD_HSYNC | Display parallel interface |
DPI_Dx | Display parallel interface |
a The Broadcom serial control bus is a proprietary bus compliant with the Philips® I2C bus/interface.
b BSC master 2 & 7 are not user-accessible.
c SPI 2 is not user-accessible.
2.6. Dual HDMI 2.0
The CM4 supports two HDMI 2.0 interfaces, capable of driving 4K images. When both outputs are used, each can support up to 4Kp30. If only HDMI0 is used, resolutions up to 4Kp60 are possible. HDMI signals should be routed as 100Ω differential pairs, with signal lengths within a pair matched to better than 0.15mm. Pair-to-pair matching is less critical, typically needing to be within 25mm.
CEC is also supported, with an internal 27kΩ pull-up resistor. Basic on-board ESD protection is provided for I2C EDID and CEC signals. Unlike the Raspberry Pi 4 Model B, the CM4's HDMI signals do not have additional ESD protection, which may be required depending on the application.
2.7. CSI-2 (MIPI serial camera)
The CM4 supports two camera ports: CAM0 (2 lanes) and CAM1 (4 lanes). CSI signals require 100Ω differential pair routing, with signal lengths within a pair matched to better than 0.15mm. Documentation for the CSI interface is available on the Raspberry Pi website, and Linux kernel drivers can be found on GitHub.
Note: The official Raspberry Pi firmware supports OmniVision OV5647, Sony IMX219, IMX296, IMX477, and IMX708 camera sensors. No security device is needed for these sensors on Compute Module devices.
2.8. DSI (MIPI serial display)
The CM4 supports two display ports: DISP0 (2 lanes) and DISP1 (4 lanes), each lane supporting a maximum data rate of 1Gbps. While Linux kernel drivers exist, the DSI interface is not fully documented. Only DSI displays supported by official Raspberry Pi firmware are compatible. DSI signals require 100Ω differential pair routing, with signal lengths within a pair matched to better than 0.15mm.
Note: Although only official DSI displays are supported, other displays can be connected via the parallel DPI interface (a GPIO alternative function). The CM4 can support up to three displays simultaneously, regardless of type (HDMI, DSI, DPI).
2.9. I2C (SDA0 SCL0)
This internal I2C bus is typically allocated to CSI1 and DSI1 for firmware control. It can be used as a general I2C bus if CSI1 and DSI1 are not in use or are controlled by the firmware. For instance, libcamera runs on the ARM without using firmware, allowing CSI1 and this I2C bus to be utilized. SDA0 connects to GPIO44 and SCL0 to GPIO45 on the BCM2711.
2.10. I2C (ID_SD ID_SC)
This I2C bus is primarily used for identifying HATs and controlling CSI0 and DSI0 devices. If the firmware does not use the I2C bus (e.g., CSI0 and DSI0 are inactive), these pins can be repurposed as GPIO 0 and GPIO 1.
Note: If using these pins as GPIO, add force_eeprom_read=0
and disable_poe_fan=1
to config.txt
to prevent the firmware from checking for a HAT EEPROM.
2.11. SDIO/eMMC (CM4Lite only)
The CM4Lite lacks on-board eMMC. Its eMMC signals are available on the connector, allowing the use of an external eMMC or SD card. The SD_PWR_ON signal controls an external power switch for the SD card; it is typically not used for eMMC. For SD card booting, a pull-up resistor is needed to default the power switch to the 'on' state. SD_VDD_OVERRIDE set high (3.3V) forces 1.8V signaling on the SDIO interface, commonly used with eMMC.
2.12. Analog IP0/IP1
These are two spare inputs on the MXL7704. Consult the MXL7704 datasheet for their usage. On-board filtering is provided by a 100nF capacitor to ground for each signal. On the Raspberry Pi 4 Model B, these pins are connected to the USB C connector's CC1 and CC2 pins.
2.13. Global_EN
Pulling this pin low initiates the CM4's lowest power-down state. After software shutdown, Global_EN must be held low for over 1ms to restart the CM4's power system.
Tip: It is recommended to pull this pin low only after the OS has shut down.
2.14. RUN_PG
This pin signals when the CM4 has started (high). Driving it low resets the module. Use with caution, as open files on a filesystem may not be closed.
2.15. nRPI_BOOT
During boot, if this pin is low, eMMC booting is halted, and booting is switched to rpi boot via USB.
2.16. LED_nACT
This pin drives an LED to mimic the green LED on the Raspberry Pi 4 Model B. Under Linux, it flashes to indicate eMMC access. Error conditions during boot are signaled by an error pattern flash, which can be decoded using tables on the Raspberry Pi website.
2.17. LED_nPWR
This pin requires buffering to drive an LED and replicates the red power LED on the Raspberry Pi 4 Model B.
2.18. EEPROM_nWP
It is recommended to pull this pin low in final products to prevent end-users from altering the on-board EEPROM contents. Refer to the Raspberry Pi 4 Model B documentation for instructions on EEPROM write protection settings.
Chapter 3. Electrical and mechanical
3.1. Mechanical
The CM4 is a compact module measuring 40mm x 55mm. Its depth is 4.7mm, increasing to 5.078mm or 6.578mm when connected, depending on the stacking height. It features 4 x M2.5 mounting holes (3.5mm inset from the edge) and a PCB thickness of 1.2mm ± 10%. The BCM2711 SoC height, including solder balls, is 2.378mm ± 0.11mm.
Stacking height options:
- 1.5mm with mating connector (0mm clearance under CM4): DF40C-100DS-0.4v
- 3.0mm with mating connector (1.5mm clearance under CM4): DF40HC(3.0)-100DS-0.4v
If the on-board wireless antenna is used, it must be oriented towards the enclosure's edge. Nearby metal should have cut-outs to avoid degrading wireless performance. A minimum 10mm clearance around the PCB antenna is suggested, but designers should verify performance.
Note: Component placement and arrangement may vary slightly due to revisions, but maximum component heights and PCB thickness remain as specified. A step file of the CM4 is available for guidance.
For optimal wireless performance, avoid placing metal, including ground planes, under the antenna. A ground plane cutout of at least 6.5mm x 11mm (ideally 8mm x 15mm) is recommended. Failure to meet these requirements may degrade wireless performance, especially in the 2.4GHz band. Using an external antenna is advised where possible.
3.2. Thermal
The CM4 dissipates less power than the Raspberry Pi 4 Model B and has less metal and fewer connectors, resulting in reduced passive heat sinking. Despite lower power consumption, it may run warmer.
The BCM2711 processor throttles its clock rate to maintain an internal temperature below 85°C. In high ambient temperatures, clock throttling may occur. If the processor cannot lower its internal clocks sufficiently, its case temperature may exceed 85°C. Thermal solutions should ensure ambient temperatures for other silicon devices on the CM4 remain within the operating range.
Operating temperature range: -20°C to +85°C (non-condensing). Optimal RF wireless performance is between -20°C and +75°C.
3.3. Electrical specification
Warning: Exceeding the absolute maximum ratings may cause permanent damage. These are stress ratings only; functional operation outside these limits is not implied, and prolonged exposure may affect reliability.
Symbol | Parameter | Minimum | Maximum | Unit |
---|---|---|---|---|
VIN | 5V Input Voltage | -0.5 | 6.0 | V |
VGPIO_VREF | GPIO Voltage | -0.5 | 3.6 | V |
Vgpio | GPIO Input voltage | -0.5 | VGPIO_VREF + 0.5 | V |
Note: VGPIO_VREF is the GPIO bank voltage and must be tied to either the 3.3V or 1.8V rail of the CM4.
Symbol | Parameter | Conditions | Minimum | Typical | Maximum | Unit |
---|---|---|---|---|---|---|
VIL(gpio) | Input low voltage | VGPIO_VREF = 3.3V | 0 | - | 0.8 | V |
VIH(gpio) | Input high voltage | VGPIO_VREF = 3.3V | 2.0 | - | VGPIO_VREF | V |
VIL(gpio) | Input low voltage | VGPIO_VREF = 1.8V | 0 | - | 0.35 | V |
VIH(gpio) | Input high voltage | VGPIO_VREF = 1.8V | 0.65 | - | VGPIO_VREF | V |
IIL(gpio) | Input leakage current | - | - | - | 10 | µA |
VOL(gpio) | Output low voltage | - | - | - | 0.4 | V |
VOH(gpio) | Output high voltage | - | VGPIO_VREF - 0.4 | - | V | |
IO(gpio) | Output current 1mA | - | 0.87 | 1.3 | mA | |
IO(gpio) | Output current 2mA | - | 1.75 | 2.6 | mA | |
IO(gpio) | Output current 3mA | - | 2.63 | 3.9 | mA | |
IO(gpio) | Output current 4mA default | - | 3.5 | 5.3 | mA | |
IO(gpio) | Output current 5mA | - | 4.39 | 6.6 | mA | |
IO(gpio) | Output current 6mA | - | 5.27 | 7.9 | mA | |
IO(gpio) | Output current 7mA | - | 6.15 | 9.2 | mA | |
IO(gpio) | Output current 8mA | - | 7.02 | 10.5 | mA | |
RPU(gpio) | Pullup resistor | VGPIO_VREF = 3.3V | 33 | 47 | 73 | kΩ |
RPD(gpio) | Pulldown resistor | VGPIO_VREF = 3.3V | 33 | 47 | 73 | kΩ |
RPU(gpio) | Pullup resistor | VGPIO_VREF = 1.8V | 18 | 47 | 73 | kΩ |
RPD(gpio) | Pulldown resistor | VGPIO_VREF = 1.8V | 18 | 47 | 73 | kΩ |
Symbol | Parameter | Conditions | Minimum | Typical | Maximum | Unit |
---|---|---|---|---|---|---|
Ishutdown | Shutdown current | GLOBAL_EN = 0V | - | 15 | µA | |
Ishutdown | Shutdown current | GLOBAL_EN > 2V | - | 8 | mA | |
Iidle | Idle current | GLOBAL_EN > 2V | - | 400 | mA | |
Iload | Operation current | GLOBAL_EN > 2V | - | 1400 | mA |
Note: The figures in Table 5 depend significantly on the end application.
Chapter 4. Pinout
Pin | Signal | Description |
---|---|---|
1 | GND | Ground (0V) |
2 | GND | Ground (0V) |
3 | Ethernet_Pair3_P | Ethernet pair 3 positive (connect to transformer or MagJack) |
4 | Ethernet_Pair1_P | Ethernet pair 1 positive (connect to transformer or MagJack) |
5 | Ethernet_Pair3_N | Ethernet pair 3 negative (connect to transformer or MagJack) |
6 | Ethernet_Pair1_N | Ethernet pair 1 negative (connect to transformer or MagJack) |
7 | GND | Ground (0V) |
8 | GND | Ground (0V) |
9 | Ethernet_Pair2_N | Ethernet pair 2 negative (connect to transformer or MagJack) |
10 | Ethernet_Pair0_N | Ethernet pair 0 negative (connect to transformer or MagJack) |
11 | Ethernet_Pair2_P | Ethernet pair 2 positive (connect to transformer or MagJack) |
12 | Ethernet_Pair0_P | Ethernet pair 0 positive (connect to transformer or MagJack) |
13 | GND | Ground (0V) |
14 | GND | Ground (0V) |
15 | Ethernet_nLED3 | Active-low Ethernet activity indicator (CM4_3.3V signal): typically a green LED is connected to this pin. IOL = 8mA @ VOL < 0.4V |
16 | Ethernet_SYNC_IN | IEEE1588 SYNC Input pin (CM4_3.3V signal: IOL = 8mA @ VOL < 0.4V) |
17 | Ethernet_nLED2 | Active-low Ethernet speed indicator (CM4_3.3V signal): typically a yellow LED is connected to this pin. A low state indicates the 1Gbit or 100Mbit link: IOL = 8mA @ VOL < 0.4V |
18 | Ethernet_SYNC_OUT | IEEE1588 SYNC Output pin (CM4_3.3V signal: IOL = 8mA @ VOL < 0.4V) |
19 | Ethernet_nLED1 | Active-low Ethernet speed indicator (CM4_3.3V signal): typically a yellow LED is connected to this pin. A low state indicates the 1Gbit or 10Mbit link: IOL = 8mA @ VOL < 0.4V |
20 | EEPROM_nWP | Leave floating. Internally pulled up to CM4_3.3V via 100kΩ (VIL < 0.8V), but can be grounded to prevent writing to the on-board EEPROM which stores the bootcode. |
21 | Pi_nLED_Activity | Active-low Pi activity LED. 20mA Max, 5V tolerant (VOL < 0.4V). This is the signal that drives the green LED on the Raspberry Pi 4 Model B. |
22 | GND | Ground (0V) |
23 | GND | Ground (0V) |
24 | GPIO26 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
25 | GPIO21 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
26 | GPIO19 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
27 | GPIO20 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
28 | GPIO13 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
29 | GPIO16 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
30 | GPIO6 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
31 | GPIO12 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
32 | GND | Ground (0V) |
33 | GND | Ground (0V) |
34 | GPIO5 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
35 | ID_SC | (BCM2711 GPIO 1) GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
36 | ID_SD | (BCM2711 GPIO 0) GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
37 | GPIO7 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
38 | GPIO11 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
39 | GPIO8 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
40 | GPIO9 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
41 | GPIO25 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
42 | GND | Ground (0V) |
43 | GND | Ground (0V) |
44 | GPIO10 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
45 | GPIO24 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
46 | GPIO22 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
47 | GPIO23 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
48 | GPIO27 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
49 | GPIO18 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
50 | GPIO17 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
51 | GPIO15 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
52 | GND | Ground (0V) |
53 | GND | Ground (0V) |
54 | GPIO4 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
55 | GPIO14 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V |
56 | GPIO3 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V. Internal 1.8kΩ pull up to GPIO_VREF |
57 | SD_CLK | SD card clock signal (only available on CM4Lite) |
58 | GPIO2 | GPIO: typically a 3.3V signal, but can be a 1.8V signal by connecting GPIO_VREF to CM4_1.8V. Internal 1.8kΩ pull up to GPIO_VREF |
59 | GND | Ground (0V) |
60 | GND | Ground (0V) |
61 | SD_DAT3 | SD card/eMMC Data3 signal (only available on CM4Lite) |
62 | SD_CMD | SD card/eMMC Command signal (only available on CM4Lite) |
63 | SD_DAT0 | SD card/eMMC Data0 signal (only available on CM4Lite) |
64 | SD_DAT5 | SD card/eMMC Data5 signal (only available on CM4Lite) |
65 | GND | Ground (0V) |
66 | GND | Ground (0V) |
67 | SD_DAT1 | SD card/eMMC Data1 signal (only available on CM4Lite) |
68 | SD_DAT4 | SD card/eMMC Data4 signal (only available on CM4Lite) |
69 | SD_DAT2 | SD card/eMMC Data2 signal (only available on CM4Lite) |
70 | SD_DAT7 | SD card/eMMC Data7 signal (only available on CM4Lite) |
71 | GND | Ground (0V) |
72 | SD_DAT6 | SD card/eMMC Data6 signal (only available on CM4Lite) |
73 | SD_VDD_OVERRIDE | Connect to CM4_3.3V to force SD card/eMMC interface to 1.8V signalling instead of 3.3V, otherwise leave unconnected. Typically only used if external eMMC is connected. |
74 | GND | Ground (0V) |
75 | SD_PWR_ON | Output to power-switch for the SD card. The CM4 sets this pin high (3.3V) to signal that power to the SD card should be turned on. If booting from the SD card is required then a pullup should also be fitted so the power-switch defaults to on. (only available on CM4Lite) |
76 | Reserved | Do not connect anything to this pin. |
77 | +5V (Input) | 4.75V-5.25V. Main power input |
78 | GPIO_VREF | Must be connected to CM4_3.3V (pins 84 and 86) for 3.3V GPIO or CM4_1.8V (pins 88 and 90) for 1.8V GPIO. This pin cannot be floating or connected to ground. |
79 | +5V (Input) | 4.75V-5.25V. Main power input |
80 | SCL0 | I2C clock pin (BCM2711 GPIO45): typically used for Camera and Display. Internal 1.8kΩ pull up to CM4_3.3V |
81 | +5V (Input) | 4.75V-5.25V. Main power input |
82 | SDA0 | I2C Data pin (BCM2711 GPIO44): typically used for Camera and Display. Internal 1.8kΩ pull up to CM4_3.3V |
83 | +5V (Input) | 4.75V-5.25V. Main power input |
84 | CM4_3.3V (Output) | 3.3V ± 2.5%. Power Output max 300mA per pin for a total of 600mA. This will be powered down during power-off or GLOBAL_EN being set low |
85 | +5V (Input) | 4.75V-5.25V. Main power input |
86 | CM4_3.3V (Output) | 3.3V ± 2.5%. Power Output max 300mA per pin for a total of 600mA. This will be powered down during power-off or GLOBAL_EN being set low |
87 | +5V (Input) | 4.75V-5.25V. Main power input |
88 | CM4_1.8V (Output) | 1.8V ± 2.5%. Power Output max 300mA per pin for a total of 600mA. This will be powered down during power-off or GLOBAL_EN being set low |
89 | WL_nDisable | Can be left floating; if driven low the wireless interface will be disabled. Internally pulled up via 1.8kΩ to CM4_3.3V |
90 | CM4_1.8V (Output) | 1.8V ± 2.5%. Power Output max 300mA per pin for a total of 600mA. This will be powered down during power-off or GLOBAL_EN being set low |
91 | BT_nDisable | Can be left floating; if driven low the Bluetooth interface will be disabled. Internally pulled up via 1.8kΩ to CM4_3.3V |
92 | RUN_PG | Bidirectional pin. Can be driven low (via a 220Ω resistor) to reset the CM4 CPU. As an output, a high signals that power is good and CPU is running. Internally pulled up to +3.3V via 10kΩ |
93 | nRPIBOOT | A low on this pin forces booting from an RPI server (e.g. PC or a Raspberry Pi); if not used leave floating. Internally pulled up via 10kΩ to +3.3V |
94 | AnalogIP1 | Analogue input of the MXL7704: typically connected to CC pin of Type C power connector |
95 | PI_LED_nPWR | Active-low output to drive Power On LED. This signal needs to be buffered. |
96 | AnalogIP0 | Analogue input of the MXL7704: typically connected to CC pin of Type C power connector |
97 | Camera_GPIO | Typically used to shut down the camera to reduce power. Reassigning this pin to another function isn't recommended. CM4_3.3V signalling |
98 | GND | Ground (0V) |
99 | GLOBAL_EN | Input. Drive low to power off CM4. Internally pulled up with a 100kΩ to +5V |
100 | nEXTRST | Output. Driven low during reset; Driven high (CM4_3.3V) once CM4 CPU has started to boot |
101 | USB_OTG_ID | Input (3.3V signal) USB OTG Pin. Internally pulled up. When grounded the CM4 becomes a USB host but the correct OS driver also needs to be used |
102 | PCIe_CLK_nREQ | Input (3.3V signal) PCIe clock request pin (low to request PCI clock). Internally pulled up |
103 | USB_N | USB D- |
104 | Reserved | Do not connect anything to this pin. |
105 | USB_P | USB D+ |
106 | Reserved | Do not connect anything to this pin. |
107 | GND | Ground (0V) |
108 | GND | Ground (0V) |
109 | PCIe_nRST | Output (+3.3V signal) PCIe reset active-low |
110 | PCIe_CLK_P | PCIe clock Out positive (100MHz) NB AC coupling capacitor included on CM4 |
111 | VDAC_COMP | Video DAC output (TV OUT) |
112 | PCIe_CLK_N | PCIe clock Out negative (100MHz) NB AC coupling capacitor included on CM4 |
113 | GND | Ground (0V) |
114 | GND | Ground (0V) |
115 | CAM1_D0_N | Input Camera1 D0 negative |
116 | PCIe_RX_P | Input PCIe GEN 2 RX positive NB external AC coupling capacitor required |
117 | CAM1_D0_P | Input Camera1 D0 positive |
118 | PCIe_RX_N | Input PCIe GEN 2 RX negative NB external AC coupling capacitor required |
119 | GND | Ground (0V) |
120 | GND | Ground (0V) |
121 | CAM1_D1_N | Input Camera1 D1 negative |
122 | PCIe_TX_P | Output PCIe GEN 2 TX positive NB AC coupling capacitor included on CM4 |
123 | CAM1_D1_P | Input Camera1 D1 positive |
124 | PCIe_TX_N | Output PCIe GEN 2 TX positive NB AC coupling capacitor included on CM4 |
125 | GND | Ground (0V) |
126 | GND | Ground (0V) |
127 | CAM1_C_N | Input Camera1 clock negative |
128 | CAM0_D0_N | Input Camera0 D0 negative |
129 | CAM1_C_P | Input Camera1 clock positive |
130 | CAM0_D0_P | Input Camera0 D0 positive |
131 | GND | Ground (0V) |
132 | GND | Ground (0V) |
133 | CAM1_D2_N | Input Camera1 D2 negative |
134 | CAM0_D1_N | Input Camera0 D1 negative |
135 | CAM1_D2_P | Input Camera1 D2 positive |
136 | CAM0_D1_P | Input Camera0 D1 positive |
137 | GND | Ground (0V) |
138 | GND | Ground (0V) |
139 | CAM1_D3_N | Input Camera1 D3 negative |
140 | CAM0_C_N | Input Camera0 clock negative |
141 | CAM1_D3_P | Input Camera1 D3 positive |
142 | CAM0_C_P | Input Camera0 clock positive |
143 | HDMI1_HOTPLUG | Input HDMI1 hotplug. Internally pulled down with a 100kΩ. 5V tolerant. (It can be connected directly to a HDMI connector; a small amount of ESD protection is provided on the CM4 by an on-board HDMI05-CL02F3) |
144 | GND | Ground (0V) |
145 | HDMI1_SDA | Bidirectional HDMI1 SDA. Internally pulled up with a 1.8kΩ. 5V tolerant. (It can be connected directly to a HDMI connector; a small amount of ESD protection is provided on the CM4 by an on-board HDMI05-CL02F3) |
146 | HDMI1_TX2_P | Output HDMI1 TX2 positive |
147 | HDMI1_SCL | Bidirectional HDMI1 SCL. Internally pulled up with a 1.8kΩ. 5V tolerant. (It can be connected directly to a HDMI connector; a small amount of ESD protection is provided on the CM4 by an on-board HDMI05-CL02F3) |
148 | HDMI1_TX2_N | Output HDMI1 TX2 negative |
149 | HDMI1_CEC | Input HDMI1 CEC. Internally pulled up with a 27kΩ. 5V tolerant. (It can be connected directly to a HDMI connector; a small amount of ESD protection is provided on the CM4 by an on-board HDMI05-CL02F3) |
150 | GND | Ground (0V) |
151 | HDMI0_CEC | Input HDMI0 CEC. Internally pulled up with a 27kΩ. 5V tolerant (It can be connected directly to a HDMI connector; a small amount of ESD protection is provided on the CM4 by an on-board HDMI05-CL02F3) |
152 | HDMI1_TX1_P | Output HDMI1 TX1 positive |
153 | HDMI0_HOTPLUG | Input HDMI0 hotplug. Internally pulled down 100kΩ. 5V tolerant. (It can be connected directly to a HDMI connector; a small amount of ESD protection is provided on the CM4 by an on-board HDMI05-CL02F3) |
154 | HDMI1_TX1_N | Output HDMI1 TX1 negative |
155 | GND | Ground (0V) |
156 | GND | Ground (0V) |
157 | DSI0_D0_N | Output Display0 D0 negative |
158 | HDMI1_TX0_P | Output HDMI1 TX0 positive |
159 | DSI0_D0_P | Output Display0 D0 positive |
160 | HDMI1_TX0_N | Output HDMI1 TX0 negative |
161 | GND | Ground (0V) |
162 | GND | Ground (0V) |
163 | DSI0_D1_N | Output Display0 D1 negative |
164 | HDMI1_CLK_P | Output HDMI1 clock positive |
165 | DSI0_D1_P | Output Display0 D1 positive |
166 | HDMI1_CLK_N | Output HDMI1 clock negative |
167 | GND | Ground (0V) |
168 | GND | Ground (0V) |
169 | DSI0_C_N | Output Display0 clock negative |
170 | HDMI0_TX2_P | Output HDMI0 TX2 positive |
171 | DSI0_C_P | Output Display0 clock positive |
172 | HDMI0_TX2_N | Output HDMI0 TX2 negative |
173 | GND | Ground (0V) |
174 | GND | Ground (0V) |
175 | DSI1_D0_N | Output Display1 D0 negative |
176 | HDMI0_TX1_P | Output HDMI0 TX1 positive |
177 | DSI1_D0_P | Output Display1 D0 positive |
178 | HDMI0_TX1_N | Output HDMI0 TX1 negative |
179 | GND | Ground (0V) |
180 | GND | Ground (0V) |
181 | DSI1_D1_N | Output Display1 D1 negative |
182 | HDMI0_TX0_P | Output HDMI0 TX0 positive |
183 | DSI1_D1_P | Output Display1 D1 positive |
184 | HDMI0_TX0_N | Output HDMI0 TX0 negative |
185 | GND | Ground (0V) |
186 | GND | Ground (0V) |
187 | DSI1_C_N | Output Display1 clock negative |
188 | HDMI0_CLK_P | Output HDMI0 clock positive |
189 | DSI1_C_P | Output Display1 clock positive |
190 | HDMI0_CLK_N | Output HDMI0 clock negative |
191 | GND | Ground (0V) |
192 | GND | Ground (0V) |
193 | DSI1_D2_N | Output Display1 D2 negative |
194 | DSI1_D3_N | Output Display1 D3 negative |
195 | DSI1_D2_P | Output Display1 D2 positive |
196 | DSI1_D3_P | Output Display1 D3 positive |
197 | GND | Ground (0V) |
198 | GND | Ground (0V) |
199 | HDMI0_SDA | Bidirectional HDMI0 SDA. Internally pulled up with a 1.8kΩ. 5V tolerant. (It can be connected directly to a HDMI connector; a small amount of ESD protection is provided on the CM4 by an on-board HDMI05-CL02F3) |
200 | HDMI0_SCL | Bidirectional HDMI0 SCL. Internally pulled up with a 1.8kΩ. 5V tolerant. (It can be connected directly to a HDMI connector; a small amount of ESD protection is provided on the CM4 by an on-board HDMI05-CL02F3) |
All ground pins should be connected. If none of the signals on the second connector (pins 101 to 200) are used, the connector may be omitted to reduce costs, but mechanical stability must be considered.
GPIO pins 0-27 must not exceed CM4_3.3V for +3.3V signaling or CM4_1.8V for +1.8V signaling. These pins are identical to those on the Raspberry Pi 4 Model B's 40-pin connector.
If the CM4_1.8V rail powers devices other than GPIO_VREF, ensure that in case of surprise power removal (e.g., +5V pin drops below +4.5V), the load on CM4_1.8V goes to zero. Similarly, if CM4_3.3V powers devices other than GPIO_VREF, ensure it never falls below CM4_1.8V during surprise power removal. This is typical, but verify in your design. If CM4_3.3V falls below CM4_1.8V, extra circuitry is needed to disconnect the CM4_3.3V load.
Do not apply reverse voltage to any pin, as it may prevent subsequent power-ups.
4.1. Differential pairs
It is recommended that P/N signals within a pair are matched to better than 0.15mm. Pair-to-pair matching is less critical, with HDMI pairs typically needing matching within 25mm.
4.1.1. 100Ω differential pair signal lengths
On the CM4, all differential pairs are matched to better than 0.05mm (P/N signals).
Note: It is recommended that pairs are also matched on the interface board.
Pair-to-pair matching may not always be precise, as many interfaces do not require high accuracy. Table 7 details CM4 track-length differences within groups, where a non-zero value indicates how much longer a track is in mm compared to the signal with zero length difference.
Signal | Length |
---|---|
CAM0_C_N | 0.02 |
CAM0_C_P | 0.02 |
CAM0_D0_N | 0.06 |
CAM0_D0_P | 0.07 |
CAM0_D1_N | 0 |
CAM0_D1_P | 0.01 |
CAM1_C_N | 0.78 |
CAM1_C_P | 0.78 |
CAM1_D0_N | 0.02 |
CAM1_D0_P | 0.01 |
CAM1_D1_N | 0.4 |
CAM1_D1_P | 0.4 |
CAM1_D2_N | 0.05 |
CAM1_D2_P | 0.04 |
CAM1_D3_N | 0.01 |
CAM1_D3_P | 0 |
DSI0_C_N | 0 |
DSI0_C_P | 0 |
DSI0_D0_N | 0 |
DSI0_D0_P | 0 |
DSI0_D1_N | 0.01 |
DSI0_D1_P | 0.01 |
DSI1_C_N | 1.28 |
DSI1_C_P | 1.28 |
DSI1_D0_N | 0 |
DSI1_D0_P | 0.01 |
DSI1_D1_N | 1.06 |
DSI1_D1_P | 1.06 |
DSI1_D2_N | 0.83 |
DSI1_D2_P | 0.84 |
DSI1_D3_N | 3.78 |
DSI1_D3_P | 3.79 |
HDMI0_CLK_N | 3.25 |
HDMI0_CLK_P | 3.24 |
HDMI0_TX0_N | 1.76 |
HDMI0_TX0_P | 1.76 |
HDMI0_TX1_N | 0.62 |
HDMI0_TX1_P | 0.62 |
HDMI0_TX2_N | 0 |
HDMI0_TX2_P | 0 |
HDMI1_CLK_N | 2.47 |
HDMI1_CLK_P | 2.46 |
HDMI1_TX0_N | 1.51 |
HDMI1_TX0_P | 1.51 |
HDMI1_TX1_N | 1 |
HDMI1_TX1_P | 1 |
HDMI1_TX2_N | 0 |
HDMI1_TX2_P | 0.01 |
Ethernet_Pair0_P | 5.23 |
Ethernet_Pair0_N | 5.23 |
Ethernet_Pair1_P | 0 |
Ethernet_Pair1_N | 0 |
Ethernet_Pair2_P | 3.82 |
Ethernet_Pair2_N | 3.82 |
Ethernet_Pair3_P | 4.29 |
Ethernet_Pair3_N | 4.29 |
4.1.2. 90Ω differential pair signal lengths
On the CM4, all differential pairs are matched to better than 0.05mm (P/N signals).
Note: It is recommended that pairs are also matched on the interface board.
Pair-to-pair matching may not always be precise, as many interfaces do not require high accuracy. Table 8 details CM4 track-length differences within groups, where a non-zero value indicates how much longer a track is in mm compared to the signal with zero length difference.
Signal | Length |
---|---|
PCIe_CLK_P | 0.65 |
PCIe_CLK_N | 0.65 |
PCIe_TX_P | 0 |
PCIe_TX_N | 0 |
PCIe_RX_P | 0.23 |
PCIe_RX_N | 0.23 |
USB2_P | 0 |
USB2_N | 0 |
Chapter 5. Power
5.1. Power-up sequencing
The CM4 requires a single +5V supply and can provide up to 600mA at +3.3V and +1.8V to peripherals. All pins should remain unpowered until the +5V rail is applied. For EEPROM write protection, EEPROM_nWP should be low before power-up. For USB booting, RPI_nBOOT must be low within 2ms of the +5V rising edge.
The +5V rail must rise monotonically to at least 4.75V and remain above it for the CM4's operation. The power-up sequence initiates when both the +5V rail exceeds 4.75V and GLOBAL_EN rises. GLOBAL_EN has an internal RC delay, ensuring it rises after +5V.
The sequence of events is:
- +5V rises
- GLOBAL_EN rises
- +3.3V rises
- +1.8V rises (at least 1ms after +3.3V)
- RUN_PG rises (at least 10ms after +1.8V)
- EXT_nRESET rises (at least 1s after RUN_PG)
5.2. Power-down sequencing
The operating system should be shut down cleanly before removing power to ensure file system consistency. Filesystems like btrfs, f2fs, or overlayfs are recommended if clean shutdowns are not guaranteed. After OS shutdown, the +5V rail can be removed, or GLOBAL_EN can be pulled low to enter the CM4's lowest power mode. During shutdown, the +1.8V rail discharges before the +3.3V rail.
5.3. Power consumption
Power consumption varies with the CM4's workload. The lowest shutdown power consumption (GLOBAL_EN low) is approximately 15µA. With GLOBAL_EN high and software shut down, consumption is typically 8mA. Idle power consumption is around 400mA, varying with the OS. Operating power consumption is approximately 1.4A, also dependent on the OS and tasks.
5.4. Regulator outputs
The CM4 includes on-board regulators providing +3.3V and +1.8V, each capable of supplying 600mA to connected devices. These regulator outputs are not included in the power consumption figures.
Appendix A: Troubleshooting
The CM4 undergoes several power-up stages. If an error occurs at any stage, power-up halts.
Hardware checklist
- Verify the +5V supply: Pull GLOBAL_EN low, apply a 2A load to the +5V supply, and check if it remains above +4.75V (ideally > +4.9V) under load and noise.
- Remove the 2A load, keeping GLOBAL_EN low.
- Check if the CM4 +3.3V rail is below 200mV. A higher reading indicates external power back-feeding the CM4, possibly via digital pins or Ethernet.
- With GLOBAL_EN still low, check if the CM4 +1.8V rail is below 200mV. A higher reading suggests external back-feeding of the 1.8V rail. (Ignore if no pins are connected).
- Remove the pull-down on GLOBAL_EN.
- Confirm GLOBAL_EN now goes high (it is internally pulled up).
- Check if the +3.3V supply rises above +3.15V. If not, there might be excessive load on the +3.3V rail.
- Check if the +1.8V rail rises above +1.71V. If not, there might be excessive load on the +1.8V rail.
- Verify RUN_PG goes high.
- Check if ACT_LED starts oscillating, indicating booting. Ensure it's not flashing an error code.
Bootloader
- Connect an HDMI cable to view the HDMI diagnostics screen.
- Connect a USB serial cable to GPIO pins 14 and 15. Refer to: https://www.raspberrypi.com/documentation/computers/configuration.html#configuring-uarts
- Short the nRPIBOOT pin to ground to force USB boot mode. The CM4IO board has a jumper for nRPIBOOT to enable different boot modes (e.g., network) and UART logging. Refer to: https://www.raspberrypi.com/documentation/computers/compute-module.html#flashing-the-compute-module-emmc
rpi-eeprom-update
The CM4 does not run recovery.bin from eMMC (or SD Card on CM4Lite). Bootloader EEPROM updates are performed via usbboot or self-update.
EEPROM write-protect
The on-board EEPROM can be write-protected by shorting EEPROM_nWP to ground. The CM4IO board has a jumper for EEPROM_nWP.
Refer to: https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-4-bootloader-configuration
Firmware
- A kernel version 5.4 or newer and the latest firmware release are required. Updates can be performed using usbboot to mount the eMMC as a USB MSD device.
- Nightly OS images are available, containing the rpi-update master firmware + kernel. CM4 bug fixes are typically included in these images, except for test/patch binaries. See: http://downloads.raspberrypi.org/nightlies/
Kernel
- Updated OS images use the new Raspberry Pi Compute Module 4 device tree file. If not found, the Raspberry Pi 4 Model B device tree file will be used. See: https://github.com/raspberrypi/linux/blob/rpi-5.4.y/arch/arm/boot/dts/bcm2711-rpi-cm4.dts
Appendix B: Availability
Support
For documentation, consult the Compute Module Hardware documentation section on the Raspberry Pi website. Support questions can be posted on the Raspberry Pi forum.
Ordering codes
Table 9. Part number options
Model | Wireless | RAM LPDDR4 | eMMC Storage | |
---|---|---|---|---|
CM4 | 0 = No | 01 = 1GB | 000 = 0GB (Lite) | |
1 = Yes | 02 = 2GB | 008 = 8GB | ||
04 = 4GB | 016 = 16GB | |||
08 = 8GB | 032 = 32GB | |||
Example Part Number | CM4 | 1 | 02 | 032 |
Table 10. Ordering options
Wireless | RAM LPDDR4 | Storage eMMC | RPL # | Part Number | Order Multiple | RRP |
---|---|---|---|---|---|---|
- | 1GB | Lite | SC0695B | CM4001000 | 1+ / Bulk | $ 30.00 |
- | 1GB | 8GB | SC0696B | CM4001008 | 1+ / Bulk | $ 35.00 |
- | 1GB | 16GB | SC0697B | CM4001016 | 1+ / Bulk | $ 40.00 |
- | 1GB | 32GB | SC0698B | CM4001032 | 1+ / Bulk | $ 45.00 |
Yes | 1GB | Lite | SC0691B | CM4101000 | 1+ / Bulk | $ 35.00 |
Yes | 1GB | 8GB | SC0692B | CM4101008 | 1+ / Bulk | $ 40.00 |
Yes | 1GB | 16GB | SC0693B | CM4101016 | 1+ / Bulk | $ 45.00 |
Yes | 1GB | 32GB | SC0694B | CM4101032 | 1+ / Bulk | $ 50.00 |
- | 2GB | Lite | SC0679B | CM4002000 | 1+ / Bulk | $ 35.00 |
- | 2GB | 8GB | SC0680B | CM4002008 | 1+ / Bulk | $ 40.00 |
- | 2GB | 16GB | SC0681B | CM4002016 | 1+ / Bulk | $ 45.00 |
- | 2GB | 32GB | SC0682B | CM4002032 | 1+ / Bulk | $ 50.00 |
Yes | 2GB | Lite | SC0667B | CM4102000 | 1+ / Bulk | $ 40.00 |
Yes | 2GB | 8GB | SC0668B | CM4102008 | 1+ / Bulk | $ 45.00 |
Yes | 2GB | 16GB | SC0669B | CM4102016 | 1+ / Bulk | $ 50.00 |
Yes | 2GB | 32GB | SC0670B | CM4102032 | 1+ / Bulk | $ 55.00 |
- | 4GB | Lite | SC0683B | CM4004000 | 1+ / Bulk | $ 50.00 |
- | 4GB | 8GB | SC0684B | CM4004008 | 1+ / Bulk | $ 55.00 |
- | 4GB | 16GB | SC0685B | CM4004016 | 1+ / Bulk | $ 60.00 |
- | 4GB | 32GB | SC0686B | CM4004032 | 1+ / Bulk | $ 65.00 |
Yes | 4GB | Lite | SC0671B | CM4104000 | 1+ / Bulk | $ 55.00 |
Yes | 4GB | 8GB | SC0672B | CM4104008 | 1+ / Bulk | $ 60.00 |
Yes | 4GB | 16GB | SC0673B | CM4104016 | 1+ / Bulk | $ 65.00 |
Yes | 4GB | 32GB | SC0674B | CM4104032 | 1+ / Bulk | $ 70.00 |
- | 8GB | Lite | SC0687B | CM4008000 | 1+ / Bulk | $ 75.00 |
- | 8GB | 8GB | SC0688B | CM4008008 | 1+ / Bulk | $ 80.00 |
- | 8GB | 16GB | SC0689B | CM4008016 | 1+ / Bulk | $ 85.00 |
- | 8GB | 32GB | SC0690B | CM4008032 | 1+ / Bulk | $ 90.00 |
Yes | 8GB | Lite | SC0675B | CM4108000 | 1+ / Bulk | $ 80.00 |
Yes | 8GB | 8GB | SC0676B | CM4108008 | 1+ / Bulk | $ 85.00 |
Yes | 8GB | 16GB | SC0677B | CM4108016 | 1+ / Bulk | $ 90.00 |
Yes | 8GB | 32GB | SC0678B | CM4108032 | 1+ / Bulk | $ 95.00 |
Note: RRP was correct at time of publication and excludes taxes.
Packaging
Small quantities are supplied in individual cardboard boxes with internal ESD coating, eliminating the need for a separate ESD bag. This packaging is recyclable.