Miroslav Nemecek's PicoVGA Brings High-Res Video to the Raspberry Pi Pico — Just Add Resistors

Designed to make video handling as simple as possible, PicoVGA includes sprite handling, high-resolution modes, and more.

Gareth Halfacree
3 years agoGaming / Displays

Developer Miroslav Nemecek has released a library designed to give the Raspberry Pi Pico a VGA video output — only needing a handful of resistors — while providing a framework around which graphical applications, including games, can be written.

"The PicoVGA library allows output from the Raspberry Pico to a VGA monitor or PAL/NTSC TV, with a focus on ease of use in technical and gaming applications," Nemecek explains of his project. "It provides 4 graphic overlay layers with transparency, nearly 30 frame buffer formats that can be freely combined with each other, making do with limited RAM memory size. The limitation of output to 8 bits also contributes to RAM saving."

"The RP2040 processor contains 264kB of RAM. This is not much for higher resolution image output and therefore RAM needs to be very sparing. In technical practice and for retro games (the processor does not have the power for more advanced games), 8-bit graphics output in R3G3B2 format (i.e. red 3 bits, green 3 bits and blue 2 bits) is fully sufficient. Using the dithering technique, interesting display results can be achieved even with 8-bit output."

PicoVGA offers impressive potential for graphical projects, including games, on the Raspberry Pi Pico. (📹: Miroslav Nemecek)

Nemecek's software isn't the only attempt to give the Raspberry Pi Pico we've seen, though most — a recent release by Robin Grosset aside — centre around the use of a dedicated carrier board. Not so PicoVGA: All you need on the hardware front, beside the Raspberry Pi Pico itself, is a handful of resistors and a suitable VGA display.

The software includes configurable resolutions up to 256x192 to 1280x960 resolution, or 1024x576 for PAL and 848x480 for NTSC interlaced displays, comes with near to 30 frame-buffer formats, various colour palettes, built-in image compression, transparency, hardware sprites, and an optional PWM audio output. It also automatically overclocks the RP2040 to boost performance at higher resolution modes, and does all its magic on the chip's second core — leaving the first free for your application.

Nemecek has written a guide to getting started with PicoVGA on his website, while the source code — along with a variety of examples, including ports of Pac-Man, Sokoban, and Tetris - can be found on his GitHub repository under a custom permissive free-software license.

Gareth Halfacree
Freelance journalist, technical author, hacker, tinkerer, erstwhile sysadmin. For hire: freelance@halfacree.co.uk.
Latest articles
Sponsored articles
Related articles
Latest articles
Read more
Related articles