Verify Power Supply Adequacy
The most common cause for a Raspberry Pi 3 Model B+ powering on but showing no video output is insufficient voltage or current. The official documentation requires a stable 5V power source capable of delivering at least 2.5 amperes. If you are using a generic USB charger, it may provide only 1A or 1.5A, which is adequate for low-load tasks but fails during the high-current draw of the boot sequence and kernel initialization.
Check for symptoms such as the red power LED blinking in a specific pattern or the green activity LED flickering irregularly. A steady red light indicates power is present, but if the board resets repeatedly, the voltage drops below the threshold needed to maintain operation. Ensure you are using the original micro-USB power cable or one of equivalent quality, as damaged wires can introduce resistance that further reduces voltage at the board level.
Inspect the SD Card and Operating System
A corrupted or improperly written SD card will result in the system hanging before the video driver loads. Even if the board appears to boot, the absence of an operating system means no graphical interface or console output will be generated. Remove the microSD card and inspect the contacts for dirt or oxidation. Clean them gently with an eraser or isopropyl alcohol if necessary.
Reflash the operating system using the Raspberry Pi Imager tool or Etcher on a separate computer. Do not simply copy files; use the imaging software to ensure the partition table and file systems are correctly structured. After flashing, eject the card safely and reinsert it into the Raspberry Pi. Watch for the green activity LED to blink rapidly, which indicates the OS is reading from the card and attempting to start services.
Check Boot Configuration Files
If you have previously modified configuration files, they might be forcing the wrong resolution or disabling HDMI output. Mount the boot partition on your computer and open config.txt. Look for lines that force HDMI modes, such as hdmi_force_hotplug=1 or specific resolution settings like hdmi_group and hdmi_mode. Comment out any custom resolution settings by adding a # at the beginning of the line to allow the system to auto-negotiate with the monitor.
Test HDMI Hardware Connections
HDMI handshake failures can occur when the monitor and the Raspberry Pi cannot agree on a signal format. This often happens with older monitors or TVs that do not support the default EDID (Extended Display Identification Data) exchange. Try using a different HDMI cable, as cheap cables may lack the necessary shielding or pins for data transmission, even if they carry power.
Connect the Raspberry Pi to a different display or a different port on the same TV. If you are using a HDMI-to-VGA adapter, these are passive devices that often fail to work without external power. Ensure you are connecting directly via HDMI if possible. Some users report success by unplugging the HDMI cable while the Pi is off, then plugging it in after the red power LED is steady, forcing a re-handshake.
Enable Serial Console Debugging
If visual output remains elusive, enable the serial console to see text-based boot logs. This requires a USB-to-TTL serial adapter connected to the GPIO pins. Specifically, connect the Ground (GND), Transmit (TX), and Receive (RX) pins. The TX pin on the Pi connects to the RX pin on the adapter, and vice versa.
In config.txt, add the line enable_uart=1. In cmdline.txt, ensure there is a console entry pointing to the serial port, typically console=serial0,115200. Use a terminal program like PuTTY or minicom on your computer to view the output. This method bypasses the graphics subsystem entirely, allowing you to read error messages about missing drivers, filesystem errors, or kernel panics that would otherwise be invisible on a black screen.
Consider Hardware Failure
After ruling out power, software, and cable issues, the HDMI port itself may be physically damaged. Inspect the port under magnification for bent pins or debris. If the port is damaged, you may need to solder a new port or use an alternative output method if available. For the Raspberry Pi 3 Model B+, HDMI is the primary video output, so physical damage often necessitates component-level repair.
Frequently Asked Questions
Why does my Raspberry Pi boot normally on one monitor but not another?
This usually indicates an HDMI handshake incompatibility between the Pi and the problematic monitor. Different displays have varying EDID profiles, and some older TVs struggle with the automatic resolution negotiation. You can try forcing a standard resolution in config.txt to match what the second monitor supports.
Can a weak USB hub cause no HDMI output?
Yes, if you are drawing significant power from USB peripherals, a poorly powered hub can starve the SoC of voltage during boot. This causes the system to reset or hang before loading the video drivers. Connect storage devices directly to the Pi’s USB ports or use a powered hub to ensure stable voltage delivery.
What should I do if the green LED stays solid and never blinks?
A solid green LED typically means the OS has loaded successfully, but the issue lies with the display output or network boot configuration. Check your config.txt for any commands that might disable the framebuffer or force a non-existent resolution. It may also indicate that the system is waiting for network boot, which can be disabled by removing networkboot=1 if present.
How do I know if my HDMI cable is faulty?
Test the cable with another device, such as a laptop or game console. If other devices show no picture either, the cable is likely defective. Additionally, try wiggling the cable while the Pi is powered on; intermittent connections can sometimes trigger brief flashes of output if the contact is loose.
Is it safe to force HDMI hotplug detection?
Adding hdmi_force_hotplug=1 to config.txt is generally safe and useful for troubleshooting. It tricks the Pi into thinking an HDMI device is always connected, which can help if the monitor is not sending proper hotplug signals. However, this may cause the Pi to output a signal to a disconnected display, potentially wasting power or causing confusion if multiple monitors are involved.