Raspberry Pi Compute Module 4 Datasheet
Raspberry Pi Compute Module 4 Datasheet
Raspberry Pi
Compute Module 4
A Raspberry Pi for deeply embedded
applications
Raspberry Pi Ltd
Raspberry Pi Compute Module 4
Colophon
©︎ 2022-2026 Raspberry Pi Ltd
This documentation is licensed under a Creative Commons Attribution-NoDerivatives 4.0 International (CC BY-ND).
Release 3
Build date 31/03/2026
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.
Colophon 1
Raspberry Pi Compute Module 4
Table of Contents
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.3. PCIe (Gen2 x1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.4. USB 2.0 (high speed) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5. GPIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.5.1. Alternative function assignments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.6. Dual HDMI 2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.7. CSI-2 (MIPI serial camera) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.8. DSI (MIPI serial display) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.9. I2C (SDA0 SCL0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.10. I2C (ID_SD ID_SC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.11. SDIO/eMMC (CM4Lite only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.12. Analog IP0/IP1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.13. Global_EN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.14. RUN_PG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.15. nRPI_BOOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.16. LED_nACT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.17. LED_nPWR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.18. EEPROM_nWP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3. Electrical and mechanical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.1. Mechanical . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2. Thermal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3. Electrical specification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
4. Pinout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.1. Differential pairs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1.1. 100Ω differential pair signal lengths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.1.2. 90Ω differential pair signal lengths . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
5. Power . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.1. Power-up sequencing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.2. Power-down sequencing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.3. Power consumption . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.4. Regulator outputs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
6. Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.1. Hardware checklist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.2. Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.3. rpi-eeprom-update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.4. EEPROM write-protect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.5. Firmware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
6.6. Kernel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
7. Availability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7.1. Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7.2. Ordering codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
7.3. Packaging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Table of Contents 2
Raspberry Pi Compute Module 4
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:
Introduction 3
Raspberry Pi Compute Module 4
• Options for 1GB, 2GB, 4GB or 8GB LPDDR4-3200 SDRAM with ECC (see Section 7. Availability)
• Options for 0GB (CM4Lite), 8GB, 16GB, or 32GB eMMC flash memory (see Section 7. Availability)
- Peak eMMC bandwidth 100MBps (four times faster than previous Compute Modules)
• Option (see Section 7. Availability) 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.
Introduction 4
Raspberry Pi Compute Module 4
2. Interfaces
2.1. Wireless
The CM4 can be supplied with an on-board wireless module based on the Cypress CYW43455 supporting both:
These wireless interfaces can be individually enabled or disabled as required. For instance, in the case of a kiosk application, a
service engineer could enable wireless operation and then disable it once finished.
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 Section 3. Electrical and mechanical for further details). Alternatively there is a standard [Link] 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 [Link] file, and can not be changed during
operation. The [Link] 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.
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;
Interfaces 5
Raspberry Pi Compute Module 4
A standard 1:1 RJ45 MagJack is all that is necessary to provide an Ethernet connection to the CM4. Typical wiring of a MagJack
supporting PoE, and with added ESD protection, can be seen in Figure 2.
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.
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.
Interfaces 6
Raspberry Pi Compute Module 4
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 up to 32 IRQs available. If the device has
problems with interrupts then adding pci=nomsi to [Link] (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 [Link] file. If you are using a different OS, or an older version of
Raspberry Pi OS, you will need to add this to [Link] 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.
Table 1.
GPIO pins alternative function assignment
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
Interfaces 7
Raspberry Pi Compute Module 4
Table 2.
GPIO pins alternative function legend
Name Function
SDA0 BSC master 0 data linea
SCL0 BSC master 0 clock line
SDAx BSC master 1,3,4,5,6 data lineb
SCLx BSC master 1,3,4,5,6 clock line
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
Interfaces 8
Raspberry Pi Compute Module 4
Name Function
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 2 c
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(R) I2C bus/interface.
b
BSC master 2 & 7 are not user-accessible.
c
SPI 2 is not user-accessible.
Interfaces 9
Raspberry Pi Compute Module 4
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 [Link] file.
Interfaces 10
Raspberry Pi Compute Module 4
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.
Interfaces 11
Raspberry Pi Compute Module 4
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.
Interfaces 12
Raspberry Pi Compute Module 4
If the on-board wireless antenna is used (see Section 2.1. Wireless) 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.
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 maximum ratings
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, which must be tied to either the 3.3V or the 1.8V rail of the CM4.
Table 4.
DC characteristics
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
VIH(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
Refer to interface specifications (see Section 2. Interfaces) for electrical details of other interfaces.
Table 5.
Power consumption
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
4. Pinout
Table 6.
Pinout for the Raspberry Pi Compute Module 4
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 NB internally pulled up to CM4_3.3V via 100kΩ (V IL < 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
Pinout 16
Raspberry Pi Compute Module 4
Pinout 17
Raspberry Pi Compute Module 4
Pinout 18
Raspberry Pi Compute Module 4
Pinout 19
Raspberry Pi Compute Module 4
Pinout 20
Raspberry Pi Compute Module 4
Pinout 21
Raspberry Pi Compute Module 4
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 ([Link] +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.
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.)
Pinout 22
Raspberry Pi Compute Module 4
Table 7.
100Ω differential pair signal lengths
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
Pinout 23
Raspberry Pi Compute Module 4
Signal Length
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Ω differential pair signal lengths
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
Pinout 24
Raspberry Pi Compute Module 4
5. Power
5.1. Power-up sequencing
The CM4 requires a single +5V supply, and can supply up to 600mA at +3.3V and +1.8V to peripherals.
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
4. +1.8V rises at least 1ms after +3.3V
5. RUN_PG rises at least 10ms after +1.8V
6. EXT_nRESET rises at least 1s after RUN_PG
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.
Power 25
Raspberry Pi Compute Module 4
6. 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.
6.2. Bootloader
1. Connect a HDMI cable to see if the HDMI diagnostics screen appears.
2. Connect a USB serial cable to GPIO pins 14 and 15.
1. See Configuring UARTS for details.
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.
1. See Flashing Compute Module eMMC
6.3. rpi-eeprom-update
1. CM4 will not run [Link] from from the EMMC (or SD Card on CM4Lite). Therefore, the only way to update the
bootloader EEPROM is via usbboot or self-update.
6.5. 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.
1. See Nightly builds
Troubleshooting 26
Raspberry Pi Compute Module 4
6.6. 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.
1. See CM4 Device tree
Troubleshooting 27
Raspberry Pi Compute Module 4
7. Availability
7.1. 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.
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
- 1GB Lite SC0695B CM4001000 1+ / Bulk
- 1GB 8GB SC0696B CM4001008 1+ / Bulk
- 1GB 16GB SC0697B CM4001016 1+ / Bulk
- 1GB 32GB SC0698B CM4001032 1+ / Bulk
- 2GB Lite SC0679B CM4002000 1+ / Bulk
- 2GB 8GB SC0680B CM4002008 1+ / Bulk
- 2GB 16GB SC0681B CM4002016 1+ / Bulk
- 2GB 32GB SC0682B CM4002032 1+ / Bulk
- 4GB Lite SC0683B CM4004000 1+ / Bulk
- 4GB 8GB SC0684B CM4004008 1+ / Bulk
- 4GB 16GB SC0685B CM4004016 1+ / Bulk
- 4GB 32GB SC0686B CM4004032 1+ / Bulk
- 8GB Lite SC0687B CM4008000 1+ / Bulk
- 8GB 8GB SC0688B CM4008008 1+ / Bulk
- 8GB 16GB SC0689B CM4008016 1+ / Bulk
- 8GB 32GB SC0690B CM4008032 1+ / Bulk
Yes 1GB Lite SC0691B CM4101000 1+ / Bulk
Yes 1GB 8GB SC0692B CM4101008 1+ / Bulk
Yes 1GB 16GB SC0693B CM4101016 1+ / Bulk
Yes 1GB 32GB SC0694B CM4101032 1+ / Bulk
Availability 28
Raspberry Pi Compute Module 4
Wireless RAM LPDDR4 Storage eMMC RPL # Part Number Order Multiple
Yes 2GB Lite SC0667B CM4102000 1+ / Bulk
Yes 2GB 8GB SC0668B CM4102008 1+ / Bulk
Yes 2GB 16GB SC0669B CM4102016 1+ / Bulk
Yes 2GB 32GB SC0670B CM4102032 1+ / Bulk
Yes 4GB Lite SC0671B CM4104000 1+ / Bulk
Yes 4GB 8GB SC0672B CM4104008 1+ / Bulk
Yes 4GB 16GB SC0673B CM4104016 1+ / Bulk
Yes 4GB 32GB SC0674B CM4104032 1+ / Bulk
Yes 8GB Lite SC0675B CM4108000 1+ / Bulk
Yes 8GB 8GB SC0676B CM4108008 1+ / Bulk
Yes 8GB 16GB SC0677B CM4108016 1+ / Bulk
Yes 8GB 32GB SC0678B CM4108032 1+ / Bulk
7.3. 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.
Availability 29
Raspberry Pi
Raspberry Pi is a trademark of Raspberry Pi Ltd
Raspberry Pi Ltd