The GameBoy. Most likely you owned one back in your childhood. And even if you didn't, most likely you played with your best friend's GameBoy, or maybe you owned its closest competitor, the Sega Game Gear or Nomad. Marvelous little gaming devices, but now that you are all grown up, have you given any thought to what you are going to do with it now? Keep it in the attic to dig out and show your kids what gaming was like in the 20th century? Sell it to a collector? Relive gaming memories by going back through the Legend of Zelda: Link's Awakening for the umpteenth bazillon time?

Did you ever think about turning it into a musical instrument?

Timothy "trash80" Lamb is a chiptune composer currently living in Los Angeles, California. A chiptune composer is a person who uses the sound generator ICs (integrated circuits) found inside video game consoles and handhelds to create music. Mr. Lamb is also the creator of a device known as the ArduinoBoy; a combination of open source hardware and software that can turn any member of the GameBoy family with a cartridge slot and a link cable port into a MIDI sound generator.

Now it should be noted that trash80 was not the first to create such a system. The two big homebrew GameBoy apps used by professional chiptune composers, Nanoloop and Little Sound Disk Jockey, or LSDJ, have had MIDI in capability for quite some time. The problem is that both these apps rely on Microchip PIC hardware to send and receive MIDI signals. No disrespect intended to the standard microcontroller of the electrical engineering industry, but the PIC really is a piece of professional hardware and can be kind of intimidating for those who do not muck about with electronics on a regular basis. There is also little to no support for users of less popular operating systems when it comes to programming these devices (the only official PIC development suite is for Windows, no Linux or Mac support). By using the much simpler Arduino platform, however, the ArduinoBoy gets around these limitations, making it much easier for a would-be chiptune composer to build the tools he or she needs. Plus, while the ArduinoBoy was made to work with trash80's own homebrew GameBoy sound generator program, mGB, it also gets along just fine with Nanoloop and LSDJ.

While trash80 has shared his work on a Google Code web page, he does not have any step-by-step instructions on how one can make their own (its on his to-do list). I decided to help him out in this regard. While not necessarily a step-by-step, this Instructable should give you a general idea on what to do and show you some of my pitfalls so that you can avoid them.

Step 1: Parts, Tools, and Code


  • An Arduino, generic Arduino, or the parts to make your own. I personally use Modern Device Compay's Really Bare Bones Board kit, which can either be assembled as is and attached to your project using female circuit board pin sockets, or cannibalized for parts to make the Arduino a permanent part of the project.
  • Two 220Ω, seven 2KΩ, and one 270Ω resistors. For this project, 1/4 or 1/8 watt resistors are ideal.
  • One 6N138 opto-isolator.
  • One 1N914 small signal diode.  Don't be surprised if you can only buy them in quantities of 10 or more.
  • One pushbutton that is on only when the button is depressed. For those who speak Engineer, that is a SPST off-(on) pushbutton.
  • Two 5 pin female 180 degree DIN connectors. Make sure you get these exact connectors. There are many different designs for DIN connectors, and few, if any, are compatible with each other.
  • Four two-pin terminal blocks. Although you can just solder all your wires directly to the PCB, using terminal blocks or some other form of connectors will make assembly, disassembly, and parts cannibalization much easier.
  • One general-purpose PC board.
  • One GameBoy link cable.
  • A device that can provide MIDI out, like a keyboard or a computer with the necessary software and adapter.
  • One programmable GameBoy cartridge.
  • Solder.
  • Extra wire. Solid for breadboard work and wiring the PC board, stranded for wires you expect to move often.
  • A case to stuff it all in.
  • Pile of Miscellanea.

  • Soldering iron.
  • Desodering bulb, pump, or wick. Just in case.
  • Helping hands soldering tool.
  • Safety goggles. Your glasses are not going to cut it.
  • Fire extinguisher, or at least a glass of water. Once again, just in case.
  • Wire cutters.
  • Wire strippers.
  • Needle-nose pliers.
  • Solderless breadboard.
  • Programming or USB cable(s) for both the Arduino and the programmable GameBoy cartridge, if applicable.
  • Rotary tool and/or anything else you need to cut holes and slots in your case of choice.

You are going to need two different pieces of code for this project, both of which can be found on trash80's ArduinoBoy Google Code page . They are found on the right side of the page under the heading Featured Downloads . You will load the ArduinoBoy code into the Arduino, while mGB will be loaded into the programmable game cartridge.
<p>Wonderful project but keep in mind that the code works on Arduinos that mount ATMega168/328 chip.<br>If you want to make an Arduinoboy with an Arduino micro (that mounts ATMega32U4), check out this fork:</p><p><a href="https://github.com/zeroerrequattro/arduinoboy-micro" rel="nofollow">https://github.com/zeroerrequattro/arduinoboy-micr...</a></p>
<p>Nice 'ible! Might come back when (if) I get myself a gameboy.</p><p>Also, the original gameboy was released in 1989, in the 3 pic it says early 90's. (I don't mean to be rude, just I noticed that and had to point it out)</p>
<p>3d pic, sorry</p>
<p>I'm having trouble communicating with the GameBoy using LSDJ and mGB. Nothing seems to work. I'm getting MIDI messages from the output of the optical coupler, but the gameboy doesn't seem to pick anything up. My link cable connects to the analog pins as per the schematic. I'm using a DMG-04 cable. Any thoughts?</p>
hi mr sciene <br> <br>very nice tutorial! thank you for this. <br>I've finished building mine, but I have a few questions: <br> <br>1. is it normal when i hit the button the first 5 times, each of the 5 red led's light up, but the 6th time nr 1 and 2 lights up and the 7th time all of them light up. ? <br> <br>2. and another thing that frustrates me quite a bit: <br>- when in mgb mode, the gameboy responds to my midi notes, but the pitches of them are very strange. fx if I play C8 it sounds like C8, but then C#8 and D8 and D#8 also sounds like C8, and E8 is an octave below. and generally the pitches seem to lack any kind of system. this must obviously be a fault somewhere. do you have any clue? <br> <br>all the best <br>s&oslash;ren
Ive seen things like this before, but never in a step-by-step form, so thanks! But is was wondering, could your design work with just a link cable, or do i need to get a blank cartridge? Ive seen some far more DIY style ones, with a AVR (an 8-bit micro controller) that goes right into the link cable, no cartridge needed, but i like the idea of an arduino alot better. Thanks!
aaaahh....... the GBA sp, im loving Nintendo!
Where did you get the programmable game cartridge?<br>
the programmable cart is a cart from either kitsch bent or non finite
is it possible to replace 6n138 with a 4n28?
Hi, it looks very nice. I got a question, would it be possible to use a touch pad as a midi interface and send signals to the gameboy? If that the case, would it be possible to use the gameboy as a effects pedal?<br>Thanks in advance,<br><br>Sukoa
will it work with gba
Nice Tutorial :) thanks<br>Btw, what about the LED how many required and the voltage?
Interesting concept! But could it also work on a Gameboy Advance since it can also play original gameboy games?
If I won't be using the midi-out feature, can I just scrap that and those components all together? or will it cause wiring and/or other issues?
You also want 100%&nbsp;(or maybe it's 91%) isopropyl alcohol instead of rubbing alcohol. Available in most drugstores.<br />
its 91%, ive got a jug of it on my desk lol
I&nbsp; have assembled a parts list for jameco.com. Does everything look right here?<br /> Optocoupler DC Input 1 Channel DARL W/Base DC Output 8-Pin Plastic Dip Black Bulk:<br /> Part no. 42489<br /> <br /> @ RES,CF,220 OHM,1/4 WATT,5%,(100 BAG):<br /> Part no. 690700<br /> <br /> @ RES,CF,2K OHM,1/4 WATT,5%,(100 BAG):<br /> Part no. 690937<br /> <br /> @ RES,CF,270 OHM,1/4 WATT,5%,(100 BAG):<br /> Part no. 690726<br /> <br /> SOCKET,STD DIN,FEMALE,5PIN, PANEL MOUNT:<br /> Part no. 15844<br /> <br /> Connector Terminal Blocks 2 Position 3.5mm Solder Straight Thru-Hole 10A:<br /> Part no. 2094506<br /> <br /> EXPERIMENTER?S PHENOLIC PROTOTYPE BOARD:<br /> Part no. 616673<br /> <br /> Diode Switching 100 Volt 2-Pin DO-35:<br /> Part no. 36311<br />
Would it be possible to use Ableton Live and midi it to an Arduinoboy with a Prosound DMG-01? ALso, do you need to buy an arduino chip and the bare bones kit, or just one or the other?&nbsp;
A tapered reamer (hand tool)&nbsp;is a good addition to the toolbox for enlarging, smoothing rough holes.<br /> <br /> Here's a&nbsp; 2&quot;x3&quot; vectorboard from digikey for around $6 <br /> Digikey #&nbsp;V2025-ND
&nbsp;You're missing the 1n914 diode on your parts list. Do the whole thing over.
Hello all. Nice instructable.<br /> <br /> daulef:<br /> MIDI&nbsp;out acts as a thru in modes where midi out isnt useded (All modes other then LSDJ&nbsp;master sync)<br /> <br /> Also I did just that once, built a arduinoboy inside of a DMG.<br /> http://www.flickr.com/photos/trash80/sets/72157606262638032/<br /> <br />
Any idea how you'd go about implementing a midi thru?
what about an arduino-boy so small it could fit in the gameboy? directly wired to the link port? might have to sacrifice the battery compartment though... hmm... just ordered a cart and link cable (my original is long gone!) from these guys: <a rel="nofollow" href="http://store.kitsch-bent.com/">http://store.kitsch-bent.com/</a><br/>so i might just give this a shot!<br/>
I really like this picture!
is this the right chip <br/><br/><a rel="nofollow" href="http://www.coolcomponents.co.uk/catalog/product_info.php?cPath=50&amp;products_id=296">http://www.coolcomponents.co.uk/catalog/product_info.php?cPath=50&amp;products_id=296</a><br/>
Yep, that's the right one for the Arduino, but you will need some support hardware to make it work, specifically a 16MHz ceramic resonator or a crystal and a pair of 22 picofarad caps, plus a programming port of some sorts. Your best bet is to either buy a prebuilt or kit Arduino or Arduino clone if you are new to this, but if you absolutely want to go about building your own Arduino clone into the ArduinoBoy, I suggest taking a look at the schematic for the Really Bare Bones Board from the Modern Device Company, here:<br/><br/><a rel="nofollow" href="http://moderndevice.com/RBBB_revB.shtml">http://moderndevice.com/RBBB_revB.shtml</a><br/>
nice tutorial man, i'm glad i found this as there's not much extra info over on the google group. ive been researching into building one and this is a huge help. my problem is some of the components for the build are not widely available in ireland, it means ordering from abroad and postage is gonna cost more than the parts themselves. are those midi in-only arduinoboys for sale anywhere? financially it might make more sense for me to buy, albeit less satisfying!
Unfortunately, I've tried getting in contact with trash80, the fellow building the MIDI in only ArduinoBoys, but he hasn't returned my emails. As far as I know, he is still working on them, and quite possibly distributing a few to his chiptune composing friends. As to finding the parts you need in Ireland: typing "electronic parts suppliers in Europe" into Google provides several links of dubious origins, but you may have better luck than me. What you might try doing is contacting someone here in the States and ask them to order the part(s) you need, then have them mailed to you.

About This Instructable



More by scienceguy8:Build an ArduinoBoy Be Dr. Freeman for Halloween 
Add instructable to: