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.

Comments

  1. Eric says:

    Atmega8 can definately do it.

    I believe there is an open source project on it (from what i saw, it supports up to 4 controllers at once, including a mix match of snes controllers and also support the 4 port nes adapter on ports 1 and 2 of the chip)

  2. Eric says:
  3. osgeld says:

    couple notes

    its a 328 :)

    and it doesnt show up as a HID keyboard, it shows up as a HID Joystick

  4. svofski says:

    Bookmarking just for the Joystick HID. Good job, osgeld!

  5. svofski says:

    oops! instructables detected! no clicky.

  6. Xeracy says:

    looks nice, but NES isn’t a real OS…

  7. osgeld says:

    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

  8. osgeld says:

    LOL @ Xeracy

  9. Memento says:

    I’d like to see a bluetooth implementation of an [S]NES controller.

  10. Concino says:

    Osgeld did it again. Pretty sweet use of the original PCB. I still didn’t get the zener diodes. How does it lower the voltage for the USB?

  11. Osgeld says:

    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

  12. tim says:
  13. Stephen says:

    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.

  14. Osgeld says:

    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

  15. deyjavont says:

    @Memento

    I made an NES bluetooth, but it might not be the kind you are thinking of. It’s a bluetooth headset.

    http://lowlevelowls.blogspot.com/2010/04/bluetooth-nes-game-pad-headset.html

  16. vic says:

    I made one using an ATtiny44. It’s much smaller, and except for replacing the wiring I didn’t damage the pad in any way. I didn’t bother to post it anywhere since many similar designs have already been published but maybe I will now ;-)

    Pic here for the curious : http://i50.tinypic.com/zlcav9.jpg

  17. Brett says:

    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.

  18. osgeld says:

    @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

  19. MoJo says:

    Oblig: http://denki.world3.net/retro_v2.html

    No need to trash the controller. Since it is hard to get hold of NES connectors what I do is cut the end off and splice a DB9 into the cable. It then still works on a real NES and can also be used via USB.

  20. dddanmar says:

    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

  21. cause says:

    i have several that i made just using a usb keyboard. it seems to be a way simpler approach.

  22. Barret95 says:

    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?

  23. Gert says:

    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.

  24. Kaz says:

    I know this post was ages ago, but my site has modified versions of the 4nes4snes project from Raphnet that compile for ATMega48/88/168/328. Also working on one for ATTiny84.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 96,771 other followers