Skip to the content
2 layers70 × 120 mmThe gameboy, the printed circuit board in 3D

A small retro handheld console built with an ESP32 for Hack Club Half-Life (Week 1).

Size
70 × 120 mm
Copper layers
2
Thickness
1.6 mm
Parts
18
Nets
32
Pads
83
Tracks, vias
219, 8
Pours
1
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
5 Oct 2026
Updated
28 Oct 2026

Overview

The gameboy is an open-source printed circuit board by rorotaggf-ctrl, from the rorotaggf-ctrl/pico-pocket-gameboy repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 70 × 120 mm with 18 parts on 32 nets, routed with 219 tracks and 8 vias.

Its parts include 9 switches, 3 connectors and 1 capacitor. It belongs with the retro computing and games boards of this library.

README

README.md

Pico Pocket Gameboy

A small retro handheld console built with an ESP32 for Hack Club Half-Life (Week 1).

I designed a custom PCB in KiCad and everything uses through-hole parts so it's super easy to solder by hand.

Features

  • CPU: ESP32 NodeMCU (USB-C, dual-core, plenty of speed)
  • Display: 1.3" IPS color display (240 x 240, ST7789)
  • Buttons: 8 clicky buttons (D-Pad, A/B, Start/Select)
  • Sound: Piezo buzzer for 8-bit beeps and game sounds
  • Power: Slide switch on the right side to turn it on/off
  • PCB: 70 x 120 mm custom PCB
  • Architecture: Hybrid codebase combining C++, pure bare-metal C, and raw Xtensa Assembly (.S)

Pinout

Everything is plugged into female pin headers so I can swap out the ESP32 or screen if something breaks.

PartPinESP32 GPIONotes
ScreenSCL / SDAGPIO 18 / GPIO 23Hardware SPI
RES / DCGPIO 4 / GPIO 2Reset & Command pins
D-PadUp / DownGPIO 32 / GPIO 33Active LOW
Left / RightGPIO 25 / GPIO 26Active LOW
ActionA / BGPIO 27 / GPIO 14Active LOW (B = Menu Return)
BuzzerPlus (+)GPIO 13PWM audio
SwitchCenter pinVINPower on/off

Bill of Materials

[!NOTE] This parts list is mirrored from Half Life.

WeekTierParts funding
Week 1Tier 1$30.00
PartWhat it's forQtyUnitTotalVendor
1.3" SPI TFT LCD (ST7789)that we can see the game1$7.87$7.87Amazon
Custom 2-Layer PCB (5 copies)Main gameboy PCB board manufacturing1$8.10$8.10JLCPCB
ESP32 USB C mit CP2102 Chip NodeMCUThe CPU1$12.25$12.25ebay
Parts subtotal———$28.22—
Tax & shipping———$0.00—
Total———$28.22—

$1.78 left of the tier's funding.

Software & Games

Coding this in VS Code with PlatformIO and the Arduino framework.

  • Hardware test (check all buttons, screen and buzzer)
  • Snake: Classic arcade snake with dynamic speed progression and persistent flash highscore saving (Preferences.h).
  • Flappy Bird: Physics-based flapping mechanics with shrinking tube gaps and highscore tracking.
  • Tetris: 4-block piece rotation, line clears, game over detection and scaling fall-speed.
  • Pong: 1-Player retro pong against an automated bot with 3 selectable difficulty levels (Leicht, Mittel, Schwer).
  • Wolfenstein 3D: Lightweight pseudo-3D DDA raycasting engine with shooting mechanics and destroyable wall blocks.
  • Space Invaders: Retro top-down space shooter written in pure C via hardware abstraction layer.
  • Breakout: Classic paddle-and-ball brick destroyer with collision physics written in pure C.
  • Lunar Lander: Vector thruster and gravity landing simulator with fuel management written in pure C.
  • Dino Run: Bare-metal endless runner written entirely in native Xtensa LX6 assembly (.S) for maximum speed and register-level execution.
  • Screensavers: 4 idle modes kicking in automatically (Starfield warp, Matrix code rain, bouncing DVD logo, bouncing RR logo) with anti-repeat randomized cycling.
  • Settings System: In-game configuration hub to set screensaver timeouts/modes, toggle audio, and wipe persistent NVS highscore banks.
  • Secret Easter Eggs: Hidden boot modes and secret chiptune riffs tucked away in the firmware—try holding different buttons on power-up or exploring the settings!

Hardware Previews & Design

Initial Concept Sketch

Original layout sketch showing the handheld form factor, placement of the 1.3" display, D-Pad, action buttons, and side switch.

gameboy_zeichnung

KiCad Schematic

Full schematic in KiCad showing the ESP32 pin headers, decoupling capacitor, passive buzzer circuit, SPI screen lines, and button pull-up configuration.

the_gameboy — Schaltplaneditor 25 10 2026 16_54_02

3D Model (Front & Components)

KiCad 3D viewer rendering displaying the component arrangement, female pin headers for the ESP32, display connector, buzzer, and tactile switches.

3D-Betrachter 25 10 2026 16_53_29

3D Model (Perspective View)

Angled 3D view showing the side-mounted power switch, through-hole solder pads, and board thickness.

3D-Betrachter 25 10 2026 16_53_06

Parts

18
QtyValueFootprintReferences
8SW_PushButton_Switch_THT:SW_PUSH_6mm_H5mmSW1, SW2, SW3, SW4, SW5, SW6, SW7, SW8
1100nFCapacitor_THT:C_Disc_D5.0mm_W2.5mm_P5.00mmC1
1BuzzerBuzzer_Beeper:Buzzer_12x9.5RM7.6BZ1
1DisplayConnector_PinSocket_2.54mm:PinSocket_1x08_P2.54mm_VerticalJ1
1ESP-linksConnector_PinSocket_2.54mm:PinSocket_1x15_P2.54mm_VerticalJ2
1ESP-rechtsConnector_PinSocket_2.54mm:PinSocket_1x15_P2.54mm_VerticalJ3
1SW_SPDTButton_Switch_THT:SW_Slide_SPDT_Angled_CK_OS102011MA1QSW9

The 14 most common of 18 parts.

Similar boards

  • 2 layers27.9 × 16.5 mmPowerSSO-24 breakout, the printed circuit board in 3D

    PowerSSO-24 breakout

    rusefi/rusefi

    rusefi - GPL internal combustion engine control unit

    18 parts1.2k
  • 2 layers42.7 × 13.7 mmStm32-mini12864, the printed circuit board in 3D

    Stm32-mini12864

    VoronDesign/Voron-Hardware

    Cool Hardware designed by the Voron Design group

    18 parts1.1kGPL-3.0
  • 2 layers41.2 × 46.6 mmThumb cluster left, the printed circuit board in 3D

    Thumb cluster left

    JesusFreke/lalboard

    A 3D-printed keyboard inspired by the DataHand

    18 parts993
  • 2 layers44 × 51.3 mm4272MAVcoder R4, the printed circuit board in 3D

    4272MAVcoder R4

    hackclub/OnBoard

    💡 Join 1,000 teenagers and make your first PCB with a $100 grant!

    18 parts915
  • 2 layers28.3 × 14.3 mmTap Photosensor PCB, the printed circuit board in 3D

    Tap Photosensor PCB

    VoronDesign/Voron-Tap

    Tap is a nozzle-based z-probe for the V2 and Trident printer designs. The entire toolhead moves to trigger an optical switch. Tap offers many advantages:

    18 parts716GPL-3.0
  • 2 layers20.3 × 15.2 mmL0 stepper driver, the printed circuit board in 3D

    L0 stepper driver

    Luos-io/luos_engine

    Open-source and real-time orchestrator for cyber-physical-systems, to easily design, test and deploy embedded applications and digital twins.

    18 parts546MIT
  • 2 layersMooltipass, the printed circuit board in 3D

    Mooltipass

    limpkin/mooltipass

    Github repository dedicated to the mooltipass project

    18 parts531
  • 2 layers42.5 × 28.8 mmC5VRX JACK DIY V2, the printed circuit board in 3D

    C5VRX JACK DIY V2

    Twotoz/C5VRX

    Ultra-minimal, zero-CPU 5.8 GHz analog FPV video receiver using ESP32-C5 Wi-Fi 6 PHY MODEM_DIAG, BitScrambler WBFM demodulation & resistor DAC CVBS

    18 parts515GPL-3.0

Questions

How big is the The gameboy PCB?

It measures 70 × 120 mm and has 2 copper layers, 1.6 mm thick.

What parts does the The gameboy use?

18 parts. 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 The gameboy KiCad files?

From the rorotaggf-ctrl/pico-pocket-gameboy repository on GitHub, at the commit this page was made from: the board is the_gameboy/the_gameboy.kicad_pcb and its schematic the_gameboy/the_gameboy.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the The gameboy 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).