Make a USB NES Controller by x2Jiggy
Featured
This tutorial combines an original NES controller, USB keyboard, wire and tact switches into a USB NES controller suitable for use with NES and arcade emulators. The basic idea is that the keyboards controller unit is installed in the NES controller housing. The original buttons activate tact switches that are wired to the keyboard controller. When the NES controllers buttons are activated, they're registered by your computer as a key press. If you're comfortable with a soldering iron and don't mind working in small spaces, you should be able to make a USB NES controller with cheap and readily available parts. I would recommend reading the whole tutorial before starting as understanding the whole process will be of great benefit for completing each step.

I found a janky old NES controller that had seen better days in my cupboard. Considering its poor condition, I wanted to sacrifice it for a retro gaming project. I ended up combining it with an old PS2 keyboard as a frankenstein style prototype for this instructable. I was then confident enough to pick up a cheap usb keyboard and sacrifice a controller in decent condition. The benefit of using a keyboard as the brains of the controller is that it wont require drivers and will be compatible with most operating systems. Plus, it's a cheap way to convert an old piece of gaming kit into something you'll get some use out of.
 
Remove these adsRemove these ads by Signing Up

Step 1: Things You Need

Parts list:
- 1x Nintendo NES controller
- 1x USB Keyboard*
- 8x Tact switches
- Hookup wire. preferably coloured to make life easier when soldering.

* Keyboard controller contained within needs to be small in size. Older keyboards tend to use controllers too large for this project. If unsure what this means, see next step.

Tools:
- Soldering equipment
- Dremel (rotary tool) with cutting bit
- Drill
- Small files
- Hot glue gun
gsarabia says: Dec 10, 2012. 10:32 AM
Amazing!!
stevenrobday says: Nov 27, 2012. 12:07 PM
what gauge hookup wire did you use?
Angus MacGyver says: Nov 23, 2012. 7:46 AM
Nice 'structable. Concise and easy to follow. I want to give this a shot with my phone. I like the idea of using an SNES controller, but this is a good for a practice run.

My only critique, is the glue on the switches looks bad. I know it's not visible with the case closed but... Hot glue is the tool of the devil and his head minion Martha Stewart

I'm probably going to use epoxy for a lower profile but I need to understand why you needed to replace the original switches. If it's simply a matter of closing the circuit why not solder the kb controller leads to the remaining nintendo board. What am I not seeing?
cacita_333 says: Oct 21, 2012. 1:05 PM
Can I take the hosting from a Wireless Keyboad?
ralphulous says: Apr 22, 2012. 9:29 AM
can you elaborate more on the ghosting? why would you use a single contact for two stitches? i don't quite understand.

thanks in advance!
x2Jiggy (author) says: Apr 22, 2012. 11:16 PM
Ideally you will have all 8 inputs using separate pins (8 from either group of pins) to eliminate the problem of key ghosting all together however that's usually not possible. Most likely you will have to use a couple of the pins for two inputs.

If you look at the image where the coloured wires are soldered to the pins of the keyboard controller, you'll notice I was able to use 8 pins of the first group of pins but only 6 pins from the second group because these were the only pins that provided a useful key stroke (The area within the comment box is the second group).

To prevent any potential issues with ghosting, when I had to use a pin for two inputs, I used inputs that would never be pressed simultaneously such as up/down and left/right. Hope this helps! Thanks for reading.
Xeriel says: Feb 5, 2012. 8:22 PM
So, correct me if I'm wrong, but the original controller board isn't involved with any of the circuitry? You just use it to maintain proper placement for the buttons, and the tac switches are the only things wired?

I've been looking for some ideas to include a USB hub inside, and if I understand you right, this should let me free up way more space for extra hardware. Definitely a tweak to consider.

Great guide!
nani0san says: Dec 10, 2011. 1:30 PM
I was wondering do you have to use the tact switches or can you not just connect the wires directly to the circuit board?

but thanks a lot for the instruction i read some other tutorials for the keyboard controller configuration but yours is the easiest to do yet =3
x2Jiggy (author) says: Dec 12, 2011. 2:44 AM
I was just using the circuit board as a holder for the tact switches. There are solutions for using the existing pcb however you're taking the output of the NES controller and converting it into something your computer can read (link).
This solution doesn't make use of any of the NES controllers circuitry but installs a keyboard controller and wires the buttons up to it. I found this to be the easiest and cheapest method of getting the job done.
skuishingbugs says: Nov 2, 2011. 6:31 AM
i was wanting to do a project where i could play emulated games with an origional controller instead of a keyboard, or a specific emulating controller, and i didnt want to spend all the money on buying and arduino board, and i didnt want the lag time that wouldve gone with it. anyway, im almost done with my keyboard nes controller, and it works! thanks for your instructable!
x2Jiggy (author) says: Nov 3, 2011. 3:40 AM
Awesome. Glad I could help. It's a good time playing NES with the original controller. Enjoy the fruits of your labour :D
Ale Cylon says: Aug 21, 2011. 9:46 AM
Wow is a great idea, I wish I still have NES controllers around, I still have a SNES controller in my spare part cabinet, can you make the same guide but for a USB SNES controller, not so retro but will have at least 4 more buttons that will be nice for PC games.
x2Jiggy (author) says: Aug 21, 2011. 8:04 PM
You could definitely make a SNES controller using the same method but some more planning with the keyboard controller and wiring would be required to accommodate the extra 4 inputs. I have a couple of SNES controllers so I'll take look if I get the chance. Thanks for reading :D
mikeasaurus says: Aug 17, 2011. 8:40 AM
looks great, the perfect addition when running emulators!
x2Jiggy (author) says: Aug 21, 2011. 7:59 PM
Cheers! There has been some sessions of SMB3 and Marble Madness, good times.
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!