Raspberry PI

Fix HDMI monitor not working with Raspberry PI

With the increasing hardware variety of monitor / TV, using Raspberry PI with a different HDMI monitor or TV can lead to video issues from first boot. In these cases, both Raspberry PI OS Lite and Desktop distributions can suffer problems in showing their interfaces on screen, resulting in unusable video. This kind of problem doesn’t involves OS working state by itself (networking and SSH will work if configured from flashing phase and remotely accessed), but makes your device not usable from directly attached monitor. This happens also with different distributions installed on Raspberry PI.

In this tutorial I’m going to show you how to configure your Raspberry PI OS to start from first boot with a pre-defined resolution.

Before Changing Resolution: Check Hardware

Before starting with configuration files to manage and edit (as classic Linux geek habits), you need to check that available hardware is ok.

First test involves Raspberry PI + HDMI cable: if it is possible to you, connect them to a different HDMI monitor / TV (maybe from your friend, if you don’t have a second one). If this test is passed you can move on next paragraph. If this test fails, you could need to re-check:

  • Operating System flashing operation
  • HDMI cable quality
  • Power Supply capacity (I always suggest to use at least a power supply capable to give 2,5 / 3 A, expecially if you could use your RPI also with external devices)

Set HDMI Mode From Configuration Files

Ok, if you are here you are (quite) sure that hardware is ok.

Before going in linux configuration, please get list of supported resolutions by your HDMI monitor/TV.

In many Linux distributions (like Raspberry PI OS but also Debian, Fedora, Ubuntu, etc) HDMI video options can be set from a file named “config.txt” available in SD card boot partition. Once distribution image is flashed on micro SD Card, you will be able to explore this partition from whatever external PC (Windows, MAC or Linux).

config.txt is a simple plain text file which setup system configuration parameters which traditionally are stored using a BIOS. This is read by the GPU before the CPU and Linux are initialised. In Linux systems, this file must be edited as root.

Any changes will only take effect after you have rebooted your Raspberry Pi.

To set HDMI video resolution options you will add 2 parameters: “hdmi_group” and “hdmi_mode”. These parameters must be appended to the end of config.txt.

For example, setting resolution to 1280×720, with frequency at 60Hz and screen ratio to 16:9 (720p) will require following final rows appended to config.txt:

hdmi_group=2
hdmi_mode=85

hdmi_group and hdmi_mode Values

The hdmi_group command defines the HDMI output group to be either CEA (Consumer Electronics Association, the standard typically used by TVs) or DMT (Display Monitor Timings, the standard typically used by monitors). Possible values are:

hdmi_groupresult
0Auto-detect from EDID
1CEA
2DMT

Hdmi_mode, in conjunction with hdmi_group, defines video output settings. Hdmi_mode reults depend on hdmi_group value. Possible values for hdmi_mode are:

When hdmi_group=1:

hdmi_modeResolutionFrequencyScreen AspectNotes
1VGA (640×480)60Hz4:3
2480p60Hz4:3
3480p60Hz16:9
4720p60Hz16:9
51080i60Hz16:9
6480i60Hz4:3
7480i60Hz16:9
8240p60Hz4:3
9240p60Hz16:9
10480i60Hz4:3pixel quadrupling
11480i60Hz16:9pixel quadrupling
12240p60Hz4:3pixel quadrupling
13240p60Hz16:9pixel quadrupling
14480p60Hz4:3pixel doubling
15480p60Hz16:9pixel doubling
161080p60Hz16:9
17576p50Hz4:3
18576p50Hz16:9
19720p50Hz16:9
201080i50Hz16:9
21576i50Hz4:3
22576i50Hz16:9
23288p50Hz4:3
24288p50Hz16:9
25576i50Hz4:3pixel quadrupling
26576i50Hz16:9pixel quadrupling
27288p50Hz4:3pixel quadrupling
28288p50Hz16:9pixel quadrupling
29576p50Hz4:3pixel doubling
30576p50Hz16:9pixel doubling
311080p50Hz16:9
321080p24Hz16:9
331080p25Hz16:9
341080p30Hz16:9
35480p60Hz4:3pixel quadrupling
36480p60Hz16:9pixel quadrupling
37576p50Hz4:3pixel quadrupling
38576p50Hz16:9pixel quadrupling
391080i50Hz16:9reduced blanking
401080i100Hz16:9
41720p100Hz16:9
42576p100Hz4:3
43576p100Hz16:9
44576i100Hz4:3
45576i100Hz16:9
461080i120Hz16:9
47720p120Hz16:9
48480p120Hz4:3
49480p120Hz16:9
50480i120Hz4:3
51480i120Hz16:9
52576p200Hz4:3
53576p200Hz16:9
54576i200Hz4:3
55576i200Hz16:9
56480p240Hz4:3
57480p240Hz16:9
58480i240Hz4:3
59480i240Hz16:9
60720p24Hz16:9
61720p25Hz16:9
62720p30Hz16:9
631080p120Hz16:9
641080p100Hz16:9
65Custom
66720p25Hz64:27Pi 4
67720p30Hz64:27Pi 4
68720p50Hz64:27Pi 4
69720p60Hz64:27Pi 4
70720p100Hz64:27Pi 4
71720p120Hz64:27Pi 4
721080p24Hz64:27Pi 4
731080p25Hz64:27Pi 4
741080p30Hz64:27Pi 4
751080p50Hz64:27Pi 4
761080p60Hz64:27Pi 4
771080p100Hz64:27Pi 4
781080p120Hz64:27Pi 4
791680×72024Hz64:27Pi 4
801680×72025z64:27Pi 4
811680×72030Hz64:27Pi 4
821680×72050Hz64:27Pi 4
831680×72060Hz64:27Pi 4
841680×720100Hz64:27Pi 4
851680×720120Hz64:27Pi 4
862560×72024Hz64:27Pi 4
872560×72025Hz64:27Pi 4
882560×72030Hz64:27Pi 4
892560×72050Hz64:27Pi 4
902560×72060Hz64:27Pi 4
912560×720100Hz64:27Pi 4
922560×720120Hz64:27Pi 4
932160p24Hz16:9Pi 4
942160p25Hz16:9Pi 4
952160p30Hz16:9Pi 4
962160p50Hz16:9Pi 4
972160p60Hz16:9Pi 4
984096×216024Hz256:135Pi 4
994096×216025Hz256:135Pi 4
1004096×216030Hz256:135Pi 4
1014096×216050Hz256:135Pi 4
1024096×216060Hz256:135Pi 4
1032160p24Hz64:27Pi 4
1042160p25Hz64:27Pi 4
1052160p30Hz64:27Pi 4
1062160p50Hz64:27Pi 4
1072160p60Hz64:27Pi 4

When hdmi_group=2:

hdmi_modeResolutionFrequencyScreen AspectNotes
1640×35085Hz
2640×40085Hz16:10
3720×40085Hz
4640×48060Hz4:3
5640×48072Hz4:3
6640×48075Hz4:3
7640×48085Hz4:3
8800×60056Hz4:3
9800×60060Hz4:3
10800×60072Hz4:3
11800×60075Hz4:3
12800×60085Hz4:3
13800×600120Hz4:3
14848×48060Hz16:9
151024×76843Hz4:3incompatible with the Raspberry Pi
161024×76860Hz4:3
171024×76870Hz4:3
181024×76875Hz4:3
191024×76885Hz4:3
201024×768120Hz4:3
211152×86475Hz4:3
221280×76860Hz15:9reduced blanking
231280×76860Hz15:9
241280×76875Hz15:9
251280×76885Hz15:9
261280×768120Hz15:9reduced blanking
271280×8006016:10reduced blanking
281280×80060Hz16:10
291280×80075Hz16:10
301280×80085Hz16:10
311280×800120Hz16:10reduced blanking
321280×96060Hz4:3
331280×96085Hz4:3
341280×960120Hz4:3reduced blanking
351280×102460Hz5:4
361280×102475Hz5:4
371280×102485Hz5:4
381280×1024120Hz5:4reduced blanking
391360×76860Hz16:9
401360×768120Hz16:9reduced blanking
411400×105060Hz4:3reduced blanking
421400×105060Hz4:3
431400×105075Hz4:3
441400×105085Hz4:3
451400×1050120Hz4:3reduced blanking
461440×90060Hz16:10reduced blanking
471440×90060Hz16:10
481440×90075Hz16:10
491440×90085Hz16:10
501440×900120Hz16:10reduced blanking
511600×120060Hz4:3
521600×120065Hz4:3
531600×120070Hz4:3
541600×120075Hz4:3
551600×120085Hz4:3
561600×1200120Hz4:3reduced blanking
571680×105060Hz16:10reduced blanking
581680×105060Hz16:10
591680×105075Hz16:10
601680×105085Hz16:10
611680×1050120Hz16:10reduced blanking
621792×134460Hz4:3
631792×134475Hz4:3
641792×1344120Hz4:3reduced blanking
651856×139260Hz4:3
661856×139275Hz4:3
671856×1392120Hz4:3reduced blanking
681920×120060Hz16:10reduced blanking
691920×120060Hz16:10
701920×120075Hz16:10
711920×120085Hz16:10
721920×1200120Hz16:10reduced blanking
731920×144060Hz4:3
741920×144075Hz4:3
751920×1440120Hz4:3reduced blanking
762560×160060Hz16:10reduced blanking
772560×160060Hz16:10
782560×160075Hz16:10
792560×160085Hz16:10
802560×1600120Hz16:10reduced blanking
811366×76860Hz16:9NOT on Pi4
821920×108060Hz16:91080p
831600×90060Hz16:9reduced blanking
842048×115260Hz16:9reduced blanking
851280×72060Hz16:9720p
861366×76860Hz16:9reduced blanking

For more detailed info, please refer to Raspberry PI config.txt video documentation.

Enjoy!

peppe8o

Open source and Raspberry PI lover

Published by
peppe8o

Recent Posts

Some links in this post may be affiliate links. We may get paid if you buy something or take an action after clicking one of these, but without addictional costs for you compared to direct buying.

SPI communication between two Arduinos

In this tutorial, we will use two Arduino Uno to demonstrate the Serial Peripheral Interface…

2 weeks ago

Automatic irrigation system with Arduino and Sensors

In this tutorial, we will be making an automatic irrigation system (AIS) with Arduino and…

3 weeks ago

Beginner’s Guide to Use Python Virtual Environment with Raspberry PI (venv)

This tutorial will show you how to use Python Virtual Environment with Raspberry PI computer…

4 weeks ago

Get Betting Odds with Raspberry PI and Odds-API (free)

This tutorial will show you how to get betting odds with Raspberry PI by using…

1 month ago

Backup Raspberry PI (computer) Data with Rsync to Remote NAS

This tutorial will show you how to perform the backup of Raspberry PI (computer board)…

1 month ago

Honeygain and Raspberry PI: Earn by Sharing Internet Connection

This tutorial will show you how to install Honeygain on a Raspberry PI computer board…

1 month ago