Revision History

  • 1.00 – Initial Release
  • 1.01 – Diode Oriented the Wrong Way
  • 1.02 – Swapped Pins for MIDI Out


ShieldBoy is an Arduino shield based off of Trash80’s ArdunoBoy. The shield should make testing and development easier, although the plan is to eventually make an all in one unit (much the one pictured on the above link). The ArduinoBoy itself is a GameBoy GameLink to MIDI bridge that can be used with LSDJ, Nanoloop and mGB (available on above ArduinoBoy link), each of which supports various MIDI commands. mGB is particularly interesting because it understands and responds to MIDI note data, turning the GameBoy into a real-time synthesizer of sorts.

Most information can be found on the ArduinoBoy webpage. No changes were made to the core design – the layout has simply been modified to make it suitable for a shield. The current ShieldBoy EagleCAD designs are available here.


Arduino Uno R3 Front

Arduino is an open-source prototyping platform that consists of a programming framework, an IDE, and standardized development boards. The development boards compatible with ShieldBoy would be those that match the Uno I/O pin layout. For our prototype, the Duemilanove was actually used, but any of them should work. We recommend avoiding the SMD version of the Uno as it does not have a removable microntroller and that can limit possibilities for the future (like an all-in-one design that removes the need for the development board).

Many add-on capabilities of the Arduino are done using “shields” which are essentially add-on boards that mate to the development board using the headers along the sides of the board. In this way the pin headers are both structural and functional and makes switching out shields a rather trivial process. In some cases, these boards can be further stacked on top of each other to continue adding capabilities. ShieldBoy uses the shield concept (hence the name) to add all the headers, sockets, and LEDs that are part of the ArduinoBoy design. Nothing need to be done to the base development board and all the connections can be made using pin headers and directly soldered components (no need for point to point wiring).

More information about Arduino, including how to download and use the IDE can be found here

Bill of Materials

R1-R6 220 Ohm 1/4W Resistor (will vary based on type of LEDs used)
R9-R10 220 Ohm 1/4W Resistor
R7 2k Ohm 1/4W Resistor (other values may work)
R8 270 Ohm 1/4W Resistor
1N4148 Diode
S1 6mm x 6mm Tactile Switch
OPTO 6N138 Opto-Isolator IC
OPTO Socket 8P Dual Wipe Dip Socket
IN / OUT 5 position, 45 degree DIN Socket (MIDI Socket)
JP1 Shunt / Jumper
Pin Headers 40-Position Single Row Gold Pin-Strips (2.54mm Pitch)
Game Link Connector Housing 5-Position Pin Housing
Game Link Wire Connectors Crimp Pins
Game Link Cable Game Link Cable

Game Link Cable

Since finding the original receptacle to connect to the board may prove difficult, the best option is to find a game link cable and simply cut off one end. New off-brand cables, often with both the GameBoy and GameBoy Color connections, can be found online from various places. The pin-out for pairing an original DMG-001 to the ShieldBoy is as follows:

Plug Position Board Function ShieldBoy GB Header
Bottom-Left Top-Left NC
Bottom-Middle Top-Middle Serial IN (SIN) 1
Bottom-Right Top-Right Clock (SCLK) 0
Top-Left Bottom-Left Serial OUT (SOUT) 2
Top-Middle Bottom-Middle NC
Top-Right Bottom-Right Ground (GND) GND

The positions are when looking at the connector on the side of the GameBoy with the unit face-up. The angled side of the connector would be facing down. Because different cables may have different colors, it is best to use the positions above to figure out what corresponding wire goes where. The above does not include the +5V as this may require modding the GameBoy to support.

Supplying Power

Power can be supplied via USB, the DC input jack, or via the GameBoy itself. The latter may require modding the GameBoy to supply +5V over one of the unused GameLink pins. We opted to use a MintyBoost to supply power over the USB port just because it was easy and already available. Connecting the Arduino to a computer’s USB port or a USB hub should work as well. Note that when using the GameBoy to supply power, be sure to use a jumper/shunt at JP1. Also be sure NOT to use multiple power sources at the same time!

Board Layout

ShieldBoy v1.02 Board

Comments are closed.