Introduction: Bluetooth SNES Controller for Android
So this is my first instructable...
A little over a year ago I was working on my ECE senior design project, which was a bluetooth SNES controller for Android. Shortly after completing the project, I posted a working video on Youtube. Since then I have received quite a few requests for more info or even a tutorial on how to make one. I figured I had put it off long enough, and now I finally got a video together.
I apologize in advance for the sub-par production value (I'm no Ben Heck), it was literally my first exposure to iMovie, and I'm sure it shows. It also is a bit on the long side at about 35 minutes, but I wanted it to be detailed enough that just about anybody would be able to build a controller. Also, if the whiteboard discussion wasn't clear for you, don't worry...you can just use my arduino source code, I just thought it would be useful for those who are interested.
Here is the source code for the Arduino, along with my Easymote app from the tutorial (you won't find it on the market)
Arduino source: http://www.box.com/s/nt7nr3trnv4dzjm8nvk5
Easymote apk: http://www.box.com/s/sc96b9xah987qlrdmkh8
Here is a video showing my battery operated controller along with playing some Donkey Kong and Zelda on my Touchpad, unfortunately my rechargeable controller was built for a contract and I no longer have it:
If you are looking to internalize the components I have done so with both AAA batteries and also with a rechargeable lith-ion battery from a nintendo DS. For the lith-ion battery you will also need a charging circuit (look at sparkfun.com), and for the 4xAAA battery method I also had to use a voltage regulator. The lith-ion was 850mAh and lasted about 12 hours, the 4xAAA batteries make it over 30 hours.
Other parts:
Bluetooth module: MDFLY module - http://www.mdfly.com/index.php?main_page=product_info&cPath=&products_id=769&zenid=sas6sak8bq57hgr5e4cgrg6ac7
OR BlueSMiRF module - http://www.sparkfun.com/products/10269
Microcontroller: if you have the UNO Dev board - http://www.sparkfun.com/products/10524
OR the mini pro - http://www.sparkfun.com/products/11114
SNES Controller: Either buy an original on Ebay or a knockoff for ~5 bucks online
Also some benefits to making this controller:
1) No need to root your phone/tablet to use the controller
2) Fairly portable in comparison to the wiimote with controller attachment
3) Look like a BA while playing super mario
Enjoy!!
A little over a year ago I was working on my ECE senior design project, which was a bluetooth SNES controller for Android. Shortly after completing the project, I posted a working video on Youtube. Since then I have received quite a few requests for more info or even a tutorial on how to make one. I figured I had put it off long enough, and now I finally got a video together.
I apologize in advance for the sub-par production value (I'm no Ben Heck), it was literally my first exposure to iMovie, and I'm sure it shows. It also is a bit on the long side at about 35 minutes, but I wanted it to be detailed enough that just about anybody would be able to build a controller. Also, if the whiteboard discussion wasn't clear for you, don't worry...you can just use my arduino source code, I just thought it would be useful for those who are interested.
Here is the source code for the Arduino, along with my Easymote app from the tutorial (you won't find it on the market)
Arduino source: http://www.box.com/s/nt7nr3trnv4dzjm8nvk5
Easymote apk: http://www.box.com/s/sc96b9xah987qlrdmkh8
Here is a video showing my battery operated controller along with playing some Donkey Kong and Zelda on my Touchpad, unfortunately my rechargeable controller was built for a contract and I no longer have it:
Other parts:
Bluetooth module: MDFLY module - http://www.mdfly.com/index.php?main_page=product_info&cPath=&products_id=769&zenid=sas6sak8bq57hgr5e4cgrg6ac7
OR BlueSMiRF module - http://www.sparkfun.com/products/10269
Microcontroller: if you have the UNO Dev board - http://www.sparkfun.com/products/10524
OR the mini pro - http://www.sparkfun.com/products/11114
SNES Controller: Either buy an original on Ebay or a knockoff for ~5 bucks online
Also some benefits to making this controller:
1) No need to root your phone/tablet to use the controller
2) Fairly portable in comparison to the wiimote with controller attachment
3) Look like a BA while playing super mario
Enjoy!!

Participated in the
Game.Life 2 Challenge

Participated in the
Arduino Challenge
31 Comments
8 years ago
i'm new in electronics but this project interest me. I already have an arduino and the bluetoith module and other parts. but my problem is I don't understand where pin to connect the bluetooth module.
9 years ago on Introduction
9 years ago on Introduction
For some reason easymote app is keeps giving me a stopped responding message. I assume this is because I am running 4.2 jelleybean as opposed to ice cream sandwich. Is there a fix or another program I can use to get my controller up and running as an input method. Thanks!
Reply 9 years ago on Introduction
I am on an S4 BTW
11 years ago on Introduction
Does it only work with android?
Reply 11 years ago on Introduction
Well the instructable works for android only, but I did also make a Windows app that showed it could work on a PC too.
Reply 10 years ago on Introduction
I'd be interested in the windows app as well. I have the bluetooth controller built and would love to be able to use this on PC as well as my Android device.
Reply 10 years ago on Introduction
Unfortunately I wasn't ever able to track down my visual studio project for the windows app, I remember it wasn't too difficult though. I just used the built in .NET bluetooth libraries to communicate with the controller, and had the controller button presses trigger keyboard events (much like we do for the android app), then in the emulator just make sure the keyboard keys correspond to the correct actions. I might have had to fiddle around with the meetandroid library for the arduino end too I can't really remember. Also, make sure the BAUD rate matches the 57.6k. If that is a path you decide to go down I could do my best to answer any questions you might have along the way.
Reply 10 years ago on Introduction
Do you have info posted for the windows app?
Reply 10 years ago on Introduction
Unfortunately I don't, but I might still have the Visual Studio project somewhere, if I find it I'll try and post it.
Reply 11 years ago on Introduction
thanks!
10 years ago on Introduction
https://www.sparkfun.com/products/11114
https://www.sparkfun.com/products/10401
http://www.mdfly.com/index.php?main_page=product_info&cPath=&products_id=63
i got mine to fit inside, i had to dremmel some of the plastic out
Reply 10 years ago on Introduction
https://www.sparkfun.com/products/341
10 years ago on Introduction
btw, you can't get rid of the constant stream of blank messages, this lets the android device know that the bt connection is still good. I tried and easymote kept crashing,
10 years ago on Introduction
Yea I'm having a few issues with the easymote app and could probably use a look at the source myself. It's outputting to the amarino monitor just as in your video and it seems to connect with the easymote app but when I try to change the mapping it doesn't react to button presses. I've used an AT&T Note 2 (4.1.2) and a Transformer TF700 (4.2.1). I've also struggled with it crashing sometimes.
10 years ago on Introduction
Would you mind releasing your EasyMode app source? I'm doing a similar project but with a Gamecube controller and I'd love to see your take on the app. :)
Reply 10 years ago on Introduction
Hey, its been awhile since I've pulled up that project, let me see if I can track down that code...if I can I'll post a link to the project here.
10 years ago on Introduction
I'm using a Nano arduino for this. Are the pins the same for the clock, latch and data?
Reply 10 years ago on Introduction
Yeah they should be as long as your using my arduino file
10 years ago on Introduction
Hi, I've followed this and got the controller up and running on my phone but I have a problem with Easymote on my tablet (Asus transfomer tf300). Easymote crashes after selecting it in the "Change Input Method", any idea on how to fix it? Thanks