A Better, Open Hardware Keyboard

A keyboard is the most important tool in the modern desk jockey’s arsenal but, despite this fact, millions of people suffer the $10 membrane keyboards that shipped with the computer they got a decade ago. It’s a terrible way to live your life, but for those of us who are enlightened, there’s another way: mechanical keyboards. [Mário] over at the Bit Bang Theory just built his own mechanical keyboard with his own homebrew firmware and a few interesting features that aren’t found in other open hardware keyboard projects.

The ‘from scratch’ aspect of this build is somewhat of a misnomer; the key switches used in this build were taken from a Monterey K108, and the key caps were taken from a keyboard with a Portuguese layout. Once the switches were in place and soldered up, it was time for the electronics.

While most homebrew keyboards these days use a Teensy 2 thanks to some amazing firmware and development tools that have grown up around this device, there’s not a Teensy to be found inside this keyboard. The keyboard controller is built around a PIC18F4550 and uses the USB available on the chip. Naturally, there are more than a few WS2812b RGB LEDs around the edge of the keyboard that “breathe”, run a KITT-style LED chaser, or simply display a single chosen color.

There are a few neat features in this keyboard controller that aren’t readily available with other open source keyboard firmwares. There’s a keylogger, macro recorder, and a toggle macro that will activate or deactivate a (secret) internal 8GB USB storage key. Settings are saved in the internal EEPROM.

It’s a great looking build, and something we don’t see enough of around here. In any event, it’s just one step further towards eliminating the menace of cheap keyboards, and something we hope to see more of soon.

Foam and Antistatic bag Bring Vintage Compaq Keyboard back to life

After winning an online auction for an 1980s vintage Compaq Portable PC, [leadacid44] discovered why it only cost him $5USD – the keyboard was shot. Not willing to accept having forked out $45USD to ship a brick, he tore into the ancient machine and came up with a found-material solution to the wonky keyboard.

[leadacid44]’s very detailed writeup of the fix for his Compaq includes a thorough examination of the guts of the machine. He got it to boot to MS-DOS 5.0 off of a 20MB ISA hard drive card and began probing the keyboard problem. It turns out the Compaq keyboard has much in common with a modern touchscreen, in that it’s a capacitive keyboard. Unfortunately the foam disks used as springs under each key cap had degraded over the last 30 years, so [leadacid44] began a quest to replace them. After much experimentation and a few false starts, he created a sandwich of transparency film, closed-cell polyethylene foam, and a Mylar antistatic bag. Many discs were punched out with a leather punch and tediously placed in the body of each key switch, and the quick brown fox was soon jumping flawlessly over the lazy dog.

We’ve seen some fixes to these lovable luggables before, like this dumpster queen that became a Hackaday Retro submission. At least [leadacid44]s machine didn’t release the Magic Blue Smoke like that one did.

Quick Keyboard Hack to Control Heavy Loads

When you want to control an external device (like a lamp) from your computer, you might reach for a USB enabled micro. Looking for an inexpensive and quick option to control two lamps [Pete] wanted to control a couple 12 volt halogen lamps, he reached for his keyboard and used a little bit of python.

Desktop PC keyboards have 3 LED’s indicating lock functions, hardly anyone uses the scroll lock, and on a laptop with no keypad, numlock is no big loss as well. Adding wires to the little PCB out of a USB keyboard the numlock and scroll lock LED’s 5 volt output was redirected to a switching circuit.

That switching circuit takes the output of either LED, inverts it with a PNP transistor, then connects to the gate of a FQP30N06L, “logic level” mosfet transistor to handle the heavy lifting. Once the wiring is in place a fairly simple Python script can take over turning on and off the two chosen lock keys, giving  control of up to 32 amps with the touch of a button.

Mechanical Keyboard Goes BLE

Like many programmers, [Daniel Nugent] loves his old mechanical keyboard (a WASD Code Keyboard). What he didn’t love was the cord. Sure, you can get a modern wireless keyboard, but it won’t be the same as the keyboard you’ve spent so much time with. Armed with a Bluetooth Low Energy (BLE) module, a rechargeable battery and some coding, he kept his keyboard but got rid of the wires.

Although he has some specific handling for the WASD, the code would very likely handle any PS/2 keyboard. The PS/2 interface is a simple synchronous serial port with a single clock and single data line. Handling it with a microcontroller isn’t very difficult.

Continue reading “Mechanical Keyboard Goes BLE”

Turning A Typewriter Into A Mechanical Keyboard

Is your keyboard too quiet? Is your Cherry MX Blue board not driving your coworkers crazy enough? If the machine gun fire of a buckling spring keyboard isn’t enough for you, there’s only one solution: [Russell]’s typewriter turned into a mechanical keyboard.

Converting typewriters into keyboards has been done for a very long time; teletypes, the first computer keyboards, were basically typewriters, and the 1970s saw a number of IBM Selectrics converted into a keyboard with serial output. Even in recent years, typewriters have been converted into keyboards with the help of some switches and an ATMega. [Russell]’s mechanical keyboard improves on all of these builds by making the electronic interface dead simple, and a project that can be done by anyone.

Instead of installing switches underneath every key or futzing about with the weird mechanics of a Selectric typewriter, [Russell] is only installing a touch-sensitive position sensor into the frame of the typewriter. When a key is pressed, it strikes a crossbar in the frame of the typewriter. With a single ADC chip and a Raspberry Pi, [Russell] can determine which key was pressed and use that information to output a character to a terminal.

It’s a very simple solution for an electrical interface to a mechanical device, and the project seems to work well enough. [Russell] is using his new keyboard with Vim, even, something you can check out in the video below.

Continue reading “Turning A Typewriter Into A Mechanical Keyboard”

Analyzing The Microsoft Surface Touch Keyboard Cover

The Microsoft Surface is an awesome Tablet PC, but it has one problem: there is just one USB port on it. There is an additional port, though: a connector for the Surface Touch Keyboard connector. That’s what [Edward Shin] is looking into, with the long-term intention of creating an adapter that allows him to connect a Thinkpad keyboard to this proprietary connector. His initial work identified the connector as using Microsoft’s own HID over I2C protocol, which sends the standard USB HID protocol over an I2C connection. So far so good, but it seems to get a little odd after that, with a serial connection running at nearly 1 Mbps and sending 9 bits per transfer with 1 stop bit. Presumably this is because Microsoft had planned to release other devices that used this connector, but this hasn’t panned out so far.

Anybody want to help him out? He has posted some captured data from the connection for analysis, and is looking for assistance. We hope he manages to build his converter: a Microsoft Surface with a decent keyboard and an open USB port would be a great portable setup. Bonus: for those teardown fans among you, he has done a great teardown of a Touch Cover keyboard that reveals some interesting stuff, including a lot of well-labelled test points.

Via [Reddit]

Hackaday Prize Entry: Emoticon Keyboard

The Internet is raising an entire generation that can speak entirely in emoticons. This reverses the six thousand year old evolution of written language and makes us (╯°□°)╯︵ ┻━┻. It is, however, fun. There is a problem with these newfangled emoticons: no one actually types them; they’re all copied and pasted. This is inefficient, and once again technology is here to save us once again.

For his Hackaday Prize entry, [Duncan] is working on an EmojiPad. It’s a (mechanical!) keyboard for typing emoticons, but it can also be used for gaming, CAD design, or as a USB MIDI device.

The keyboard uses 16 Cherry MX switches in a standard diode matrix configuration. This is a USB keyboard, and for the controller, [Duncan] is using an ATMega328 with the V-USB library This is all well-worn territory for the mechanical keyboard crowd, so to spice things up, [Duncan] is going to add individually addressable LEDs underneath each keycap. The ATMega328 doesn’t have enough pins to do this the normal way, so all the LEDs will be Charlieplexed.

A keyboard for emoticons demands custom keycaps, but [Duncan] is having a hard time finding a good solution. Right now he’s planning on using blank keycaps with vinyl decals, a somewhat expensive option at $1 USD a keycap. A better, even more expensive option exists, but for something as ephemeral as an emoticon keyboard a sticker will do just fine.

The 2015 Hackaday Prize is sponsored by: