Miss The Predictive Text From Your Old Nokia? Build Your Own T9 Keypad

Do you miss the mind-blowing typing speed of your old Nokia brick with predictive text turned on? Well, so did [Guy Dupont], so he created a USB keypad with T9 predictive text built-in to turn typing into a one-handed affair. Video after the break.

T9 was the first predictive text technology to gain widespread use in the late ’90s and early 2000s. The goal was to minimize the number of keypresses required for typing on multi-press keypads by matching key sequences to a dictionary of the possible words. It prioritizes words based on the frequency of use and can adapt to user preferences. [Guy] implemented T9 in Circuit Python, mainly for the RP2040 microcontroller used on the Raspberry Pi Pico, which will appear as a normal USB keyboard when plugged into any device. The dictionary is stored in the flash memory and can be updated using a tool also created by [Guy]. It can also change modes for old multi-press typing, numeric pad, or macro pad.

We would be interested to see just how fast it’s possible to type one handed with T9, and what application our readers can imagine. It doesn’t look like this implementation can learn the user’s preferences, which we think would be a worthy feature to add.

We’ve covered several unique custom keyboards recently, some more practical than others. On the silly side, these include a grenade-shaped function pad, a five-button chording keyboard, and a tiny two-key keyboard. Continue reading “Miss The Predictive Text From Your Old Nokia? Build Your Own T9 Keypad”

Custom Macro Keyboard Looks Good In Wood

There’s more than one way to make a mechanical macro pad, and this wooden wonder represents one of our favorites. [Tauno Erik] had an old rubber dome rectangle keyboard lying around that still worked, but the poor thing was missing some of its caps. After salvaging the controller, [Tauno Erik] got to work on the tedious task of figuring out the mapping of the matrix, which was made easier with a Python script.

Almost every component of this beauty is wood, including the mounting plate and those thicc and lovely keycaps — their top layer is solid oak, and the bottom bit is birch plywood. In order to interface the ‘caps with the switches, [Tauno Erik] designed and printed connector pieces that sit inside the extra large keycaps and accept the stems of the key switches.

Speaking of switches, we’re not sure if [Tauno Erik] ended up using Cherry green switches, browns, or a mix of both (that would be interesting), but each one is mounted on a custom PCB along with a diode and a pull-up resistor. You can see more build pictures at [Tauno Erik]’s site, and stick around for a visual tour of the completed build after the break.

Wood is a great choice for keycaps, and we imagine they’ll only look better with age and use. A more common use for wood on a keyboard build is in surprisingly comfortable wrist rests.

The Keyboard You Really Don’t Need Or Want

Most people think of a keyboard as a flat, vaguely rectangular thing with around 100ish different keys. A mechanical keyboard enthusiast would heartily disagree and point out various tenkeyless, 75%, 60%, or 40% keyboards that strip down the idea of what a keyboard is by taking keys out. [Stavros Korokithakis] takes that notion and turns it on its side by creating the five-button vertical keyboard known as Keyyyyyyyys.

This keyboard, or keystick, is designed to be onehanded and to be eye-contact-free. With just five keys, it makes heavy use of chording to output all the characters needed. It has a maximum of 32 possible states and taking out pressing nothing as a no-op leaves 31 possible key combinations. So [Stavros] had to get creative and laid out the letters according to their frequency in the English language. The brains of Keyyyyyyyys is the ubiquitous ESP32, emulating a Bluetooth keyboard while being wrapped in a simple 3d printed box. The code is hosted on GitLab.

If you don’t know how hard it is to learn a five-key chording keyboard from scratch, definitely check out [Stavros]’ video embedded below. “C’mon h.” We have heard reports that you can learn these things, though.

While this five-button keyboard may seem small, this two-button keyboard still has it beat by three keys. A one-button keyboard is just a morse code keyboard, and we are looking forward to a wireless Bluetooth version. Continue reading “The Keyboard You Really Don’t Need Or Want”

Adjustable, Low-Impact Keeb Is About As Comfortable As It Gets

What’s the coolest-looking way to ease the repetitive stress of typing without quitting altogether? Move nothing but your fingers, and move them as little as possible without any stretching or reaching. We’ve been fans of the weirdly wonderful DataHand keyboard since we first laid eyes on one, but [Ben Gruver] has actually been using these out-of-production keyboards for years as a daily driver. And what do we do when we love something scarce? Make our own, improved version like [Ben] has done, with the lalboard.

[Ben] has been using the lalboard for about two years now and has a laundry list of improvements for version two, a project we are proud to host over on IO. Many of the improvements are designed to make this massive undertaking a bit easier to print and put together. Version one uses copper tape traces, but [Ben] is working on a fab-able PCB that will use something other than a pair of Teensy 2.0s, and perhaps QMK firmware.

Something that won’t be changing is the fantastic optical key switch design that uses an IR LED and phototransistor to capture key presses, and tiny square magnets to return the key to the home position and deliver what we’re quite sure is a satisfying clack.

The absolute coolest part of this keyboard is that it’s so adjustable. Every key cluster can be adjusted in 6 directions, which includes the ability to dial in different heights for each finger if that’s what works best. Once that’s all figured out, then it’s time to print some perfect permanent standoffs. Want to make one of these sci-fi clackers for yourself? [Ben] has the BOM, some printing instructions and tips, and a guide to making the copper tape PCBs over on GitHub. Check it out in action after the break as [Ben] rewrites Kafka’s Metamorphosis at 120 WPM.

Interested in learning more about the original DataHand keyboard? Here’s our take.

Continue reading “Adjustable, Low-Impact Keeb Is About As Comfortable As It Gets”

USB Comes To The ESP32

Since the ESP8266 came on the scene a few years ago and revolutionized the way microcontrollers communicate with other devices, incremental progress on this chip has occurred at a relatively even pace. First there was the realization that code could be run on the chip itself. Next the ESP32 was released which built more on that foundation. The next step in that process of improvement may be here now as well, with this project which turns the ESP32 into a USB host.

USB is not a native feature on all microcontrollers or even Arduino-compatible boards. While some do have it built in like those based on the 32u4 for example, most either don’t have it at all or rely on a separate on-board chip to do some form of translating. The ESP32 is lacking this advanced feature so the USB needs to be cobbled together from scratch if you want this specific board to be able to interface directly with peripherals. This project does just that, allowing for four USB 1.1 devices to be connected directly to the ESP32 without a separate dedicated chip.

If you’ve been waiting for USB on this tiny, capable microcontroller this might be your chance to try it out. All of the project’s code is available on the project page. And, while it is limited in scope, it’s easily able to handle a keyboard or mouse. This might be a more cost-effective way of doing something like a KVM switch rather than doing it with three Arduinos.

 

Decoding The PS/2 Keyboard Protocol Using Good Old Fashioned Hardware

1987 was a glorious year.  It brought us the PS/2 keyboard standard that’s still present on many a motherboard back panel to this day. (It also marked the North America/Europe release of The Legend of Zelda but that’s another article.) Up until this point, peripherals were using DIN-5 and DE-9 (often mistakenly called DB9 and common for mice at the time) connectors or — gasp — non-standard proprietary connectors. So what was this new hotness all about? [Ben Eater] walks us through the PS/2 hall of fame by reverse-engineering the protocol.

The PS/2 connector in all its glory

This is a clocked data protocol, so a waveform is generated on the data pin for each key pressed that can be compared to the clock pin to establish the timing of each pulse. Every key sends a unique set of encoded pulses and voila, the whims of the user can quickly and easily be decoded by the machine.

This is where [Ben’s] dive really shines, we know he’s a breadboarding ninja so he reaches for some DIP chips. A shift register is an easy way to build up a parallel PS/2 interface for breaking out each data packet. There are a few quirks along the way, like the need to invert the clock signal so the shift register triggers on the correct edge. He also uses the propagation delay of a couple inverter gates to fire the 595 shift register’s latch pin slightly late, avoiding a race condition. A second 595 stores the output for display by a set of LEDs.

Beyond simply decoding the signal, [Ben] goes into how the packets are formatted. You don’t just get the key code, but you get normal serial interface error detection; start/stop bits and a parity bit as well. He even drills down into extended keys that send more than one packet, and a key-up action packet that’s sent by this particular keyboard.

This is the perfect low-level demo of how the protocol functions. On the practicality side, it feels a bit strange to be breaking out the serial to parallel when it would be very easy to monitor the two signal lines and decode them with a microcontroller. You might want to switch it up a bit, stick with the clock and data pins, but connect them to a Raspberry Pi using just a few passive components.

Continue reading “Decoding The PS/2 Keyboard Protocol Using Good Old Fashioned Hardware”

Launching An Open Source Keyboard; System76 Has Published Their Design Files

System76, a computer manufacturer known for selling machines which run Linux, recently unveiled the complete sources for their forthcoming Launch mechanical keyboard. Made with familiar tools, mass produced, and backed by a stable company it looks like the Launch will be a compelling entrant into the world of mechanical keyboards.

Back in March of 2020 System76 published a blog post about a new project they were embarking on; a mechanical keyboard with an unusual layout. At the time there was scant information available besides a summer 2021 target and little was heard until last week when they opened up access to the Launch repository. Everything should be recognizable if you’ve ever looked at the sources for a customized mechanical keyboard before, which is what gets our attention. Electrical sources are authored with KiCad and should be easy to tweak or fabricate. And mechanical components are provided in STEP files with mechanical drawings, presumably because they intend to actually manufacture these.

launch-chassis.pngFeature wise all the usual hallmarks of a well designed keyboard are here. The Launch uses hostswap sockets to make it easy to install the usual Cherry MX compatible switch options, and includes per-key RGB backlighting courtesy of SK6805 LEDs. The ATmega32U4 runs the popular and extremely capable QMK firmware instead of something bespoke, so it should be easy to customize to the user’s desire.

System76 touts an unusual key layout, but if you’ve seen a 75% keyboard before it shouldn’t be too threatening (though we do wonder about that shrunken right shift). The most unusual feature is that it features a USB hub capable of full speed 10 gigabit USB 3.1 Gen 2 on two USB-C and two USB-A ports. It’s worth checking out the schematic to appreciate how much more complicated the hub design is than the rest of the keyboard, which is practically vestigial in comparison.

The remaining unknown is how the Launch integrates with Pop!_OS, System76’s awkwardly named remix of Ubuntu. They promise deep, compelling integration and we’re excited to see how that manifests.