Skip to content
Display Engineer
Troubleshooting

Raspberry Pi Display Not Working? DSI, HDMI and Touch Fixes for Pi 4 and Pi 5

A step-by-step checklist for a Raspberry Pi display that stays black, shows no picture, is rotated wrong or blanks itself: DSI cable and power, config.txt, HDMI modes on Bookworm, rotation, touch and screen blanking.

DEDisplay Engineer Applications Team · Display application engineersUpdated Oct 19, 2026

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, config.txt

HDMI (monitors, HDMI driver boards)

"No signal", wrong resolution, black after boot

Port used, mode forced with video=

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 J1 port, 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 example video=DSI-1:720x1280@60,rotate=90. Use reflect_x, reflect_y or reflect_xy to 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.

Sources

  1. Raspberry Pi documentation: Touch Display 2
  2. Raspberry Pi documentation: Touch Display (original 7-inch)
  3. Raspberry Pi documentation: config.txt (display_auto_detect)
  4. Raspberry Pi documentation: Legacy config.txt options
  5. Raspberry Pi documentation: Display configuration, rotation and screen blanking

Not sure which display fits your design?

Send us your size, interface and host processor. A display engineer replies within 12 hours with 2–3 options, datasheets and init code. Samples from 1 pc.