Skip to the content
PCBKitNew board
2 layers152 × 106.1 mmWorkboy, the printed circuit board in 3D

Open, buildable recreation of Nintendo's unreleased Game Boy WorkBoy keyboard: firmware, clean-room ROM, DRC-clean PCB, 3D case, CI

Size
152 × 106.1 mm
Copper layers
2
Thickness
1.6 mm
Parts
135
Nets
89
Pads
430
Tracks, vias
951, 60
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
18 Aug 2026
Updated
10 Sep 2026

Overview

Workboy is an open-source printed circuit board by dmang-dev, from the dmang-dev/workboy repository on GitHub, published under the MIT licence. It is a 2-layer board of 152 × 106.1 mm with 135 parts on 89 nets, routed with 951 tracks and 60 vias.

It is built around the ATMEGA328P-AU, 1N4148W and SS14. Its parts include 57 diodes, 53 switches, 11 resistors, 6 capacitors and 3 connectors. It belongs with the retro computing and games and keyboards and input boards and the AVR (ATmega, ATtiny) boards of this library.

Main components

3

README

README.md

WorkBoy — a modern, buildable recreation

An open recreation of Nintendo's unreleased Game Boy WorkBoy keyboard accessory (Source R&D / Fabtek / Montague‑Weston, 1992): a QWERTY keyboard that plugs into the Game Boy Link Port and turns the console into a PDA, plus a software cartridge.

This repo contains a complete, buildable and CI‑verified design — firmware, a clean‑room ROM, a DRC‑clean PCB, a 3D‑printed case, and an assembly‑ready BOM.

Status: python tests/run_ci.py is green — 16 protocol checks + ROM, firmware, and case builds. The PCB autoroutes to 0 DRC violations.

What's here

PathWhat
BUILD_PLAN.mdthe full engineering plan (start here)
WORKBOY_PROTOCOL.mdthe link‑port byte protocol + scan‑code table
layout/single source of truth for the 53‑key layout (keymap.py)
firmware/ATmega328P keyboard firmware (PlatformIO / avr‑gcc)
rom/clean‑room GBDK cartridge: notepad, clock, calculator, phone book
kicad/netlist, placed+routed board, Gerbers, CPL — see PCB_README.md
case/parametric enclosure (OpenSCAD + build123d)
tests/protocol_sim.py + run_ci.py; CI in .github/workflows/

Build & test

sh
python tests/run_ci.py     # runs every check whose toolchain is installed

Toolchains: GBDK‑2020 (ROM), PlatformIO + avr‑gcc (firmware), build123d (case), KiCad 10 + Freerouting (PCB). See BUILD_PLAN.md and kicad/PCB_README.md for the full pipelines.

How it works (one paragraph)

The Game Boy is the serial master on the link port; the WorkBoy keyboard is a passive slave that returns one scan‑code byte per poll. So the "custom PCB" is a small 5 V ATmega328P keyboard‑matrix controller that speaks the documented WorkBoy serial protocol — no level shifter needed. The protocol/scan‑codes were reverse‑engineered by shonumi (GBE+) and re‑verified here against the real ROM.

Console compatibility

One 5 V design covers every console that can run a Game Boy / Game Boy Color cartridge — including the GBA and GBA SP, whose link port switches to 5 V when an 8‑bit cartridge is inserted. Only the cable plug varies.

WorksDoesn't
DMG‑01, Pocket, Light, Color, GBA, GBA SPGame Boy Micro (GBA‑only, can't run GB/GBC carts) · Super Game Boy (no link port)

Full table, cable choices, and why this is not split into per‑console repos: COMPATIBILITY.md.

⚠️ GBA/SP support is documented behaviour that this project has not yet verified on a bench. Measure before trusting it.

What you'll need to build one

Nothing here is exotic. Rough 2026 USD; the board is most of the cost.

Console side

ItemWhy~$
A Game Boy that runs GB/GBC cartsthe target console — see the compatibility table above—
Flash cart + microSD (EZ-Flash Junior, EverDrive GB, …)runs rom/workboy_homebrew.gb. SD-backed saves mean the phone book persists with no cart battery25–70
A cheap DMG/GBC link cable to cutthe plug end is the connector — see below5–8

The keyboard board

ItemWhy~$
Bare PCB from JLCPCB, qty 10zip up kicad/gerber/ and upload it. ~$19.60 + shipping48
Components per workboy_jlcpcb_bom.csvone 100-pc lot of each resistor value covers the run. The ATmega is 55 % of it39
~60× 6×6 mm THT tact switches (LCSC C42416249)the 53 keys + spares. ⚠️ Not C720477 — that is an SMD 4×3 mm part and will not fit2
2×3 2.54 mm pin headerthe ISP header (J2), for flashing1
M2.5 brass heat-set inserts + screwsfasten the printed clamshell10
(optional) blank tactile keycapsnicer than printed; legends are non-standard anyway6

Ordering 10 boards costs $86.50 all-in ($8.65/board) versus $59.75 for 5 — 28 % cheaper per board, because the engineering fee and shipping don't scale.

Tools

  • An ISP programmer. An Arduino Uno running the stock ArduinoISP sketch is the cheapest route and doubles as the breadboard prototype MCU (it's a 5 V ATmega328P, so it talks to the DMG link directly). A USBasp works too. ⚠️ An ST-Link will not work — it speaks SWD/JTAG/SWIM, and the ATmega needs ISP. firmware/platformio.ini already ships a commented stk500v1 block for the Arduino-as-ISP path.
  • A logic analyzer (any cheap 8-channel 24 MHz sigrok/PulseView clone, ~$10) — verifying the SPI handshake and clock edge is the single most useful bring-up check.
  • Soldering iron, solder, flux · breadboard + dupont wires · 3D printer + PETG/PLA.

The link connector — the one part with no catalog option There is no reliably-purchasable bare DMG link plug. Either cut a third-party link cable (most reliable — keep the 4 used wires SO/SI/SC/GND, and meter them before soldering: the two ends are deliberately cross-wired, so one end's SO is the other's SI), or 3D-print the plug — e.g. svender's DMG link cable plug, which uses 6 pins harvested from female USB sockets. Breakout PCBs exist but still need a cable.

Suggested order of purchase. Buy the logic analyzer and a link cable first and run the P0/P1 protocol test on a breadboard — prove the handshake before spending on the PCB. Order boards, switches and inserts only once that works.

Licence

MIT — see LICENSE. Attribution, scope, and what is deliberately not in this repo are recorded in NOTICE.

Legal

This is an independent, unofficial recreation. It is not affiliated with, endorsed by, or connected to Nintendo, Source R&D, Fabtek, or Montague‑Weston. "WorkBoy" and "Game Boy" are used descriptively to identify the device being recreated and the consoles it attaches to.

The original WorkBoy ROM is leaked, copyrighted Nintendo‑licensed code — it is not included here and must not be committed or distributed. The cartridge software in rom/ is clean‑room, written from the documented wire protocol. Use the leaked ROM only for private bench reference.

The WorkBoy trademark (USPTO 74239332, filed 1992) was abandoned in 1994 without ever registering, and both original companies are defunct — see NOTICE.

Parts

135
QtyValueFootprintReferences
531N4148WD_SOD-123D1, D2, D10, D11, D12, D13, D14, D15, D16, D17, D18, D19, D20, D21, D22, D23 +37
53TACT_6mmSW_PUSH_6mmSW1, SW2, SW10, SW11, SW12, SW13, SW14, SW15, SW16, SW17, SW18, SW19, SW20, SW21, SW22, SW23 +37
4100nFC_0402_1005MetricC1, C2, C3, C4
4MountingHole_M2.5MountingHole_2.7mm_M2.5H1, H2, H3, H4
310kR_0402_1005MetricR1, R2, R3
31kR_0402_1005MetricR7, R8, R9
3220R_0402_1005MetricR4, R5, R6
210uFC_0805_2012MetricC5, C6
25.1kR_0402_1005MetricR10, R11
2GREENLED_0805_2012MetricLED2, LED3
1ATmega328P-AUTQFP-32_7x7mm_P0.8mmU1
1GB-LINKPinHeader_1x06_P2.54mm_VerticalJ1
1ISP-2x3PinHeader_2x03_P2.54mm_VerticalJ2
1REDLED_0805_2012MetricLED1
1SS14D_SMAD54
1USB-C-16PUSB_C_Receptacle_HRO_TYPE-C-31-M-12J3

Questions

How big is the Workboy PCB?

It measures 152 × 106.1 mm and has 2 copper layers, 1.6 mm thick.

What parts does the Workboy use?

135 parts, built around the ATMEGA328P-AU, 1N4148W and SS14. 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 Workboy KiCad files?

From the dmang-dev/workboy repository on GitHub, at the commit this page was made from: the board is kicad/workboy.kicad_pcb. PCBKit opens the board in the browser, with nothing to install.

Can I use the Workboy design in my own project?

Its repository publishes it under the MIT 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 layers39.9 × 46.4 mmCrealityDryerV1, the printed circuit board in 3D

    CrealityDryerV1

    Ermakov/CrealitySpacePiAutomation

    Creality Space Pi Plus CFS mod automation (PCB and sketch for Arduino IDE)

    20 parts33
  • 2 layersHB LC Dim6PWM CV, the printed circuit board in 3D

    HB LC Dim6PWM CV

    stan23/myPCBs

    Verschiedene Platinen für HomeMatic, AskSinPP und SmartHome

    57 parts21
  • 2 layers98.8 × 55.1 mmH bridge controller, the printed circuit board in 3D

    H bridge controller

    jayanta525/dual-h-bridge

    Dual H-Bridge Controller with IRF3205 and IR2104 MOSFET Driver, and with ATMega328P-AU PWM Controller

    104 parts5MIT
  • 2 layers55 × 35 mmMini BT Pcb-328P, the printed circuit board in 3D

    Mini BT Pcb-328P

    d-diot/Mini-BT-Pcb-328P

    MySensors ATMega328P + RFM69 and NRF24 battery (AAA and CR2032) powered pcb

    54 parts3
  • 2 layers78 × 99 mmB W Master, the printed circuit board in 3D

    B W Master

    Alihk93/B-W_Master_Slave_RF

    Design, validate, and release two manufacturable PCBs that together form a one-way wireless link: a solar-powered remote node (**R_Slave**) transmits a 433.92 MHz ASK/OOK signal to a mains-powered base unit…

    80 parts
  • 2 layers140 × 30 mmFumeExtractorBoard v1, the printed circuit board in 3D

    FumeExtractorBoard v1

    lizard-electronics/Soldering_Fume_Extractor

    Portable soldering fume extractor based on an ATmega328P MCU.

    82 parts
  • 4 layers139.7 × 76.2 mmPev uvw sw, the printed circuit board in 3D

    Pev uvw sw

    MIH-pi/uvw_switch

    A three-phase motor DPDT relay switch

    86 partsMIT
  • 10 layers52.4 × 78.6 mmArduino nano clone, the printed circuit board in 3D

    Arduino nano clone

    projects-harishwa/Arduino-nano-clone

    Arduino nano PCB clone

    26 parts