480-503-4295

Raspberry Pi Configuration Modes – CEA vs. DMT

Application Note FAN9204

This application note will review the settings contained in the config.txt file located in a Raspberry Pi’s boot startup routine.

1. Introduction

This application note will review the settings contained in the config.txt file located in the Raspberry Pi’s boot startup routine. An indicator that the configuration file needs to be edited is if the Raspberry Pi screen goes blank a few moments after starting up. This is an indicator that the device does not recognize the display and is not applying the right settings. If you have edited the configuration file to indicate the correct resolution settings and the display still does not respond, it is possible that the display mode is incorrect. 

There are two modes that the Raspberry Pi supports. The two modes are abbreviated as:

  • CEA: Consumer Electronics Association
  • DMT: Display Monitor Timings

The CEA mode is the standard mode for displays such as TVs. The DMT mode is the standard mode of computer monitors. Choosing between the modes can be done through the tvservice commands on the Linux terminal. The commands to indicate the available modes for the display are as follows:

/opt/vc/bin/tvservice -m CEA

/opt/vc/bin/tvservice -m DMT

To check the resolution, mode and settings that are currently in use enter the tvservice command:

/opt/vc/bin/tvservice -s

 An export log is available of the processes the Raspberry Pi goes through in determining the resolution of the connected display. This can be done through terminal commands that show the EDID (Extended Display Identification Data) file of the determined display. The EDID data file is a more detailed resource for finding a display resolution compatible with the connected display. The following command will show the EDID file.

/opt/vc/bin/tvservice -d edid.dat;

/opt/vc/bin/edidparser edid.dat

The default firmware will use the EDID parser to try and identify the HDMI connected display and then will select the corresponding video mode and resolution. Through this command you will see the selection process of the parser and the alternative available modes. You will need to use a virtual connection to view the Linux kernel command line or have a view of the terminal. 

Choose a mode that is the closest to the screen resolution specified on your displays data sheet. The tvservice command will offer the available resolutions for the display and the corresponding refresh rate. A previous application note further explains how to set the DMT mode resolution. In a similar process the CEA mode can be set to define the display resolution. This is done by adding the following settings in the config.txt file located in the boot file of the Raspberry Pi. The following example would be for an 800×480 resolution display (E70RC-FW850-R). 

hdmi_group=1

hdmi_mode=65 #65 is for custom modes

hdmi_cvt=800 480 60 6 1 0 0                                                    

The hdmi_cvt parameter requires the following information about the display.

hdmi_cvt=

      width: width of display in pixels

    height: height of display in pixels

    FR: frame rate in Hz

    aspect: aspect ratio

    (1: 4/3, 2: 14/9, 3: 16/9, 4: 5/4, 5: 16/10, 6: 15/9)

    margins: 0=margins disabled, 1=margins enabled

    interlace: 0=progressive, 1=interlaced

    rb: 0=normal, 1=reduced blanking

After the config.txt file is edited and saved, the Raspberry Pi can be rebooted into the new configuration mode and should display in the correct dimensions. If the display is not recognized after these changes have been made there are a few additional changes to consider. The first would be to boost the HDMI signal through the following command. Certain HDMI cables can occasionally be unreliable when the Linux kernel is identifying the display mode.

config_hdmi_boost=11 

In some cases, the custom HDMI mode “hdmi_cvt” function does not work for the first group of CEA displays. To customize the parameters to fit the display you will pick the closest CEA mode and alter the overscan and framebuffer values. For example, the 480×800 display has a default CEA mode closest to mode 3 which has a resolution of 480×853. This mode can be chosen and adjusted using the overscan parameters to add or remove pixels from the edges to fit the display.

hdmi_group=1                    #CEA group 1

hdmi_mode=3                     #480x853

disable_overscan=1              #remove default overscan values

overscan_right=26               #remove overflow pixels right

overscan_left=26                #remove overflow pixels left

The negative overscan parameters that are used to remove black borders will often not affect the display when using the HDMI interface. To remove the black borders around the edges of the display you can increase the frame buffer parameters in the config.txt file.

framebuffer_width=480

framebuffer_height=800

This will force the Raspberry Pi to define a frame buffer and resolution of 480×800. The true frame buffer value that the Raspberry Pi uses is the resolution combined with the defined or undefined overscan values. You can increase the framebuffer width and height values to force a negative overscan value which will remove the black borders around the display.

Different combinations of adjustments and modes can be tried to find the perfect match for your display. More information on the functions explained in this document and others are available on the Raspberry Pi website in their documentation section. For any questions or additional help in setting up your display please visit www.FocusLCDs.com.

DISCLAIMER

Buyers and others who are developing systems that incorporate FocusLCDs products (collectively, “Designers”) understand and agree that Designers remain responsible for using their independent analysis, evaluation and judgment in designing their applications and that Designers have full and exclusive responsibility to assure the safety of Designers’ applications and compliance of their applications (and of all FocusLCDs products used in or for Designers’ applications) with all applicable regulations, laws and other applicable requirements.

Designer represents that, with respect to their applications, Designer has all the necessary expertise to create and implement safeguards that:

(1)     anticipate dangerous consequences of failures

(2)     monitor failures and their consequences, and

(3)     lessen the likelihood of failures that might cause harm and take appropriate actions.

Designer agrees that prior to using or distributing any applications that include FocusLCDs products, Designer will thoroughly test such applications and the functionality of such FocusLCDs products as used in such applications.