I had recently bought an original Gameboy DMG from Good Will for a whopping $5.00, condition unknown. Taking a gamble, I purchased it and took it home to find that it had severe damage caused by a battery that exploded and leaked all over the mainboard.
I had also recently started looking on eBay for the elusive Gameboy Light. It’s a system I have always wanted but could never allow myself to buy since they are pretty expensive on eBay. The Gameboy Light is the Gameboy Pocket with an Indiglo light and was only released overseas in Japan.
I had bought a Raspberry Pi a while back and really didn’t know what I wanted to do with it. At that moment, like a Reese’s Peanut Butter cup, it dawned on me – could the Raspberry Pi be used with a Gameboy?
The Raspberry Pi is a small ARM based computer that fits in the palm of a normal adult hand. The great thing about the Pi is that it has several ways to connect I/O for video, audio, network, USB as well as a direct I/O set of pins called the GPIO pins.
After doing some research, I came to the conclusion that this project might actually be conceivable. Everything I needed was there, it was a matter of getting things together and working out the hardware as well as software side of things. That’s where this guide comes in. It’s my attempt to pass on what I’ve learned as well as taking you through the various steps I took to make it a reality. First off, the parts…
The Parts List
- Pi Model B
- 3.5″ LCD Backup Screen
- Controller PCB
- 3 Watt Audio Amplifier
- Rear Buttons
- Power Switch
- Female to Male Micro USB Cable
- Broken Gameboy DMG (please don’t sacrifice a perfectly good working one)
- Tri-Wing Screwdriver for Gameboy Case
- Soldering Iron
- Wire Cutters
- Electrical Tape
- Hot Glue Gun
- Electrical Wire
- Exacto Knife
The first thing that had to be done was to see if the Pi would even fit into the case. I found that the Pi sits almost perfectly on the back case of the Gameboy. The width of the Pi fits snug down the center of the case, but in order for it to fit, some modifications had to be done to the case itself.
Using a Dremel, I cut out a most of the battery compartment as well as some posts that on the case for the LCD that would no longer be needed. Doing so, the Pi sits flush with the back of the DMG case:
In the picture above, the battery compartment is on the left and the cartridge slot is on the right. I had to cut back the Cartridge slot as well in order to allow the GPIO pins to fit.
I had initially cut a slot on the left thinking I would add a wireless keyboard or network dongle which can still be added. This would use additional power which means more drain on the battery so those were left out.
LESSON LEARNED – given that, I probably should have de-soldered the Network and USB ports to slim up the Pi which would have allowed for more room to work with.
The screen was the first challenge. The screen runs off 12V out of the box which wouldn’t work with the USB battery pack. The USB battery pack is rated at 5V, 1000mAH so the goal was go modify the screen to allow it to run at 5V.
Luckily, there is a great thread here: http://www.raspberrypi.org/forums/viewtopic.php?f=41&t=17651 which details how to modify the PCB for the screen to run at 5V instead of 12. The problem with these screens is that there seem to be several versions of the PCB controller boards which require different approaches.
For my particular setup, the board came with the 4 wires (yellow, white, black and red) all soldered onto the PCB. I found a board in the thread above that matched my board, but I still had some difficulties getting the board to run off of 5 volts.
I finally got it to work by removing the power converter chip as well as soldering a jumper between the + power in and the capacitor on the top right.
The next step was to hook a composite input to the screen PCB board. For this, I took a composite wire I had and stripped off the connector to create a smaller connector that would fit into the Pi’s female composite port. The Pi composite input could have been de-soldered, but I chose this approach to allow it to be unplugged from the Pi if needed.
The Yellow wire from the LCD Controller is soldered into the Composite input. The Black wire (ground) is soldered from the LCD Controller board as well and then wired to the male composite connector.
The next challenge was fitting the LCD and controller board to fin in the case. I initially wanted to keep the size of the original Gameboy window and add on a new screen protector. I tried orienting the screen in a portrait layout, but this proved problematic with Retropie.
Editing the root “config.txt”, you have the ability to rotate the screen as well as adjusting the overscan of the screen. The config.txt file can be edited directly from your SD card with any PC. Here is a handy guide to the various settings that can be tweaked and adjusted in the config.txt: http://elinux.org/RPiconfig
None of the adjustments made yielded a layout that would fit correctly within the Gameboy’s window. I made the decision to go ahead and cut out the window to allow the screen to be displayed.
This also meant that I would have to layout the screen in a landscape orientation. This would not work without some trimming of the LCD Controller board since it’s wider than the width of the Gameboy. The parts outlined in red below are what needed to be cut to get the board to fit.
After multiple cuts and trims, I found that I was able to BARELY fit the Controller Board into the case. It only fits because part of the controller board sits in the position where the original Gameboy Contrast knob used to sit. However, it does fit!
For the LCD, I used black electrical tape to cover up the silver border of the screen. Once this is done, I used some double sided stick padded tape and trimmed it to form a border around the LCD and then mounted it to the case.
After getting the screen to work, the next step was to get the controls to work. I decided that I would try to use the Pi’s GPIO inputs instead of getting something like a Teensy board. Adding another board would mean that I would have to find room in the cramped DMG case and the GPIO pins are already there, waiting to be used!
I stumbled on a company that creates Controller boards for DMG Gameboy’s that works perfectly with this setup. Instead of having to take the original Gameboy PCB, cutting it and having to solder in wires, the Kitsch Bent PCB allowed me to solder directly to inputs built right into the PCB.
Below is the Controller PCB. The PCB screws into the existing Gameboy mounting posts so the original buttons and rubber fit right in like the stock board would fit. The arrow points to the solder points with each point clearly marked off with it’s respective control function. This makes it easy to associate a control to a solder point which was tied to a specific GPIO pin.
For more detail: Super Mega Ultra Pi Boy 64 Thingy Build