CM5-to-Pi5-Adapter
Introduction
As the IO board of the Raspberry Pi Compute Module 5, CM5-to-Pi5-Adapter is a baseboard that can be used with the Raspberry Pi Compute Module 5. With powerful features integrated into a compact design, it is only about the size of a credit card. It comes with two USB3.2 Gen1 ports and two USB2.0 ports onboard, making it convenient for users.
Features and Precautions
1. Do not plug or unplug any device other than USB and HDMI when the device is powered on
2. Type C can be used as a USB SLAVE interface to flash images.
3. Onboard default 2 USB 3.2 Gen1 port
4. Supports 4 screens to display different contents, adds MIPI DSI driver, regardless of whether a screen is connected, the system will default to connect, the screen will display in split-screen mode (related to the system version)
5. The onboard BOOT button, you can press the BOOT button before powering on, and connect to the computer through Type C to let the device enter the flashing mode
6. Do not connect other devices when using Type C for flashing. Insufficient power supply will cause the device to be unrecognized
7. The USB2.0 ports have a total maximum power output of 2A, and the USB3.0 ports have a total maximum power output of 2A
Dimensions
Core Board Size
Baseboard Size
Image Flashing
How to Flash
Enter flashing mode
1. The onboard BOOT button (located between two HDMI ports), you can press the BOOT button before powering on, and connect to the computer through Type C to let the device enter the flashing mode
Click here for EMMC version
Click here for LITE version
PCIe
Enable
1. Enable PCIE interface
Add in/boot/firmware/config.txt (this step is not required by default and can be skipped): dtparam=pciex1
2. PCIE is gen2 by default, if you need to enable PCIE gen3, then add following to /boot/firmware/config.txt:
dtparam=pciex1_gen=3
3. For PCIe module drivers, please refer to the corresponding Wiki
Fan Control
The fan defaults to starting when the temperature reaches 50 degrees. If you want to control it at other temperatures, you can do so by adding specific content to /boot/firmware/config.txt, for example:
dtparam=fan_temp0=36000,fan_temp0_hyst=2000,fan_temp0_speed=90 dtparam=fan_temp1=40000,fan_temp1_hyst=3000,fan_temp1_speed=150 dtparam=fan_temp2=52000,fan_temp2_hyst=4000,fan_temp2_speed=200 dtparam=fan_temp3=58000,fan_temp3_hyst=5000,fan_temp3_speed=255
Among which:
fan_temp0/1/2/3 Indicates the temperature (36000 means 36℃)
fan_temp0/1/2/3_speed Indicates the corresponding rotational speed (value up to 255)
fan_temp0/1/2/3_hyst Indicates the hysteresis temperature
For more details, please click here
Notice: There are only 4 temperatures: 0, 1, 2 and 3, and it's not possible to set other temperatures. The hysteresis temperature must not exceed the step range between two temperatures
MIPI
Support dual MIPI, customers can freely choose CSI or DSI connections
The DSI screen is 800x480 resolution screen by default, please refer to the corresponding WIKI for other resolution screens
Note: A single camera can only connect to MIPI0
DSI
#Add the following to the config.txt file: sudo nano /boot/firmware/config.txt #DSI0 dtoverlay=vc4-kms-dsi-7inch,dsi0 #DSI1 dtoverlay=vc4-kms-dsi-7inch,dsi1
CSI
Note: A single camera can only connect to MIPI0
| Mode | CAM0 setup statement | CAM1 setup statement |
|---|---|---|
| OV9281 | dtoverlay=ov9281,cam0 | dtoverlay=ov9281,cam1 |
| IMX290/IMX327 | dtoverlay=imx290,clock-frequency=37125000,cam0 | dtoverlay=imx290,clock-frequency=37125000,cam1 |
| IMX378 | dtoverlay=imx378,cam0 | dtoverlay=imx378,cam1 |
| IMX219 | dtoverlay=imx219,cam0 | dtoverlay=imx219,cam1 |
| IMX477 | dtoverlay=imx477,cam0 | dtoverlay=imx477,cam1 |
| IMX296 | dtoverlay=imx296,cam0 | dtoverlay=imx296,cam1 |
| IMX708 | dtoverlay=imx708,cam0 | dtoverlay=imx708,cam1 |
Allow one connection to DSI and one connection to CSI, for example, use IMX219 to connect to MIPI1
For example, if you want to connect a DSI display to MIPI1, add the following to the config.txt file
dtoverlay=imx219,cam0 dtoverlay=vc4-kms-dsi-7inch,dsi1
sudo reboot
Test Camera
- Enter the camera detection command, and you can see that the camera has been detected
rpicam-hello --list-cameras

- Display the camera screen to the desktop
rpicam-hello -t 0
- Take a photo
rpicam-jpeg -o test.jpg
- Record a 10s video
rpicam-vid -t 10s -o test.h264
Other commands
Check if the camera is detected
rpicam-hello --list-cameras
Open the corresponding camera
rpicam-hello --list-cameras 0 rpicam-hello --list-cameras 1
Take a photo
rpicam-jpeg -o test.jpg #You can add --camera to specify the camera
Real-Time Clock (RTC)
There is no battery by default, and an additional RTC battery is required
Software Debugging
The default device is /dev/rtc0
Regarding time, by inputting "date" in the command line, you can see the current time. Connecting the Raspberry Pi system to the network will automatically synchronize the time. If the default RTC device is connected and functioning properly, the RTC time will be updated after the automatic network synchronization
sudo hwclock -r Read the RTC time, if there are multiple RTC devices, you can use -f to select the corresponding devices (for example: sudo hwclock -f /dev/rtc1 -r)
Hwclock
System clock -> Hardware clock (RTC)
sudo hwclock -w
Synchronize hardware clock (RTC) -> System clock
sudo hwclock -s #Need to turn off the network, or disable network time synchronization, otherwise it will be changed back
Set the hardware clock time (RTC):
sudo hwclock --set --date="9/8/2023 16:45:05"
View the hardware clock (RTC)
sudo hwclock -r
Show version information.
sudo hwclock --verbose
Automated Wakeup
To support a low-power mode for wake-up alarms, add the configuration:
sudo -E rpi-eeprom-config --edit #Add the following 2 lines POWER_OFF_ON_HALT=1 WAKE_ON_GPIO=0 #Restart the device after adding (if you connect to the serial port log, you can see that there are update related logs) sudo reboot #You can use the following methods to test the function: echo +600 | sudo tee /sys/class/rtc/rtc0/wakealarm sudo halt or sudo poweroff #10 minutes later, it will be awakened and restarted
RTC Battery Charging
Note: Before adding this, make sure your RTC battery allows charging and check the maximum allowable voltage
sudo nano /boot/firmware/config.txt #Add dtparam=rtc_bbat_vchg=3000000 #Among these, 3,000,000 represents the maximum voltage. Charging will stop when it reaches 3V, and trickle charging is initiated when the voltage is below 3V
USB
There are 2 USB3.2 Gen1 ports onboard, the rate is not shared (can support 5Gbps simultaneously), and the total current is limited to 2A
There are 2 USB2.0 ports onboard which share a rate of 480Mbps, and the total current is limited to 2A
The above two current limits are independent
Audio
The audio interface uses USB audio and supports playback and recording, stereo codec, and supports headphones with microphones, headsets 2-in-1.
Check the USB device: lsusb
$ lsusb Bus 003 Device 002: ID 0c76:161f JMTek, LLC.
Check the playback device: aplay -l
$ aplay -l **** List of PLAYBACK Hardware Devices **** card 1: Device [USB PnP Audio Device], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0
Check the recording device: arecord -l
$ arecord -l **** List of CAPTURE Hardware Devices **** card 1: Device [USB PnP Audio Device], device 0: USB Audio [USB Audio] Subdevices: 1/1 Subdevice #0: subdevice #0
Recording and playback test: sudo arecord -f S32_LE -Dplughw:1,0 | aplay -Dplughw:1,0
$ sudo arecord -f S32_LE -Dplughw:1,0 | aplay -Dplughw:1,0 xcb_connection_has_error() returned true xcb_connection_has_error() returned true Recording WAVE 'stdin' : Signed 32 bit Little Endian, Rate 8000 Hz, Mono Playing WAVE 'stdin' : Signed 32 bit Little Endian, Rate 8000 Hz, Mono
Note: The commands for recording and playing back tests are not unique and require users to modify the commands based on the actual device numbers
The previous "-Dplughw:1,0" indicates the recording, sound card 1 and device 0 (the corresponding sound card and device can be seen in arecord -l)
The following "aplay -Dplughw:1,0" indicates the playing, sound card 1 and device 0 (the corresponding sound card and device can be seen in aplay-l)
Resources
Datasheets and Schematic Diagram
CM5 Core board datasheet
CM5 Core board 3D
CM5 Core introduction
CM5-to-Pi5-Adapter-3D
CM5-to-Pi5-Adapter Schematic
FAQ
CM5 requires the latest version of Raspberry Pi OS Bookworm (2024-11-19 or later).
Support
Technical Support
If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)


