Bluetooth SNES Controller for Android

52,371

154

31

Published

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!!

Share

    Recommendations

    • Planter Challenge

      Planter Challenge
    • Woodworking Contest

      Woodworking Contest
    • Clocks Contest

      Clocks Contest
    user

    We have a be nice policy.
    Please be positive and constructive.

    Tips

    Questions

    31 Comments

    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.

    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!

    1 reply

    Well the instructable works for android only, but I did also make a Windows app that showed it could work on a PC too.

    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.

    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.

    Do you have info posted for the windows app?

    Unfortunately I don't, but I might still have the Visual Studio project somewhere, if I find it I'll try and post it.

    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

    1 reply

    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,

    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.

    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. :)

    1 reply

    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.

    I'm using a Nano arduino for this. Are the pins the same for the clock, latch and data?

    1 reply

    Yeah they should be as long as your using my arduino file

    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