Raspberry Pi Compute Module 3+: Industrial Power for Embedded Projects
The Raspberry Pi Compute Module 3+ brings the power of a Raspberry Pi 3 Model B+ into a compact, flexible form factor ideal for industrial and embedded applications.
The Raspberry Pi Compute Module 3+ (CM3+) is a highly integrated System-on-Module (SoM) designed by the Raspberry Pi Foundation. Unlike standard Raspberry Pi boards, the CM3+ does not come with a built-in connector for peripherals like keyboards or displays. Instead, it's intended to be plugged into a custom baseboard designed by the user or a third-party manufacturer. This modular approach allows for much greater flexibility in product design, enabling engineers to create compact, specialized devices without the constraints of a fixed-form factor board.
At its heart, the CM3+ features the Broadcom BCM2837B0 SoC, the same powerful processor found in the Raspberry Pi 3 Model B+. This quad-core 64-bit ARM Cortex-A53 processor, clocked at 1.2GHz, provides ample processing power for demanding embedded tasks. The CM3+ also integrates RAM directly onto the module, with options for 1GB, 2GB, or 4GB LPDDR2 SDRAM, and eMMC flash memory for operating system and data storage, typically ranging from 8GB to 32GB. This integration simplifies baseboard design by consolidating the core computing components.
Positioned as a more robust and flexible alternative to the standard Raspberry Pi boards, the CM3+ is tailored for applications requiring a smaller footprint, higher reliability, or custom I/O. It replaces the earlier Compute Module 3 and 3 Lite, offering improved thermal management and a wider operating temperature range, making it suitable for industrial environments. Makers and engineers looking to embed Raspberry Pi capabilities into custom hardware, such as IoT gateways, digital signage, robotics, or custom control systems, will find the CM3+ an excellent choice.
The CM3+ is designed for professional and industrial use, meaning it's not typically purchased by hobbyists for direct use like a standard Raspberry Pi. Instead, it's integrated into larger systems. However, for advanced makers and embedded engineers, it offers a pathway to create bespoke products with the familiar Raspberry Pi ecosystem. The requirement for a custom baseboard means a higher barrier to entry for beginners, but the payoff is immense design freedom and a product that can be scaled from prototypes to mass production.
Watch
Related video, embedded from YouTube.
Specifications
| Microcontroller / SoC | Broadcom BCM2837B0 |
| Architecture | 64-bit Quad-core ARM Cortex-A53 |
| Clock speed | 1.2GHz |
| Flash / Storage | On-module eMMC Flash (8GB, 16GB, or 32GB options) |
| RAM / SRAM | 1GB, 2GB, or 4GB LPDDR2 SDRAM (depending on variant) |
| Operating voltage | 3.3V (for core logic) |
| Digital I/O pins | Up to 54 exposed via edge connector (depending on baseboard design) |
| Analog / ADC | โ |
| PWM | Up to 4 hardware PWM channels |
| Connectivity | Gigabit Ethernet (via baseboard), Wi-Fi, Bluetooth (via baseboard integration) |
| USB | 2x USB 2.0 Host (via baseboard) |
| Power input | Typically 5V via baseboard, regulated on-module |
| Dimensions | 67.6mm x 31.2mm |
Pinout & pin functions
| Pin | Function |
|---|---|
| VCC (3.3V) | 3.3V Power Output |
| GND | Ground |
| GPIO17 | General Purpose Input/Output 17 |
| GPIO18 | General Purpose Input/Output 18 (PWM0) |
| GPIO27 | General Purpose Input/Output 27 |
| GPIO22 | General Purpose Input/Output 22 |
| GPIO23 | General Purpose Input/Output 23 (I2C1 SCL) |
| GPIO24 | General Purpose Input/Output 24 (I2C1 SDA) |
| GPIO25 | General Purpose Input/Output 25 |
| GPIO10 | General Purpose Input/Output 10 (SPI0 MOSI) |
| GPIO9 | General Purpose Input/Output 9 (SPI0 MISO) |
| GPIO11 | General Purpose Input/Output 11 (SPI0 SCK) |
| GPIO6 | General Purpose Input/Output 6 (SPI1 CS0) |
| GPIO5 | General Purpose Input/Output 5 |
| GPIO0 | General Purpose Input/Output 0 |
| GPIO1 | General Purpose Input/Output 1 (UART1 TX) |
| GPIO3 | General Purpose Input/Output 3 (UART1 RX) |
| GPIO4 | General Purpose Input/Output 4 |
| GPIO14 | General Purpose Input/Output 14 (PWM1) |
| GPIO15 | General Purpose Input/Output 15 (PWM2) |
| GPIO17 | General Purpose Input/Output 17 |
| GPIO27 | General Purpose Input/Output 27 |
| GPIO22 | General Purpose Input/Output 22 |
| GPIO23 | General Purpose Input/Output 23 (I2C1 SCL) |
| GPIO24 | General Purpose Input/Output 24 (I2C1 SDA) |
| GPIO25 | General Purpose Input/Output 25 |
| GPIO10 | General Purpose Input/Output 10 (SPI0 MOSI) |
| GPIO9 | General Purpose Input/Output 9 (SPI0 MISO) |
| GPIO11 | General Purpose Input/Output 11 (SPI0 SCK) |
| GPIO6 | General Purpose Input/Output 6 (SPI1 CS0) |
| GPIO5 | General Purpose Input/Output 5 |
| GPIO0 | General Purpose Input/Output 0 |
| GPIO1 | General Purpose Input/Output 1 (UART1 TX) |
| GPIO3 | General Purpose Input/Output 3 (UART1 RX) |
| GPIO4 | General Purpose Input/Output 4 |
| GPIO14 | General Purpose Input/Output 14 (PWM1) |
| GPIO15 | General Purpose Input/Output 15 (PWM2) |
Wiring & circuit basics
Powering the Compute Module 3+ requires a stable 5V supply connected to the baseboard. The CM3+ itself operates at 3.3V logic levels. It's crucial to use a power supply capable of delivering sufficient current, typically at least 2.5A to 3A, especially if the module is running demanding applications or connected peripherals. The baseboard will contain voltage regulators to step down the 5V input to the 3.3V required by the CM3+ and its peripherals. Always refer to the specific baseboard's documentation for its power input requirements and recommendations.
When interfacing external components, always respect the 3.3V logic level of the CM3+. Connecting 5V devices directly to 3.3V GPIO pins can damage the Compute Module. For components that operate at 5V, such as many common LEDs or some sensors, a level shifter is necessary to safely convert the 3.3V signals from the CM3+ to 5V and vice-versa. For example, to safely control a 5V LED, you would connect a CM3+ GPIO pin through a level shifter to the LED's anode, with the cathode connected to ground via a current-limiting resistor appropriate for the LED.
A typical I2C sensor, which usually operates at 3.3V, can be connected directly. For instance, to connect an I2C temperature sensor like the BMP280, you would connect the sensor's VCC to a 3.3V pin on the baseboard, its GND to a ground pin, its SDA pin to GPIO24 (I2C1 SDA) on the CM3+, and its SCL pin to GPIO23 (I2C1 SCL) on the CM3+. Ensure that the sensor also has pull-up resistors on SDA and SCL lines if not already integrated, or use the baseboard's available pull-up resistors if provided.
Programming & getting started
The Raspberry Pi Compute Module 3+ primarily runs Raspberry Pi OS (formerly Raspbian), a Debian-based Linux distribution. This means you can use standard Linux development tools, including Python with its extensive libraries, Node.js, C/C++ with GCC, and more. For flashing the eMMC storage, you typically need a USB-to-SD card adapter and a way to put the CM3+ into bootloader mode (often by shorting specific pins on the baseboard during power-up). Once Raspberry Pi OS is installed, you can SSH into the module or connect a serial console to interact with it.
While not its primary use case, it's possible to run bare-metal or RTOS applications on the CM3+ using tools like the ARM GCC toolchain. For embedded Linux development, PlatformIO is an excellent choice, supporting Raspberry Pi devices and allowing for cross-compilation and deployment directly to the module over SSH or serial. For more advanced users, the Raspberry Pi Foundation provides tools and documentation for building custom Linux images and kernel modules.