Main Content

PicoVGA - VGA/TV display on Raspberry Pico

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. 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 264 KB 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. Output in 16 or 24 bits is not meaningful in normal practice, as the Raspberry Pico does not have enough memory or power to provide such large amounts of data in areas other than short demos. Using the dithering technique, interesting display results can be achieved even with 8-bit output.

To try out the library, in the simplest case, just take 8 resistors, connect them to outputs GP0 to GP7 and RGB connector of VGA or SCART TV, connect HSync (CSync) to GP8, headphones to GP19 and load the demo program via USB (the programs are ready compiled in the library package). If keyboard control is needed, run a console program such as begPutty, but most programs work without a keyboard.”

Link to article