Raspberry Pi Display Issues

Changing display settings

Editing display settings involve editing /boot/config.txt file but on recent version of NanoDLP it become much easier as you can do it by going to:

System menu > Tools page > Edit Raspberry Pi Settings

For more information on available display settings on config.txt visit Raspberry Pi config.txt video section.

Display is rotated / flipped

Add one of lines below based on the issue, then reboot

# Normal
display_rotate=0
# 90 degrees
display_rotate=1
# 180 degrees
display_rotate=2
# 270 degrees
display_rotate=3
# horizontal flip
display_rotate=0x10000
# vertical flip
display_rotate=0x20000

Missing or extra gap over border

Blank area over display border or part of image is missing.

You probably could fix it by playing with overscan settings.

disable_overscan=1
overscan_left=0
overscan_right=0
overscan_top=0
overscan_bottom=0

Only one third of display being used or one third is visible

Probably display is monochrome but you setup it on NanoDLP as RGB display or reverse.

Display is blank or wrong picture

It means your display driver specifications are not detected correctly with Raspberry Pi EDID.

Usually a display driver manufacturer help needed to come up with correct configuration. You should contact the display seller first, if it does not help on the online Raspberry Pi display configuration sheet you can find some configuration files for popular displays.

Consider below points during your journey to come up with correct configurations.

  • Sometimes Pi 4 and Pi 3 configs could differ
  • Some items may seems unrelated but could affect HDMI output
  • Pi 4 supports two displays, you can assign separate config to each port separately. Specially useful to save memory to prevent memory allocation to empty port.

Use EDID tools to extract HDMI timing

Sometimes manufacturers are not accessible or share wrong specs, one of the way is to extract this information automatically. To do so first you need to SSH into your Raspberry Pi. Install read-edid using command below:

sudo apt install read-edid

Then by running following command you can get supported display modes.

sudo get-edid | parse-edid

As an example below you could find a sample output of the command.

This is read-edid version 3.0.2. Prepare for some fun.
Attempting to use i2c interface
No EDID on bus 0
No EDID on bus 2
No EDID on bus 3
No EDID on bus 4
1 potential busses found: 1
256-byte EDID successfully retrieved from i2c bus 1
Looks like i2c was successful. Have a good day.
Checksum Correct

Section "Monitor"
	Identifier "VX279"
	ModelName "VX279"
	VendorName "ACI"
	# Monitor Manufactured week 23 of 2015
	# EDID version 1.3
	# Digital Display
	DisplaySize 600 340
	Gamma 2.20
	Option "DPMS" "true"
	Horizsync 30-83
	VertRefresh 56-75
	# Maximum pixel clock is 150MHz
	#Not giving standard mode: 1152x864, 75Hz
	#Not giving standard mode: 1280x1024, 60Hz
	#Not giving standard mode: 1280x1024, 75Hz
	#Not giving standard mode: 1680x1050, 60Hz
	#Not giving standard mode: 1280x960, 60Hz
	#Not giving standard mode: 1440x900, 60Hz
	#Not giving standard mode: 1600x1200, 60Hz

	#Extension block found. Parsing...
	Modeline 	"Mode 11" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync 
	Modeline 	"Mode 0" 148.50 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync 
	Modeline 	"Mode 1" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
	Modeline 	"Mode 2" 74.250 1280 1390 1420 1650 720 725 730 750 +hsync +vsync
	Modeline 	"Mode 3" 27.027 720 736 798 858 480 489 495 525 -hsync -vsync
	Modeline 	"Mode 4" 25.200 640 656 752 800 480 490 492 525 -hsync -vsync
	Modeline 	"Mode 5" 74.250 1920 2448 2492 2640 1080 1082 1089 1125 +hsync +vsync interlace
	Modeline 	"Mode 6" 27.000 720 732 796 864 576 581 586 625 -hsync -vsync
	Modeline 	"Mode 7" 74.250 1920 2008 2052 2200 1080 1082 1087 1125 +hsync +vsync interlace
	Modeline 	"Mode 8" 148.500 1920 2448 2492 2640 1080 1084 1089 1125 +hsync +vsync
	Modeline 	"Mode 9" 148.500 1920 2008 2052 2200 1080 1084 1089 1125 +hsync +vsync
	Modeline 	"Mode 10" 74.250 1280 1720 1760 1980 720 725 730 750 +hsync +vsync
	Modeline 	"Mode 12" 74.25 1920 2008 2052 2200 540 542 547 562 +hsync +vsync interlace
	Modeline 	"Mode 13" 74.25 1280 1390 1430 1650 720 725 730 750 +hsync +vsync 
	Modeline 	"Mode 14" 27.00 720 736 798 858 480 489 495 525 -hsync -vsync 
	Option "PreferredMode" "Mode 11"
EndSection

Additional Resources

If your display does work strangely, the issue probably caused by wrong HDMI timing. Check out below post on how to get correct timing on Raspberry Pi.

Edit this page on GitHub