From Waveshare Wiki
Revision as of 08:44, 17 March 2022 by Waveshare-eng11 (talk | contribs) (Created page with "<div class="tabber"> <div class="tabbertab" title="Introduction"> {{infobox item| |name=CM4-DISP-BASE-2.8A |img=<div class="tabber"> <div class="tabbertab" title="CM4-DISP-BAS...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search





This product is a specially designed 2.8-inch CM4 touch screen expansion board for Raspberry Pi Compute Module 4. CM4-DISP-BASE-2.8A is a baseboard that can be used with Raspberry Pi Compute Module 4, using 5V/ 2.5A USB Type Powered by the C interface, it can be directly connected to the CM4 core board, equipped with a 2.8-inch IPS display, which can meet the operation of various versions of CM4, and supports camera and video output.


1: The display uses the DIP interface instead of the HDMI interface.
2: Please use a 5V/4A or higher power adapter.


Compute Module 4 IO Board 5,png.png

Touch Screen Expansion Board

Label Name Description
1 CM4 Connector Applies to all versions of Compute Module 4
2 CAM Interface 22PIN MIPI CSI Camera Interface
3 Power supply/burning interface 5V/2.5A power supply, can also be used as eMMC programming interface
4 USB 2.0 interface USB 2.0 interface, support various USB devices to be inserted
5 HDMI1 port Micro HDMI port, support 4K 30fps output
6 BOOT ON: CM4 USB Type C boot boot
OFF: eMMC or SD card boot boot
7 Interface Expansion Including Gigabit Ethernet, PCIE, USB and other interfaces

Optional Interface Expander Introduction

Label Name Description
1 USB 2.0 interface 3-channel USB 2.0 interface, support various USB device
2 M.2 M KEY interface Suitable for NVIE SSD, or communication module supporting PCIE M.2 interface
3 Gigabit Ethernet port RJ45 Gigabit Ethernet port, support 10 / 100 / 1000M network access
4 M.2 LED M.2 indicates the working status of the interface
5 Interface Access Extended Interface Access

Writing Image


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).
CM4 Burn EMMC 12.png


For Raspberry Pi OS Bullseye batch

  • Modify the config.txt file and append the following lines to the file:
  • Download the 2.8inch DPI LCD DTO file, unzip it and copyt the scripts to overlays directory (/boot/overlays)

For Raspberry Pi OS Bluster batch or Ubuntu

  • Remove the line: dtoverlay=vc4-fkms-V3D from the config.txt file
  • Add the following lines to the config.txt file
hdmi_timings=480 0 26 16 10 640 0 25 10 15 0 0 0 60 0 32000000 1
  • Restart your Raspberry Pi and test it

Orientation setting for Raspberry Pi OS

  • Check if KMS or FKMS driver is enabled.
    You can check if dtoverly=vc4-kms-v3d or dtoverlya=vc4-fkms-v3d are added to config.txt file
  • If the KMS/FKMS driver is enabled. You can set the orientation by the following command:
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
#Add the following line to the autostart file to rotate display, reboot is required
#0: 0 degree; 1:270 degree;2: 180 degree; 3: 90 degree
xrandr -o 1
  • If the KMS/FKMS driver is disabled, please use the following command to rotate display:
sudo nano /boot/config.txt
#Add the following line to config.txt file to rotate display, reboot is required
#0: 0 degree; 1:90 degree;2: 180 degree; 3: 270 degree

Touch to Rotate

After rotating the display, the touch position is not correct because the touch does not change with the display angle. So touch needs to be modified.

1. Install libinput.

sudo apt-get install xserver-xorg-input-libinput
If you installed Ubuntu system. The installation instructions are:
sudo apt install xserver-xorg-input-synaptics

2. Create the xorg.conf.d directory under /etc/X11/ (if the directory already exists, go directly to step 3)

sudo mkdir /etc/X11/xorg.conf.d

3. Copy the 40-libinput-conf file to the directory just created.

sudo cp /usr/share/X11/xorg.conf.d/40-libinput.conf /etc/X11/xorg.conf.d/

4. Edit the file.

sudo nano /etc/X11/xorg.conf.d/40-libinput.conf

Find the touchscreen part, add the following statement in it, and save it.

Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"

Similar to the following picture:
Touch roate.jpg
5. Restart the Raspberry Pi.

sudo reboot

Complete the above steps to perform a 90-degree rotation.

90 degree rotation: Option "CalibrationMatrix" "0 1 0 -1 0 1 0 0 1"

180 degree rotation: Option "CalibrationMatrix" "-1 0 1 0 -1 1 0 0 1"

270 degree rotation: Option "CalibrationMatrix" "0 -1 1 1 0 0 0 0 1"


The carrier board features M.2 KEY M interface for PCI-E devices like NVME SSD. SATA disk is not supported.
The device could support 2230, 2242 SSD, for some of the SSD, you may need to rebuild the kernel yourself.



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

Download script

 unzip -o -d ./Dts-2.8A
 sudo chmod 777 -R Dts-2.8A
 cd Dts-2.8A/
 sudo  dtc -I dts -O dtb -o /boot/dt-blob.bin dt-blob-cm4-singlecam-dpi28.dts

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

New Version (Bullseye)

If you are using the Bullseye branch of the system, refer to the following


#Detect camera
libcamera-hello --list-cameras

libcamera-hello  --camera 0

#Capture picture
libcamera-jpeg -o test.jpg

More instructions click me
Reference Raspberry Pi Manual


If you require technical support, please go to the Support page and open a ticket.