A useful add-on for any computer is a plug-in macro keyboard, a little peripheral that adds those extra useful buttons to automate tasks. [Sayantan Pal] has made one, a handy board with nine programmable keys and a USB connector, but the surprise is that at its heart lies only the ubiquitous ATmega328 that you might find in an Arduino Uno. This isn’t a USB HID keyboard, instead it uses a USB-to-serial chip and appears to the host computer as a serial device. The keys themselves are simple momentary action switches, perhaps a deluxe version could use key switches from the likes of Cherry or similar.
The clever part of this build comes on the host computer, which runs some Python code using the PyAutoGui library. This allows control of the keyboard and mouse, and provides an “in” for the script to link serial and input devices. Full configurability is assured through the Python code, and while that might preclude a non-technical user from gaining its full benefit it’s fair to say that this is not intended to compete with mass-market peripherals. It’s a neat technique for getting the effect of an HID peripheral though, and one to remember for future use even if you might not need it immediately.
More conventional USB keyboards have appeared here in the past, typically using a processor with built-in USB HID support such as the ATmega32u4.
[Glen]’s project sounds perfectly straightforward: have a big industrial-style push button act as a one-key USB keyboard. He could have hacked something together in any number of ways, but instead he decided to create a truly elegant solution. His custom PCB mates to the factory parts perfectly, and the USB cable between the button and the computer even fits through the button enclosure’s lead hole.
It turns out that industrial push buttons have standardized components which can be assembled in an almost LEGO-like manner, with components mixed and matched to provide different switch actions, light indicators, and things of that nature. [Glen] decided to leverage this feature to make his custom PCB (the same design used in his one-key keyboard project) fit just like a factory component. With a 3D printed adapter, the PCB locks in just like any other component, and even lines up with the lead hole in the button’s enclosure for easy connecting of the USB cable.
What does [Glen] use the big button for? Currently he has two applications: one provides a simple, one-button screen lock on a Linux box running a virtual machine at his place of work. It first disengages the keyboard capture of the virtual machine, then engages the screen lock on the host. The other inserts a poop emoji into Microsoft documents. Code and PCB design files for [Glen]’s small keyboards are available on GitHub.
As [Glen] describes it, the only real goal in his decision to design his single-key USB keyboard was to see how small he could build a functional keyboard using a Cherry MX key switch, and every fraction of a millimeter counted. Making a one-key USB keyboard is one thing, but making it from scratch complete with form-fitting enclosure that’s easy to assemble required careful design, and luckily for all of us, [Glen] has documented it wonderfully. (Incidentally, Cherry MX switches come in a variety of qualities and features, the different models being identified by their color. [Glen] is using a Cherry MX Blue, common in keyboards due to its tactile bump and audible click.)
[Glen] steps though the design challenges of making a device where seemingly every detail counts, and explains problems and solutions from beginning to end. A PIC16F1459, a USB micro-B connector, and three capacitors are all that’s needed to implement USB 2.0, but a few other components including LED were added to help things along. The enclosure took some extra care, because not only is it necessary to fit the board and the mounted components, but other design considerations needed to be addressed such as the depth and angle of the countersink for the screws, seating depth and clearance around the USB connector, and taking into account the height of the overmold on the USB cable itself so that the small device actually rests on the enclosure, and not on any part of the cable’s molding. To top it off, it was also necessary to adhere to the some design rules for minimum feature size and wall thicknesses for the enclosure itself, which was SLS 3D printed in nylon.
PCB, enclosure, software, and bill of materials (for single and triple-key versions of the keyboard) are all documented and available in the project’s GitHub repository. [Glen] also highlights the possibility of using a light pipe to redirect the embedded LED to somewhere else on the enclosure; which recalls his earlier work in using 3D printing to make custom LED bar graphs.
What was the first computer you bent to your programmatic will? If you’re old enough, it was probably a Commodore. For [Jagged-path], it was a VIC-20. After finding a broken one on Kijiji, he recaptured that 80s feeling with VicPi, a revitalization project that marries modern computing power with vintage form factor.
The VicPi can be used as a standalone computer or a USB keyboard for an external computer. As you’ve probably guessed, there’s a Raspberry Pi involved. There is also a Keyrah board, which is arguably the easiest way to convert Commodore (and Amiga) keystrokes to USB without breaking a sweat.
There are a lot of nice touches that really make this project. A toggle switch on the back selects between VicPi mode and keyboard mode, and the distinction is made with a two-color LED in place of the VIC-20’s power LED. [Jagged-path] used panel mount cables to extend the HDMI, 3.5mm, and USB ports and ran them out to a custom metal panel that’s treated with rubberized black paint. Another nice touch: the dedicated keyboard port is USB-B, so it’s easy to differentiate from the Pi inputs.
If you have a working VIC-20 but not the rare Votrax Type ‘n Talk synthesizer peripheral, you can use an old Android phone to hear those Voodoo Castle responses.
[Micah Elizabeth Scott] needed a custom USB keyboard that wrapped around a post. She couldn’t find exactly what she wanted so she designed and printed it using flexible Nijaflex filament. You can see the design process and the result in the video below.
The electronics rely on a Teensy, which can emulate a USB keyboard easily. The keys themselves use the old resistor divider trick to allow one analog input on the Teensy to read multiple buttons. This was handy, but also minimized the wiring on the flexible PCB.
The board itself used Pyralux that was milled instead of etched. Most of the PCB artwork was done in KiCAD, other than the outline which was done in a more conventional CAD program.
Continue reading “Print A Flexible Keypad”
So, you’re a keyboard enthusiast. The ‘board that came from Dell, HP, or whoever made your computer is just not for you. You have an ancient IBM, a decal-free Das Keyboard, or another similarly esoteric text input device. Your typing can be heard three blocks away as the unmistakable clack of bent-spring switches reverberates around you, but you don’t care because you’re in the Zone.
No keyboard can be as high-end as the one you already have, your position in the hierarchy of text entry is assured. But then along comes [Chris Johnston] with his project, and suddenly your desktop looks very cluttered. It’s a binary keypad with only a 0 key, a 1 key, and an OLED display. All input is as a series of binary bytes, so as a hardcore binary typist you’ll need to know your ASCII.
Behind the keys is an Arduino Pro Micro acting in USB HID mode, and running the code you can download from the GitHub link above. It’s a gloriously pointless input device, but we’re sure you’ll agree it has something of the 00110001 00110011 00110011 00110111 about it.
If you think you may have seen this before on Hackaday then you’re not quite right. We have had a binary keypad in the past, but that one had a return key and thus had three keys. This one’s a 2-key ‘board for binary purists.
Have you ever had a laptop you just wish you didn’t have to retire when its specification becomes to aged for your needs? Wouldn’t it be great if you could upgrade it and keep using the physical hardware!
[Alpinedelta] has a vintage Toshiba T1000 laptop, roughly a PC-XT clone from the late 1980s. Its 80C88 processor, CGA display, and 512k of memory make it a museum-piece, but he has plans to modernise it using a LattePanda Intel Atom based single board computer.
To make that happen, he has to ensure all the Toshiba’s peripherals will talk to a modern host. Unfortunately back in the 1980s many PC clones were clones in a rather loose sense, and especially so in the laptop arena. Thus there are no handy standard PC interfaces and since USB was several years away at the time, nothing the LattePanda can talk to directly. His solution for the keyboard is to wire its matrix directly to a Teensy microcontroller that then provides a USB interface, and he’s put up a useful step-by-step Instructables guide.
There is no standard for a laptop keyboard matrix, so the first and most tedious task is to unpick its layout.This he did by identifying each trace and assigning a different rainbow colour to it, before noting down which keys appeared on it and collating the results in a spreadsheet. The different colours of wire could then be assigned to the colours of a piece of rainbow ribbon cable, and wired in sequence to the Teensy’s I/O pins. There then follows a step in the software in which he assigns the pin mappings to the lines in his spreadsheet, then the sketch can be compiled and uploaded to the Teensy. Result: a vintage keyboard now talking USB.
Using a Teensy to present a USB keyboard to the world is a well-worn path, we’ve seen it with both newer keyboards and other relics like this one from a DEC VT100.
Thanks [Brent] for the tip.