The Raspberry Pi is a great little mini-computer for playing classic video games from your childhood. But, thanks to its small size, it's also possible to turn it into a portable handheld game console that plays your favourite titles, from NES to N64. I call it "The eNcade".
The eNcade is a Kickstarter project up for pre-order, but with a little engineering and soldering skills it's not crucially difficult to make one yourself.
What You'll Need
As is always the case with DIY, you can adjust these instructions to make... well, whatever you want! But here's what we'll be using in the guide:
- A Raspberry Pi (obviously). I used the model B, but you can use whichever you want -- the B+ is a bit more powerful, and the new model A+ is slimmer.
- A 3.7v lithium polymer battery (at least 2000mAh preferably), like this one from Adafruit
- A Screen. A simple composite TFT monitor like this will work. You could also use a touch screen, although that requires some extra work.
- A Charging/Voltage Boosting Circuit such as the PowerBoost 500
- A case to put it all in (see below)
- A USB gamepad of your choice -- I used the logitech F310
- A single pole, single throw Switch, like one of these from RadioShack
- Some multi-stranded wire
- Soldering iron
Step 0 (Optional): Slim Down Your Pi
I used the model B Pi, but modified it to be slimmer so I could get a slim device in the end. You can do this same adjustment with the B+, or just use the already-slimmer A+. This guide here will help you with that. In this case most of the ports (USB, ethernet, audio jack, RCA jack) were completely removed to make pins easier to solder to and to save the most space possible.
Step 1: Connect Your Power Supply
Your power supply is the most fundamental part of the handheld, as well as the easiest to wire, so we'll do that first. The Raspberry Pi takes 5V to run, and you can connect it directly to the GPIO (general purpose input/output) -- the 26 pins next to the yellow video out socket (shown above).
Your battery is going to power more than just the Pi though -- you'll also need to power your other components (like screen) from the same battery. We're using a 3.7V Li-Po battery, which, with the help of the PowerBoost 500, converts that output to 5V. With this circuit you can plug in your battery though the connector and solder two wires: one from the 5V output pin on the PowerBoost to the Pi's 5V input (labelled on the GPIO diagram above), and one wire from the pin labelled "gnd" on the PowerBoost to the pin labelled Ground on the GPIO:
Although it is not conventionally recommended to solder directly to the GPIO, it could save space in your design. Normally, you would use a GPIO header to connect your wires. The PowerBoost 500 also has pins where you can connect your switch, as described on the PowerBoost 500 page. Here's what it should look like at this point:
Step 2: Connect Your Screen
The screen isn't difficult either, since we've picked one that takes composite input and has known compatibility with the Pi. Take apart your screen and solder the wires from the screen's composite input (wires going to the RCA jack) where the center is the signal and the outer conductor is ground. If you didn't slim down your Pi, then this is much simpler: just plug in the yellow RCA jack to the model B's yellow socket.
The power input for the screen can be directly wired to the battery [red(+) to red, black(-) to black] since it won't turn on until it gets a signal from the Pi.
Step 3: Connect Your Controller
Obviously, to play games, you need a gamepad. You have a lot of choices here, since you can take a USB controller apart, salvage the circuit board and connect it to the Pi. This guide goes through some of the details on taking apart a similar controller. Once it's apart, your easiest option is to just solder the USB connections from the circuit board directly to the bottom of the Pi board, like so:
Then, you can just stick the circuit board in your case (see the next section) so the buttons come out the top. Here's what mine looked like once I got it in:
Your button layout will be the same as the layout of the original controller, since you're just transplanting the circuit board. If you wanted a custom button layout -- which is more complicated -- you could use a Teensy microcontroller, and wire tact switches from the output to make a custom button layout. You can also wire buttons up directly to the GPIO as described here.
Step 4: Build Your Case
The case is where you can really get creative. There are many options, from 3D printing (if you have the resources) to hacking up Tupperware or other plastic parts laying around. If you go the 3D-printing route, there are many Pi enclosures like this one out there in STL format that you can get for free and 3D print yourself. Check out Thingiverse, which has a lot of different options. Keep in mind you will have to account for your particular button placement and layout scheme in the design so that everything comes together and functions nicely.
In the end, here's what mine looks like on the inside, all wired up.
Step 5: Install Your Software and Games
Now, the easy part: Install your emulators and games! We've already shown you how to turn a Raspberry Pi into a classic gaming machine with RetroPie, so just follow the instructions in our original guide (or the video above) to get your games ready to play.
The actual eNcade has its own unique software approach, including an online multiplayer delivery service so you can play online with your friends, but using RetroPie will get you most of the way for your DIY device. Enjoy!
If you're curious about the eNcade project, check out the Kickstarter for more. If you pledge, there's also an option to get a DIY kit, which saves you the trouble of buying everything separately.