This is a 7-inch touch screen all-in-one kit designed for Raspberry Pi CM4. CM4-DISP-BASE-7A-BOX supports POE power supply and 7~36V DC power supply, Onboard four-way USB2.0, 7-inch touch screen, etc., the all-in-one kit is convenient for use.
Precautions for use
1: Do not plug and unplug any device except USB and HDMI when powered on.
2: If the fan needs to be replaced, please confirm the fan voltage and then power it on.
3: The USB SLAVE interface is used to burn the image and cannot be used as an OTG interface.
4: In normal use, it is necessary to provide at least a 12V 1A power supply for CM4. Otherwise, there may be problems such as automatic shutdown, frequency reduction, and so on.
5: Onboard default 4-way USB 2.0 interface.
6: POE function is not supported.
8: The screen requires a driver for working.
What's on board
|1||CM4 Connector||suitable for all variants of Compute Module 4|
|2||DC power supply interface||7~36V DC wide voltage power supply, it is recommended to use a 24W or higher power supply|
|3||CM4 Status Indicator||PWR: Raspberry Pi Power Indicator |
ACT: Raspberry Pi Working Status Indicator
|4||HDMI port||Support 4K 30fps output|
|5||RJ45 Gigabit Ethernet port||Support 10 / 100 / 1000M network access|
|6||USB2.0 interface||4x USB 2.0, for connecting sorts of USB devices|
|7||Micro SD card interface||for connecting a Micro SD card with a pre-burnt image (Lite variant ONLY)|
|8||USB SLAVE port||USB programming port|
|9||BOOT switch button||ON: CM4 will be booted from USB-C interface|
OFF: CM4 will be booted from eMMC or Micro SD card
|10||MIPI CSI interface||connected to the 5MP front camera|
|11||Isolated I2C||for controlling or reading data from devices via I2C|
|12||Isolated GPIO||for controlling or detecting devices via GPIO|
|13||Isolated RS485||can communicate through the RS485 interface|
|14||Isolated RS232||can communicate through the RS232 interface|
|15||DC power supply||7 ~ 36V DC power supply interface|
|16||RS485 termination resistor and GPIO logic level selection||RS485: connect/disconnect the 120R resistor|
GPIO: GPIO logic level selection
|17||RTC Battery Connector||supports CR1220 button cell|
|18||Touch screen interface||connected to the capacitive touch screen|
|19||Display connector||connected to the 7inch 800×480 display|
|20||M.2 M KEY||supports M.2 M KEY NVME SSD, or other communication modules using PCIe channel|
|21||Speaker interface||audio output|
|22||FAN||for connecting the cooling fan, allows speed adjustment and measurement|
|23||RTC Interrupt Pin Switch||GL-EN: CM4 power down on RTC interruption|
PI-RUN: CM4 will reboot on RTC interruption
D16: D16 pin is triggered on RTC interruption (default)
|24||System function switch||BT_DIS: Bluetooth disabled, for CM4 with antenna variant ONLY|
WIFi_DIS: WiFi disabled, for CM4 with antenna variant ONLY
WP_DIS: the boot mode switch, ONLY be used when NOT booted from eMMC or SD card
|25||FAN Power Supply Selection||select 5V (default) or 12V power to drive the fan|
|26||IO-VREF selection||set the CM4 IO logic level as 3.3V (default) or 1.8V|
|27||RS485 toggle||GPIO13/12: using ttyAMA1 device (default)|
GPIO15/14: use ttyS0 device
|28||I2C bus selection of RTC/FAN||SDA0/SCL0: I2C-10 is shared with CSI/DSI|
GPIO3/2: I2C-1 is shared with 40PIN GPIO (default)
- Write Image for Compute Module Boards eMMC version
- Wrote Image for Compute Module Boards Lite version
The USB port is disabled by default on the CM4 for saving power. If you need to use it, you need to add the following to the config.txt file:
Then reboot the CM4
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 workable. If you want to remove this error, please remove the line otg_mode=1 in [cm4] of config.txt, and add dtoverlay=dwc2, dr_mode=host (USB cannot be recognized without adding it).
Enable I2C Interface
Open a terminal and run the following commands:
sudo raspi-config Choose Interfacing Options -> I2C -> Yes.
Reboot Raspberry Pi:
- RTC: i2c-1 （0x51）
- FAN： i2c-1 (0x2F)
They are disabled by default. If you need to use the RS485 or RS232, you need to modify the config.txt:
sudo nano /boot/config.txt
And add the following lines:
Then reboot the CM4 and check if the corresponding ports were recognized.
reboot ls /dev/ttyAMA*
RS232 occupies GPIO5/GPIO4 (BCM code 4/5), device number ttyAMA1.
RS485 occupies GPIO13/GPIO12 (BCM code 13/12), device number ttyAMA2.
RS485 can be switched to GPIO15/14 for device number ttyS0.
Refer to number 27 of the Onboard Resources, and change the corresponding resistance to the corresponding position.
sudo apt-get install minicom # RS232 sudo minicom -D /dev/ttyAMA1 #RS485 sudo minicom -D /dev/ttyAMA2
The GPIO input/output interface only supports a single-mode and does not support switching. The following are the corresponding pins of the interface.
OUT CH1 GPIO17
OUT CH2 GPIO27
IN CH1 GPIO22
IN CH2 GPIO23
The module only supports 3.3V and 5V, which can be switched by jumper caps.
Screen and camera turned on
If you use the buster system, you just need to add the configuration file and reboot.
If you use the new version (bullseye) system, additional modifications are required
Load Configuration File
When using the camera and DSI, it will occupy three I2C devices: I2C-10, I2C-11, I2C-0
Execute 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 # After execution, turn off the power and restart the CM4
Old Version (Buster)
Note: On December 2, 2021, the Raspberry Pi OS for Raspberry Pi split into two branches, the Buster branch, and the Bullseye branch.
The Buster branch is a continuation of the old system and is more stable. The Bullseye branch adds some new features, uses open source libraries and new interfaces.
If you use the Buster branch system, the image can be used normally without any modification. View the first connected camera screen:
sudo raspivid -t 0 -cs 0
View the second connected camera screen:
sudo raspivid -t 0 -cs 1
New Version (Bullseye)
If you are using the Bullseye branch of the system, refer to the following:
Comment the following statements in the config.txt file (the config file is located in the root directory of the TF card, namely /boot):
Add the following statement below [all]:
After saving, restart the Raspberry Pi.
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
Add the following lines to config,txt.
dtparam=audio=on dtoverlay=audremap,pins_18_19 audio_pwm_mode=2 disable_audio_dither=1
Reboot the CM4 and check if the new play device is recognized by the command aplay -l.
After it is turned on, it can be recognized under the audio selection. There may be a problem that the default sound card is not a GPIO sound card.
- Note: Please connect the fan before turning on the power of the expansion board and then complete the test. Please do not connect the fan after the expansion board has been powered on, otherwise the chip will be burned!
I2C-1 is used by default
RTC (PCF85063a) on i2c-1, address is 0x51 (7-bit address)
FAN (EMC2301) on i2c-1, address is 0x2f (7-bit address)
sudo nano /boot/config.txt #Add the following lines at the end dtparam=i2c_vc=on dtoverlay=i2c-rtc,pcf85063a,i2c_csi_dsi #Add # in front of dtparam=audio=on #dtparam=audio=on #Save and exit, restart sudo reboot
How to use Hwclock
Synchronize system clock to hardware clock
sudo hwclock -w
Synchronize hardware clock to system clock
sudo hwclock -s #The network or the NTP needs to be closed, otherwise it will be changed back.
Set the hardware clock time:
sudo hwclock --set --date="9/8/2021 16:45:05"
View hardware clock
sudo hwclock -r
Display version information
sudo hwclock --verbose
When powered on, the fan will spin for 1 second, then stop for 2 seconds, this is normal.
wget https://files.waveshare.com/upload/b/b9/EMC2301_i2c1_code.zip unzip -o EMC2301_i2c1_code.zip -d ./EMC2301_i2c1_code sudo chmod 777 -R EMC2301_i2c1_code cd EMC2301_i2c1_code/ #C cd c/ make sudo ./main #python cd python/examples sudo python main.py
- Raspberry Pi Compute Module 4 IO Board Brief
- Raspberry Pi Compute Module 4 IO Board Datasheet
- CSI Camera Reference
- DSI Display Reference