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 ads by
Signing UpStep 1: Parts n Tools
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

















































Visit Our Store »
Go Pro Today »




I've been trying to go back and use the wiring of the UsbKeyboard project, but using the UsbJoystick library with it doesn't work at all. The documentation of the UsbJoystick library doesn't mention the wiring explicitelly, and the originl website seems to be down.
I'd love to have some additionnal informations, at least for the wiring.
also digital pin 14 is analog pin zero (d15 is a1 etc to 19)
I'm wondering if it's possible to get 2 NES controllers with one Atmega328 via one usb hub?
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 ^^
it requires 3 lines, a latch line a clock line and a data line
you toggle the latch and that signals the controller to read the current button state and store that in the shift register, then you send it 8 clock pulses to read each button state one at a time serially
I thing this would be really helpfull to others to, maybe I'm gonna do a instructable about it ^^
Would be REALLY cool if someone could help me with that! :)
loading it would be slow as crap but running from it once loaded would be fine
http://www.seeedstudio.com/depot/usnoobie-kit-p-708.html?cPath=104_128
thanks for the link I will check it out!
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
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.