Start here: which connection are you using?
Connection | Typical symptom | Check first |
|---|---|---|
MIPI DSI ribbon (official Touch Display, most 5–10" panels) | Backlight off, or backlight on with a black screen | Cable type and orientation, display power, |
HDMI (monitors, HDMI driver boards) | "No signal", wrong resolution, black after boot | Port used, mode forced with |
SPI on the GPIO header (small 2.4–3.5" panels) | White screen, nothing after the desktop starts | Driver and overlay supplied by the panel vendor |
Work through the section for your connection in order. Each step rules out one cause, and the early steps are the ones that fail most often.
DSI display: black screen or backlight only
1. Use the right ribbon cable for your Pi
Raspberry Pi 5 has a smaller DSI connector than earlier models, so the cable that ships with older displays does not fit it. According to Raspberry Pi's documentation:
- Raspberry Pi 4 and earlier: 15-way to 15-way flat flexible cable (FFC).
- Raspberry Pi 5: 22-way to 15-way FFC (Standard – Mini). The 22-way end is the smaller end and goes into the Pi; the larger end goes into the display.
- Touch Display 2, 10-inch, on Raspberry Pi 5: the supplied 22-way to 22-way Mini – Mini FFC.
Raspberry Pi Zero models have no DSI connector, so a DSI display cannot be used on them at all.
2. Check the cable is seated and the right way round
Open the connector's retaining clip, push the cable fully home and close the clip. On Raspberry Pi 4B and earlier the display connector is labelled DISPLAY (not CAMERA), and the metal contacts face the Ethernet and USB-A ports. A cable that is reversed, half-inserted or in the camera connector gives exactly the same symptom as a dead panel.
3. Give the display its own 5 V
The official displays are powered separately from the DSI cable:
- Original Touch Display: jumper wires from the Pi's GPIO header, black to pin 6 (GND) and red to pin 4 (5 V), or pin 2 if pin 4 is in use. You can use a micro USB supply instead, but then do not also connect the GPIO power wires.
- Touch Display 2: the supplied GPIO power cable, small end into the display's
J1port, red to pin 2 and black to pin 6.
If the backlight never comes on, power is the first suspect. Third-party panels often need a separate supply for the backlight; check the vendor's wiring diagram.
4. Don't add a dtoverlay line you don't need
Raspberry Pi OS ships with display_auto_detect=1 in /boot/firmware/config.txt, and with it the firmware loads the overlay for recognised DSI displays automatically. On a standard Raspberry Pi, the official displays therefore need no dtoverlay line. Adding one by hand, for the wrong size or the wrong port, is a common cause of a black screen.
Raspberry Pi Compute Modules are different: they don't auto-detect DSI displays, so you add the overlay yourself:
- Touch Display 2, 5-inch:
dtoverlay=vc4-kms-dsi-ili9881-5inch - Touch Display 2, 7-inch:
dtoverlay=vc4-kms-dsi-ili9881-7inch - Touch Display 2, 10-inch:
dtoverlay=vc4-kms-dsi-ili79600-10-1inch - Original 7-inch Touch Display:
dtoverlay=vc4-kms-dsi-7inch
The default is the port labelled 1; append ,dsi0 to use port 0 (for example dtoverlay=vc4-kms-dsi-7inch,dsi0). For the original display, also remove any display_auto_detect line.
5. Third-party DSI panels need their own overlay
Auto-detection only covers displays the firmware recognises. A third-party MIPI DSI panel needs a device-tree overlay that matches its controller, lane count and timing, normally supplied by the panel vendor. If the vendor's overlay targets an older kernel or another Pi model, the panel can stay black even with correct wiring. Ask for an overlay tested on your exact Pi model and OS release. Our Raspberry Pi 5 display notes and MIPI DSI display overview cover what to ask for.
HDMI display: "no signal" or the wrong resolution
1. Use the first HDMI port
On Raspberry Pi 4B and 5, the port labelled HDMI0 on the board is the first display output (HDMI-A-1 in Linux). Connect a single display there before you test anything else.
2. Old config.txt HDMI settings no longer work
Many guides still tell you to set hdmi_force_hotplug, hdmi_group and hdmi_mode in config.txt. Raspberry Pi's documentation now lists these as legacy options that "don't work with Raspberry Pi OS Bookworm and later". With the KMS graphics driver, Linux manages the whole display pipeline, including the HDMI outputs.
3. Force a mode with video= in cmdline.txt
Without a mode set, the Pi reads the display's EDID and picks a resolution. Small HDMI driver boards sometimes report an EDID that doesn't match the panel, which gives "no signal" or a cropped picture. Force the panel's native mode by adding a video= parameter to the single line in /boot/firmware/cmdline.txt, for example video=HDMI-A-1:1024x600M@60 for a 1024×600 panel at 60 Hz.
The format is video=<display>:<width>x<height>M@<refresh>. Use HDMI-A-2 for the second HDMI port and DSI-1 for a DSI or DPI display. Take the resolution and refresh rate from the panel's datasheet. Keep everything in cmdline.txt on one line.
Picture rotated or mirrored
- Desktop: Preferences > Control Centre > Screens, select the display, then set Orientation to Normal, Left, Inverted or Right.
- Console only: extend the
video=parameter, for examplevideo=DSI-1:720x1280@60,rotate=90. Usereflect_x,reflect_yorreflect_xyto mirror.
Two limits: all connected displays share the same rotate= setting, and rotate= only rotates the text console. Applications that draw directly to DRM, such as cvlc or the libcamera apps, need their own rotation option.
Touch doesn't match the picture
On the desktop, set the orientation in Control Centre and touch follows. In a non-desktop setup with a rotated display, add touch parameters to the display's overlay in config.txt: invx and invy invert an axis, swapxy swaps them, and disable_touch turns touch off. For example, dtoverlay=vc4-kms-dsi-ili9881-7inch,invx,invy inverts both axes on a 7-inch Touch Display 2.
For the original 7-inch display, remove display_auto_detect=1 when you add a touch overlay this way. Raspberry Pi notes that rotating touch in the device tree can conflict with your input library, so rotate touch events in the library or desktop where you can.
Screen goes black after ten minutes
That is screen blanking, not a fault. When it is on, Raspberry Pi OS blanks the screen after 600 seconds of inactivity. Turn it off in Control Centre (Screen Blanking toggle) or with sudo raspi-config > 2 Display Options > D2 Screen Blanking. For a text console, add consoleblank=0 to cmdline.txt to never blank.
When it is the panel, not the Pi
If the panel stays dark on a known-good Pi with the right cable, power and settings, measure the backlight supply and swap in a second panel before you rework software. For a product rather than a one-off build, choose a panel whose supplier gives you the overlay, timing and power sequence for your exact host. Our display interface comparison explains when DSI or HDMI is the better choice for a Raspberry Pi design.
Frequently asked questions
Why is my Raspberry Pi 5 display not working with the cable from my old display?
Raspberry Pi 5 has a smaller 22-way DSI connector. Displays with a 15-way connector need a 22-way to 15-way flat flexible cable, with the smaller 22-way end in the Pi.
Do I need a dtoverlay line for the official Raspberry Pi Touch Display?
Not on a standard Raspberry Pi: with display_auto_detect=1, the default in Raspberry Pi OS, the firmware loads the overlay automatically. Compute Modules don't auto-detect DSI displays, so add the overlay, for example dtoverlay=vc4-kms-dsi-ili9881-7inch, yourself.
Why doesn't hdmi_mode work any more?
hdmi_group, hdmi_mode and hdmi_force_hotplug are legacy config.txt options that don't work with Raspberry Pi OS Bookworm and later. Force a mode with video= in cmdline.txt, for example video=HDMI-A-1:1024x600M@60.
How do I stop the Raspberry Pi screen from turning off?
Turn off Screen Blanking in Control Centre or in raspi-config under 2 Display Options > D2 Screen Blanking. For a text console, add consoleblank=0 to cmdline.txt.