3 Simple Ways to
Share What You Make

With Instructables you can share what you make with the world — and tap into an ever-growing community of creative experts.

PhotosPhotos

Share one or more photos of a project, recipe, or whatever you've made, quickly and easily.

Step by StepStep-By-Step

Share your step-by-step photos with text instructions of what you made so others can do it too!

VideoVideo

Share your how-to video. You'll need your embed code from a video site such as YouTube.

Convert a NES gamepad to USB with Arduino

Convert a NES gamepad to USB with Arduino
Hello!

In this instructable, I will show you how to hook up a Nintendo Entertainment System control pad to an arduino, the arduino is in turn running a special sketch that allows it to show up to a PC as a USB HID joystick!

And if that is not cool enough, I will show you how to shove it all inside the NES controller shell for a simple controller + wire, "plug n play" device!


Notice!!
If you hook this up wrong you can fry your arduino, and or your usb ports, if you choose to biuld this project you assume responsibility for its proper construction

Sofar I have tested this on ... Windows XP pro, Windows 7 64 bit, and Ubuntu 9 32 bit

So far its not tested on Mac, I don't see why it should not work on Mac, but its untested, the only Mac I have in the house is a SE from 1986, I will test it as soon as possible, just gotta sweet talk a co worker into bringing his macbook pro into work :)
 
Remove these adsRemove these ads by Signing Up
 

Step 1Parts n Tools

Parts n Tools
Tools: your usual electronics tools... on this project I used

Soldering Iron

Solder wick

Solder

Small phillips (+ shape) screwdriver

razor knife

small needle nose pliers

electrical tape (or proper sized heat shrink, I just happen to be out)

multimeter

Tweezers

Parts:
Arduino (with atmega 168 or 328, other chips not tested)

and a EXTRA atmega chip, you dont HAVE to but I installed this inside the controller, so you may want to have an extra chip on hand with a boot loader installed on it to replace the one we will be using (especially for me since I use my arduino AS a avr programmer, I would be kinda stuck)

16mhz crystal (ceramic resonator works fine, but I had the crystal and caps already)

2 * 22pf for the crystal (if your using a resonator then its packaged in for you)

0.1uf cap (code 104)

2 * 68ohm 1/8 watt resistors (or smaller if you want, just not larger, its tight in there)

1k5 ohm resistor

2 * 3.6v zeiner diodes 500mw or smaller

USB cable you dont mind cutting one end off of

NES game pad

thin insulated jumper wire
« Previous StepDownload PDFView All StepsNext Step »
34 comments
Dec 19, 2010. 5:54 AMkirreböna says:
Hi! I'm having some trouble understanding the schematics here, it seems to me that they are showing quite different setups? And I can't find an arduino pin 14 either?
Feb 6, 2011. 8:45 PMshaggs31 says:
I've looked at this as well and agree with kirrebona. In the two schematics arduino pins 2 and 4 are not going to the same place. In the bread board you have pin 2 going to D+ and pin 4 going to D-. In the other pic you have them reversed. I might be wrong but I do not want to follow the wrong one. Some imput would be great thanks.
Apr 5, 2012. 8:46 AMmattgilbert says:
Yep, the breadoard image and the schematic image apparently have pin 2 and pin 4 reversed. I'm not sure which is correct (or where in the code/library those pins are chosen in the first place). Also, the diode on pin 4 in the breadboard image is connected to power, rather than ground. Please clarify the pin4/pin2 connections.
Jul 9, 2011. 3:55 PMnc520 says:
This is great, but a little out of my comort zone for electronics. Any chance you would be willing to sell one? Thanks!
Aug 29, 2011. 12:50 AMstvenson_nathanael says:
heare this is beter for you http://www.retrousb.com heare is a you thbe video of it http://www.youtube.com/watch?v=vG_OOV2bBaY
Jul 13, 2011. 4:16 PMmreginello says:
Check E-Bay. They should have some good ones for a low price :)
Jun 19, 2011. 3:44 PMHallmar says:
How much is the cost of this Usb NES controller?
Dec 15, 2010. 4:12 PMthe_prototype says:
Hey nice Instructable! :)
I'm wondering if it's possible to get 2 NES controllers with one Atmega328 via one usb hub?
Dec 16, 2010. 7:27 AMthe_prototype says:
so all I need is a serial to usb converter? :D
I though about putting the Atmega chip and the circuit "behind" the original plugs so you can plug in or out the controller, but didn't want to have 2 USB connection :p
Thx didn't knew it gives serial signals ^^
Dec 16, 2010. 10:08 AMthe_prototype says:
cool thx a LOT! :)
I thing this would be really helpfull to others to, maybe I'm gonna do a instructable about it ^^
Dec 15, 2010. 4:16 PMthe_prototype says:
I mean, it would be easy to just add some lines of codes to give the Atmega328 the pins where the second controller is connected to, but to be honest, I'm new into arduino programming and don't get it xP
Would be REALLY cool if someone could help me with that! :)
Nov 20, 2010. 8:11 PMajmckay says:
Awesome instructable! Now I wonder if we can figure out how to "theoretically" store an accessible library of games (roms) so that it will be accessible through the controller....
Nov 18, 2010. 6:48 AMlothoth says:
Can I use an atmega16 instead?
Nov 18, 2010. 2:40 PMgabrielsan says:
Can it be done for the SNES to work?
Nov 18, 2010. 5:12 PMfrank26080115 says:
hey it looks like you are using V-USB, I've developed a MCU kit that is designed specifically to build stuff like this

http://www.seeedstudio.com/depot/usnoobie-kit-p-708.html?cPath=104_128
Nov 18, 2010. 2:53 PMcomputurwizard says:
Would it be possible to modify this project to make a USB joystick using potentiometers and buttons, but not use an NES gamepad at all? Awesome job BTW!
Nov 18, 2010. 7:51 PMfrank26080115 says:
Hi you might be interested in my tutorials here
http://frank.circleofcurrent.com/index.php?page=hid_tutorial_1

and this will also help
http://frank.circleofcurrent.com/index.php?page=usnoobie_rfid_keyboard
Nov 18, 2010. 9:36 AMmojo-chan says:
May I humbly suggest: http://denki.world3.net/retro_v2.html

Cheaper than an Arduino (although you do need an AVR programmer, or you can order programmed chips from me or anyone as it is open source) and designed not to alter the original pad. Well, you can reduce cost a bit by splicing in to the pad or do what I do and add a DB9 near the NES connector so it can be used on USB and a real NES.
Sep 4, 2010. 9:37 PMT_T_ says:
this is pretty cool check out this website http://www.retrousb.com/index.php?cPath=25
Aug 5, 2010. 10:20 PMklarkg says:
IVe got some 5v zeners any chance those will work?
Jul 7, 2010. 12:24 AMFrozenFire says:
I think it would be a lot less invasive to just tap into the shift register. You could even leave it functional for the NES too that way.
Jul 7, 2010. 12:24 AMFrozenFire says:
(nice instructable by the way)

Pro

Get More Out of Instructables

Already have an Account?

close

All Steps Viewing
View all steps of an Instructable on the same page when you're a Pro Member.

Upgrade to Pro today!
57
Followers
13
Author:osgeld