cm4 Datasheet
cm4 Datasheet
cm4 Datasheet
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
RPL reserves the right to make any enhancements, improvements, corrections or any other modifications to the
RESOURCES or any products described in them at any time and without further notice.
The RESOURCES are intended for skilled users with suitable levels of design knowledge. Users are solely responsible for
their selection and use of the RESOURCES and any application of the products described in them. User agrees to
indemnify and hold RPL harmless against all liabilities, costs, damages or other losses arising out of their use of the
RESOURCES.
RPL grants users permission to use the RESOURCES solely in conjunction with the Raspberry Pi products. All other use
of the RESOURCES is prohibited. No licence is granted to any other RPL or other third party intellectual property right.
HIGH RISK ACTIVITIES. Raspberry Pi products are not designed, manufactured or intended for use in hazardous
environments requiring fail safe performance, such as in the operation of nuclear facilities, aircraft navigation or
communication systems, air traffic control, weapons systems or safety-critical applications (including life support
systems and other medical devices), in which the failure of the products could lead directly to death, personal injury or
severe physical or environmental damage (“High Risk Activities”). RPL specifically disclaims any express or implied
warranty of fitness for High Risk Activities and accepts no liability for use or inclusions of Raspberry Pi products in High
Risk Activities.
Raspberry Pi products are provided subject to RPL’s Standard Terms. RPL’s provision of the RESOURCES does not
expand or otherwise modify RPL’s Standard Terms including but not limited to the disclaimers and warranties
expressed in them.
Table of contents
Colophon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Legal disclaimer notice . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Features . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Interfaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1. Wireless . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1. WL_nDisable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.2. BT_nDisable . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.2. Ethernet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3. PCIe (Gen2 x1). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4. USB 2.0 (high speed) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5. GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5.1. Alternative function assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.6. Dual HDMI 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.7. CSI-2 (MIPI serial camera) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.8. DSI (MIPI serial display) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.9. I2C (SDA0 SCL0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.10. I2C (ID_SD ID_SC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.11. SDIO/eMMC (CM4Lite only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.12. Analog IP0/IP1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.13. Global_EN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.14. RUN_PG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.15. nRPI_BOOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.16. LED_nACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.17. LED_nPWR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.18. EEPROM_nWP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3. Electrical and mechanical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.1. Mechanical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2. Thermal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3. Electrical specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4. Pinout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4.1. Differential pairs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.1.1. 100Ω differential pair signal lengths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.1.2. 90Ω differential pair signal lengths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5. Power. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.1. Power-up sequencing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.2. Power-down sequencing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.3. Power consumption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
5.4. Regulator outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Appendix A: Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Hardware checklist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Bootloader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
rpi-eeprom-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
EEPROM write-protect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Appendix B: Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Ordering codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Table of contents 2
Raspberry Pi Compute Module 4
Chapter 1. Introduction
1.1. Introduction
Figure 1. The
Raspberry Pi Compute
Module 4 (CM4).
The Raspberry Pi Compute Module 4 (CM4) is a System on Module (SoM) containing processor, memory, eMMC Flash,
and supporting power circuitry. These modules allow a designer to leverage the Raspberry Pi hardware and software
stack in their own custom systems and form factors. In addition, these modules have extra IO interfaces over and above
what is available on the Raspberry Pi boards, opening up more options for the designer.
The design of the CM4 is loosely based on the Raspberry Pi 4 Model B, and for cost-sensitive applications it can be
supplied without the eMMC fitted; this version is called the Raspberry Pi Compute Module 4 Lite (CM4Lite).
While previous generations of the Compute Module have all shared the same DDR2-SODIMM-mechanically-compatible
form factor, the new CM4 and CM4Lite are different. The electrical interface of the CM4 is via two 100-pin high density
connectors, and the new physical form factor has a smaller footprint overall when the connectors are taken into
account.
This change is due to the addition of new interfaces: an additional second HDMI, PCIe, and Ethernet. The addition of
these new interfaces, especially PCIe, would not have been possible while preserving the previous form factor.
NOTE
Unless otherwise stated, for this document CM4 also refers to CM4Lite.
1.2. Features
Key features of the CM4 are as follows:
• Broadcom BCM2711, quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz
• Small Footprint 55mm × 40mm × 4.7mm module
◦ 4 × M2.5 mounting holes
1.1. Introduction 3
Raspberry Pi Compute Module 4
• H.265 (HEVC) (upto 4Kp60 decode), H.264 (upto 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 100MBps (four times faster than previous Compute Modules)
• Option (see Appendix B) for certified radio module with:
◦ 2.4 GHz, 5.0 GHz IEEE 802.11 b/g/n/ac wireless
◦ Bluetooth 5.0, BLE
◦ On board electronic switch to select between PCB trace or external antenna
• Gigabit Ethernet PHY supporting IEEE 1588
• 1 × PCIe 1-lane Host, Gen 2 (5Gbps)
• 1 × USB 2.0 port (high speed)
• 28 × GPIO supporting either 1.8V or 3.3V signalling and peripheral options:
◦ Up to 5 × UART
◦ Up to 5 × I2C
◦ Up to 5 × SPI
◦ 1 × SDIO interface
◦ 1 × DPI (parallel RGB display)
◦ 1 × PCM
◦ Up to 2× PWM channels
◦ Up to 3× GPCLK outputs
• 2 × HDMI 2.0 ports (up to 4Kp60 supported)
• MIPI DSI:
◦ 1 × 2-lane MIPI DSI display port
◦ 1 × 4-lane MIPI DSI display port
• MIPI CSI-2:
◦ 1 × 2-lane MIPI CSI camera port
◦ 1 × 4-lane MIPI CSI camera port
• 1 × SDIO 2.0 (CM4Lite)
• Single +5V PSU input.
1.2. Features 4
Raspberry Pi Compute Module 4
Chapter 2. Interfaces
2.1. Wireless
The CM4 can be supplied with an on-board wireless module based on the Cypress CYW43455 supporting both:
The CM4 has an on-board antenna. If used it should be positioned in the product such that it is not surrounded by metal,
including any ground plane (see Chapter 3 for further details). Alternatively there is a standard U.FL connector on the
module, see Figure 1, so that an external antenna can be used.
Raspberry Pi Ltd has an antenna kit which is certified to be used with the CM4. If a different antenna is used then
separate certification will be required.
WARNING
Raspberry Pi Ltd will not be able to assist with certification for third-party antennas.
The selection of internal or external antenna is done at boot time using the config.txt file, and can not be changed
during operation. The config.txt options are dtparam=ant1 to select the internal antenna, or dtparam=ant2 for the external
antenna.
2.1.1. WL_nDisable
This pin serves a number of functions;
1. It can be used to monitor the enable/disable state of wireless networking. A logic high means the wireless
networking module is powered up.
2. When driven or tied low it prevents the wireless network module from powering up. This is useful to reduce power
consumption or in applications where it is required to physically ensure the wireless networking is disabled. If the
interface is enabled after being disabled, the wireless interface driver needs reinitialised.
NOTE
2.1.2. BT_nDisable
This pin serves a number of functions;
1. It can be used to monitor the enable/disable state of Bluetooth. A logic high means the Bluetooth module is
powered up.
2. When driven, or tied low, it prevents the Bluetooth module from powering up. This is useful to reduce power
consumption, or in applications where it is required to physically ensure the Bluetooth is disabled. If the interface is
enabled after being disabled, the Bluetooth interface driver needs reinitialised.
2.1. Wireless 5
Raspberry Pi Compute Module 4
NOTE
2.2. Ethernet
The CM4 has an on-board Gigabit Ethernet PHY — the Broadcom BCM54210PE — some of the major features of this
PHY include;
Figure 2. Ethernet
schematic interface
for the Raspberry Pi
Compute Module 4
supporting PoE, and
with added ESD
protection.
The differential Ethernet signals should be routed as 100Ω differential pairs, with suitable clearances. Length matching
between pairs should be better than 50mm, so in the typical case no length matching is required. However the signals
within a pair need to be length matched, ideally to better than 0.15mm.
The PHY also supports up to 3 LEDs to give user status feedback, these are low active. These LEDs can have a range of
functions, and you should consult your OS driver to see which functions are supported by your driver.
The PHY also provides SYNC_IN and SYNC_OUT at 3.3V signalling to support IEEE 1588-2008.
2.2. Ethernet 6
Raspberry Pi Compute Module 4
WARNING
You should ensure that there is a suitable OS driver for any host controller that is chosen before proceeding to a
prototype.
NOTE
The on-board PCIe Host controller doesn’t support 64-bit accesses from the ARM, they must be split up into two 32-
bit accesses.
Connecting a PCIe device follows the standard PCIe convention. The CM4 has on-board AC coupling capacitors for CLK
and PCIe_TX signals. However the PCIe_RX signals need external coupling capacitors close to the driving source (the
device TX), if you are using an external PCIe/NVMe card these capacitors will be on-board. The PCIe convention is that if
you are wiring directly to an IC then the TX and RX pairs need to be swapped (i.e. TX → RX, RX → TX). If you are wiring
to a connector then this is typically labelled from the host point of view and so TX/RX swaps aren’t required.
Additionally the PCIe_CLK_nREQ must be connected to ensure the CM4 produces a clock signal, and the PCIe_nRST should
also be connected to ensure the device is correctly reset when required.
The differential PCIe signals should be routed as 90Ω differential pairs, with suitable clearances. There is no need to
match the lengths between pairs, only the signals within a Pair need to be length matched ideally to better than 0.1mm.
TIP
5.10 kernels and newer have had support for MSI-X added. There is a limit of upto 32 IRQs available. If the device
has problems with interrupts then adding pci=nomsi to cmdline.txt (and rebooting) often fixes the issue.
TIP
The firmware disables the USB interface by default to save power. In recent versions of Raspberry Pi OS (Bullseye) it
is automatically enabled by the otg_mode=1 setting in the config.txt file. If you are using a different OS, or an older
version of Raspberry Pi OS, you will need to add this to config.txt to enable the USB interface.
NOTE
The port is capable of being used as a true USB On-The-Go (OTG) port. While there is no official documentation,
some users have had success making this work. The USB_OTG_ID pin is used to select between USB host and device
that is typically wired to the ID pin of a Micro USB connector. To use this functionality it must be enabled in the OS. If
using either as a fixed slave or fixed master, please tie the USB_OTG_ID pin to ground.
2.5. GPIO
There are 28 pins available for general purpose I/O (GPIO), which correspond to the GPIO pins on the Raspberry Pi 4
Model B 40-pin header. These pins have access to internal peripherals: SMI, DPI, I2C, PWM, SPI, and UART. The
BCM2711 ARM peripherals book describes these features in detail, along with the multiplexing options available. The
drive strength and slew rate should ideally be set as low as possible to reduce any EMC issues. GPIO2 and GPIO3 have
1.8kΩ pull up resistors.
The BCM2711 GPIO bank is powered by GPIO_VREF, this can either be connected to +1.8V for 1.8V signalling GPIO, or
+3.3V for 3.3V signalling. You should keep the load on the 28 GPIO pins to below 50mA in total. GPIO_VREF must be
powered for the CM4 to start up correctly.
2.5. GPIO 8
Raspberry Pi Compute Module 4
2.5. GPIO 9
Raspberry Pi Compute Module 4
Name Function
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.
HDMI signals should be routed as 100Ω differential pairs. Each signal within a pair should ideally be matched to better
than 0.15mm. Pairs don’t typically need any extra matching, as they only have to be matched to 25mm.
CEC is also supported; an internal 27kΩ pullup resistor is included in the CM4.
Basic on-board ESD protection is provided for the I2C EDID signals and the CEC signals; internal pullup and pulldown
resistors are also provided. On the Raspberry Pi 4 Model B the HDMI signals don’t have any extra ESD protection.
Depending on the application, extra ESD protection may be required.
The documentation around the CSI interface can be found on the Raspberry Pi website, while Linux kernel drivers can be
found on GitHub.
NOTE
The official Raspberry Pi firmware supports the OmniVision OV5647, Sony IMX219, Sony IMX296, Sony IMX477 and
Sony IMX708 camera sensors. No security device is required on Compute Module devices in order to use these
camera sensors.
Although Linux kernel drivers are available, the DSI interface is not currently documented. Only DSI displays supported
by the official Raspberry Pi firmware are supported. DSI signals should be routed as 100Ω differential pairs; each signal
within a pair should ideally be matched to better than 0.15mm.
NOTE
While only official DSI displays are supported, other displays can be added using the parallel DPI interface which is
available as a GPIO alternative function. The CM4 supports up to three displays of any type (HDMI, DSI, DPI) at any
one time.
NOTE
If these pins are used as GPIO pins, then to prevent the firmware from checking to see if there is a HAT EEPROM
available, add force_eeprom_read=0 and disable_poe_fan=1 to the config.txt file.
The SD_PWR_ON signal is used to enable an external power-switch to turn on power to the SD card; for eMMC it typically
isn’t used. If booting from SD card is required, then a pullup resistor must also be fitted to default the power-switch to
be on. When SD_VDD_OVERRIDE is high ( 3.3V ), this forces 1.8V signalling on the SDIO interface. Typically this is used with
eMMC memory.
Figure 3. CM4Lite SD
card interface.
2.13. Global_EN
Pulling this pin low puts the CM4 in the lowest possible power-down state. After software shutdown, Global_EN needs to
be pulled low for > 1ms to restart the power system on the CM4.
TIP
It is recommended to only pull this pin low once the OS has shut down.
2.14. RUN_PG
This pin when high signals that the CM4 has started. Driving this pin low resets the module. This should be done with
caution; if files on a filesystem are open they will not be closed.
2.15. nRPI_BOOT
During boot if this pin is low, booting from eMMC will be stopped and booting will be transferred to rpi boot which is via
USB.
2.16. LED_nACT
This pin is designed to drive an LED to replicate the green LED on the Raspberry Pi 4 Model B. Under Linux this pin will
flash to signify eMMC access. If any error occurs during booting, then this LED will flash an error pattern which can be
decoded using the look up table on the Raspberry Pi website.
2.17. LED_nPWR
This pin needs to be buffered to drive an LED. The signal is designed to replicate the red power LED on the Raspberry Pi
4 Model B.
2.18. EEPROM_nWP
It is recommended that final products pull this pin low to prevent the end users changing the contents of the on-board
EEPROM. See the Raspberry Pi 4 Model B documentation for instructions on the software settings required to support
EEPROM write protection.
2.16. LED_nACT 13
Raspberry Pi Compute Module 4
3.1. Mechanical
The CM4 is a compact 40mm × 55mm module. The Module is 4.7mm deep, but when connected the height will be
5.078mm or 6.578mm depending on the stacking height chosen.
If the on-board wireless antenna is used (see Section 2.1) it must be orientated towards the edge of the plastic
enclosure and any nearby metal must have cut-outs or the wireless performance will be degraded. It is suggested that
there is at least 10mm clearance around the PCB antenna, but the designer must check the performance.
Figure 4. Mechanical
specification of the
Raspberry Pi Compute
Module 4
There must not be any metal, including ground planes, under the antenna. The ground plane cutout must be a minimum
of 6.5mm × 11mm, but ideally at least 8mm × 15mm. If these requirements can’t be met wireless performance may be
degraded, especially in the 2.4GHz spectrum. It is recommended that the external antenna is used where possible.
3.1. Mechanical 14
Raspberry Pi Compute Module 4
NOTE
The location and arrangement of components on the Compute Module may change slightly over time due to
revisions for cost and manufacturing considerations; however the maximum component heights and PCB thickness
will be kept as specified.
A step file of the CM4 is available as part of the CM4 design data package. This is for guidance only and is subject to
changes over time due to revisions.
3.2. Thermal
The CM4 dissipates less power than the Raspberry Pi 4 Model B. The CM4 also contains less metal in the PCB and
fewer connectors, which means that it has less passive heat sinking than the Raspberry Pi 4 Model B. Despite it
consuming less power, it may run warmer than the Raspberry Pi 4 Model B.
The BCM2711 will reduce the clock rate to try and keep its internal temperature below 85°C. So in high ambient
temperatures it is possible that the clock will also be automatically throttled back. If the BCM2711 is unable to lower its
internal clocks enough to bring the temperature down, its case temperature will rise above 85°C. It is important that any
thermal solution chosen keeps the ambient temperature for the other silicon devices on the CM4 within the operating
temperature range.
Operating temperature range: -20°C - +85°C non-condensing. NB Optimal RF wireless performance is between -20°C and
+75°C.
Stresses above those listed in Table 3 may cause permanent damage to the device. This is a stress rating only;
functional operation of the device under these or any other conditions above those listed in the operational sections
of this specification is not implied. Exposure to absolute maximum rating conditions for extended periods may
affect device reliability.
Table 3. Absolute
Symbol Parameter Minimum Maximum Unit
maximum ratings
NOTE
VGPIO_VREF is the GPIO bank voltage, which must be tied to either the 3.3V or the 1.8V rail of the CM4.
Table 4. DC
Symbol Parameter Conditions Minimum Typical Maximum Unit
characteristics
3.2. Thermal 15
Raspberry Pi Compute Module 4
Refer to interface specifications (see Chapter 2) for electrical details of other interfaces.
Table 5. Power
Symbol Parameter Conditions Minimum Typical Maximum Unit
consumption
NOTE
Chapter 4. Pinout
Table 6. Pinout for the
Pin Signal Description
Raspberry Pi Compute
Module 4
1 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)
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 NB 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)
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
Chapter 4. Pinout 17
Raspberry Pi Compute Module 4
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
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
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
Chapter 4. Pinout 18
Raspberry Pi Compute Module 4
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
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
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.
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)
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.
80 SCL0 I2C clock pin (BCM2711 GPIO45): typically used for Camera and Display. Internal 1.8kΩ
pull up to CM4_3.3V
82 SDA0 I2C Data pin (BCM2711 GPIO44): typically used for Camera and Display. Internal 1.8kΩ
pull up to CM4_3.3V
Chapter 4. Pinout 19
Raspberry Pi Compute Module 4
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
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
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
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
110 PCIe_CLK_P PCIe clock Out positive (100MHz) NB AC coupling capacitor included on CM4
Chapter 4. Pinout 20
Raspberry Pi Compute Module 4
112 PCIe_CLK_N PCIe clock Out negative (100MHz) NB AC coupling capacitor included on CM4
116 PCIe_RX_P Input PCIe GEN 2 RX positive NB external AC coupling capacitor required
118 PCIe_RX_N Input PCIe GEN 2 RX negative NB external AC coupling capacitor required
122 PCIe_TX_P Output PCIe GEN 2 TX positive NB AC coupling capacitor included on CM4
124 PCIe_TX_N Output PCIe GEN 2 TX positive NB AC coupling capacitor included on CM4
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)
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)
Chapter 4. Pinout 21
Raspberry Pi Compute Module 4
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)
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)
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)
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)
Chapter 4. Pinout 22
Raspberry Pi Compute Module 4
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, then
you may omit the connector to reduce costs, but mechanical stability needs to be considered.
The voltage on GPIO pins 0-27 must not exceed CM4_3.3V if +3.3V signalling is used or CM4_1.8V if +1.8V signalling is used.
These pins are the same as on the 40-pin connector on the Raspberry Pi 4 Model B.
If the CM4_1.8V rail is used to power other devices other than the GPIO_VREF then you should ensure that in case of surprise
power removal (e.g.the +5V pin goes below +4.5V) from the CM4, the load on the CM4_1.8V must go to zero.
Similarly if the CM4_3.3V rail is used to power other devices other than the GPIO_VREF, then you should ensure that in the
case of surprise power removal the CM4_3.3V rail never falls below the CM4_1.8V rail. This is the typical case, but you
should check this in your design. In the case where it does fall below the CM4_1.8V rail, then extra circuitry is required to
disconnect the CM4_3.3V load.
No reverse voltage must be applied to any pin, or power-up may be prevented; i.e. during power-down/off no pin may
have external voltage applied, otherwise this may prevent a subsequent power-up.
Chapter 4. Pinout 23
Raspberry Pi Compute Module 4
NOTE
On the CM4, pair-to-pairs are not always matched, as many interfaces do not require very accurate matching between
pairs. Table 7 documents the CM4 track-length difference within each group. (A non-zero value represents how much
longer in mm that track is, when compared to the signal with zero length difference.)
Table 7. 100Ω
Signal Length
differential pair signal
lengths
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
NOTE
Pair-to-pairs aren’t always matched as many interfaces don’t require very accurate matching between pairs. Table 8
documents the CM4 track-length difference within each group. (A non-zero value represents how much longer in mm
that track is, when compared to the signal with zero length difference.)
Table 8. 90Ω
Signal Length
differential pair signal
lengths
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
All pins should not have any power applied to them before the +5V rail is applied.
If the EEPROM is to be write-protected, then the EEPROM_nWP should be low before power-up.
If the CM4 is to be booted using USB then RPI_nBOOT needs to be low within 2ms of +5V rising.
+5V should rise monotonically to 4.75V and stay above 4.75V for the entire operation of the CM4.
The power-up sequence will start when both +5V rail is above 4.75V and GLOBAL_EN rises. GLOBAL_EN has internal RC delay
so that it rises after +5V has risen. The order of events is as follows
1. +5V rises
2. GLOBAL_EN rises
3. +3.3V rises
Once the operating system has shut down, the +5V rail can be removed or the GLOBAL_EN pin can be taken low to put the
CM4 into the lowest power mode.
During the shutdown sequence the +1.8V will be discharged before the +3.3V rail.
Appendix A: Troubleshooting
The CM4 has a number of stages of power-up before the CPU starts. If there is an error at any of the stages, power-up
will be halted.
Hardware checklist
1. Is the +5V supply good? Check this by pulling GLOBAL_EN low and apply an external 2A load to the +5V supply. Does it
stay > +4.75V including noise? Ideally it should remain > +4.9V including any noise.
3. Check the CM4 +3.3V rail is < 200mV. If this is not the case there is an external power path back-feeding the CM4,
either directly or indirectly. This could also occur via the digital pins, e.g Ethernet.
4. Still with GLOBAL_EN pulled low check the CM4 +1.8V rail is < 200mV. Again if the +1.8V rail is above 200mV then
there is an external path back-feeding the 1.8V rail. (If nothing is connected to these pins you can ignore this
check.)
6. Check GLOBAL_EN now goes high (it is internally pulled up on the CM4)
7. Check the +3.3V supply rises to > +3.15V. If it does not, this suggests there is too much load on the +3.3V rail.
8. Check the +1.8V rail gets to > +1.71V. If it does not, this suggests there is too much load on the +1.8V rail.
10. Check ACT_LED starts to oscillate to indicate booting; check it isn’t flashing an error code.
Bootloader
1. Connect a HDMI cable to see if the HDMI diagnostics screen appears.
3. Short the nRPIBOOT pin to ground to force USB boot mode. The CM4IO board has a jumper for nRPIBOOT This can be
used to enable different boot modes (e.g. network) and enable UART logging.
a. See https://www.raspberrypi.com/documentation/computers/compute-module.html#flashing-the-compute-
module-emmc
rpi-eeprom-update
1. CM4 will not run recovery.bin from from the EMMC (or SD Card on CM4Lite). Therefore, the only way to update the
bootloader EEPROM is 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
Hardware checklist 28
Raspberry Pi Compute Module 4
EEPROM_nWP.
1. See https://www.raspberrypi.com/documentation/computers/raspberry-pi.html#raspberry-pi-4-bootloader-
configuration
Firmware
1. A 5.4 or newer kernel and the latest firmware release is required. These can be updated by using usbboot to mount
the EMMC as a USB MSD device.
2. Nightly OS images are now available which contain rpi-update master firmware + kernel. Bug fixes for CM4 will
normally be provided via these images except where a test/patch binary is required.
a. See http://downloads.raspberrypi.org/nightlies/
Kernel
1. The updated OS images use the new Raspberry Pi Compute Module 4 device tree file. If that is not found then the
Raspberry Pi 4 Model B device tree file will be used.
a. See https://github.com/raspberrypi/linux/blob/rpi-5.4.y/arch/arm/boot/dts/bcm2711-rpi-cm4.dts
Firmware 29
Raspberry Pi Compute Module 4
Appendix B: Availability
Support
For documentation please see the Compute Module Hardware documentation section of the Raspberry Pi website.
Support questions can be posted to the Raspberry Pi forum.
Ordering codes
Table 9. Part number
Model Wireless RAM LPDDR4 eMMC Storage
options
CM4 1 02 032
Support 30
Raspberry Pi Compute Module 4
NOTE
Packaging
Small quantities are supplied in individual cardboard boxes. These have an internal ESD coating so that a separate ESD
bag isn’t required. This packaging is recyclable and reduces waste.
Packaging 31