NESuino: NES Controller Interface

Home » Electronics » NESuino: NES Controller Interface
10.03.2010 14:05 [Last Modded 10.07.2016 07:21]

*note* This is so outdated. Arduino Pro Micro fits inside an NES controller, connected directly to the pins, and shows up as a USB keyboard to anything you can plug it into. How-to coming soon...


So this is quite a complicated mess of hardware and software to accomplish quite a simple goal, but... I guess that just how I roll ;) No, really though, it's just the only way that it would work exactly how I wanted it. Keystrokes, not joystick control.

I found Direct Pad Pro but its old discontinued software and you have to solder diodes and blah blah blah.
There are also simple premade USB adapters that can be purchased online, but again, thats joystick control.
AACKeys would have been perfect if it worked right, but I could not make that happen, so...


Here it is. Not much to look at maybe if I had more than one Arduino, I would put this in a project box or something. Yes that is a Yellow and silver NES controller. I like to customize my stuff. ;)

NESuino-close up of wiring

Close up of wiring connections.

  1. White=5V
  2. Brown=Gnd
  3. Orange=Digital Pin 2
  4. Red=Digital Pin 3
  5. Yellow=Digital Pin 4

Wiring diagram found here.

Arduino IDE

Here is the code to be run on the Arduino. It translates the NES controller buttons to MIDI note formatted text, and sends that out the serial port. I found the Controller.cpp and Controller.h files here.

Serial 2 MIDI screenshot

This is Serial_MIDI_Converter. It takes the "MIDI notes" coming from the Arduino and sends that to any MIDI port. It can also receive MIDI and send it to the Arduino, but thats not needed for this project.

*note* At this point you could just use the NES controller to play notes into Ableton Live devices, control PureData patches, or choose a real MIDI port and control a hardware synthesizer.

MIDI Yoke screenshot

This is MIDI Yoke. It gives you up to 16 virtual MIDI ports on Windows to send MIDI information between programs without needing real ports and cables.

GlovePIE screenshot

This is GlovePIE. It lets you emulate all kinds of input like keyboard, mouse, joystick, MIDI, etc. It can do scripting or "macros". It can read Wii controllers, virtual reality gloves (what it was made for originally), brain wave input devices... you get the idea. Here's my little script that turns the MIDI notes into keystrokes, just as if they were pressed/held/released keys on a real keyboard. Open notepad and start pressing buttons, you will see.

Normal Super Mario Bros.

This is "Normal Super Mario Bros." a collection of Mario Fan Games made by someone called Gamester. I think he/she likes hallucinogens... a LOT. The GlovePIE script above is setup to control these games directly.

FCEUX screenshot

This is FCE Ultra. A Nintendo Entertainment System Emulator. It runs ROMs aka digital copies of game cartridges. The ROMS are technically illegal to have if you don't own the real cartridge blah, blah, blah... You can find them at DopeROMs, using Google, or Usenext, a newsgroup service. There are also ROM hacks, aka modified versions of original games, and legal homebrew ROMs, aka games that people create themselves that run in the emulator, or on the real hardware if you have the right equipment.

fixin' stuff that wasn't broken since 1981... geekasaurusrex dinosaur
Feeds & Filters
Fine Print
geekasaurusrex Geek dino top
Random Post
  • Blipnome 5000Blipnome 5000 is... Fully working Monome clone with 4 knobs. 64 buttons, 64 leds, 4 analog pote...
Most Popular Posts
© 2010-2017 | Running modded version of B|063n61n3*d0t*N3T v2.0.0.36. | Theme by geekasaurusrex (chichian).