![]() |
PicoVGA
1.2-cmake
VGA/TV display on Raspberry Pico
|
This is a fork of the original PicoVGA project by Miroslav Nemecek (Panda). 38@s eznam .cz
Changes in this fork:
The PicoVGA library enables the Raspberry Pi Pico output to VGA or PAL/NTSC TVs. It is great for retro-inspired computing projects like pixel-art games, emulators, and interfacing with homebrew computers. The library provides one base layer plus three overlays with transparency and supports nearly 30 framebuffer formats that can be freely combined – all while keeping RAM use low.
On the RP2040 (264 KB RAM) and the RP2350 (520 KB RAM), limited RAM makes high-resolution framebuffers impractical. PicoVGA embraces those constraints by targeting 8-bit R3G3B2 color, tile/text formats, and layered sprites to deliver crisp, retro visuals with a small memory footprint and deterministic timing.
The library auto-detects the MCU via the Pico SDK configuration. In CMake, set PICO_BOARD
to your actual board (e.g., pico
, pico_w
, or an RP2350 board such as pimoroni_pga2350
). No code changes required.
To learn about installing and building the library and the examples, check out the *Getting Started section in this documentation.
The library includes a comprehensive set of examples that demonstrate many of the library features:
To try out the examples, take 8 resistors and connect them to outputs GP0 to GP7 and the RGB connector of a VGA or SCART TV. Then, connect HSync (CSync) to GP8, headphones to GP19, and load the demo program via USB. If keyboard control is needed, a serial terminal program can be used, but most programs work without a keyboard.
For more information on connecting the Pico to a VGA display, check out the Connections documentation section.
The tools
folder contains the support programs used to prepare images, palettes, and sounds for use with the PicoVGA library.
The PicoVGA library source code and the PicoVGA library sample programs are freely available for further use and modifications. This does not apply to certain graphics and sounds (such as the sounds in Pac-Man) and scene definitions in Sokoban, as these are subject to third party copyrights and may be subject to different distribution terms.
You can get help with this library using the Issues tab in the original PicoVGA project. For issues related to this fork of the library, please use the Issues tab for PicoVGA-cmake.
How to inform about found defects: