I have connected my RPi to a television using a HDMI to DVI cable, but the resolution is awful. The font is not sharp, so I need to use a lower resolution. For that, I can run a command like tvservice -e CEA\ 20.

In this answer, Jivings writes that CEA should be used for TVs where DMT is to be used for computer monitors. However, I see both modes being listed in the tvservice output. What is the exact difference and how should I decide what mode to pick?

pi@raspberrypi ~ $ tvservice -s
state 0x120016 [DVI  RGB lim 16:9], 1920x1080 @ 50Hz, interlaced
pi@raspberrypi ~ $ tvservice -m CEA
Group CEA has 6 modes:
           mode 2: 720x480 @ 60Hz 4:3, clock:27MHz progressive 
           mode 5: 1920x1080 @ 60Hz 16:9, clock:74MHz interlaced 
           mode 17: 720x576 @ 50Hz 4:3, clock:27MHz progressive 
           mode 19: 1280x720 @ 50Hz 16:9, clock:74MHz progressive 
  (native) mode 20: 1920x1080 @ 50Hz 16:9, clock:74MHz interlaced 
           mode 21: 720x576 @ 50Hz 4:3, clock:27MHz x2 interlaced 
pi@raspberrypi ~ $ tvservice -m DMT
Group DMT has 2 modes:
           mode 4: 640x480 @ 60Hz 4:3, clock:25MHz progressive
           mode 85: 1280x720 @ 60Hz 16:9, clock:74MHz progressive
  • 2
    In case you're wondering what CEA and DMT stand for, I found that CEA simply stands for the "Consumer Electronics Association", though it's referring to a timing-data extension to Extended Display Identification Data (EDID). DMT stands for Display Monitor Timing, and is part of a VESA standard, as listed here. So in short, they're different ways of specifying display timing. I don't know how to help you pick, though. :) – lindes Dec 9 '13 at 15:42
up vote 14 down vote accepted

CEA modes are intended for TV, they include plenty of interlaced and progressive modes, usually with 25/50/100Hz (PAL) or 30/60/120Hz (NTSC) frame rates and TV resolutions of 288/480/576/720/1080 scan lines. DMT modes are intended for computer monitors, therefore there are none of the interlaced modes, the resolutions are 640/720/800/1024/1280 and the frame rates are compatible with the computer monitors, something like 60/70/75/80/85/120Hz.

In your tvservice output I don't see any overlaps between CEA and DMT modes. If your TV natively supports 50Hz, it would be a bit silly to try to make it work with 60Hz DMT modes.

Take a look at https://www.raspberrypi.org/documentation/configuration/config-txt/video.md .

There, under the section "Which values are valid for my monitor?", you can see that you can generate an "edid.dat" file, and then run over it the edidparser program, which you can read and get what is the preferred resolution to choose for your setup:

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

For me it outputs, among other lines, something like:

HDMI:EDID best score mode is now DMT (39) 1360x768p @ 60 Hz with pixel clock 85 MHz (score 5188004)

Be aware that DMT modes have audio disabled AFAIK, so you would have to force the audio with the hdmi_drive=2 in config.txt (explained in the link above).

Unproved: DMT are basically DVI modes and CEA are native HDMI modes, it might be that audio works only for CEA modes.

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.