Compute Module 4

by Raspberry Pi

Image of Board

NOTE: This build is alpha quality and is for experimental use. It is missing features and has known issues.

The Raspberry Pi Compute Module 4 is based on the Raspberry Pi 4 Model B, but in a smaller form factor - perfect for embedding into products or projects without the bulk of a classic Raspberry Pi. You get all the computational power of Raspberry Pi 4 in a compact form factor for deeply embedded applications. The CM4 incorporates the same quad-core ARM Cortex-A72 processor, dual video output, gigabit Ethernet, UART, I2C, SPI, I2S, and a few PWM for good measure.

This module is available in multiple variants, with a range of RAM and eMMC Flash options, and with or without wireless connectivity. The modules are available with 1GB, 2GB, 4GB or 8GB LPDDR4-3200 SDRAM with optional storage of 8GB, 16GB or 32GB eMMC Flash. The wireless option includes 2.4GHz and 5GHz 802.11b/g/n/ac wireless LAN and Bluetooth 5.0 for BT classic and BTLE support.

This product version of the CM4 modules comes with 4GB RAM 32GB MMC, and WiFi!

Note: We don’t include the Compute Module IO board, but it’s strongly recommended!

Compute ALL the THINGs!

Compared to the earlier Compute Module 3+, the CM4 features faster CPU cores, better multimedia, more interfacing capabilities, a range of RAM densities, and a wireless connectivity option. Instead of a DIMM socket, there are two board-to-board connectors that carry high-speed signals with ease - like multiple MIPI displays and camera ports. In addition to all the pins that supply Ethernet and SDIO and SPI and such, there’s also 28 GPIO pins, with up to 6 × UART, 6 × I2C and 5 × SPI.

On the video side, there are dual HDMI output, VideoCore VI graphics with OpenGL ES 3.x support, 4Kp60 hardware decode of H.265 (HEVC) video, and 1080p30 hardware encode of H.264 (AVC) video.

It’s great for industrial control or robotic use, digital/video signage, IoT, and AI/machine learning projects

Compute Module 4 introduces a brand new form factor and a compatibility break with earlier Compute Modules. Where previous modules adopted the JEDEC DDR2 SODIMM mechanical standard, with I/O signals on an edge connector, we now bring I/O signals to two high-density perpendicular connectors (one for power and low-speed interfaces, and one for high-speed interfaces).

This significantly reduces the overall footprint of the module on its carrier board, letting you achieve smaller form factors for your products. This version is intended for experienced developers who will be using the board for industrial and commercial applications.

Specifications

  • 1.5GHz quad-core 64-bit ARM Cortex-A72 CPU
  • VideoCore VI graphics, supporting OpenGL ES 3.x
  • 4Kp60 hardware decode of H.265 (HEVC) video
  • 1080p60 hardware decode, and 1080p30 hardware encode of H.264 (AVC) video
  • Dual HDMI interfaces, at resolutions up to 4K
  • Single-lane PCI Express 2.0 interface
  • Dual MIPI DSI display, and dual MIPI CSI-2 camera interfaces
  • 1GB, 2GB, 4GB or 8GB LPDDR4-3200 SDRAM
  • Optional 8GB, 16GB or 32GB eMMC Flash storage
  • Optional 2.4GHz and 5GHz IEEE 802.11b/g/n/ac wireless LAN and Bluetooth 5.0
  • Gigabit Ethernet PHY with IEEE 1588 support
  • 28 GPIO pins, with up to 6 × UART, 6 × I2C, and 5 × SPI

CircuitPython

These downloads are for CircuitPython standalone on the Raspberry Pi (not Blinka). There is no underlying operating system. It is in early development.

After installing the disk image on an SD card, the normal CircuitPython USB workflow will be available on the micro-B connector on the IO board. EMMC compute modules are not supported yet.

Purchase

Contribute

Have some info to add for this board? Edit the source for this page here.

CircuitPython 7.3.3

This is the latest stable release of CircuitPython that will work with the Compute Module 4.

Start here if you are new to CircuitPython.

Release Notes for 7.3.3

Built-in modules available: _bleio, adafruit_bus_device, adafruit_pixelbuf, aesio, atexit, binascii, bitbangio, bitmaptools, board, busio, digitalio, displayio, errno, fontio, framebufferio, getpass, gifio, json, keypad, math, microcontroller, msgpack, neopixel_write, onewireio, os, rainbowio, random, re, sdcardio, sdioio, sharpdisplay, storage, struct, supervisor, terminalio, time, touchio, traceback, ulab, usb_cdc, usb_hid, usb_midi, vectorio, zlib

CircuitPython 8.0.0-beta.4

This is the latest unstable release of CircuitPython that will work with the Compute Module 4.

Unstable builds have the latest features but are more likely to have critical bugs.

Release Notes for 8.0.0-beta.4

Built-in modules available: _asyncio, _bleio, adafruit_bus_device, adafruit_pixelbuf, aesio, array, atexit, binascii, bitbangio, bitmaptools, board, builtins, busio, collections, digitalio, displayio, dotenv, errno, fontio, framebufferio, getpass, json, keypad, math, microcontroller, msgpack, neopixel_write, onewireio, os, rainbowio, random, re, sdcardio, sdioio, select, sharpdisplay, storage, struct, supervisor, sys, terminalio, time, touchio, traceback, ulab, usb_cdc, usb_hid, usb_midi, vectorio, zlib

Absolute Newest

Every time we commit new code to CircuitPython we automatically build binaries for each board and language. The binaries are stored on Amazon S3, organized by board, and then by language. Try them if you want the absolute latest and are feeling daring or want to see if a problem has been fixed.

Past Releases

All previous releases are listed on GitHub, with release notes, and are available for download from Amazon S3. They are handy for testing, but otherwise we recommend using the latest stable release. Some older GitHub release pages include the same binaries for downloading. But we have discontinued including binaries as assets on newer release pages because of the large number of files for each release.

BROWSE GITHUB