🛠 Brancher un écran DSI sur un CM3+
Objectives
The CM3+ exposes two MIPI DSI interfaces on the SODIMM (one 4-lane + one 2-lane, datasheet RP-008163-DS §2.2) to directly drive DSI panels without an HDMI controller — ideal for compact HMIs. As with the camera, the stack is closed: only panels known to the firmware (official 7" screen, compatible-list panels) work; a third-party MIPI panel requires an undocumented port. This tutorial enables the DSI screen, configures rotation, and sets up the framebuffer.
Hardware
- CM3+ on CMIO3 (DISPLAY1 connector = DSI 4-lane)
- Official Raspberry Pi 7" DSI screen (or a panel listed by the firmware) + FFC ribbon cable
- Generous power supply: the backlight of the 7" screen is powered from the CMIO3
Full code
# 1. Activer l'écran DSI dans config.txt
sudo tee -a /boot/firmware/config.txt <<'EOF'
display_auto_detect=1
dtoverlay=vc4-kms-dsi-7inch
# Rotation de l'écran si besoin (0/1/2/3 = 0/90/180/270°)
dtoverlay=vc4-kms-dsi-7inch,invscreen
EOF
sudo reboot
# 2. Vérifier que le contrôleur vidéo voit la dalle
modetest | head -40 # paquet libdrm-tests ; chercher l'encodeur DSI
ls /dev/dri/card0
# 3. Afficher une image de test sur le framebuffer
sudo apt install -y fbv fbi
fbv /usr/share/raspberrypi-artwork/raspipi.png
# 4. Tournage 90° du bureau complet (X11)
xrandr -o right
Expected verification
Upon reboot, the Raspberry Pi logo and then the desktop appear on the DSI panel; modetest lists a connected DSI connector with the panel's native mode (800x480 for the official screen). fbv draws the image directly to the framebuffer, without HDMI connected — the video output is indeed routed to the DSI bus.
Common errors
- Plugging the panel into DISPLAY2 thinking both connectors are identical: DISPLAY1 is the 4-lane DSI (full resolution), DISPLAY2 has only 2 lanes and does not support 4-lane panels.
- Using a generic MIPI panel from AliExpress: the closed stack only drives panels known to the firmware — check compatibility before purchasing (limitation documented in datasheet §9.3).
- FFC ribbon cable poorly inserted or reversed: total black screen with no error message; power off and reinsert with contacts facing the silk marking.
- Mixing old and new overlays: older docs mention
dtoverlay=pitftor the SPI driver; with current KMS images, you needvc4-kms-dsi-7inch. - Overloading the power supply: maximum backlight + CPU load approach the limits of the carrier board's 3V3 rail — reduce brightness if reboots occur.
Other tutorials for this board
Code examples for this board
clignotante.pyPythonbouton-gpio.pyPythoncapteur-i2c.shBashsurveillance-temperature.shBashcapteur-dht11.pyPythonservo-pwm-sysfs.shBash