Skip to the content
2 layers39.5 × 30.5 mmVC Adapter, the printed circuit board in 3D

Firmware and PCB for GB to 3DS communication

Size
39.5 × 30.5 mm
Copper layers
2
Thickness
1.6 mm
Parts
10
Nets
22
Pads
61
Tracks, vias
52, 0
Pours
4
Routed
Yes
KiCad
KiCad 10.0 (file 20260206)
Created
15 Oct 2026
Updated
19 Oct 2026

Overview

VC Adapter is an open-source printed circuit board by Gr3nSkyDragon, from the Gr3nSkyDragon/VC-Adapter repository on GitHub, published under the GPL-3.0 licence. It is a 2-layer board of 39.5 × 30.5 mm with 10 parts on 22 nets, routed with 52 tracks and 0 vias.

It is built around the BOB-12009. Its parts include 2 ICs, 1 diode and 1 connector. It belongs with the interfaces and adapters boards and the ESP32 boards of this library.

Main components

1

README

VC-Adapter-DIY/README.md

VC-Adapter-DIY

Proof of concept. The PCB is unfinished and has not been fabricated or tested. The circuit itself has been proven on a breadboard (see below); the board layout is a work in progress.

A KiCad 10 project for the VC-Adapter: a Seeed XIAO ESP32-S3 plugged straight into a GBA, GBC or Game Boy's link port, with no GB-Link (Pico) and no PC. It runs firmware 1.9 (beta), the VC-Adapter board build of ../firmware/esp32-uds-bridge, which clocks the cartridge itself and trades with a 3DS's Virtual Console Pokemon games over the 3DS's local wireless. The Game Boy side only for now: Gen 3 (GBA) games need the board's own GBA side, which is still to come.

Circuit

PartWhat
U1Seeed XIAO ESP32-S3 (DIP)
U2SparkFun BOB-12009 bidirectional level shifter (BSS138; clones work)
J1GBA link port plug (gba_linkport/gba_linkport.pretty/GBALinkPort_Male), going straight into the console
R1, R210 kOhm each: the console sense divider on pin 1
R3, R4, R5, D1The chip enable from pin 1: R4 and R5 in series, R3 (1 kOhm) to GND, D1 clamping to 3V3

The link port's signals are 5 V when a GBA runs a Game Boy cartridge (3.3 V for a GBA game) and the ESP32's pins take 3.3 V, so the shifter's high side runs from the port's own VCC (pin 1) and follows the console; its low side runs from the XIAO's 3V3. No resistors are needed for the link signals. The pinout is the one the firmware expects (sdkconfig.vcadapter, the shared VC-Adapter / GB-Link pinout); SI and SO are the adapter's, as in the GB-Link's notation:

Plug pin (console's signal)ShifterXIAO ESP32-S3
1 (VCC)HV-
2 (SO, the console's output)HV1 / LV1D1 = GPIO2, the adapter's SI
3 (SI, the console's input)HV2 / LV2D2 = GPIO3, the adapter's SO
4 (SD)HV4 / LV4D3 = GPIO4 (unused by a Game Boy)
5 (SC, the clock)HV3 / LV3D0 = GPIO1
6 (GND), plug shieldGND (both sides)GND
-LV3V3

A plug that goes into the console has pins 2 and 3 this way round; a socket with a link cable to the console would have them the other way (the cable crosses SO and SI).

Console sense and chip enable

Both take the console's pin 1, which is 5 V with a Game Boy game, 3.3 V with a GBA game and 0 V with the console off:

  • Chip enable: pin 1 through R4 and R5 drives the ESP32's EN, held low by R3 while the console is off and clamped to the 3V3 rail by D1, so the board only runs while the console is on. The battery stays on the XIAO's BAT pads, where the XIAO's own charger keeps it charged from USB-C.
  • Console sense: R1 and R2 halve pin 1, so the firmware can tell a Game Boy game from a GBA game.

The XIAO's EN and MTCK are pads on its underside, not on its pin headers, so the board brings these two signals out and they are wired to the pads by hand.

Status

  • Breadboard (XIAO ESP32-S3, BOB-12009, a GBA link plug, wired as above): retail Pokemon Red traded with Virtual Console Blue on a 3DS through firmware 1.9, with the board on its own and with a PC watching (uds-gblink-relay --port).
  • PCB: unfinished, not fabricated. The console sense divider and the chip enable are drawn but not yet built or tested.
  • Firmware: does not read the console sense yet. Its sense input (CONFIG_UDS_LINK_PORT_SENSE_GPIO, off by default) needs an ADC pin (GPIO1 to GPIO10 on the ESP32-S3); MTCK is GPIO39, which can be read only as high or low.

Licence

MIT (LICENSE). gba_linkport is MIT from GB-Link-USB-DIY (its own LICENSE).

Parts

10
QtyValueFootprintReferences
210KResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal10K, 10K
1100Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal100
11kResistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal1K
150?Resistor_THT:R_Axial_DIN0204_L3.6mm_D1.6mm_P5.08mm_Horizontal50?
1BOB-12009BOB-12009:CONV_BOB-12009U2
1DDiode_THT:D_A-405_P7.62mm_HorizontalD1
1XIAO_ESP32_S3More Xiao Files:XIAO-ESP32-S3-DIPU1
1gba_linkportGBA connector:GBALinkPort_MaleJ1

The 9 most common of 10 parts.

Similar boards

  • 2 layers85.6 × 26 mmGame boy pico link board, the printed circuit board in 3D

    Game boy pico link board

    agtbaskara/game-boy-pico-link-board

    An Open-Source USB to Gameboy Link Cable Adapter for Raspberry Pi Pico

    6 parts51MIT
  • 2 layers70 × 90 mmShawazu gb dumper, the printed circuit board in 3D

    Shawazu gb dumper

    tihmstar/shawazu-gb-dumper-hardware

    Shawazu GB Dumper hardware

    17 parts14
  • 2 layers76.7 × 35.1 mmWeather station, the printed circuit board in 3D

    Weather station

    VincentKobz/diy-weather-station

    The goal is to build from scratch a small intelligent weather station that can be connected to IOT networks.

    14 parts2MIT
  • 2 layers60 × 30 mmGPIO circuit, the printed circuit board in 3D

    GPIO circuit

    JhouLab/Pi5WebcamRecorder

    Records MV4 AVI video files from up to 4 simultaneous USB webcams on Raspberry Pi 5

    7 parts1
  • 16 layers566.8 × 155.3 mmTotal, the printed circuit board in 3D

    Total

    michelkeijzers/fraxis

    This project's personal goal is to learn more about ESP32 with ESP-IDF programming.

    106 parts1MIT
  • 2 layers87.2 × 93.9 mmWRO RevA, the printed circuit board in 3D

    WRO RevA

    Nakashima26/WRO_FE_2026_FoxRobotics

    CETYS Mexicali WRO2026 FoxRobotics Team

    26 parts1MIT

Questions

How big is the VC Adapter PCB?

It measures 39.5 × 30.5 mm and has 2 copper layers, 1.6 mm thick.

What parts does the VC Adapter use?

10 parts, built around the BOB-12009. 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 VC Adapter KiCad files?

From the Gr3nSkyDragon/VC-Adapter repository on GitHub, at the commit this page was made from: the board is VC-Adapter-DIY/VC-Adapter.kicad_pcb and its schematic VC-Adapter-DIY/VC-Adapter.kicad_sch. PCBKit opens the board in the browser, with nothing to install.

Can I use the VC Adapter 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).