So a few weeks ago I saw a post on Hackaday of a project from Pat, who managed to stuff a bluetooth controller into an old SNES controller. He was using it to play games on his Amazon Fire stick. I had purchased a Firestick when they first came out for $19. I honestly didn’t use it much because I had a Roku already that I used heavily for streaming etc. But I love old school emulators so I wanted to do this project. Unfortunately if you look at Pat’s site, he did not document his journey building his controller, fortunately for you readers I did. I did have a few hurdles along the way.
First I went to Gamestop right away to get thebluetooth controller that was on sale. They had 2 left so I bought them both. I wanted to get a SNES controller cheap. I found someone on craigslist out of New York that was selling the original controller, an aftermarket one and a AC adapter for $10 bucks i jumped at it even though I only needed the OEM controller. After getting him to mail them to me for an additional $4 they arrived a few days later. unfortunately the OEM controller has a broken right trigger button and some of the screw posts inside were broken. After haggling with him I was able to get $5 back from him. (even the aftermarket controller’s right trigger was busted :/ ) So after getting my $3.99 Qi charger receiver I was ready to dig in.
I took down the controllers to their bare circuit boards.
On the bluetooth controller I went to our resident electronics guru Cobey to figure out tracing the buttons. The controller made it simple because it already had testing pads on it, so we just had to match the pads to the buttons. I found a picture online for the pinout of the SNES chip so it was easier to solder all the wires right to those pins.
Getting everything stuffed into the tight space was a challenge , I think in the course of doing so I may have screwed up one of the bluetooth controllers, it would turn on but I couldn’t get the bluetooth LED to light, in effect the controller was not seen if scanned for. So instead of trying to figure out the issue I bit the bullet and started tearing down the second controller i bought for it’s board. I resoldered the new board in and kept tested it along the way to make sure it lit up properly. Success! Almost. I was able to get the board working and connected it to the Firestick but the buttons were jumping all over the place when pressed. I tried emailing Pat for a little help and he recommended unsoldering everything from the original SNES board. It worked better but a few buttons I must have mistakenly swapped when resoldering. So i reswapped them and It was good to go.
Next was getting the LEDs switched from the tiny onboard ones to bigger ones and the Qi charger mounted to the SNES case.
If you noticed in the pic there’s also a momentary switch glued into place. I used a bit of hackery to make the button long enough to stick through the case by cutting a small circle into some green acrylic using the laser cutter we have at the space. I used some really super strong glue to glue it to the top of the button and then drill a hole big enough to fit it through.
I ended up using an android app called “Gamepad Tester” on my tablet to check the button presses to make sure they all were mapped correctly. Once it was I had to jam both halves of the controller together and put the screws back in.
Now was the fun part, getting the emulator on the Firestick. I found a tutorial online and started off. (I dont recommend downloading rogue .apks so go to the source to get them) In order to get the emulator to your Firestick, you need Android Debug Bridge (adb) to talk to it to transfer files etc… I was on Win8 so I grabbed a simple adb installer ::here:: instead of installing the whole devkit.
After installing it I downloaded the RetroArcade.apk then I went into settings of the Firestick to get it’s IP address (it was already connected to wifi)
ENABLE ADB DEBUGGING
1. Go to Firestick Settings
2. Then System
3. Then Developer Options
4. Enable ‘ADB Debugging’
SIDELOAD APP TO FIRE TV
1. Open a Command Prompt (cmd.exe)
2. Type in,
adb connect IPADDRESS
and hit Enter. Type in the Fire TV’s IP address (from earlier) instead of IPADDRESS. ‘Connected to IPADDRESS:5555′ will appear upon successful connection.
3. Download the RetroArcade .APK file and remember it’s location within your computer. Type in,
adb install C:filepathfilepathfilename.apk
and hit enter. The installation may take some time depending on the file size.(be patient)
Next go to Settings and Applications, you should see RetroArch installed, launch it and make sure it opens
Yes it sucks because you have to go into settings everytime you want to launch it, (Amazon doesn’t allow the apps on the homescreen) Luckily there’s a workaround for that, you can use a program called LLama that will allow you to launch a valid app from the homescreen but execute your emulator. I used the instructions::here::. I ended up using “ikono TV” to help launch the emulator which worked, but had its ugly icon on the homescreen. So again I photoshopped a RetroArch icon to overwrite the ugly IkonoTv one, you can get both files these files and make sure to keep the same filename so its easier to overwrite in adb.
I used these commands in a cmd prompt to overwrite the icons with my own:
adb push C:firestickthumbnail_bfc0289736b3b0fbd3e32dec9d5d44c9dbe7cef5a082645ab0af157c6f3f600b.png
adb push C:firestickpreview_bfc0289736b3b0fbd3e32dec9d5d44c9dbe7cef5a082645ab0af157c6f3f600b.png
Now that you have it installed get some Roms (not hard to find SNES roms on google) and play!!!
Here’s some pics of us playing Mario Cart on our projector @ NESIT.