What is DVI?
The video that most folks generate using Raspberry Pi RP2xxx microcontrollers over the HSTX bus is technically not HDMI, it is Digital Visual Interface (DVI). It was designed in 1999 to give a better quality video at higher resolutions than VGA and Super VGA.
Note: Some folks generate analog VGA on RP2xxx microcontrollers.. That is not covered in this guide.
To maintain compatibility with VGA, the DVI standards mandate a "low pixel format" display mode: VGA 640x480 pixels @ 60 Hz with a pixel clock frequency of 25 MHz.
There are higher resolutions in the DVI standard up to 2560x1600 (single link).
DVI was phased out on computers around 2010 in favor of HDMI and DisplayPort.
DVI cables do not carry audio or other signals, only video. There is analog DVI but this guide is only looking at digital DVI. There are adapters to change the connector above to an HDMI connector on the market, but it's much more likely you'll find monitors with HDMI connectors.
High-Definition Multimedia Interface (HDMI) was introduced in 2003 and surpassed DVI in transmitting video to both computer displays and consumer devices. HDMI is electrically compatible with DVI video signals, and adapters allow interoperability between the two without signal conversion or loss of quality. This includes HDMI supporting a 640x480 digital mode from DVI. It is this compatibility that is utilized to display DVI video on HDMI devices (as HDMI displays, televisions, etc. are predominant in the market today).
The HDMI standard has audio lines defined for cabling, etc. But note that DVI to HDMI cables, for example, do not put audio into the HDMI cable.
As most folks have display(s)/television(s) with HDMI input. It makes it an ideal way to connect to those devices. And the DVI backwards compatibility allows for low cost devices like RP2xxx microcontrollers to generate digital DVI video.
HDMI cables typically have the plug shown under the HDMI heading above with devices having a socket as shown directly above. The cables are ubiquitous and easily obtained from many retail outlets.
The Adafruit devices capable of DVI video will have the socket above, either on the PC board (Fruit Jam) or via an HSTX to DVI adapter board.
And for Feather, Metro, and Raspberry Pi Pico boards with a HSTX Cowbell, don't forget the cable and DVI adapter:
Technically the video being generated is DVI, going over the RP2xxx HSTX port. The cabling between the female socket on the project and the display or television is an HDMI cable. The display will most likely accept it as there is backwards compatibility for digital DVI in the HDMI standard.
Many folks just call it HDMI, but note that audio is not being transmitted over the cable. There are audio inserters to add external audio but they can add cost to the process. Most projects will have a separate DAC for audio for headphones or a speaker, such as the Fruit Jam.
When the display resolution is below 640 horizontal pixels, CircuitPython will look to double or quadruple the number of pixels to get it to at least 640 so it can be displayed over HDMI per the backwards compatibility with DVI.
This guide will continue to call it DVI, but note that the cable going between the board and the display and the display itself are labeled HDMI.
Page last edited July 16, 2025
Text editor powered by tinymce.