NES controller to USB gamepad

Regular Hackaday reader [Osgeld] is at it again with this USB conversion for an NES controller. This is a ubiquitous hack that we started seeing very early on, sometimes involving an adapter kit, and other times including things like a thumb drive and USB hub. But this time around is truly a bare-bones version. He’s using an Arduino but it’s really just an AVR ATmega168 running the bootloader. We’d wager this can be done with an ATmega8 just as easily. Grab a couple of diodes (we never seem to have the 3.6v zener diodes around when we need them), a couple caps and resistors, a crystal and you’re in business. The hack wires each button to a pin and implements a keyboard HID that can be mapped for any purpose you desire.

24 thoughts on “NES controller to USB gamepad

  1. Let me squash the “instructables BOO” crap quickly too

    look at it from my side, since I joined they provide me a stable place to post my projects, and I do, for that I also get a large audience that is highly active, I have also gotten T-shirts stickers and other swag along with xmas cards, Halloween cards (more stickers) and have won gift certificates to think geek and enough gorilla glue to last a few years

    I am going to post it anyway, it might as well be there since they treat me well (for a website) and have the chance to win a pocket knife at the same time

    yes Instructables BOO indeed :p

  2. you hook them up backwards, and they have a very low breakdown point (like 1.2 volts) and thus start to leak current backwards through the diodes to ground, your lower voltages are whats left over

  3. I too am getting pretty sick of the instructables bashing. What exactly do people have against it?

    @tim:

    How is it stolen? It’s a similar concept with completely different implementations. I see that one user did a similar thing and posted an image of it, but there’s no documentation of it.

    Sorry that everything can’t be a one-of-a-kind masterpiece.

  4. so grats tim, you found one of a couple dozen microcontroller + nes + usb projects and instantly accuse me of stealing

    its all based on vusb, I never claim to have written the software, crap page 2 line one states that and goes on to list my references (RTFA)

    yes I saw that project, and I tried to get it to compile, which never happened and moved on to one that would work with the stuff I had on hand

    their all based off of the avr vusb project anyway

  5. I have an idea for using this to monitor the input given from a nes controller. as a part of this, I’d like to be able to hide something small, a few small coins in height.
    Would it be possible to tweak this project to allow that? I’m not sure of the height and clearance for free room with it.

  6. @vic please do, my “original” idea was to use a attiny84 but was not having any luck getting vusb working with it

    @Brett, the controller has a little bit more room in it, but not much, NES pads are everywhere and cheap (paid a buck for that one) so snag one and check it out, worst case they are super easy to hook up to just about anything

  7. I love this, was one of the first Arduino projects I started to fiddle with. Instead of vusb I found a nice sketch that sent the data out over the serial port. Copied it over to an atmega8 with no clock and a ftdi usb chip and crammed it all back into the controller with a bit of snipping away at the cover.

    I’ve been wanting to dig it back up again and change the ftdi chip with a bluetooth module, this might be the inspiration again :P

  8. I was wonder what would happen if you just unsolder the five wires on the nes controller and just replaced them with a 5 wire usb cord? my theory is it just wouldn’t recognize it, or hopefully it would it take?

  9. I did this, unfortunatly i selected the easy pins to solder and that resulted in one pin not being supported by the software. And i used a Azerty chip for a Querty based software.

    That Querty Azerty shit needs to dissapear.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.