Introduction: Hacking SNES Pads to Make Arcade Style Controllers for Retropie
Hi, and thanks for taking some time to read my amazing tutorial. My little sister's birthday is on February 25, she is turning 29 and I guess she started feeling a little bit old because she asked me to give her one of my Super Nintendos and a Super Mario World cartridge (I have 2 SNES and a SFC with about 150 games) but I decided to do one better and I bought her a Raspberry Pi, and made two awesome arcade style controllers for it. I documented most everything I did so there will be lots if pictures and I'll do my best to try to explain how you too can make something like this. Also I want point out that yes I'm wearing crocs and no it's not just because I'm a slob lol it's also because it's because my back is broken and my feet swell after a while of not being elevated.
Also I'm entering the Raspberry Pi contest, please vote for me and like my tutorial! The more people that like this, the more chances of being seen and also this might help someone that needs some inspiration for a similar project.
And just to throw an idea out there and I might do another tutorial at a later time but if you want do build your own arcade but want wireless controllers you can do this but instead of using the cheap USB pads you can buy a wireless keyboard like the one pictured and hack that using the same method and you will have wireless controllers. Now I'm not sure if you can hook up two keyboards to the pi and have two controllers but I can try it out tomorrow but even if it doesn't work with two controllers it will work for at least one wireless controller! And yes I'm aware they sell fight sticks and awesome controllers for relatively good prices, but my question to you is why would you want to spend $150 bucks on a controller when you can easily make one yourself for twice that much lol I'm only kidding I didn't spend $300 the truth is I don't know how much I spent but this was about making it and ending up with a unique product rather than a mass produced thing that will have no sense of accomplishment attached to it.
Step 1: The Ingredients
Well every tutorial that I've seen for arcades or fights ticks or anything like that they use devices that emulate a keyboard or some of the more expensive ones emulate any type of HID but those things are expensive, they go from anywhere between $30 and $100. For this Instructable we aren't doing that... We are going to be cheap and use a very inexpensive USB SNES controller, some MDF, 16 buttons, 2 joysticks, wire, and 64 female spade crimp connectors (try to use .187 as they will fit all the micro switches).
Step 2: Test the Controllers
This is a critical step, make sure your USB controllers work, depending on what you get they should work, I haven't seen any USB controllers that don't work but depending on your settings and version of Retropie they might or might not work out if the box. I was planning on testing everything on my existing system and it didn't work! I have my Retropie set up to work with two original SNES controllers that I plugged in the GPIO pins and I had downloaded some drivers and stuff that made it so that the Retropie "saw" the USB pads but it didn't want to use them, and when I managed to get it to use one of them it wouldn't recognize start or select. I only tell you this to let you know that it's important to test your setup and if it doesn't work most likely installing a fresh image of the newest Retropie will most likely fix it.
Lucky for me the new Pi that I had ordered for my sister got here this same day and I didn't really need to mess with my settings too much. So what I did was I downloaded berryboot v2.0 and from berryboot I installed Openelec and Puppy Linux just so she would have them available. I didn't use the Retropie that shows up in berryboot because it's an Oder version (v3.2) so I went directly to the Retropie website and downloaded v3.5 because there are a few improvements that I really wanted from v3.5.
Here is the link to berryboot
And here is the link to Retropie
If you are trying to install from a flash drive on berryboot and can't figure it out just move the mouse cursor to where it says install new OS and click it but don't release the click, hold it for a second and a drop down menu will show up, just go down to the install from flash drive and your set. If you have questions let me know.
Step 3: Next Set Up the Buttons/stick
After solving all the compatibility issues and being sure both my pads work, I got myself an assistant (see pictures). I then went ahead and cut my MDF (Medium-density fiberboard) to 8x12 I also made the cuts for the box, I kept the height at 4 inches so it was simply a strip cut at 3 1/4in then cut that strip into four 8 inch long cuts for the sides and four 10 1/2inc long boards for the fronts and backs of the boxes. They are really simple boxes so again my cuts were
Two 8x12 for the tops
Four 3 1/4 x 8 for the sides
Four 3 1/4 x 10 1/2 for the fronts and backs
but this is up to you as any measurements will work as long as the buttons and joystick physically fit inside your box, I then took my buttons and Joystick and I set them up where it felt comfortable and looked the best, I settled on a pattern that resembles the SNES control but with two more buttons for the L and R shoulders (see pictures) I used the same colors as the Super Famicom controller and black for the shoulder buttons, then a white button for the select which I placed on the left side of the box and for start I used player 1/2 buttons on the right side of the box. I then proceeded to make several impractical and unnecessary markings on the underside of my 8x12 board. After I was happy I made the holes with my drill press using a Spade bit but you can use a forstner or hole saw if that's what you have. In my case I used a 1 1/8th bit, but check your buttons to make sure, I also used the same hole for the stick and it worked great. Make sure you make a hole on a piece of scrap fist and test it out or you might regret it. What I did to make it easier on myself was that I clamped the two top boards together and drilled all the holes on both top boards at the same time, I then clamped the 4 side boards and made those holes, you don't have to but it will make it more uniform, also try to use apiece of scrap under your boards, specially if like me you are drilling them from the inside as it will eliminate blowouts, if you don't have any scrap then I would recommend drilling a pilot hole in the center of each hole and then drill them from the outside in that way any blowouts happen on the inside of the box and aren't visible at the end of our project.
If you are looking for arcade buttons and sticks I bought two sets from eBay , here is the link to the items
The reason I bought it from them is that the guy that runs the eBay store is a veteran from 7th ID and his son is active duty, now as luck might have it 7th ID is stationed here in fort Lewis were I live and me being a disabled veteran and my wife being an active duty soldier I know that thanking people for their service and having yellow ribbons in our cars doesn't mean crap unless you actually support veteran's businesses or at least business that hire vets so do me a favor and if you are considering buying those types of things on eBay get them from him. It's easy just search for seller "Bsa_gaming" or click on this link, they have a 99.99% rating and great prices anyways so why send your money to China?
Step 4: Assemble the Box
Next I assembled the box, and to my horror I had made the top hole a bit to close to the outside but it was all fixed using my router to eat up the space where the button would fit, after I had the four walls and the top nailed together, I routed the top with a Roman ogee bit to make it look fancy and I sanded the sides to make it look better and be more comfortable. I assembled the box using a compressor and brads but you can use anything you want, be it screws or nails or glue and dowels, it's up to you. Also if you want to paint or stain your box now is the time so it can dry by the time you need to work with it again.
Step 5: Lunch
Then I got a sandwich and this attracted a new assistant, actually two if you count the dog. After eating and playing with magnets it was time to go back to work.
Step 6: Now the Real Deal.
Now is time to dismantle the controllers and solder a bunch of wires. This is where this guide is different from most.
First I don't know if I mentioned that I bought the cheapest USB pads that were sold by a seller in the US, I could have gotten cheaper ones from China but I had to have this ready in time to mail it to my sister for her birthday so I paid $7 for two pads with free shipping. They were very light and the buttons very hard to push and would have generally suck to actually play with but that doesn't matter as they are going to be taken apart and end up being tucked inside a box and we won't use the buttons or anything other than the wire and circuit board. I still saved the case and buttons for future projects or to fix my SNES if I ever need to. So let's just open the controller with a small screw driver and put the case and buttons away and let's get ready to do this. Also disregard the Xbox 360 controller sitting in my workbench, that's from when the pads didn't wanna work on my original Pi so I brought it out and tested some other things lol
Step 7: Understanding the Controller and Soldering!
The way a controller works is that when you push a button it closes a circuit, this circuit is a ground/common on one side which is shared amongst all buttons and a wire which is unique on each button, when brains on the circuit board senses that a button is thrown to ground it means that that specific button was pressed and the appropriate action happens on screen.
The way we are going to hack it is by soldering a wire to the side of the circuit on each button that isn't ground/common this means that if you used a SNES pad you will have 8 wires, one per button and then 4 wires for the directional pad, then one more wire for a common. So you will need to solder 13 wires to the controller board, if you look at the board where the buttons go it's easy to determine which the unique wire is and which is the common, if you look at the traces the one on the common side go from button to button, but the other lead goes directly to the chip or globtop or whatever the brain of your specific pad happens to be.
Another way of knowing where to solder your wires is using a meter and measuring continuity, whichever side has continuity from one button to another is the side you don't want.
I don't know if I'm explaining this clearly enough but if I'm not, feel free to ask questions and I'll try my best to answer them.
If you look at the L and R shoulder buttons, you'll see that they have a small side board that goes directly under the button and works the same way. I decided to remove that small board and solder directly on the main board, this was a mistake as I was using solid wire and it was to thick to put it thru the hole the original wire was so I soldered it to the top of the hole and it pulled the lead because of the awkward position of the wire and very small actual soldering area I had, if I had to do it again I would either get some wire that fits in the hole or just use the small PCB and just hot glue it to the back of the main board, so think about this when you do your own. Learn from my mistake, after all isn't that why we make these?
The reason this works is that arcade buttons are micro switches, if they have 3 terminals then one is a common, ground (usually the one on the side) then the other two are one normally open and one normally close, that means that if it's normally close when you press the switch it opens the circuit, if it's normally open then pushing the switch closes the circuit which is the one we are using for this application, if it has two terminals then it should be normally open.
If you look at my soldering you will see that on the shoulder buttons I pulled the leads and it was really hard to solder so I recommend that you just use the extension or if not then hot glue it as soon as you solder it so it has less chances of pulling stuff and making your life really hard.
Step 8: Before Connecting the Wires
Ok, so make sure you have 13 wires coming out of your controller board (or as many as appropriate if you used a different model) I recommend that you test your work, I plugged in the USB and went to the input configure and simulated pushing buttons by touching each wire to the ground wire in order, when I was sure everything worked I used a crazy amount of hot glue on the board specially where the shoulder buttons went and were the USB cable goes, those are the weakest points so I wanted to make sure they won't break. But hold off on the hot glue until the next step unless you want to end up cutting your cable like me in a few minutes....
Now go ahead and drill a hole in the front of your box de solder tour USB wire and feed the USB cable thru and solder it back to the board. Now that you ran the USB wire thru the hole in the box, now you can go crazy with the hot glue, or just use duct tape or any other means to protect your soldering points
Step 9: Now Let's Get Started!
Now, Put a female quick connect on each of the 12 wires don't do anything on the common/ground yet. Connect each wire to the appropriate button, now if you look at the micro switches there will be a male spade connector on the long side, this male connector is curved kind of like a "j", That one is the ground/common. Depending on the switch that you have you either have 1 or 2 more male plugs those are straight and the normally open should be the one closest to the ground connector but it doesn't hurt to test it or read the labels on the switch itself.
After you connect the six action buttons and the start + select you should have 5 wires left over, 4 of those are for the joystick. The joystick connects just like any other switch but remember that the switch at the bottom is the up, and the top one is down, left is right and right is left, this is because the switches are below the fulcrum of the lever and when you move the stick up the bottom part of it is pushing against the switch on the bottom, it's pretty simple stuff but it's also easy to miss. It's no big deal if you wire it it wrong as there is a configuration menu as soon as you use Retropie the first time so it can be fixed there but it might matter for other programs or if you ever want to plug this into something else but your Pi. The point is you should do it do it right if you can it its not the end of the world if you don't.
Step 10: Med Time!
Right about now your medicine dispenser alarm should go of, time a break and swallow a bunch of pills! Also a PSA if you are using a soldering gun like mine, don't ever buy the copper tips thinking they might be better, they aren't... I still don't know what they are for... they oxidize super fast, they bend and they don't last very long (that's what she said). All the oxidation makes it so that the tips that are inserted into the gun stop making contact and you will think your gun broke... Just remove the dumb copper tip and use one of the ones it came with, even if the tip is wider and not as easy to work with (that is also what she said). If anybody know shat those copper tips are good for let me know in the comments please.
Step 11: Connecting the Ground
Now we are almost done. What I did for the ground was that I daisy-chained them all from one wire, I really recommend this as opposed to soldering 24 wires to the board, with this method you use one wire per button (12) and then one daisy-chain with 12 female connectors on it. Basically you connect the one ground wire we soldered to the board to a female connector and insert another wire in the connector before crimping you do this 10 times and the last one you just end it with one connector and you should have one wire with 12 females let's call this a harem (this is illegal unless you are living in the Middle East or you are a Mormon trying to get a show with TLC). You could alternatively end the daisy chain by looping it back around and connecting it to another ground point in your controller PCB but I don't think it's necessary but you could be safe if you don't trust your soldering skills.
And you could also just use two wires per button and solder a lot more but I really discourage that if you are using a really cheap pad and a very powerful and heavy soldering gun as there would be twice as many chances of pulling leads on the PCB and creating headaches for yourself.
If you are leaving the bottom of this exposed then you should really try to manage your wires better than I did to make it look pretty, you can use tie wraps, trimmers or something to keep things neat down there, I didn't do a good job with managing the wires because I fully expect mine to die virgins so I don't think anybody will ever go down there again.
Step 12: Tie a Knot
Ok so now either tie a knot or use big zip ties or duct tape or do something so that the USB cable won't pull more than what you want to leave outside, this is also very important as there will surely be a time when a baby will walk in front of you when you are playing and will pull on your controller wire or someone will just try to lift it by the wire or something equally as ridiculous, if you didn't take this very small precaution then every time someone tugs on that wire they'll be pulling your PCB agains the inside of the box and it might break solder points or disconnect buttons... Or do other generally bad things. So please secure your wire.
I don't have a picture of that so instead I got for you a screen capture of the greatest inspirational story I've ever read, enjoy.
Step 13: Test and Test Again.
This step is simple just run thru the input configuration tool with both controllers, then play some games, then ask someone else to play, make sure nothing is loose or otherwise broken.
Step 14: Close It Up
Now if it all worked you can either leave it as is or you can close your box.
I was going to use screws on mine but then I decided that my sister, her husband nor her kids had any business near my beautiful work so I used my nail gun with 3/4in brads to attach a thin plywood panel that I cut from some scrap I had left.
I stained this with a one step espresso colored stain, waited until the next morning and nailed it to the box, I then attached silicon feet to minimize sliding and so the bottom wood isn't directly sitting on tables or floors. And I was done!
Step 15: Now Enjoy!
All that's left now is to take some pictures of the finished product, send them to my friends to make them jealous, write an Instructable about the whole process, play with them for about a day to make sure nothing comes up and then mail them from WA to FL so they can arrive by the 25th of Feb as a surprise. Oh yeah and also drink a can of pure diabetes to celebrate!
Oh and In case you are wondering, I bought a case that's intended for KODI users so it has no access to the pins or the card inside, only the user ports, this should keep the kids from touching something they shouldn't and should also prevent something actually falling in the pins.
Thanks for reading and if you make one let me know! Also if you enjoyed it or learned something new Please vote for me!
And remember the best way of supporting veterans is by making sure their business succeed, even if you could buy things from China for $.25 less is it really worth it? Thanks again and have a nice day!