Getting your Raspberry Pi device to work with an HDMI display should be easy. However, if you’re not seeing any HDMI output on your monitor, check out our list of troubleshooting tips that should help you fix the problem in no time. Go through the list and try each of these solutions until you find one that works for you.
Also read: How to Connect a Laptop Screen as External Monitor in Windows
Hardware Fixes for Raspberry Pi Monitor Not Working
When you connect a Raspberry Pi to a monitor via HDMI, several aspects could prevent the setup from working properly:
- Your Raspberry Pi’s HDMI port
- Your monitor’s HDMI port or the HDMI cable itself
- The failure of a converter, if you’re using one, like an HDMI-to-VGA converter
- The SD card
Below, you’ll find a list of suggestions to fix these problems.
Also read: How to Turn Your Raspberry Pi into a Video Conferencing Station
1. Check the Cable Connection
The first thing you should check is the HDMI cable connection between the Raspberry Pi and the monitor. You can try replacing it with another cable and see if it works, or try different HDMI sources and outputs, like other computers against other monitors.
If you have a Raspberry Pi 4, which has two HDMI ports, you could try using the other port. This particular model defaults to powering HDMI0 and shuts down HDMI1 if it doesn’t detect a monitor on that port.
2. Check SD Card
Sometimes the operating system on the SD card inside the Raspberry Pi can fail (even on new models). If that’s the case with yours, you may need to rewrite it.
To do so, you can use Raspberry Pi Imager to install the Raspberry Pi OS on your memory card. If you have the latest model, you could also try installing Windows 11 on your Raspberry Pi 4.
At the same time, be sure that the memory card is fully plugged in when you push it into the Raspberry Pi’s SD port.
Also read: How to Program an Arduino with a Raspberry Pi
3. Check the Cable First, Then Power On
Most Raspberry Pi and monitor systems only work when you have the monitor connected before powering the board – and not the other way around. That’s not a feature, although it may seem like an awful bug for someone new to Raspberry Pis.
Having a monitor connected after being powered up is called “hot-plugging.” HDMI cables have a “hot plug detect” wire on pin 1, which is the rightmost pin on the wide pin tray. You usually can’t force the Raspberry Pi to work as a “hot-pluggable” device without some software help.
4. Use a Shorter Cable
If plugging the cable in before powering up doesn’t work, then it might be an issue with the cable. Typically, the voltage from the Raspberry’s HDMI pins is much higher than the voltage from the other side of the cable. This is called a “voltage drop.”
Where does the voltage go when this happens? Whenever an electron passes through a piece of wire, it tends to leave some heat, so the missing voltage becomes heat energy. For your monitor and Raspberry Pi, that could mean some signals become undetectably faint by the time they get to the other side.
If you want to reduce the electrical energy from being wasted as heat energy, then you should choose a shorter cable – the shorter the cable, the better. If you’re ordering online, you should look for a 30cm HDMI cable. That’s usually the shortest one you’ll find anywhere.
Also read: 10 Useful Python One-Liners You Must Know
5. Check Your Monitor
What if the problem was the monitor itself? Older monitors may need stronger current from HDMI signals due to wear. Shorter cables may work, but that’s only good if the monitor can listen to weaker signals.
Just how weak of a signal can the Raspberry Pi produce? It largely depends on the model, but a good ballpark could be somewhere far less than 200mA – perhaps even a fourth of it. The Raspberry Pi 4 Model B uses a BAT54XV2T5G diode for its outputs. This diode is limited to 200mA, and the signal gets shared with all outputs, like GPIO, audio, and USB.
In contrast, HDMI compliance requirements set a maximum current of 500mA for HDMI signals.
6. Use the Sources Button on the Remote
This one’s more of a fix for folks using the Raspberry Pi on a TV. Television sets typically default to listening from the antenna port instead of the HDMI port and won’t automatically pick up HDMI output when you plug one in.
To solve this, use the “Sources” button on your remote to change the TV’s input source.
Also read: 6 of the Best Raspberry Pi Alternatives
Software Fixes for Raspberry Pi Monitor Not Working
If simple hardware solutions don’t work, then you should try dabbling with the software.
Note: if one of the fixes does not work, revert to the original settings after you’ve tried it. The worst you’d want to happen is having one “fix” cause another problem down the line.
7. Edit config.txt
The “config.txt” file is the Raspberry Pi’s version of a BIOS setting for controlling low-level drivers. You won’t find the BIOS during bootup, though. Instead, you can edit this file by removing the SD card and accessing it on a different computer. To access the file:
- Use a card reader or microSD converter, then plug it into your PC.
- DO NOT click the “Format disk” button when your computer offers to format the memory card for you. This will remove all files, including your Raspberry Pi OS. Click “Cancel” instead.
- Look for “config.txt” and open the file.
- Within the file, look for
#hdmi_safe=1
. Uncomment it by removing the#
from the front.
- Save, eject, then plug the memory card into the Raspberry Pi.
- Plug in the cable and turn it on.
If the Raspberry Pi’s monitor still doesn’t work, go back to step #1, and once you reach step #4, look for the following lines instead:
#hdmi_force_hotplug=1
#config_hdmi_boost=4
Pick one then continue to step #5. Be sure to re-comment whichever line you uncommented previously before uncommenting anything else.
Also read: 5 Questions to Help You Learn the Fundamentals of Programming
8. Turn Raspberry Pi Into a Headless Computer
If everything has failed, you’ll end up with a Raspberry Pi that’s practically locked in on itself. Pulling the plug on it once or twice shouldn’t be that bad. If you’re using a decent memory card, it’s unlikely that it’ll get corrupted, but it will be as good as a brick if you can’t use it at all.
However, you can still access it through SSH by following these steps:
- Remove the memory card and plug it into a different PC.
- Make a new file named “ssh.” This file automatically sets your Raspberry Pi into SSH mode as soon as it boots up.
- Make another file named “wpa_supplicant.conf,” which lets you set a Wi-Fi network to connect to automatically.
- Open the “wpa_supplicant.conf” file with a text editor and paste the following code:
country=US ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 network={ scan_ssid=1 ssid="" psk="" }
Tip: if you can’t use “Open with” to open the file in a text editor, you can temporarily add “.txt” at the end of the filename to associate it with Notepad. Remove that part after pasting the code.
- Change the two-letter country code in
country=US
to your own country code. You can check your two-letter country code through the ISO website.
- Type your Wi-Fi name or SSID within the quotation marks of the
ssid=""
line and your password in thepsk=""
line. Hit “Save.”
- Check everything, eject, then plug the memory card back into the Raspberry Pi.
- Once powered up, the Raspberry Pi should automatically look for your Wi-Fi SSID, try to log in with the password, and let you connect to it via SSH.
You can use an SSH client like PuTTY to log into the Raspberry Pi as long as it’s on the same Wi-Fi network as your PC.
Got any older devices that lack Wi-Fi? You could turn your Raspberry Pi into a Wi-Fi bridge to bring them online.
Frequently Asked Questions
Why do I need to remove the memory card when I can see the config.txt file in "/boot/" anyway?
While it is visible in “/boot/”, you certainly can’t save the file while the Raspberry Pi is running. It will show a warning message, telling you that you don’t have enough permission to access the file.
What's the difference between "#hdmi_force_hotplug=1" and "hdmi_force_hotplug=0"?
Truth be told, they’re the same thing. It’s probably just built in like that to follow a format, making it easier to access. You can deduce that there’s no difference between #hdmi_force_hotplug=1
and hdmi_force_hotplug=0
, as the value of hdmi-force-hotplug
can only be either 1
or 0
. You’ll have a hard time deducing that #config_hdmi_boost=4
can actually have five values (0, 1, 2, 3, and 4) instead of just two (0 and 1).
Are there any other SSH clients besides PuTTY?
Yes. KiTTY is a fork of PuTTY that has more features. Solar-PuTTY, on the other hand, looks nothing like PuTTY and lets you see all of your connections as tabs in a single interface. Meanwhile, SmarTTY looks like an IDE and lets you transfer files through SCP.
All photos and screenshots by Terenz Jomar Dela Cruz
Our latest tutorials delivered straight to your inbox