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.

Interfacing With A PS/2 Keyboard

Anyone reading this post has undoubtedly used a keyboard. How they work, however, is a bit more complicated than “one button, one input.”  [PyroElectro] has a great tutorial about building a PS/2 keyboard interface with a 7-segment LED display (video after the break). The tutorial also includes quite a bit of theory behind it.

The system displayed below uses a PIC controller to display the letter or number pressed. A schematic of the whole project is given here as well as a detailed bill of materials.

As for how the PS/2 keyboard works, each keystroke is encoded into a binary number or “scan code”. Most of these codes are 8-bit, but some special symbols use a longer code. Although the article doesn’t fully address it, a very similar method can be used to send data back to the keyboard for such purposes as tuning on a “capslock” or “numlock” key. Although turning on a light is fun, we could see this being used as an expedient method to control a relay for automation purposes.

Continue reading “Interfacing With A PS/2 Keyboard”

Arcade Controller In A Box

[Alex] wanted to play video games with an arcade stick and buttons, but got sticker shock after seeing the price of commercially available controllers that connect to a computer via USB. He set out to build his own and ended up with the controller-in-a box that you see above.

At first he tried using an mbed microcontroller board but was unhappy with the latency built into the system that detected a button press, sent it via USB as a keyboard press, which was then interpreted as input by the game. He ditched the microcontroller completely and picked up a couple of 4021 parallel-to-serial shift registers. He had previously used this method to make his own SNES controller. The SNES uses two 8-bit shift registers to generate an 16-bit serial packet to send to the console. [Alex’s] reused that system, adding an SNES controller plug to his arcade box, and using the SNES to USB converter he already had to connect to the computer. Now he’s got a portable controller for the cost of three buttons, the stick, and two IC’s.

He explains the project himself in the clip after the break.

Continue reading “Arcade Controller In A Box”

Paddle Controller For GPU Overclocking

[Fred] likes to squeeze every cycle possible out of his graphics card. But sometimes pushing the clock speed too high causes corruption. He figured out a way to turn a knob to adjust the clock speed while your applications are still running.

The actuator seen above is a Griffin Powermate 3.0. It’s a USB peripheral which is meant to be used for anything you can imagine. [Fred] uses an AutoHotKey script that he wrote to capture the input from the spinner, process that information, then adjust GPU clock speed in the background. Since the clock on his ATi Radeon 5800 can be adjusted using the AMD GPU clock tool, it’s an easy choice for this application. Now better graphics are at the tips of his fingers. See for yourself in the video after the break.

Of course if you don’t want to shell out for the fancy hardware you could always build your own paddle controller.

Continue reading “Paddle Controller For GPU Overclocking”

More FrankenKindle Progress

[Glenn] sent us an update on his FrankenKindle project. You might remember this hack from back in July. [Glenn] is modding the device to make it easier for his sister, who has Cerebral Palsy, to use.

The latest revision adds a case for the hardware. The silver button pad is what remains of the V.Reader (a children’s toy), having had the screen portion hacked off. The case provides a stable base for the reader and buttons, holding them at a nice angle for easy use. There’s just a bit of cable routing that needs to be finished to protect some fragile connections. The picture above does show the circuit board to the side, but there is a place for it around back.

In the video after the break [Glenn] mentions that the response to keypresses is a little sluggish. Sure, some of this is Kindle’s own delay when refreshing the ePaper display. But we can’t help but think the code running on the Teensy could also be optimized. We’ve asked him to post his code if he wants some tips, so check back and help out if you can.

We do have one feature suggestion for him. The Kindle keyboard no longer functions because that flat cable coming out the side is what connects to it. It’s quite easy to add a PS/2 keyboard port to a microcontroller. That would be a nice addition to the FrankenKindle as it would make things like shopping for books a bit easier.

Continue reading “More FrankenKindle Progress”

PS2 To USB Keyboard Converter Also Logs Your Keystrokes

[Shawn McCombs] is up to no good with his first Teensy project. The board you see above takes the input from a PS2 keyboard and converts it to a USB connection. Oh, and did we mention that it also keeps track of everything you type as well?

From the beginning the project was intended to be a keylogger. It’s a man-in-the-middle device that could be hidden inside the case of a keyboard, making it appear to be a stock USB keyboard. Data is stored to an SD card so an attacker would need to gain access to the hardware after the data he’s targeting has been typed.

It works mostly as [Shawn] expected. He is, however, having trouble handling the CTRL, ALT, Windows, and Caps Lock keys. If this were actually being used maliciously it would be a dead giveaway. Many secure Windows machine require a CRTL-ALT-DELETE keystroke to access the login screen.

Overhaul An Old Mechanical Keyboard

Deskthority forum user [lowpoly] recently posted a writeup on his complete overhaul of an Apple M0110  mechanical keyboard.  Any one familiar with the satisfying clack of a good mechanical key under their fingers can appreciate the effort put into this project.

[lowpoly] removed the keyboard’s PCB, rewired the key matrix adding diodes, built in a teensy USB board, broke apart the mechanical switches and fit replacement springs and finally applied a generous portion of retr0bright to all of the aging plastic. Since the teensy has no mounting holes [lowpoly] had to create a mounting assembly out of some spare plastic. A usb mini cable is even fitted into the original RJ-11 connector.  To compensate for the lack of PCB the key assembly was fitting with some rubber washers. To top off the whole thing some nice new rubber feet were taped to the underside of the M0110.

[lowpoly] reports that with the foam, new springs, and lack of PCB the keyboard is much quieter and easy to use.  The end result is a slick retro looking modern keyboard. If you’ll excuse us we have to go rooting through some old storage bins to find our own ancient keyboards.

We have seen our share of vintage keyboard hacks which can be useful, impressive and sometimes just odd. This build keeps it down to a nice simple, functional, useful retrofit. Nice work!