

RP2040-TestPatternGenerator VGA
A simple test pattern generator running on the RP2040 microcontroller
- Size
- 52 × 50 mm
- Copper layers
- 2
- Thickness
- 1.6 mm
- Parts
- 12
- Nets
- 34
- Pads
- 62
- Tracks, vias
- 58, 0
- Pours
- 5
- Routed
- Yes
- KiCad
- KiCad 7 (file 20221018)
- Created
- 14 Jan 2024
- Updated
- 12 Jun 2025
Overview
RP2040-TestPatternGenerator VGA is an open-source printed circuit board by nmur, from the nmur/RP2040-TestPatternGenerator repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 52 × 50 mm with 12 parts on 34 nets, routed with 58 tracks and 0 vias.
It is built around the RP2040-ZERO. Its parts include 9 resistors, 1 IC and 1 switch. It belongs with the RP2040 boards of this library.
Main components
1README
Readme.mdRP2040-TestPatternGenerator
This is a simple test pattern generator that runs on the RP2040 microcontroller. It uses the PicoVGA cmake library for outputting a 15kHz 240p RGBS signal via a VGA connector. This tool is aimed to be used for rudimentary tests for checking basic CRT TV functionality, not for accurate calibration.
Its main features are:
- Cheap: Approximately <$15 USD in parts, less if you already have some components or if you want to make a few.
- Accessible: Open source. Soldering is easy enough even for a first timer.
- Small: Roughly 2x2"/50x50mm in size.
- Fast: Boots and changes patterns instantly.
- Portable: Very low power draw, works with a powerbank.
Limitations
This program can only output colours in the RGB332 space, so each of the three colour channels (Red, Green, and Blue) are represented by 3, 3, and 2 bits, respectively. More information can be found here.
Getting Started
- Obtain all the components and assemble the device.
- Download the latest firmware.
- Hold the BOOT button on the RP2040 device and connect it to your PC. A file browser window for the device should appear.
- Drag and drop the
RP2040-TestPatternGenerator.uf2file onto the device. It should automatically close when completed.
How to Use
- Connect the device to your TV, and connect a USB-C cable for power.
- Press the connected button to cycle through patterns.
- To flash a newer firmware, follow the same firmware installation steps from the Getting Started section. Once the device is installed in an enclosure and the BOOT button is inaccessable, connect the device to your computer, hold the same button for 3 seconds and release. The device will reboot into flash mode.
Building
- Generate the make files by running CMake:
cmake .- Build the project:
makeAcknowledgements
- Miroslav Nemecek (Panda38@seznam.cz) for their PicoVGA library
- Wayne Venables (codaris) for their PicoVGA fork
- Turi Scandurra (TuriSc) for their RP2040-Button library
Parts
12| Qty | Value | Footprint | References |
|---|---|---|---|
| 3 | 1K | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R1, R4, R7 |
| 2 | 2K2 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R3, R6 |
| 2 | 470 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R5, R8 |
| 1 | 100 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R9 |
| 1 | 390 | Resistor_THT:R_Axial_DIN0207_L6.3mm_D2.5mm_P10.16mm_Horizontal | R2 |
| 1 | DE15_Receptacle_HighDensity_MountingHoles | Connector_Dsub:DSUB-15-HD_Female_Horizontal_P2.29x1.98mm_EdgePinOffset3.03mm_Housed_MountingHolesOffset4.94mm | RGBS OUT |
| 1 | SW_Push | Button_Switch_THT:SW_Tactile_SPST_Angled_PTS645Vx58-2LFS | SW1 |
| 1 | rp2040-zero | kleeb:rp2040-zero-smd | U1 |
Questions
How big is the RP2040-TestPatternGenerator VGA PCB?
It measures 52 × 50 mm and has 2 copper layers, 1.6 mm thick.
What parts does the RP2040-TestPatternGenerator VGA use?
12 parts, built around the RP2040-ZERO. The full list of its parts is on this page, with links to each part's symbol and footprint where PCBKit's library has them.
Where can I download the RP2040-TestPatternGenerator VGA KiCad files?
From the nmur/RP2040-TestPatternGenerator repository on GitHub, at the commit this page was made from: the board is sch/RP2040-TestPatternGenerator-VGA.kicad_pcb and its schematic sch/RP2040-TestPatternGenerator-VGA.kicad_sch. PCBKit opens the board in the browser, with nothing to install.
Can I use the RP2040-TestPatternGenerator VGA design in my own project?
Its repository publishes it under the GPL-3.0 licence: you may reuse it on that licence's terms (keep the author's notice, and for a copyleft licence share your changes alike).
Similar boards
- 2 layers132.3 × 94.9 mm

- 2 layers321 × 92.3 mm

- 2 layers255.9 × 99.3 mm

Zerosprey42
beekeeb/zerosprey42
Zerosprey42 Keyboard is a wired, beginner friendly, choc hotswap, MonoBlockSplit (Unibody), column-staggered, DIY mechanical keyboard.
96 parts140 - 2 layers146.3 × 69.5 mm

- 2 layers54 × 64 mm

DonConIOmini
ravinrabbid/DonCon2040
RP2040 based firmware and hardware for DIY Taiko no Tatsujin Drum Controllers
96 parts66MIT - 2 layers120 × 40 mm

Buinchiez40
ChrisChrisLoLo/bunchiez40
A pocket keyboard that makes use of mouse switches to achieve a miniscule size
90 parts56GPL-3.0 - 2 layers305.2 × 76.2 mm

- 4 layers25 × 59 mm
