MakerLab
Raspberry PiRaspberry Pi Compute Module 5

Raspberry Pi Compute Module 5: Powerful Embedded Computing for Makers

The Raspberry Pi Compute Module 5 offers the immense processing power of the Raspberry Pi 5 in a compact, SODIMM-style form factor for custom embedded designs.

Raspberry Pi Compute Module 5

The Raspberry Pi Compute Module 5 (CM5) represents a significant leap in embedded processing power, bringing the capabilities of the flagship Raspberry Pi 5 to a versatile module designed for integration into custom hardware. Unlike its single-board computer (SBC) siblings, the CM5 lacks built-in connectors for peripherals like USB, HDMI, or Ethernet. Instead, it exposes its extensive I/O through a high-density 200-pin interface connector, making it ideal for industrial applications, custom IoT devices, and advanced maker projects where space is constrained or a specific form factor is required.

At the heart of the CM5 is the Broadcom BCM2712 System-on-Chip (SoC). This powerful 64-bit quad-core Arm Cortex-A76 processor, clocked at a remarkable 2.4GHz, provides a substantial upgrade over previous compute modules, enabling complex computations, advanced machine learning inference, and high-throughput data processing. Paired with options for 4GB, 8GB, or even 16GB of LPDDR4X RAM, the CM5 is capable of handling demanding tasks that were previously out of reach for many embedded platforms. This makes it an excellent choice for developers looking to build sophisticated, standalone systems.

The Compute Module 5 continues the legacy of the Raspberry Pi family by offering a robust and accessible platform for innovation. While previous compute modules were often paired with Raspberry Pi OS, the CM5's immense processing power and extensive I/O make it suitable for a wider range of operating systems and bare-metal development. It targets experienced makers, embedded engineers, and students undertaking advanced projects who require significant computational resources and the flexibility to design their own carrier boards. Its design prioritizes flexibility and integration, moving beyond the typical hobbyist board to a component for serious product development.

Watch

Related video, embedded from YouTube.

Specifications

Microcontroller / SoCBroadcom BCM2712
Architecture64-bit Quad-core Arm Cortex-A76
Clock speed2.4GHz
Flash / StorageExternal (via SD card or eMMC on carrier board)
RAM / SRAM4GB, 8GB, or 16GB LPDDR4X-4267 SDRAM
Operating voltage3.3V (core logic)
Digital I/O pinsUp to 100 configurable GPIO via 200-pin connector
Analog / ADCโ€”
PWMUp to 16 PWM channels
ConnectivityGigabit Ethernet (via carrier board), Wi-Fi 5 (802.11ac), Bluetooth 5.0 / BLE
USBUSB 3.0 (via carrier board), USB 2.0 (via carrier board)
Power inputTypically 5V DC via carrier board (requires adequate current)
Dimensions67.6mm x 30.5mm (SODIMM form factor)

Pinout & pin functions

PinFunction
VCC (3V3)3.3V Power Output
GNDGround
GPIO0General Purpose Input/Output 0
GPIO1General Purpose Input/Output 1
GPIO2General Purpose Input/Output 2
GPIO3General Purpose Input/Output 3
GPIO4General Purpose Input/Output 4
GPIO5General Purpose Input/Output 5
GPIO6General Purpose Input/Output 6
GPIO7General Purpose Input/Output 7
GPIO8General Purpose Input/Output 8
GPIO9General Purpose Input/Output 9
GPIO10General Purpose Input/Output 10 (SPI MOSI)
GPIO11General Purpose Input/Output 11 (SPI SCLK)
GPIO12General Purpose Input/Output 12
GPIO13General Purpose Input/Output 13 (SPI MISO)
GPIO14General Purpose Input/Output 14 (UART0 TX)
GPIO15General Purpose Input/Output 15 (UART0 RX)
GPIO16General Purpose Input/Output 16
GPIO17General Purpose Input/Output 17
GPIO18General Purpose Input/Output 18
GPIO19General Purpose Input/Output 19
GPIO20General Purpose Input/Output 20
GPIO21General Purpose Input/Output 21
GPIO22General Purpose Input/Output 22
GPIO23General Purpose Input/Output 23
GPIO24General Purpose Input/Output 24
GPIO25General Purpose Input/Output 25
GPIO26General Purpose Input/Output 26
GPIO27General Purpose Input/Output 27
GPIO28General Purpose Input/Output 28
GPIO29General Purpose Input/Output 29
GPIO30General Purpose Input/Output 30
GPIO31General Purpose Input/Output 31
GPIO32General Purpose Input/Output 32
GPIO33General Purpose Input/Output 33
GPIO34General Purpose Input/Output 34
GPIO35General Purpose Input/Output 35
GPIO36General Purpose Input/Output 36
GPIO37General Purpose Input/Output 37
GPIO38General Purpose Input/Output 38
GPIO39General Purpose Input/Output 39
GPIO40General Purpose Input/Output 40
GPIO41General Purpose Input/Output 41
GPIO42General Purpose Input/Output 42
GPIO43General Purpose Input/Output 43
GPIO44General Purpose Input/Output 44
GPIO45General Purpose Input/Output 45
GPIO46General Purpose Input/Output 46
GPIO47General Purpose Input/Output 47
GPIO48General Purpose Input/Output 48
GPIO49General Purpose Input/Output 49
GPIO50General Purpose Input/Output 50
GPIO51General Purpose Input/Output 51
GPIO52General Purpose Input/Output 52
GPIO53General Purpose Input/Output 53
I2C0_SDAI2C Bus 0 Data
I2C0_SCLI2C Bus 0 Clock
I2C1_SDAI2C Bus 1 Data
I2C1_SCLI2C Bus 1 Clock
SPI0_CE0SPI Bus 0 Chip Enable 0
SPI0_CE1SPI Bus 0 Chip Enable 1
SPI0_MOSISPI Bus 0 Master Out Slave In
SPI0_MISOSPI Bus 0 Master In Slave Out
SPI0_SCLKSPI Bus 0 Serial Clock
UART1_TXUART Bus 1 Transmit
UART1_RXUART Bus 1 Receive
PWM0Pulse Width Modulation Channel 0
PWM1Pulse Width Modulation Channel 1
RUNSystem Run Control
PGOODPower Good Indicator
VSYSSystem Power Input (via carrier board)

Wiring & circuit basics

Powering the Compute Module 5 requires a stable and sufficient power supply connected to the carrier board. The CM5 itself operates on 3.3V logic, but the carrier board typically handles the voltage conversion from a higher input, commonly 5V DC, to the necessary rails. It is crucial to provide a power supply that can deliver adequate current, especially under heavy load, to prevent brownouts and ensure stable operation. Always consult the carrier board's documentation for specific power input requirements and recommended power supplies. Incorrect power can lead to unpredictable behavior or damage.

The Compute Module 5 uses 3.3V logic levels for its GPIO pins. This means that when interfacing with external components, you must ensure compatibility. Connecting a 5V device directly to a 3.3V GPIO pin can damage the CM5. For components operating at 5V, a logic level shifter is necessary to translate the voltage levels safely. Conversely, 3.3V components are generally safe to connect to the CM5's GPIOs. Always verify the voltage requirements of your sensors, actuators, and other peripherals before connecting them.

A common beginner project involves blinking an LED. To do this, connect a GPIO pin (e.g., GPIO17) to one end of a current-limiting resistor (e.g., 220-330 Ohms). Connect the other end of the resistor to the anode (longer leg) of an LED. Connect the cathode (shorter leg) of the LED to a GND pin. When the GPIO pin is set to HIGH (3.3V), current flows through the resistor and LED, illuminating it. Setting the pin to LOW (0V) turns the LED off. This simple circuit demonstrates basic digital output and current limiting.

Programming & getting started

The Compute Module 5, being a powerful embedded processor, can be programmed using various tools. For embedded Linux development, Raspberry Pi OS is the primary choice, offering a familiar desktop environment and extensive libraries. Developers can use languages like Python, C++, or Node.js within Raspberry Pi OS. For bare-metal or real-time applications, the Raspberry Pi Pico SDK (though primarily for RP2040, principles apply) or specialized RTOS frameworks can be adapted. PlatformIO, an open-source ecosystem for IoT development, also supports the CM5, providing a unified framework for managing libraries, build systems, and device debugging across different IDEs like VS Code.

To upload your first program, assuming you are using Raspberry Pi OS on a carrier board with storage (like an SD card or eMMC), you would typically SSH into the CM5 or use a monitor and keyboard connected to the carrier board. For a simple Python script to blink an LED connected to GPIO17, you would write the script using a text editor, save it (e.g., as `blink.py`), and then run it from the terminal using `python3 blink.py`. The `RPi.GPIO` library is commonly used for GPIO control in Python. For more complex projects or bare-metal development, flashing might involve using tools like `dd` or specialized bootloaders depending on the carrier board and desired firmware.

Project ideas

Smart Home HubBuild a central hub for your smart home devices using Python and MQTT. The CM5's processing power can handle multiple sensor readings, control commands, and data logging. It utilizes GPIO for sensor interfaces and potentially I2C for communication with specific modules.
Edge AI Inference EngineDevelop a real-time object detection system for a camera feed. The CM5's powerful Cortex-A76 cores are well-suited for running machine learning models using TensorFlow Lite or PyTorch Mobile, leveraging its processing capabilities for immediate analysis.
Custom Industrial ControllerDesign a robust controller for machinery or automation processes. The extensive GPIO and communication interfaces (UART, SPI, I2C) allow integration with industrial sensors and actuators, while Raspberry Pi OS or an RTOS provides a stable platform.
Network Attached Storage (NAS)Create a high-performance NAS by connecting SATA drives via a carrier board's interface. The CM5's Gigabit Ethernet and USB 3.0 support, combined with its processing power, enable fast file transfers and media streaming.
Robotics BrainUse the CM5 as the central control unit for an advanced robot. Its ample processing power can manage complex navigation algorithms, computer vision for obstacle avoidance, and simultaneous control of multiple motors and sensors via its rich I/O.
Custom Media CenterBuild a powerful, compact media center by connecting HDMI and audio outputs through a carrier board. The CM5 can handle high-resolution video playback and complex audio processing, making it ideal for dedicated entertainment systems.

Buying tips & gotchas

When purchasing the Raspberry Pi Compute Module 5, ensure you also acquire a compatible carrier board, as the CM5 itself has no onboard connectors. These carrier boards come in various forms, from development boards with all standard Raspberry Pi ports to highly specialized industrial designs. Pay close attention to the power requirements of both the CM5 and its carrier board; a robust 5V power supply capable of delivering at least 3A is often recommended. Be wary of unofficial or unbranded compute modules, as they may not meet the same quality or performance standards. Essential accessories include an SD card or eMMC module for storage, a suitable power supply, and potentially heatsinks or active cooling if the module will be under sustained heavy load.