[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.
Okay.. cool. No link or even a video?
I have an Archos 43 and would love to do this; I just need to find a USB host cable.
I wonder if this project will work on Nook Android hybrids
I have the same question. I’m trying to find a reason to keep the Nook.
Anyone interested in purchasing a barely used Nook, with CM7 on it?
How much, and how much is regular shipping to the Midwest U.S. from there? :)
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.
Very nicely done.
troll as but still: http://austinmarton.wordpress.com/2009/09/14/usb-nes-controller-using-a-keyboard-brain/
That is a nice piece of work. Good job!
And a good choice of a game to test it with.
serial-to-parallel or parallel-to-serial shift register?
Nice, Esp. since they used knock off controllers rather than ruining working genuine ones…
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”.
Oops, I just read the article a bit closer. From the first paragraph (emphasis mine and sic):
“So I figuered I could easily put the controllerboard of a usb keyboard inside the spare original SNES gamepad i had liying around.”
That… That’s Chrono Trigger! I don’t have an Android tablet yet, which emulator are you using?
good job, this is the smart way of going about it.
Im happy its not one of those “hey i almost fitted Arduino and 2 shields in my pad so i can make it USB”
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!
Does the summary not include a link other than one listing previous HaD projects? I am interested in doing this myself
Please don’t approve my previous post.. not sure why it required moderation.. but..
I would like to see more information on this project as I would like to do the same myself. Good job Kekszumquadrat!
Thanks for the heads up!
unfortunately there’s no link to my original post, so here it is:
http://fomori.org/blog/blog/2011/09/24/building-a-super-nintendo-usb-gamepad-for-android-tablets/
I think my writeup is the more important part, since I’m not the only one to have done this hack.
I imagine the android tablet has been booted in USB host mode, in order to work with a keyboard?
Ignore my last – I’ve spotted that the linked write-up mentions that the tablet has a USB port with host-mode-by-default.
A classic controller comes from an Atari 2600. Nintendo was the first to kill the classic with its gay pad-style controller that everyone emulates nowadays.
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.
The snes controller to USB sounds awesome…. Can you sell me one?