SNES gamepad coversion to USB

[Kekszumquadrat] wanted to use a classic controller to play emulator games on his Android tablet so he set out to convert an SNES gamepad to connect via USB. He found an old USB keyboard at a yard sale for about 3 Euros. He knew that the emulator he prefers has the option of remapping all the inputs to keyboard keys which means a USB keyboard has all of the electronics he would need to pull this off.

Once he had separated the keyboard circuitry from the case [Kekszumquadrat] plugged it into his Linux box and used Xev to establish how the keyboard matrix is set up. Xev is a common package that opens up an active window on the X desktop. When run from command line, any events that happen to the window will be echoed along with verbose data about that event. When it comes to keypresses, you’ll get the keycode you need. He simply shorted columns and rows until he found the desired mapping, then it was on to soldering.

The SNES controllers are very simple devices. As we’ve seen with previous projects, they use a serial-to-parallel shift register to gather button data and send it to the console. [Kekszumquadrat] simply soldered between button traces and keyboard matrix contacts. Once he finished, the keyboard parts were tucked inside of the controller case and he’s left with a USB controller that appears to be unaltered.

It appears to be a common USB keyboard chip which has drivers on pretty much anything with USB. Try plugging 2 USB keyboards into one computer and you’ll notice that both work. This means you can use the normal keyboard and more than one gamepad! You just have to solder the 2 gamepads differently. I’m not sure if the tablet will do this, though, even with a hub.

I have USB adapters for our Playstation controllers and they’re also pretty good for playing Super NES games on. Putting the keyboard’s logic board inside a game controller itself is great, though – One less adapter to mess with! It is very portable which makes sense for the application.

What makes you think that? It looks like the genuine article to me, and there was no mention in the write-up about which brand was used. In any case, a “genuine” controller being used for its intended purpose isn’t “ruined”.

Agreed. Arduinos do have their place but they have been way overused in the hacking community. I love the way this was two working products smashed together with the aid of a soldering iron to produce something as awesome as this! Great job mate!

If I want one of those, I’ll go for a real analog stick like the XBox or one designed for the PC. And it was essentially an digital pad just like the NES but with a knob instead of a D-pad. At least Nintendo didn’t have the “oops accidentally pressed Down/left instead of just down” issues of a Sega Genesis pad. By the way, the Genesis used the Atari 2600 interface with the old resistor trick to gain extra buttons. But I’m sure you knew that if you played both, hehe.