Resolutions
Widely supported resolutions are (width x height):
- 320x240 with pixel doubling and color depth 8, 16, or 32 bits per pixel
- 640x480 with color depth 1, 2, 4 or 8 bits per pixel
For a limited number of displays:
- 360x200 with pixel doubling and color depth 8, 16, or 32 bits per pixel
- 720x400 with color depth 1, 2, 4 or 8 bits per pixel
Not supported at the moment:
- 800x480 with color depth 1, 2, 4 or 8 bits per pixel
Larger resolutions and higher bit depths require more memory on the microcontroller board. The RP2040 has limited memory (264K total). The RP2350 has more (520K + PSRAM if present). RP2350 boards with PSRAM are recommended for large screens, big fonts, and/or complex graphics.
The default value, if unspecified, is 360x200 16 bits per pixel if the connected display is 1920x1080 or a multiple of it, otherwise 320x240 with 16 bits per pixel.
Output resolution support varies between the RP2040 and RP2350 microcontrollers. Per the picoDVI documentation:
RP2040
On RP2040, two output resolutions are currently supported, 640x480 and 800x480. Monochrome framebuffers (color_depth=1 or 2) must be full resolution. Color framebuffers must be half resolution (320x240 or 400x240) and pixels will be duplicated to create the signal.
RP2350
On RP2350, output resolution is either 640x480 or 720x400. Monochrome framebuffers (color_depth=1 or 2) must be full resolution. 4-bit color must also be full resolution. 8-bit color can be quarter, half or full resolution. 16-bit color and 32-bit color must be quarter or half resolution due to internal RAM limitations.
Pixel Depth
The framebuffer pixel format varies depending on color depth:
- 1 - Each bit is a pixel. Either white (1) or black (0).
- 2 - Each two bits is a pixel. Grayscale between white (0x3) and black (0x0).
- 4 - Each nibble is a pixel in RGB format. The fourth bit is ignored. (RP2350 only)
- 8 - Each byte is a pixel in RGB332 format.
- 16 - Each two bytes is a pixel in RGB565 format.
- 32 - Each four bytes is a pixel in RGB888 format. The top byte is ignored.
Note that the 720x400 and 360x200 resolutions are not supported by a majority of older or smaller displays. A display may show an error or just refuse to change to that resolution.
Page last edited December 22, 2025
Text editor powered by tinymce.