CM4-IO-BASE-C

From Waveshare Wiki
Jump to: navigation, search
CM4-IO-BASE-C Base Board
360px-CM4-IO-BASE-C-V2-3.jpg

FAN, CSI, HDMI, USB 2.0, I2C, I2S, SPI, RPi, Ethernet
CM4001000 Core board
360px-Compute-Module-4-1.jpg

FAN, CSI, HDMI, USB 2.0, I2C, I2S, SPI, RPi, Ethernet
{{{name3}}}

{{{name4}}}

{{{name5}}}

{{{name6}}}

Overview

Introduction

As the mini IO board of the Raspberry Pi Compute Module 4, CM4-IO-BASE-C is a baseboard that can be used with the Raspberry Pi Compute Module 4. It supports direct connection to LCD interfaces, facilitating integrated design and quick embedding in project applications.

Version Description

V1 version
CM4-IO-BASE-C-3.jpg

V2 version (all future updates will be based on this version, V1 version is no longer updated)
CM4-IO-BASE-C-V2-3.jpg

Precautions

1. Do not plug or unplug any device other than USB and HDMI when the device is powered on
2. The FAN only supports 5V fans. 12V is not supported, check the fan voltage before connecting.
3. Support LCD interface direct connection, no DSI interface.
4. The Type C interface can be used as a power supply or as a USB SLAVE interface for flashing images.
5. In order to ensure the normal power supply of CM4, please do not connect other devices when using the Type C interface to flash the image.
6. When CM4 is in normal use, it needs to provide a 5V 2A or higher power supply for CM4. Otherwise, problems such as automatic shutdown and frequency reduction may occur.
7. When using the M.2 interface, please use the matching screws. Using screws of other lengths may cause the CM4 core to be damaged by the screw.
8. The module has no power protection circuitry, please do not short-circuit the power supply.
9. USB2.0 is disabled by default. To enable it, add dtoverlay=dwc2,dr_mode=host to config.txt.
10. This expansion board does not support POE functionality.

Dimensions

CM4-IO-BASE-C-V1
CM4-IO-BASE-C-details-size.jpg
CM4-IO-BASE-C-V2
CM4-IO-BASE-C-details-size-V.jpg
Compute Module 4 core board
Compute Module 4 IO Board 5.png

Onboard Resources


CM4-IO-BASE-C-V1

CM4-IO-BASE-C-details-intro.jpg

No. Name Description
1 CM4 interface Compatible with all versions of Compute Module 4
2 Power/flashing interface 5V/2.5A power supply, can also be used as an eMMC flashing interface
3 LCD interface 40PIN LCD display interface for direct connection to 70H-1024600 series displays
4 FAN interface Connect to a cooling fan, supports speed control and speed measurement, only supports 5V fans
5 CAM interface Dual MIPI CSI camera interface
6 HDMI0 interface HDMI interface, supports 4K 30fps output
7 USB 2.0 interface 2 USB 2.0 interfaces, supports various USB devices
8 Gigabit Ethernet port RJ45 Gigabit Ethernet port, supports 10/100/1000M network access
9 M.2 interface indicator light Indicates the working status of the interface
10 PWR indicator light Indicates the power status of Raspberry Pi
11 Status Indicator Indicates the working status of the Raspberry Pi
12 BOOT Jumper cap connected: CM4 USB Type-C boot on startup
Jumper cap not connected: eMMC or TF card boot on startup
13 40PIN GPIO interface Convenient for connecting various HAT modules
14 Micro TF slot For inserting a TF card with pre-installed system, only for the Lite version
15 FE1.1S USB HUB chip, USB port 1 to 4 expansion
16 M.2 interface Suitable for NVME SSD or communication modules that support PCIE M.2 interface
17 RTC chip PCF85063 chip can be used for RTC wake-up, shutdown, restart, or other functions
18 RTC interrupt pin switching PI-RUN: RTC triggers interrupt for CM4 restart
GN-EN: RTC triggers interrupt for CM4 shutdown
D4: RTC triggers interrupt for D4 pin trigger
19 RTC battery holder Supports CR1220 button cell


CM4-IO-BASE-C-V2

CM4-IO-BASE-C-details-intro-v2.jpg

No. Name Description
1 CM4 interface Compatible with all versions of Compute Module 4
2 Power/flashing interface 5V/2.5A power supply, can also be used as an eMMC flashing interface
3 LCD interface 40PIN LCD display interface for direct connection to 70H-1024600 series displays
4 FAN interface Connect to a cooling fan, supports speed control and speed measurement, only supports 5V fans
5 CAM interface Dual MIPI CSI camera interface
6 HDMI0 interface HDMI interface, supports 4K 30fps output
7 USB 2.0 interface 2 USB 2.0 interfaces, supports various USB devices
8 Gigabit Ethernet port RJ45 Gigabit Ethernet port, supports 10/100/1000M network access
9 M.2 interface indicator light Indicates the working status of the interface
10 LED indicator light Red: Indicates the power status of the Raspberry Pi (PWR)
Green: Indicates the operating status of the Raspberry Pi (ACT)
11 BOOT Jumper cap connected: CM4 USB Type-C boot on startup
Jumper cap not connected: eMMC or TF card boot on startup
12 40PIN GPIO interface Convenient for connecting various HAT modules
13 Micro TF slot For inserting a TF card with pre-installed system, only for the Lite version
14 FE1.1S USB HUB chip, USB port 1 to 4 expansion
15 M.2 interface Suitable for NVME SSD or communication modules that support PCIE M.2 interface
16 RTC chip PCF85063 chip can be used for RTC wake-up, shutdown, restart, or other functions
17 RTC interrupt pin switching PI-RUN: RTC triggers interrupt for CM4 restart
GN-EN: RTC triggers interrupt for CM4 shutdown
D4: RTC triggers interrupt for D4 pin trigger
18 RTC battery holder Supports CR1220 button cell

Precautions

It is forbidden to unplug and plug any device other than USB and network port when it is charged

Image Flashing

Click here for EMMC version
Click here for LITE version

USB2.0

The USB port is disabled by default on the CM4 to save power. If it needs to be enabled, you need to add the following to the config.txt file:

dtoverlay=dwc2,dr_mode=host

Then reboot it.

If you use the latest Raspberry Pi OS (image after October 30, 2021), USB2.0 defaults to OTG mode, and CM4 will report an error:

config failed, hub doesn't have any ports! (err -19)

However, USB can still be used. If you want to remove this error, remove otg_mode=1 in [cm4] of config.txt, and add dtoverlay=dwc2, dr_mode=host (if you don't add it, USB can not be recognized).
CM4 Burn EMMC 12.png


M.2

The M.2 interface type is M KEY, which only supports PCIE channel devices (including NVME solid-state, etc.) and does not support SATA hard drives.
CM4-IO-BASE-C-10.png
It supports some adapter cards and takes the PCIE channel. The official Raspberry Pi image of some devices cannot be driven, and the kernel needs to be recompiled.

RTC FAN

RTC (PCF85063a) is on I2C-10, the address is 0x51 (7-bit address)

RTC

sudo nano /boot/config.txt
 #Add at the end
 dtparam=i2c_vc=on
 dtoverlay=i2c-rtc,pcf85063a,i2c_csi_dsi
 #Add # before dtparam=audio=on
 #dtparam=audio=on
 #Save, exit, and reboot
 sudo reboot

Hwclock

Synchronize system clock -> hardware clock.

sudo hwclock -w

Synchronize hardware clock -> 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:

sudo hwclock --set --date="9/8/2021 16:45:05"

View the hardware clock.

sudo hwclock -r

Show version information.

sudo hwclock --verbose

FAN

The fan PWM pin is connected to the GPIO18

LCD Port

Interface Connection

Screen touch (USB): USB3
Backlight enable (BL_EN): GPIO17
Backlight adjustment (BL_PWM): GPIO19

Schematic Diagram

CM4-IO-BASE-C-11.png

CSI

CM4-IO-BASE-C has only CSI camera interface and no DSI display interface

New Version (Bullseye)

If you use the latest Raspberry Pi OS (Bullseye):

#The new system uses dual cameras
#Remove camera_auto_detect=1 in config.txt
#camera_auto_detect=1

#Add
dtoverlay=imx219,cam1
dtoverlay=imx219,cam0

#Where imx219 is the camera sensor model and other sensors are supported
dtoverlay=ov5647,cam0
dtoverlay=imx219,cam0
dtoverlay=ov9281,cam0
dtoverlay=imx477,cam0
dtoverlay=imx519,cam0

#Then reboot
reboot

#Open camera
libcamera-hello -t 0
or
libcamera-hello


#Other instructions:
#Check if the camera is detected
libcamera-hello --list-cameras

#Open the corresponding camera, preview for 5 seconds
libcamera-hello  --camera 1
libcamera-hello  --camera 0

#Take photos
libcamera-jpeg -o test.jpg

#Shoot video
libcamera-vid -t 10000 -o test.h264

#You can add --camera to specify the camera
#-t <duration> option allows the user to choose how long the window is displayed in milliseconds

For more commands, you can click here.

Old Version (Buster)

Configure Files

CSI is disabled. When using the camera, three I2C devices, I2C-10, I2C-11, and I2C-0 will be occupied.
The boot process is as follows:

wget https://files.waveshare.com/upload/7/75/CM4_dt_blob_Source.zip
 unzip -o CM4_dt_blob_Source.zip -d ./CM4_dt_blob_Source
 sudo chmod 777 -R CM4_dt_blob_Source
 cd CM4_dt_blob_Source/
 sudo  dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-disp0-double_cam.dts
 #If you need to restore, delete the corresponding dt-blob.bin: sudo rm -rf /boot/dt-blob.bin 
 #Execution is complete, turn off the power and restart CM4

Connect to the camera:
1: Please make sure it is connected under powering off.
2: Connect to the power.
3: The display will be booted after waiting for a few seconds.
4. If it fails to boot, check whether /boot/dt-blob.bin exists, and reboot it if it exists.


The camera needs to run raspi-config, select Interfacing Options -> Camera -> Yes -> Finish -> Yes, reboot the system, open enable camera, and then restart to save the changes.

Test the Raspberry Pi camera.
Check the screen of the first connected camera:

sudo raspivid -t 0 -cs 0

Check the screen of the second connected camera:

sudo raspivid -t 0 -cs 1


  • Note: If using a DSI interface display there will be an HDMI disabled, even if just compiling the corresponding file without connecting a DSI screen.
  • Connecting either HDMI port will allow output of an image, regardless of which HDMI port is used. If two HDMI screens are connected, only HDMI0 has an image output.
  • If you want to enable both HDMI ports, delete the dt-blob.bin file with the following command:
sudo rm -rf /boot/dt-blob.bin
  • And then reboot it.

Please refer to Raspberry Pi manual.

FAQ

 Answer:
a) Check if dtparam -audio - on is blocked in /boot/config.txt
b) Check if the /boot/dt-blob.bin file exists. If it exists and cannot be used, please delete it


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)