PicoVGA with Joystick Build

Raspberry Pi Pico with VGA, Sound and Joystick input

Similar projects worth following
PicoVGA01 uses a Raspberry Pi Pico to drive a VGA/TV display. PicoVGA was designed by Miroslav Nemecek.

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.


  • Raspberry Pi Pico
    • Automatic overclocking of processor
    • VGA uses the 2nd core, main program uses 1st core
  • VGA
    • 8-bit output in R:G:B 3:3:2 format (256 colors)
    • VGA progressive output up to 1280x960 resolution
    • Automatic configuration video mode timings
    • Composite sync
    • Video formats
      • 1 base layer and 3 overlay layers with transparency
      • 30 frame buffer formats: graphics, tiles, text, special
      • Colour palettes
      • Screen split into segments of different formats
      • RLE compression
      • Transparency with selectable key colour
      • Hardware sprites
      • Output layers to different color bits (color planes)
  • PWM mono audio output
    • 3.5mm stereo jack
  • Joystick connector(s)
    • JOYPAD or
    • 9-pin "Atari" Joystick
  • 99.5x69.5mm card
  • (4) 4-40 mounting holes

Software in GitHub

Software Repository

  • ProgramNameJP = JOYPAD version of the programs
    • JOYPAD has 3 more buttons than the JoyStick
  • ProgramNameJS = Atari JoyStick version of the programs
  • Non JoyStick and non-JOYPAD version of the programs

Tindie Store

View all 2 project logs

Enjoy this project?



Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates