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.

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:

(Original Image)

Mask (not mirrored)
Mask (not mirrored)

This is the view of the underside of the PCB

Mask (mirrored)
Mask (mirrored)

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Ω
    • 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,  or  even a rectifier diode, i.e. 1n4007)
  • 1 x OMROM push switch
  • 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)


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 IC sockets
  5. Solder in the button
  6. Solder in the capacitors
  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

See also:



  • Description:
  • Through the MIDI adapter plate, your Arduino board or other microcontrollers can be accessed to powerful MIDI communication protocol. MIDI protocol and asynchronous serial interface has many similarities, so users can use the micro-controller UART pin to send MIDI event information. MIDI adapter plate provides MIDI – IN and MIDI – OUT connection, and MIDI THRU port. MIDI – port is light IN isolation, to prevent the ground loop. MIDI adapter plate can be installed directly like a shield at the top of the Arduino board: connect MIDI – IN/THRU to for Arduino hardware RX pin, connect MIDI – OUT to TX. It Arduino data and analog pin, power bus and the bus can transfer out. The RUN/PGM switch can let users on the forArduino board serial port programming, without having to remove the board. Note: the three hole MIDI connector no welding on the MIDI adapter plate, but these connectors included in this product.Size: 57.4 x 53.1mmCompatible: 100% compatible arduino




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