Sunday 19 January 2014

Making the Pi-Boy


This is not so much a build log as it is a retrospective of building the Pi-Boy. I shall describe the challenges I faced, the solutions I used and what I will do to improve in later revisions.


Challenge - Build a handheld console based on the Raspberry Pi.

Parts available;
  • 3" LCD screen [12v]
  • Broken Gameboy
  • Pile of random cables/wire
  • USB SNES controller
  • 32GB SD Memory Card
  • Raspberry Pi
Intended outcomes;
  • Handheld
  • No keyboard required to standard use
  • Portable [only 1 mains power cable]
  • Child safe


Part 1 - Preparing the casing.

After some wrestling with the 3 wing screws Nintendo used on the GB, I finally emptied the case of all components. In order to provide enough space to cram everything in, I stripped out all redundant plastic including the battery compartment, mounting posts and so forth. I was left with a hollow casing with no external alterations. The parts were then soaked in bleach and scrubbed as the thing was disgusting.

What went well;
  • Using soldering tip to 'draw' the battery compartment out. After doing this gripping, ripping and sanding provided a clean space to work with.
  • Cleaning left the unit looking almost new, with the exception of  Nintendo's trademark nicotine stain look
What didn't go so well;
  • The heat from the soldering iron did start to spread and started to warp the thinner walls of the case. This was rectified by applying a little heat and bending back straight by pressing into a firm flat surface.

Part 2 - Preparing the electronics

My goal of running the unit from one power source was my first challenge as the screen required 12V and the Raspberry Pi needed 5V. I did a little exploring on the controller board for the 3" LCD screen and found a test point/used expansion point that provided both the ground and 5V. These points were soldered to the Pi directly like so



The USB controller featured significantly more buttons to use than the existing GB controller board so I decided early on that for the first attempt I would opt for this solution instead of trying to retro-fit the existing controller board. The controller lead was cut, shortened and soldered directly to the Pi, as was the AV output. The audio output would be provided by the existing GB speaker, The Pi doesn't provide any significant volume as its designed to be amplified - but for this revision the low volume would suffice.



Part 3 - Making it all fit.

The first problem I encountered was the size of the 3" LCD's controller board, which was almost the same width as the case. I played around with rotating the display [a feature the screen had] but this caused issues with fitting it inside with the Pi in place. Eventually I shaved down the walls of the case and fitted it normally.



The Raspberry Pi fitted nicely with very little work to make it fit the rear casing. Happy coincidence. It was secured to the rear casing using the original metal plating from the old hardware, only a little snipping to remove the unneeded metal was required.


The controller was mounted on the front of the casing by melting the 2 casings together, while this is a crude solution it worked brilliantly and provides a hard wearing bond - another up-shot was that with a little fiddling the casing for the controller can still be taken apart with its existing screws and also provides a hiding place for the extra lengths of wiring.

What went well;
  • Fusing the casing together was surprisingly effective
  • Having extra space to store the longer wires is welcomed
What didn't go well;
  • The walls of the casing around the screen ended up incredibly thin, while it works, it is a quick and dirty fix to a problem that should have been considered earlier on.

Part 4 - The software

A massive thank you to petrockblog for the RetroPie distribution. This was the perfect fit for the project, and after the initial setup everything worked flawlessly [As flawless as Linux can be anyway...]

The Image was written to my SD card from my windows rig with imagewriter and I then filled the folders with my ROM files by copying the files over the my home network into the preprepared network share folders for each system. Obviously I only put games I already own on it... honest guv.

Part 5 - The result.

What worked well;
  • Games run brilliantly
  • Controls work perfectly
  • Screen looks great
  • Unit feels solid
  • Software is fit for purpose
  • Single power adapter
What didn't work well;
  • Ugly
  • No permanent solution [yet] for joining the 2 halves of the casing [Duct tape FTW]
  • The unit has to be disassembled to access USB and network ports
  • Speaker requires amplification and volume control
I hope this helps my fellow hardware hackers and retro-gamers, It was a fun project and I look forward to revisiting the build with a little more preparation.

screen used - XY-2063 3.5" TFT LCD 0.53W Car Rear-view System Mirror Monitor - Black


4 comments:

  1. That is just an awesome project - going to blog about it and try and recreate if possible!

    ReplyDelete
  2. Where'd you get the 3" LCD from -- I assume it wasn't originally part of the GameBoy?

    ReplyDelete
  3. Hey, this is really inspiring. I've been thinking about trying something like this since before the Pi came out.

    I have a few broken DMGs myself and am really thinking about getting a Raspi and doing a bunch of soldering to it to get it into a GB while keeping it looking as stock as possible.

    If it would fit, I would modify a gamepak to contain an SD card and solder the systems connector to the pads of the SD slot, then I would relocate the USB port to the port for link cables and accessories, depopuled unused components like ports and slots from the RasPi, keeping the stock power switch and possibly finding a way to get a Li-ion battery and charging circuit in there.

    I'd probably have to chop oit the compartment for the batteries to get it all to fit, but I think it can be done. I'd mostly use it for emulating GB/GBC/GBA/GG games, but I'd probably do other things if I kept the USB port.

    I've done quite a few modifications to Gameboys and I usually carry my heavily modified DMG, but if I modified a DMG case to house a Raspberry Pi that can do everything a GB can and more (with the exception of linking to real GameBoys) while keeping it looking stock (with the screen protector obviously being removed), I'd probably carry that instead!

    Your work really inspired me to do this. Should I give it a try?


    And if you're wondering, I am equipped for and capable of disassembling and cutting down the system, smt soldering/desoldering, plastic welding to an extent and totally fucking up! Bp XD

    Anyway, awesome work on that thing! I'm not too fond of the snes controller, but I guess it helps for playing snes games. Nonetheless, it's a good first attempt and is a great prototype in case you want to improve it or build a better version and is a great validation for the possibilities which really should inspire others to attempt their own versions!

    ReplyDelete
  4. Now that I took a sloser look, I do see that the compartment was cut out on this one. Hmm… I'm sure more room can be gained if the ethernet port, the audio jack and some other components were removed.

    It also might be beneficial to sleeve those wires, but I'm sure you'll manage that mess and do things a little more cleanly with a later revision. I'll be checking around you blog to see if you make any improvements to this and come up with any other cool projects.

    This is pretty awesome.

    ReplyDelete