Difference between revisions of "CM4-IO-BASE-A"

From Waveshare Wiki
Jump to: navigation, search
Line 92: Line 92:
 
==Precautions==
 
==Precautions==
 
<font color="#ff0000">Do not plug or unplug any device while it is powered on</font><br>
 
<font color="#ff0000">Do not plug or unplug any device while it is powered on</font><br>
 
  
 
==Writing Image==
 
==Writing Image==
Line 110: Line 109:
 
<br>
 
<br>
 
</font>
 
</font>
 +
 +
==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 disks.
 +
:[[File:CM4-IO-BASE-B-1-1.png|600px]]
 +
Support some type of adapter cards by using the PCIE channel. Some types of cards cannot be driven by the official Raspberry Pi image, it needs to recompile the kernel.
  
 
==FAN==
 
==FAN==
Line 118: Line 122:
 
*Open a terminal and run the following commands:<br>
 
*Open a terminal and run the following commands:<br>
 
<source lang="c">
 
<source lang="c">
sudo apt-get install p7zip-full
+
  wget https://www.waveshare.net/w/upload/7/75/CM4_dt_blob_Source.zip
  wget https://www.waveshare.com/w/upload/4/41/CM4_dt_blob.7z
+
  unzip -o  CM4_dt_blob_Source.zip -d ./CM4_dt_blob_Source
  7z x CM4_dt_blob.7z -O./CM4_dt_blob
+
  sudo chmod 777 -R CM4_dt_blob_Source
  sudo chmod 777 -R CM4_dt_blob
+
  cd CM4_dt_blob_Source/
  cd CM4_dt_blob/
 
 
  #If you want to use both cameras and DSI0
 
  #If you want to use both cameras and DSI0
 
  sudo  dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-disp0-double_cam.dts
 
  sudo  dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-disp0-double_cam.dts
 
  #If you want to ue both cameras and DSI1
 
  #If you want to ue both cameras and DSI1
 
  sudo  dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-disp1-double_cam.dts
 
  sudo  dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-disp1-double_cam.dts
 +
#When using any DSI interface, HDMI1 will have no image output, even if you do not connect the DSI screen, as long as you compile the corresponding file, then HDMI1 will not output
 +
  #If you need to restore, please delete the corresponding dt-blob.bin: sudo rm -rf /boot/dt-blob.bin
 +
  # After execution, turn off the power and restart the CM4
 
</source>
 
</source>
*And then connect the cameras and DSI display<br>
+
===Recording test===
 +
And then connect the cameras and DSI display<br>
 
1: Please power off the IO Board first before your connection.<br>
 
1: Please power off the IO Board first before your connection.<br>
 
2: Connect the power adapter after connecting the cameras and DSI display<br>
 
2: Connect the power adapter after connecting the cameras and DSI display<br>
Line 134: Line 141:
 
4: If the DSI LCD cannot display, please check if you have added /boot/dt-blob.bin. If there already has the dt-blob.bin, just try to reboot.<br>
 
4: If the DSI LCD cannot display, please check if you have added /boot/dt-blob.bin. If there already has the dt-blob.bin, just try to reboot.<br>
 
5: The camera needs to be enabled by raspi-config, enter sudo raspi-config on the terminal, choose Interfacing Options->Camera->Yes->Finish-Yes and reboot the system<br>
 
5: The camera needs to be enabled by raspi-config, enter sudo raspi-config on the terminal, choose Interfacing Options->Camera->Yes->Finish-Yes and reboot the system<br>
 
+
==== Old Version (Buster) ====
 
*Test the Cameras:<br />
 
*Test the Cameras:<br />
 
Test camera0:
 
Test camera0:
Line 141: Line 148:
 
  sudo raspivid -t 0 -cs 1
 
  sudo raspivid -t 0 -cs 1
  
【Note】:<br>
+
====New Version (Bullseye)====
*HDMI1 is disabled if you use DSI interfaces for displaying, even if you just compile the corresponding files without connecting to the DSI screen, please note it.
+
If you are using the latest Raspberry Pi OS (Bullseye):
*If you want to enable the HDMI1, please remove the dt-blob.bin file with the command:  
+
 
 +
<syntaxhighlight lang="python">
 +
libcamera-hello -t 0
 +
or
 +
libcamera-hello
 +
 
 +
#The new system uses dual cameras
 +
#Remove or comment out the line camera_auto_detect=1 in config.txt
 +
#camera_auto_detect=1
 +
 
 +
#Add the following lines:
 +
dtoverlay=imx219,cam1
 +
dtoverlay=imx219,cam0
 +
 
 +
#Add the corresponding line according to the camera you use, where imx219 is the camera sensor model, and there are other sensors
 +
dtoverlay=ov5647,cam0
 +
dtoverlay=imx219,cam0
 +
dtoverlay=ov9281,cam0
 +
dtoverlay=imx477,cam0
 +
 
 +
#then restart
 +
reboot
 +
 
 +
#Other part of the commands:
 +
#Check if the camera is detected
 +
libcamera-hello --list-cameras
 +
 
 +
#Open the corresponding camera
 +
libcamera-hello --camera 1
 +
libcamera-hello --camera 0
 +
 
 +
#Taking Pictures
 +
libcamera-jpeg -o test.jpg
 +
#You can add --camera to specify the camera
 +
</syntaxhighlight>
 +
 
 +
More instructions [https://www.raspberrypi.com/documentation/accessories/camera.html#libcamera-hello click me]
 +
<br>
 +
*HDMI1 is disabled if you use DSI interfaces for displaying, even if you just compile the corresponding files without connecting to the DSI screen, please note it
 +
*Any connection of two HDMI ports can output images, not limited to which HDMI port, if two HDMI screens are connected, only HDMI0 has image output
 +
*If you want to enable both HDMI, please delete the dt-blob.bin file with the following command:
 
  sudo rm -rf /boot/dt-blob.bin
 
  sudo rm -rf /boot/dt-blob.bin
And then turn off IO Board and reboot it.
+
*Then reboot <br>
 +
 
 +
Reference [https://www.raspberrypi.com/documentation/computers/compute-module.html Raspberry Pi Manual]
  
  
Line 161: Line 210:
  
 
===Demo codes===
 
===Demo codes===
*[https://www.waveshare.com/w/upload/4/41/CM4_dt_blob.7z Dt files]<br>
+
*[https://www.waveshare.com/w/upload/3/31/CM4_Code.zip Demo]
*[https://www.waveshare.com/w/upload/2/20/CM4_PoE_Board_Code.7z Demo codes]
 
  
 
===Software===
 
===Software===
 +
*[https://{{SERVERNAME}}/w/upload/f/f3/Rpiboot_setup.zip RPiboot_Setup]
 
*[https://{{SERVERNAME}}/w/upload/d/d7/Panasonic_SDFormatter.zip Panasonic_SDFormatter-Formatting SD card]
 
*[https://{{SERVERNAME}}/w/upload/d/d7/Panasonic_SDFormatter.zip Panasonic_SDFormatter-Formatting SD card]
 
*[https://{{SERVERNAME}}/w/upload/7/76/Win32DiskImager.zip Win32DiskImager-Writing SD card]
 
*[https://{{SERVERNAME}}/w/upload/7/76/Win32DiskImager.zip Win32DiskImager-Writing SD card]
Line 174: Line 223:
  
 
<div class="tabbertab" title="FAQ"><br />
 
<div class="tabbertab" title="FAQ"><br />
 
+
{{FAQ|What should I do if the I2C address of the RTC/FAN controller cannot be searched using i2cdetect -y 10? |
 +
a) Check whether dtparam -audio - on is blocked in /boot/config.txt <br />
 +
b) Check whether the /boot/dt-blob.bin file exists, if it cannot be used, delete it;|||}}
  
 
</div>
 
</div>

Revision as of 02:56, 31 March 2022

CM4-IO-BASE-A
CM4-IO-BASE-A-1.jpg
Compute Module 4


Mini Base Board, Composite Breakout Board for Developing with Raspberry Pi CM4 / CM4L
{{{name2}}}

{{{name3}}}

{{{name4}}}

{{{name5}}}

Overview

Mini Base Board (A) Designed For Raspberry Pi Compute Module 4

Note

1: It is forbidden to unplug and plug any equipment other than USB and HDMI when power is on
2: FAN fans only support 5V fans. 12V is not supported. Confirm the fan voltage before connecting. This version of the fan does not have a controller and cannot be adjusted in speed.
3: The DSI display interface is the DSI0 interface, and the DSI1 display interface is not connected.
4: Type C interface can be used for power supply or USB SLAVE interface for burning image.
5: In order to ensure the normal power supply of CM4, please do not connect other devices when using the Type C interface to burn the image.
6: When CM4 is in normal use, it needs to provide 5V 2A power supply for CM4. Otherwise, problems such as automatic shutdown, frequency reduction, etc. 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 screws.
8: The module does not have any protection, please do not short-circuit the power supply.
9: USB2.0 is closed by default, if you need to open it, you need to add dtoverlay=dwc2,dr_mode=host
10: If you want to use HDMI1 alone, you can purchase it separately if you need to use it HDMI Adapter
11: Both USB 3/4 and HDMI1 need to be used, you can use adapter board to connect it out
12: This expansion board does not support the POE function.
13: M.2 interface power supply is limited to 1.5A, if it causes problems such as slowing down of solid state or other equipment, it is recommended to buy version B

Dimension

CM4-IO-BASE-A
CM4-IO-BASE-A-details-size.jpg
Compute_Module 4 Core board
Compute Module 4 IO Board 5.png

What's on board

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


No. Component Description
1 CM4 connector Suitable for all versions of Compute Module 4
2 DC power supply/programming interface 5V/2.5A power supply, also can be used as eMMC programming interface
3 DISP Interface MIPI DSI Display interface
4 FAN Interface For connecting cooling fan, allows speed adjustment and measuremen, only support 5V fan.
5 CAM Interface Dual MIPI CSI camera interface
6 HDMI0 Interface HDMI Interface,Support 4K 30fps output
7 USB 2.0 Interface 2-channel USB 2.0 Interface, for connecting sorts of USB devices
8 Gigabit Ethernet Gigabit Ethernet RJ45 connector, with 10 / 100 / 1000M network support
9 M.2 indicators Indicating the operating status of M.2 interface
10 ACT indicators Raspberry Pi operating status indicator
11 PWR indicators Raspberry Pi power indicator
12 BOOT selection jumper shorted: CM4 would be booted from USB-C interface
jumper opened: CM4 would be booted from eMMC or Micro SD card
13 40PIN GPIO Interface Conveniently connect various HAT modules
14 Micro SD Card interface For connecting a Micro SD card with pre-burnt image (Lite variant ONLY).
15 HDMI1 interface HDMI1 Interface,Support 4K 30fps output
16 USB 2.0 interface Can be connected through an adapter
17 FE1.1S USB HUB chip, expanding one USB port to 4x ports
18 M.2 Interface Supports sorts of NVME SSD, or communication modules with PCIE M.2 KEY-M interface



Precautions

Do not plug or unplug any device while it is powered on

Writing Image

USB2.0

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

 dtoverlay=dwc2,dr_mode=host

After restarting

If you use the latest Raspberry Pi OS (image after October 30, 2021) USB2.0 is OTG mode by default, 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 (USB cannot be recognized without adding it).
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 disks.

CM4-IO-BASE-B-1-1.png

Support some type of adapter cards by using the PCIE channel. Some types of cards cannot be driven by the official Raspberry Pi image, it needs to recompile the kernel.

FAN

The PWM pin of the FAN is connected to the GPIO18 of the CM4 board.

CSI DSI

CSI and DSI are disabled by default. When using the camera and DSI, it will occupy three I2C devices: I2C-10, I2C-11, and I2C-0.

  • Open a terminal and run the following commands:
wget https://www.waveshare.net/w/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/
 #If you want to use both cameras and DSI0
 sudo  dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-disp0-double_cam.dts
 #If you want to ue both cameras and DSI1
 sudo  dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-disp1-double_cam.dts
 #When using any DSI interface, HDMI1 will have no image output, even if you do not connect the DSI screen, as long as you compile the corresponding file, then HDMI1 will not output
  #If you need to restore, please delete the corresponding dt-blob.bin: sudo rm -rf /boot/dt-blob.bin
  # After execution, turn off the power and restart the CM4

Recording test

And then connect the cameras and DSI display
1: Please power off the IO Board first before your connection.
2: Connect the power adapter after connecting the cameras and DSI display
3: Wait a few seconds before the screen boot up.
4: If the DSI LCD cannot display, please check if you have added /boot/dt-blob.bin. If there already has the dt-blob.bin, just try to reboot.
5: The camera needs to be enabled by raspi-config, enter sudo raspi-config on the terminal, choose Interfacing Options->Camera->Yes->Finish-Yes and reboot the system

Old Version (Buster)

  • Test the Cameras:

Test camera0:

sudo raspivid -t 0 -cs 0

Test camera1:

sudo raspivid -t 0 -cs 1

New Version (Bullseye)

If you are using the latest Raspberry Pi OS (Bullseye):

libcamera-hello -t 0
or
libcamera-hello

#The new system uses dual cameras
#Remove or comment out the line camera_auto_detect=1 in config.txt
#camera_auto_detect=1

#Add the following lines:
dtoverlay=imx219,cam1
dtoverlay=imx219,cam0

#Add the corresponding line according to the camera you use, where imx219 is the camera sensor model, and there are other sensors
dtoverlay=ov5647,cam0
dtoverlay=imx219,cam0
dtoverlay=ov9281,cam0
dtoverlay=imx477,cam0

#then restart
reboot

#Other part of the commands:
#Check if the camera is detected
libcamera-hello --list-cameras

#Open the corresponding camera
libcamera-hello --camera 1
libcamera-hello --camera 0

#Taking Pictures
libcamera-jpeg -o test.jpg
#You can add --camera to specify the camera

More instructions click me

  • HDMI1 is disabled if you use DSI interfaces for displaying, even if you just compile the corresponding files without connecting to the DSI screen, please note it
  • Any connection of two HDMI ports can output images, not limited to which HDMI port, if two HDMI screens are connected, only HDMI0 has image output
  • If you want to enable both HDMI, please delete the dt-blob.bin file with the following command:
sudo rm -rf /boot/dt-blob.bin
  • Then reboot

Reference Raspberry Pi Manual




 Answer:

a) Check whether dtparam -audio - on is blocked in /boot/config.txt

b) Check whether the /boot/dt-blob.bin file exists, if it cannot be used, delete it;



Support

If you require technical support, please go to the Support page and open a ticket.
If it is a technical problem, you can contact me directly:
https://join.skype.com/invite/WI7vBbbvPf98