With a little bit of effort, you can build a self-contained retro gaming device using an old Xbox 360 or PS3 "arcade stick", a Raspberry Pi, and a RetroPie image (Pic 1). It's fun and portable! Almost anyone with a few DIY genes can pull this off. There is only one part that requires soldering and the rest is simply an exercise in careful layout and installation of the parts.
RetroPie leverages the power of a Raspberry Pi 1, 2, or 3 to emulate 50+ gaming and computer systems . It also supports several types of controllers, including Xbox 360 and PS3 controllers and most importantly for this project - arcade sticks. The more power you have in your Pi, the larger the number of systems you'll be able to emulate. So I definitely recommend a Pi 2 or 3, but a Pi 1 or Zero does work for many of the older systems.
It's very helpful if you set up RetroPie before you get started on the modifications. If you get your stick working before you hack it, you'll have a working scenario to test with as you're putting things together later. So setting up now is recommended. That said, setting up and configuring RetroPie is outside of the scope of this Instructable. The RetroPie site however, has lots of information and resources dedicated to helping you do that. So I highly recommend heading over to https://retropie.org.uk/ and at least get a simple game working. Many early console games (E.G. Atari 2600) mostly work without any fiddling with controller settings.
DISCLAIMER: Soldering irons, hobby knives, and other tools can be dangerous. Using them as described in this Instructable is entirely your choice and at your own risk.
It's worth calling out that I'm a little bit... meticulous about some things. So there will be steps in here that you can choose to omit (countersinking screws for example). I'll call out the optional steps as we go.
In this parts list, I'll include links to exact parts I used where it's useful. Some of the amazon links point to items that are no longer available, but I think they're still helpful for you to find similar parts.
- Xbox 360 or PS3 arcade stick (Pic 2)
- Pic 3
- Raspberry Pi 1, 2, or 3 Pi 3 on Amazon
- Micro SD card, 8GB or larger ( I used a 32GB) 32GB card on Amazon
- Wifi adapter(optional, but highly recommended) Wifi adapter on Amazon
- Raspberry Pi heat sinks (if planning to overclock) Pi Heat Sinks on Amazon
- USB Panel mount extension USB Panel Mount on Amazon
- HDMI Panel mount extension HDMI Panel Mount on Amazon
- Micro USB cord for a power cord (10' recommended) Set on Amazon (I used longest one)
- 4 standoffs with screws and nuts - I used some from an old PC build, but either of these would work...
- USB cable with a Type A end on it (you'll cut the other end off)
- Handheld drill or drill press
- Drill bits starting at 1/8" and going to 1/4"
- Hobby knife
- Soldering iron and solder (strongly recommended)
- Phillips screwdriver (or whatever type your screws require)
- Wire stripper capable of small gauge wires (my USB cords had 24awg in them)
- Needle-nose pliers
- Marking implements… pencil, pen, sharpie, etc (not everything takes pencil marks)
- Heat gun or lighter (for heat shrink tubing)
- Small zip ties (color doesn't matter)
- Miniature files (highly recommended)
- Wire nippers (helpful for cutting zip ties and wires)
- Scratch Awl (helpful, but not required)
- E6000 or other gap-filling adhesive
- Wet/dry sandpaper 200-300 grit
- Countersink bit
Step 1: Open the Stick and Plan Your Attack
I'll give specific instructions for the stick I used, but you may need to adjust for your particular stick.
Unscrew the screws attaching the bottom plate and set it aside. On my stick, they were all visible (6 of them), but sometimes a screw or two will be hidden under a sticker or rubber foot (Pic 1).
Evaluate the inside of the stick and start planning where to put your parts (Pic 2).
Once you've got an initial plan, connect the various components to the Pi and test fit them inside the enclosure (Pic 3). This part is critical to later success. Some parts- like the Micro SD card- can be left out for this, but make sure to include the parts that will impact overall layout like:
- HDMI extension
- USB extension
- Wifi adapter
- USB power cord
- USB cord to splice into stick cord
Also, if you mount your Pi like I did - on the base plate - you can't take off the bottom by itself anymore. The Pi goes with it. So all of the wires have to be long enough to reach the Pi comfortably when the stick is opened up. So make sure you play around with this and test fit repeatedly as you progress
As you progress, remember that very few plans remain perfectly intact when doing the work. Be flexible throughout the process and play around with different configurations until you find something that works. Raspberry Pi boards aren't exactly small, so you certainly might have challenges with placement. The third picture shows generally where my Pi and other components ended up. The Pi's final location is rotated about 30 degrees CW so that the Ethernet jack (which is unused with this build and probably could have been removed) is nestled snugly in the 'U' shaped PCB connecting the yellow, blue and gray buttons.
The final USB power cord I used does not have a ferrous core on it- both for ease of fit and overall look (the one in the pic has cores on both ends). I also replaced the white USB cord intended to connect the Pi to the stick. I'll explain why later.
Step 2: Prepare to Place the Parts
I'm a big fan of marking templates. I make them for all kinds of things that I'm placing (I mentioned meticulous, right?). For something like a panel-mount extension, I like to mark parallel top, bottom, and screw-center lines on the template. This lets me line it up with an edge whether the distance from the top or bottom is most important or if the placement of the screws is most important. Also, I figured I'll probably use these templates again at some point, so I put a little time into making them.
I prefer garishly-colored poster-board for my templates. Makes them harder to lose. Also, when it's complete, I write a fairly detailed description on it (so I don't forget). For this step, I'll use the USB panel mount as an example.
Place the USB panel mount face-down on the poster board (Pic 1).
Trace the relevant parts of the mount onto the poster board (Pic 2).
Cut out the hole for the USB plug. Note the stretched-octagon hole (Pic 2). The USB plug has a stretched plus sign shape to it that would be more work to cut out, whereas an octagon is simpler. It's possible I could have gotten away with just a rectangle, but the USB plug on my extension protruded just slightly past the rubber housing and I wanted to make sure it didn't bind up when I screwed it in. Decide for yourself what makes sense in your case.
Make additional templates for the HDMI panel mount and the Raspberry Pi (Pic 3).
Step 3: Mark the Raspberry Pi Location
Take your time with marking. And test fit repeatedly until you're confident that the Pi is in the right spot.
The holes in the Pi were a little too tight for my standoffs, so I used a 1/8" drill bit and my fingers to open them up (Pic 1). PCBs drill very easily. Once the standoffs fit, you can mount them to the Pi. This will allow you to mark around the standoffs when they're mounted, which can help get accurate placement.
To mark the standoffs, I used small pieces of a strong double-sided tape to hold the Pi in place (Pic 2). Another option is to mark one hole in the plate and drill it. Then attach the Pi in that single spot (anything that helps keep the Pi from moving while you're marking helps).
Once the Pi is secured, carefully trace around the standoffs with a pencil or extra fine sharpie. You don't have to trace around all 6 sides of each standoff. 4 was generally enough for me. That's important considering some of the sides are underneath the Pi. I also roughly outlined the Pi itself just for reference (Pic 3).
Once the standoffs are marked, estimate the center point of each standoff and mark it. Don't sweat it if you don't think you can get the exact center. You can oversize your bit slightly to give a little slop and account for marking variance.
Step 4: Mount the Raspberry Pi
When drilling reasonably soft metals, it's generally a good idea to use an awl to create an indentation on your mark (Pic 1). This will keep the drill bit from walking as you start. Put the awl on the mark and tap it with a mallet, hammer, or block of wood. For the record, this works for plastic too, but don't do this with hardened steel. You'll just damage your awl.
Now it's time to drill. Select your bit based on your screw size. You want a hole that allows the screw threads to clear the sides of the material completely. And like I mentioned in the previous step, going a little oversize is a good way to absorb any marking errors.
To drill the holes, you can use a hand drill or drill press (Pic 2). I have a press and it was closer than my hand drill at the time, so it got the job. When drilling metal, you want to use a very slow speed and light to moderate pressure on the bit. You generally also want to lubricate the bit while drilling. Tap/die cutting oil is ideal, but you can use WD-40 or 3-in-1 Oil for light duty work. I like to make sure the tip of the bit is always a little wet with lubricant. That said, if I'm being totally honest here… I didn't use oil on these holes. The steel was soft enough that I was confident that slow drill speed alone would keep my bit from overheating. But I don't recommend doing it that way. Oil is your best bet.
You'll find that drilling sheet metal often leaves sharp little burrs on the edges of the hole. Use a file to clean them up.
Once the holes are drilled, mount the Pi to the base (Pic 3).
OPTIONAL STEP: If you plan on over-clocking your Pi, now is a great time to install heat sinks. Pi heatsink sets typically come with 3, but I only used 2 for this project; I put them on the 2 biggest chips on the board. I've seen folks put the last heatsink on the fairly small chip closest to the micro USB port, but the heatsink doesn't fit very well, so I didn't do it.
Simply peel off the backing and stick the heatsinks to the chips. Try make sure you cover the entire surface of each chip (Pic 4).
Step 5: OPTIONAL: Sand Down Thick Plugs
If you use the same parts I did, you may find that the HDMI plug going into the RasPi is pretty beefy (Pic 1). It's great for grabbing if you need to remove the plug, but I plan to leave mine in there indefinitely. So I didn't need the extra girth.
If you have room, I'd leave the plug as-is. It's a tedious pain in the butt to thin it out. But if you need the space, here's one way to do this. FIRST - if you have a belt grinder, you're thinking "I can do this super quickly"…aaaand you're wrong. Unless you can drop the speed REALLY low. I tried it and within 3 seconds I was melting the plastic rubber and gumming up my belt. So you're most likely going to have to do this part by hand.
Start by getting some 220 wet/dry sandpaper. I used my flat sanding board (Pic 2… maybe that'll be another Instructable at some point!), but you can do this on any flat surface. The process is really straightforward… Just put the sand paper on the flat surface and rub the plug back and forth until it's thin enough (Pic 3).
"But what if I damage it?" Great question! But it shouldn't be a problem. With any quality cable, the important stuff is tucked down in the middle of the cable, so the likelihood of you hitting anything vital is small. THAT SAID, you should take it slow (not that it's possible to do this part fast, lol) and if you see something concerning, stop and think before proceeding.
It's worth noting that this process generates a lot of little plastic bits (Pic 4). So do it outside or at least be prepared with a vacuum with a hose.
Step 6: Cut Hole for the USB Panel Mount
Use the template you created earlier to mark the outside of the stick for the panel-mount USB port (Pic 1). You can cut them out however you like, but here's how I did it…
Start by removing as much plastic as possible quickly. Make a couple of marks a little way in from the edge of the opening. Then drill them with a smallish drill bit. I started with 1/8" and drilled my screw holes at the same time (Pic 2). Then keep increasing the size of the bit until you are almost at any edge of your opening. Careful how far you go - you don't want to go outside your line. I stopped at a 1/4" bit (Pic 3).
Now use your hobby knife and files (Pic 4) to finish creating the opening. I like to use the knife to get really close to the line and the files to reach it.
Also, you may need to modify some support ribs on the inside of the case so your port can sit flat (Pic 5). The hobby knife and files are your friends here as well.
Finish the hole (Pic 6).
Step 7: Cut Hole for the HDMI Panel Mount
Mark and cut the holes for the HDMI, just like you did for the USB port(Pic 1).
Where I chose to put my HDMI port, there were 2 plastic posts in the way (Pic 2). Similar posts were used to attach the bottom plate, but these 2 are only part of the strain relief for the stick's cable, so there was no issue with shortening them. And I'll still be able to use them for strain relief!
An easy way to reduce or remove these posts is drill them with a bit slightly larger than the post(I used 1/4"). The posts turn into little curly ribbons of plastic really easily(Pic 3). Make sure to go slowly and let the bit ride down the center hole. In my case, I only needed to shorten them by about half to accommodate the HDMI extension(Pic 4). If you still need them for strain relief, try to keep the ends close to the part you're installing (so the cord won't slip off the posts). If you're removing a post entirely, be careful not to drill through the case when you reach the end of the post. Seems obvious, but in retrospect, so was "retract your father-in-law's favorite tape measure before cutting the trim" and I managed to not do that. So just sayin'.
Step 8: OPTIONAL: Countersink the Panel Mount Screws
This step is entirely optional. I prefer the way it looks, but you'll need to source some flat-head screws and there's nothing wrong with having exposed screws, so you make the choice!
Countersink bits (Pic 1) are available pretty readily for $5-10 at hardware stores large and small. If you don't have one, you might be able to do it with a round file or hobby knife, but I probably would have just exposed the screws rather than go that path.
The plastic is soft enough that you can use a sharp countersink bit by hand to gently create the cavities for the flathead screws to sit in(Pic 1). Test-fit screws often and stop once the head will sit flush (Pic 2).
Countersink all 4 of the screws for the panel mount extensions(Pic 3).
Step 9: OPTIONAL: Reuse the Strain Relief
Now remember, the USB plug exiting the stick will only be used for bringing power to the Pi. It will not be cut during this project. There is a USB cord that gets cut, but that's the one we'll splice into the stick's original cord later. Right now, you're just prepping the power cord.
You can create enough strain relief on the power cord without this, but I wanted a mostly stock look, so I reused the one from the original cord. My replacement cord was a little thinner than stock, but I was able to make it look pretty good regardless.
Cut the cord holding the strain relief about an inch from each end of the relief(Pic 1).
Using your hobby knife, slice down the length of the piece. The only part you need to be careful on is the strain relief itself. Cut that part carefully and pick a spot other than the top to do it, so it'll be less visible (Pic 2).
Once cut, remove the wires from the sleeve and pull the plastic sleeve away from the strain relief by pulling it into the slit in the relief. This may take more effort than you would think, but just keep wresting with it and you'll eventually get it free(Pic 3). Once it's free, pry open the strain relief and stick it on a screwdriver or something to open it up a bit(Pic 4).
Next, use a zip tie to mark your USB power cord for where you want to put the strain relief(Pic 4). Make sure that you have enough room to run through the strain-relief pillars and to the Pi itself.
Use your favorite void-filling adhesive to attach the strain relief(I like E6000). Fill the strain relief partially with adhesive, slide the cord into it, and then clamp it closed with a couple more zip ties (visible in Pic 2 of next step). Don't put too much adhesive in the strain relief… it's got holes in it and it'll squeeze out.
Step 10: Prepare the Stick's USB Cord for Splicing
In my stick, the USB cable was pretty solidly attached to a connector on the PCB(Pic 1). I tried a couple of different ways to remove it but ultimately decided it was happy where it was. So I just cut it off about 9 inches from the PCB. The cut/splice method will pretty much always work, but with other sticks, you might be able to remove the cable completely and solder your replacement USB cord directly to the PCB. Do whatever you feel most comfortable with.
Assuming you're splicing, go ahead and cut the USB cable inside the stick (about 8 or 9 inches from the board). Also, cut your sacrificial USB cable, keeping the Type 'A' end and with sufficient length to go from the splice, through the insides of the stick, and reach the Pi comfortably. Better to have too much length than not enough.
After cutting the wire, take the free end and use a hobby knife to slice the outer sheath lengthwise from about 2-3" from the cut end. Then peel back the plastic/rubber sheath and cut it off. Then, unwrap the shielding to expose the individual wires (Pic 2). Shielding can present as a braided sheath of wire. Or more like a metallic ribbon wrapped around the wire. Either way, I generally try to keep it intact so I can connect those too.
Separate the wires to make them easy to work with. Use your wire strippers to carefully remove a little more than an inch of the insulation from each wire (Pic 3). You'll find 4 insulated wires and probably a fifth bare wire which is likely attached to the metal housing of the USB plug. You're going to splice all 5 with their matching counterpart. Note that it's possible that the shielding wires themselves are also connected to the metal housing.
Now check out the Western Union Splice on Wikipedia. It's a pretty straightforward and solid splicing technique. In a pinch, you might even be able to get away without soldering the wires (though that is discouraged). If you try it that way, you could twist them super tight and then maybe hot glue them? Nowhere near as good as a solder joint, but it might work.
Step 11: Connect and Test the Unit
It's much easier to test the device if you already have RetroPie installed and configured (as mentioned in the intro step). If you haven't done it already, you can still do it now, but if the stick doesn't work correctly, you won't know if it's the configuration or your temporary splices. But if it works, then great!
You should connect everything you expect to use in the final unit (Pic 1):
- HDMI Extension
- TV (plugged into the HDMI extension)
- USB Extension
- USB Hub (into the extension)
- Mouse and Keyboard (into the USB hub)
- Wifi adapter
Finally, for the un-spliced USB cord, temporarily twist the to-be-spliced wires together and slip the small pieces of heat shrink tubing over them to prevent short circuits.
Plug in USB power and verify that RetroPie launches correctly and that you can get into a game and play.
Testing this truly is important. When I tested, I found that the USB cord I was using had a broken wire in it somewhere. So I was able to quickly swap in a new one without having to undo any work.
Step 12: Splice the Stick's USB Cord
FIRST, put the 8"piece of heat-shrink tubing on the wire with the USB plug. This will save you from sadness later.
Now perform the splices...
- Put a 2" piece of heat shrink tubing on one piece of wire being joined (except on the non-insulated wires)
- Join the wires using a Western Union Splice (Pic 1)
- Apply heat to the splice with your soldering iron
- Touch solder to the wire near the iron and let it wick into the wires of the splice
- Slide the 2" heat shrink over the solder joint
- Use a heat gun or lighter to shrink the 2" piece (Pic 2)
- Repeat for all individual wires
Once all of the individual wires are done...
- Join the pieces of wire shielding. In my case, they were both shielded with metallic ribbon. I simply wrapped the and overlapped the ribbons around the spliced wires and then secured the ends with a bit of thin copper wire (Pic 3).
- Gently slide the long piece of heat shrink over all of the splices and the shielding
- Use a heat gun or lighter to shrink the tubing. You have now spliced the USB cable (Pic 4)
Don't forget to put the 2" of heat shrink tubing on the wires before you do the splice. Want to know how many times I forgot that while working on this project? More than I care to admit. Same for the larger heat shrink tubing. Put that on before you splice any of the wires. If you forget, you can wrap electrical tape instead, but heat shrink tubing is much nicer.
Step 13: Install the Panel Mounts and Power Cord
Install the USB and HDMI panel mounts using two screws. Use flat head screws if you countersunk the holes. Note: if either panel mount is near where the power cord comes in (like in my case), you probably should wait to install that one. I only installed the USB panel mount at this point(Pic 2).
You're going to want your power cord to be very stable in its placement within the stick. We've already talked about gluing the old strain relief to the new Micro USB power cord. We also discussed using the plastic towers inside to wrap the cord around. I also recommend adding an adhesive zip tie mount (Pic 1) to help secure the cable in place.
Stick the zip tie mount near where the cord comes into the case and set the strain relief into its case slot(Pic 2).
Wrap the USB cable around the plastic posts in an S shape and secure the USB cable to the mount with a zip tie(Pic 3).
At this point, I was able to do the final install on my HDMI panel mount, additionally securing the power cord and completing the modifications to the top shell of the stick (Pic 4). All that's left is the final assembly.
Step 14: Final Assembly
If you did sufficient test fitting and made sure that your cables were of proper length, this next part should be easy. Arrange all of the cables in preparation to connect the Pi (Pic 1).
Bring the base into position on the bottom of the stick and plug in the various wires and gadgets...
- Panel mount USB
- Panel mount HDMI
- Micro USB power cord
- SB from stick (the one you spliced)
- Wifi adapter
Now align the bottom panel and gently coax it into place. If it doesn't go easily, lift an edge up and use a flashlight to look inside. Chances are that one of the new wires is pinching somewhere. Use something long and skinny to help you move things around until it closes smoothly.
Gently screw the base screws back in. Note that metal screws will strip plastic in a heartbeat. So just make them snug. Don't try to torque them down hard or you'll be sad. When you're done, you should have what looks like a stock arcade stick except for the two new ports on the front (Pic 3).
To use your new toy, plug an HDMI cable from a TV/monitor into the HDMI port and plug the USB plug into any 5v power supply capable of running a Raspberry Pi reliably. That's it! With the Wifi adapter on board and configured, the Pi will connect to your network whenever it's turned on. So adding new games can be done via the standard RetroPie instructions.
If you need to configure the OS, RetroPie, or a game, plug a USB hub into the USB port and add a USB mouse and keyboard. I haven't tried it yet, but I believe that you'll also be able to use the USB port for a a second stick/controller, allowing for 2-player games. If you try it, let me know in the comments!
I hope that you've enjoyed this Instructable (my first!) I've done my best to make all of the steps clear and complete. But if you have questions, please put them in the comments and I'll try to answer them.
Step 15: The Future...
There are a few more modifications that I'm considering for the RetroPie Arcade Stick project...
- 1/8" Stereo jack for headphones or speakers
- Power button to shut down the Pi prior to disconnecting the USB power
- Stop the Xbox 360 controller quadrant LEDs from blinking- they blink forever right now (Pic 1)
If this Instructable is well-received, I'll add those mods steps at a later point.