MakerLab
Raspberry PiRaspberry Pi Compute Module 3+

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.

Raspberry Pi Compute Module 3+

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 / SoCBroadcom BCM2837B0
Architecture64-bit Quad-core ARM Cortex-A53
Clock speed1.2GHz
Flash / StorageOn-module eMMC Flash (8GB, 16GB, or 32GB options)
RAM / SRAM1GB, 2GB, or 4GB LPDDR2 SDRAM (depending on variant)
Operating voltage3.3V (for core logic)
Digital I/O pinsUp to 54 exposed via edge connector (depending on baseboard design)
Analog / ADCโ€”
PWMUp to 4 hardware PWM channels
ConnectivityGigabit Ethernet (via baseboard), Wi-Fi, Bluetooth (via baseboard integration)
USB2x USB 2.0 Host (via baseboard)
Power inputTypically 5V via baseboard, regulated on-module
Dimensions67.6mm x 31.2mm

Pinout & pin functions

PinFunction
VCC (3.3V)3.3V Power Output
GNDGround
GPIO17General Purpose Input/Output 17
GPIO18General Purpose Input/Output 18 (PWM0)
GPIO27General Purpose Input/Output 27
GPIO22General Purpose Input/Output 22
GPIO23General Purpose Input/Output 23 (I2C1 SCL)
GPIO24General Purpose Input/Output 24 (I2C1 SDA)
GPIO25General Purpose Input/Output 25
GPIO10General Purpose Input/Output 10 (SPI0 MOSI)
GPIO9General Purpose Input/Output 9 (SPI0 MISO)
GPIO11General Purpose Input/Output 11 (SPI0 SCK)
GPIO6General Purpose Input/Output 6 (SPI1 CS0)
GPIO5General Purpose Input/Output 5
GPIO0General Purpose Input/Output 0
GPIO1General Purpose Input/Output 1 (UART1 TX)
GPIO3General Purpose Input/Output 3 (UART1 RX)
GPIO4General Purpose Input/Output 4
GPIO14General Purpose Input/Output 14 (PWM1)
GPIO15General Purpose Input/Output 15 (PWM2)
GPIO17General Purpose Input/Output 17
GPIO27General Purpose Input/Output 27
GPIO22General Purpose Input/Output 22
GPIO23General Purpose Input/Output 23 (I2C1 SCL)
GPIO24General Purpose Input/Output 24 (I2C1 SDA)
GPIO25General Purpose Input/Output 25
GPIO10General Purpose Input/Output 10 (SPI0 MOSI)
GPIO9General Purpose Input/Output 9 (SPI0 MISO)
GPIO11General Purpose Input/Output 11 (SPI0 SCK)
GPIO6General Purpose Input/Output 6 (SPI1 CS0)
GPIO5General Purpose Input/Output 5
GPIO0General Purpose Input/Output 0
GPIO1General Purpose Input/Output 1 (UART1 TX)
GPIO3General Purpose Input/Output 3 (UART1 RX)
GPIO4General Purpose Input/Output 4
GPIO14General Purpose Input/Output 14 (PWM1)
GPIO15General 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.

Project ideas

Custom IoT GatewayBuild a compact IoT gateway by integrating Wi-Fi and Ethernet modules onto a custom baseboard. This project leverages the CM3+'s processing power to collect, process, and forward data from various sensors, learning about network protocols and embedded Linux system design.
Industrial Automation ControllerCreate a robust controller for factory automation. Use the CM3+'s GPIO and communication interfaces (like SPI or I2C) to interface with industrial sensors and actuators, learning about real-time control and industrial communication standards.
Digital Signage PlayerDevelop a dedicated media player for digital signage. The CM3+'s processing capabilities and ability to output video (via baseboard interfaces) allow for smooth playback of high-definition content, teaching about multimedia handling and embedded display systems.
Robotics BrainDesign a custom robotic platform where the CM3+ acts as the central control unit. Connect motor drivers, sensors, and cameras to the baseboard, learning about sensor fusion, motor control, and computer vision applications.
Embedded Web ServerHost a web server directly on the CM3+ to control and monitor connected hardware. This project involves setting up a web server on Raspberry Pi OS and using GPIO to interact with the physical world, demonstrating embedded web development and IoT principles.
Data Logger with Cloud SyncCreate a high-capacity data logger for environmental or industrial monitoring. The CM3+'s ample storage and processing power allow for collecting large datasets, which can then be processed and uploaded to cloud services, teaching about data management and cloud integration.

Buying tips & gotchas

When purchasing the Compute Module 3+, be aware that it requires a separate baseboard to function. These baseboards can be purchased from various manufacturers or designed and fabricated yourself. Ensure the baseboard provides the necessary connectors and power regulation for your application. Also, verify the eMMC and RAM configuration (e.g., 8GB eMMC, 1GB RAM) to match your project's storage and memory needs. Watch out for 'Compute Module' variants that might be older versions or have different specifications; the '3+' signifies the latest generation. Essential accessories include a suitable power supply for the baseboard and a way to program the eMMC, often a USB-to-SD card adapter and a baseboard with a programming header.