Contents
Revision History
- 1.00 – Initial Release
- 1.01 – Diode Oriented the Wrong Way
- 1.02 – Swapped Pins for MIDI Out
Overview
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
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 |
|
LED1-LED6 | 3mm LED |
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!