Template: CM4-IO-BASE Guide
Writing Image
1、 Download newest Raspberry Pi OS image from Raspberry Pi Website.
2、 Operate according to the CM4 version you are using
- If you use Compute Module 4 Lite, you should write the image to SD card just like common Raspberry Pi.
- If your use the eMMC version, you need to connect the CM4 to PC by Micro USB cable, Download the rpiboot tools and install it, run rpiboot.exe as administrator to install drivers and startup tools.
- After the CM4 has been correctly installed on the IO board, using a jumper cap connect the BOOT pin on the IO board to the ground (GND) signal. Then use the USB Type-C cable to connect the USB Type-C interface of the IO board to your PC. The computer will recognize it as a BCMxxx device. In this case, runing the rpiboot software and the PC will automatically recognize the eMMC of the CM4 as a U disk
- Note: After installing RPiboot_Setup, there will be a rpiboot software. You need to run rpiboot software every time when you connect this device to the computer, to make the computer recognize the device as a U disk
- After the CM4 has been correctly installed on the IO board, using a jumper cap connect the BOOT pin on the IO board to the ground (GND) signal. Then use the USB Type-C cable to connect the USB Type-C interface of the IO board to your PC. The computer will recognize it as a BCMxxx device. In this case, runing the rpiboot software and the PC will automatically recognize the eMMC of the CM4 as a U disk
3、 Format SD card: You need to format the MicroSD card or the eMMC by SDFormatter.exe software.
4、 Write image: You need to write the image to Micro SD card or the eMMC by Win32DiskImager.exe software. Select the image file and click “Write”. Please DO NOT format it after formatting.
5、 Booting: For the CM4 Lite version, insert the Micro SD card into the card slot and connect the 12V power adapter. The power indicator will turn red, and the ACT will turn green and blink while booting.
For the CM4 eMMC version, you need to remove the jumper of nRPI_BOOT J2 (disable eMMC Boot) on the IO board, and then power on the IO board again.
【Note】:
If you failed to write the eMMC, please try with the following steps:
- User Windows 10 PC instead of Windows 7 or Linux. It seems that Windows 7 or Linux PC is not stable for eMMC writing.
- Check your CM4, make sure that it is the eMMC version which has one more eMMC chip compare to the LITE version.
- Note that you need to connect 12 power adapter to the Power port.
- Please change a USB cable for a try and make sure that the cable is data accessible.
- Change the USB port of the PC and try it again.
- Try to restart your PC.
- Re-connect the CM4 for a try.
- Try with other PCs.
USB2.0
In order to save power, the USB interface of the CM4 is disabled by default. If you need to open the USB interface, please add the following line to the end of the config.txt:
dtoverlay=dwc2,dr_mode=host
And then reboot the system.
RTC FAN
To enable the I2C for controling the fan and the RTC, you need to add the line "dtparam=i2c_vc=on" on thw config.txt file
RTC is connected to i2c-10 with address 0x51(7bits)
FAN is connected to i2c-10 with address 0x2f(7bits)
sudo nano /boot/config.txt
Add the following line to the end of the config.txt
dtparam=i2c_vc=on
And then comment out the line dtparam=audio=on
#dtparam=audio=on
Save the file and reboot the system
sudo reboot
RTC test
1.Download the test demo.
Open the terminal of the Raspberry Pi, enter the following command:
sudo apt-get install p7zip-full sudo wget https://www.waveshare.net/w/upload/4/42/PCF85063_code.7z 7z x PCF85063_code.7z -O./ cd PCF85063_code
2.Run the demo
C
Execute the following commands to compile and execute the test demo:
cd c sudo make clean sudo make -j 8 sudo ./main
And then you can check the running result as below:
Python
Enter the python/example directory:
cd python/example
And then run the python demo, the demo can support python2/3
# python2 sudo python main.py # python3 sudo python3 main.py
The running result as below:
FAN test
【Note】Please connect the fan first before connecting the power to the PoE Board to complete! Please do not connect the fan to the PoE Board when the board is powered on(the fan control chip is powered on,), otherwise, the EMC2301 chip will be damaged!
Open the terminal of the Raspberry Pi, enter the following command:
sudo apt-get install p7zip-full sudo wget https://www.waveshare.net/w/upload/5/56/EMC2301_code.7z 7z x EMC2301_code.7z -O./ cd EMC2301_code
C
Compile and execute the test demo:
cd c sudo make clean sudo make -j 8 sudo ./main
python
Enter the python/example directory:
cd python/example
And then run the python demo, the demo can support python2/3
# python2 sudo python main.py # python3 sudo python3 main.py
The fan will run the variable speed test in RPM mode. Pay attention to the changes of the fan's sound. The running phenomena of the python demo are the same as the C program. The terminal will output the relevant data of the fan at the same time, as shown in the picture below:
You can also directly control the fan speed by modifying the parameter of the demo.
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:
sudo apt-get install p7zip-full wget https://www.waveshare.com/w/upload/4/41/CM4_dt_blob.7z 7z x CM4_dt_blob.7z -O./CM4_dt_blob sudo chmod 777 -R CM4_dt_blob cd CM4_dt_blob/ #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
- 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
- Test the Cameras:
Test camera0:
sudo raspivid -t 0 -cs 0
Test camera1:
sudo raspivid -t 0 -cs 1
【Note】:
- 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 want to enable the HDMI1, please remove the dt-blob.bin file with the command:
sudo rm -rf /boot/dt-blob.bin
And then turn off IO Board and reboot it.