Skip to the content
PCBKitNew board
2 layers78.7 × 55.4 mmPico vga devboard, the printed circuit board in 3D

Pico vga devboard

ifilot/picobeam1

Compact and efficient VGA text display generator designed for the Raspberry Pi Pico 2

Size
78.7 × 55.4 mm
Copper layers
2
Thickness
1.6 mm
Parts
29
Nets
67
Pads
211
Tracks, vias
509, 14
Pours
1
Routed
Yes
KiCad
KiCad 8.0 (file 20240108)
Created
6 Mar 2025
Updated
22 Mar 2025

Overview

Pico vga devboard is an open-source printed circuit board by ifilot, from the ifilot/picobeam repository on GitHub. It is a 2-layer board of 78.7 × 55.4 mm with 29 parts on 67 nets, routed with 509 tracks and 14 vias.

It is built around the BSS138. Its parts include 10 transistors, 5 resistors, 3 connectors, 1 IC and 1 switch. It belongs with the microcontroller boards and lEDs and displays boards and the RP2040 and RP2350 boards of this library.

Main components

1

README

README.md

PicoBeam: A Raspberry Pi Pico 2 based VGA Display

GitHub tag (latest SemVer) build License: GPL v3 License: CC BY-SA 4.0

This project demonstrates how to drive a VGA display using the Raspberry Pi Pico 2. The display uses a 640x480 pixel resolution with 16 colors (4-bit color depth). The Raspberry Pi Pico communicates with the display via a single 8-bit interface latch and provides debugging via UART.

Features

  • Resolution: 640 x 480 pixels
  • Builtin Font: Original Philips P2000C 12x8 bitmap font
  • Bitmapped graphics: Support for printing individual pixels to the screen
  • Color Depth: 4-bit (16 colors)
  • Refresh Rate: ~72 Hz (using a 150 MHz clock with a x5 clock divider)
  • Interface: Single 8-bit latch for display control
  • UART: For debugging and communication
  • Beeper: 1-bit beeper for simple audio feedback

[!WARNING] Do not connect this board to a CRT monitor unless you are absolutely sure that the monitor supports 72 Hz vertical sync at 640x480 resolution. Connecting this board to a CRT that does not support these specifications may cause damage to the monitor or result in display instability. Always check your CRT monitor's specifications to confirm compatibility with 72 Hz VSync at 640x480 resolution before proceeding.

How It Works

The Raspberry Pi Pico drives the display by receiving pixel data through an 8-bit latch interface, which updates the screen in real-time. By connecting the Pico to the data bus of a CPU or microcontroller, instructions can be sent to the Pico.

Compilation instructions

Toolchain

bash
sudo apt install cmake gcc-arm-none-eabi libnewlib-arm-none-eabi build-essential libstdc++-arm-none-eabi-newlib
sudo git clone https://github.com/raspberrypi/pico-sdk.git /opt/pico-sdk
sudo git -C /opt/pico-sdk submodule update --init
RUN 'export PICO_SDK_PATH=/opt/pico-sdk' | tee -a /etc/profile.d/pico-sdk.sh

Compiling

bash
mkdir build && cd build
cmake ../src
make -j

Instruction delays

The Pico requires a bit of processing time and one should be cautious not to sent the data too fast. The following timings were found to give stable results when using a simple (slow) voltage divider circuit. When connecting the Pico to your specific setup, it is recommended to perform your own calibration to find which delays provide stable results.

OperationDelay (μs)
Single characters150
Large instructions (e.g., beeper or screen clear)2000

Parts

29
QtyValueFootprintReferences
10BSS138Package_TO_SOT_SMD:SOT-23Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8, Q9, Q10
510kResistor_SMD:R_Array_Convex_4x0603RN1, RN2, RN3, RN4, RN5
4MountingHoleMountingHole:MountingHole_3.2mm_M3H1, H2, H3, H4
3330Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR4, R5, R6
110KResistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR3
1470Resistor_SMD:R_0805_2012Metric_Pad1.20x1.40mm_HandSolderR7
1CONNConnector_PinHeader_2.54mm:PinHeader_1x12_P2.54mm_VerticalJ1
1PicoMCU_RaspberryPi_and_Boards:RPi_Pico_SMD_THU1
1SW_PushButton_Switch_THT:SW_PUSH_6mmSW1
1UARTConnector_PinHeader_2.54mm:PinHeader_1x04_P2.54mm_VerticalJ3
1VGAcomponents:618015330923J2

Questions

How big is the Pico vga devboard PCB?

It measures 78.7 × 55.4 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Pico vga devboard use?

29 parts, built around the BSS138. 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 Pico vga devboard KiCad files?

From the ifilot/picobeam repository on GitHub, at the commit this page was made from: the board is pcb/pico-vga-devboard/pico-vga-devboard.kicad_pcb and its schematic pcb/pico-vga-devboard/pico-vga-devboard.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the Pico vga devboard design in my own project?

Its repository states no licence, so its author keeps all rights: ask ifilot before reusing the design.

Similar boards

  • 4 layers36 × 50.2 mmRacer, the printed circuit board in 3D

    Racer

    StuckAtPrototype/Racer

    These are structured into their own files. I could have used submodules, but decided against it.

    83 parts3.8kApache-2.0
  • 4 layers95 × 95 mmCube motherboard, the printed circuit board in 3D

    Cube motherboard

    willem-pennings/balancing-cube

    A cube that balances itself in a corner or edge using reaction wheels

    52 parts1.1kGPL-3.0
  • 2 layers54.6 × 70.9 mmBeagleLogic Cape, the printed circuit board in 3D

    BeagleLogic Cape

    abhishek-kakkar/BeagleLogic

    A Software Suite that implements a logic analyzer with the PRU on the BeagleBone / BeagleBone Black.

    22 parts479GPL-3.0
  • 2 layers44.2 × 29.3 mmI2c tiny usb, the printed circuit board in 3D

    I2c tiny usb

    harbaum/I2C-Tiny-USB

    Cheap and simple I²C to USB interface

    27 parts454
  • 2 layers21.6 × 52.3 mmPs2 pico hat, the printed circuit board in 3D

    Ps2 pico hat

    No0ne/ps2x2pico

    USB keyboard/mouse to PS/2 interface converter using a Raspberry Pi Pico

    17 parts399MIT
  • 2 layers45 × 45 mmAirCube, the printed circuit board in 3D

    AirCube

    StuckAtPrototype/AirCube

    Works standalone out of the box. Pairs with Home Assistant in minutes. Other platforms are supported through community-contributed extensions.

    61 parts379Apache-2.0
  • 4 layers74 × 104 mmBeepy, the printed circuit board in 3D

    Beepy

    sqfmi/beepy-hardware

    Beepy Hardware

    160 parts348MIT