PCB (overhead view)

Making your own ArduinoBoy


Following on from ArduinoBoys and others and Scaling PDF for PCB, here’s a step by step guide to making Trash80’s ArduinoBoy, on a PCB. For a photographic guide, see ArduinoBoy build.

Obviously, you don’t have to use a PCB and you could make the ArduinoBoy using stripboard/veroboard, ProtoShield, or even on a breadboard… see at the bottom for a suggested layouts.

BTW, I assume Trash80’s moniker is a nod to the Radio Shack TRS-80?

See also



Firstly you will need a PCB. Here is a PDF of the mask, taken from DMG MAIN BOARD SCHEMATIC & CIRCUIT (+ARDUINOBOY), this post:

PCB mask (Original Image)

Mask (not mirrored)
Mask (not mirrored)

This is the view of the underside of the PCB

Mask (mirrored)
Mask (mirrored)

PCB Silk screen (original image)

PCB (overhead view)
PCB (overhead view)

PCB Alternative

Another PCB layout is detailed, in depth, here:

Note: This PCB does not incorporate GameBoy Genius’ fix.


Then you will need the following components:

  • 1 x ATmega328P-PU
  • Resistors:
    • 2 x 220 Ω
    • 1 x 270 Ω
    • 7 x 2 kΩ (2.2 kΩ are used)
    • 1 x 4.7 kΩ
  • 1 x 6N138 Opto couple
  • 2 x 57PC5F DIN sockets , although the 61NC5F is a superior DIN socket, its foot print will not fit the PCB – although it will fit the stripboard layout (I think).
  • 1 x Diode 1N914 (or any small signal diode really, i.e. 1N4148 – even a rectifier diode, i.e. 1N4001/1N4007, will do the job, if that is all you have to hand)
  • 1 x OMROM push switch (note that the PCB above does not use a push button)
  • 6 x LED (3 mm or 5 mm, various colours if desired)
  • 1 x 16 MHz crystal
  • 2 x 22 pF ceramic capacitors

GameLink Cable

You are also going to need a GameLink cable, that you are willing to butcher by:

  • cutting off the connector are one end, and either:
    • soldering directly to the PCB, or;
    • fixing a 5 socket DuPont (female) connector.

This is because the PCB does not have the solder points for a GameLink socket. A suitable cable is High Quality 1.5m 2 Player Game Link Connect cable Cord for Nintendo Gameboy For GBC GBP GB Mr25 19 dropship, £2.80+£0.90


  • 1 x 24 pin IC socket (optional, but strongly recommended, to enable the ATmega328P-PU to be removed for re-flashing in a flasher, i.e. Arduino Uno)
  • 1 x 8 pin IC socket (optional, if you don’t want to solder the opto-couplers pins)
  • 5 pin female DuPont connector
  • 40 Pin 2.54mm Male PCB Single Row Header Strip Connector


The original schematic by Trash80, from Arduinoboy/Schematic/, is this:


and you should ensure that you incorporate GameBoy Genius’ fix:


The above schematics assume that an Arduino [Uno] is used. However we are using a barebones setup, using an ATmega328P-PU directly.

Here is a tidier schematic, combining the two above schematics and adding the ATmega328P-PU and the crystal and capacitors, drawn in EagleCAD, from DMG MAIN BOARD SCHEMATIC & CIRCUIT (+ARDUINOBOY), this post:

(original image)


From ATmega168/328P-Arduino Pin Mapping, for reference the pinout of the ATmega328P against the Arduino pins:


PCB Method

Use this image as a guide to component placement (the resistors’ values are shown, the rest of the components should be self explanatory):

(Original image)

PCB (overhead view)
PCB (overhead view)

Always solder the smallest components first, as this allows you to use the surface (i.e. the table/bench) upon which you are constructing to push and hold the legs through the underside of the PCB.

So for example, in this order:

  1. Solder in the diode
  2. Solder in the resistors
  3. Solder in the crystal
  4. Solder in the ceramic capacitors
  5. Solder in the IC sockets
  6. Solder in the button There is no button used on this PCB
  7. Solder in the LEDs
  8. Solder in the leads to the MIDI in and out DIN sockets
  9. Place the pre-programmed ATmega328P-PU and the 6N138 in their respective sockets
  10. Lastly, solder in the GameBoy GameLink cable directly, or solder in a 5 pin male DuPont connector

DIN sockets


The DIN sockets are not soldered directly to the PCB.

The MIDI in is not grounded. From GoogleForums – Arduino Boy – Ground Hum, the reason is:

> If anyone knows how to isolate the ground on the circuit, let me know. I was
> a bit too tired and couldn’t find any information.
> My guess is the ground is looping from midi/usb->arduino->gameboy->audio
> out->back again.

One thing to not here is that. The shielding on the MIDI plug should
*not* be connected to ground on the receiving side. Doing so will
nullify the whole concept of opto-isolation that MIDI is based on.

Game Link cable

The cable can either be soldered directly to the PCB, which is rather inelegant, or use a 5 pin DuPont connector to exchange with the GameLink connector at one end of the GameLink cable


and a 5 pin row of header pins from a 40 Pin 2.54mm Male PCB Single Row Header Strip Connector, soldered to the PCB.



Connect the GB Link pins (BR, BL, TC, TR, TL), as shown in the PCB layout, using the Board column in this modified table taken from ShieldBoy


Plug Position Board Function ShieldBoy GB Header
Bottom-Left Top-Left (TL) +5/6 V +V
Bottom-Middle Top-Middle (TC) Serial IN (SIN) 1
Bottom-Right Top-Right (TR) Clock (SCLK) 0
Top-Left Bottom-Left (BL) Serial OUT (SOUT) 2
Top-Middle Bottom-Middle (BC) NC
Top-Right Bottom-Right (BR) Ground (GND) GND

Veroboard Method


Breadboard Method

The simplest design would be to follow Trash80’s layout, linked to from /Arduinoboy – Build Photos:

Components (original image):


Opto-couple and LEDs (original image):


Button (original image)


Final Layout (original image):


It should be noted that this breadboard layout does not have GameBoy Genius’ fix.

The outputs at the bottom, from left to right, are MIDI in, MIDI out and GameLink.

Protoboard Method


You will need a SparkFun ProtoShield. Trash80 uses a version 2 board, Arduino ProtoShield – Bare PCB (DEV-11665), that may be a bit difficult to find (here is one, Genuine Arduino ProtoShield KIT – AU Stock AU$14), however, the latest incarnation is here: SparkFun Arduino ProtoShield – Bare PCB (DEV-13819), $4.95

Protoshield v2

SparkFun ProtoShield v2
SparkFun ProtoShield v2

ProtoShield v4

SparkFun ProtoShield v4
SparkFun ProtoShield v4


The simplest design would be to follow Trash80’s layout, linked to from /Arduinoboy – Build Photos: Unfortunately, the layout, or rather the connection schema, isn’t particularly clear.

(original image)


(original image)


Another example is shown in Arduino forums:Arduinoboy (original image)



Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s