Fix HDMI monitor not working with Raspberry PI

4.2
(15)

Last Updated on 6th February 2022 by peppe8o

Raspberry PI 4 model B image

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!

How useful was this post?

Click on a star to rate it anonymously!

Average rating 4.2 / 5. Vote count: 15

No votes so far! Be the first to rate this post.

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?