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.
I’d buy ten of these – currently using some beetle arduino board with a SMD switch across the chip. Looks techie, but not everyone likes that look…
usb supports 127 devices, you could buy 104 of them and make a full size keyboard.
I cant find it in the github repo, where did the key caps with the padlock and the running person come from?
It’s on his blog post, in the materials section. He got the key caps from here: http://www.maxkeyboard.com/products/cherry-mx-keycap/backlight-novelty-keycap/
A little ESD protection would not hurt, otherwise great idea!
Why would it need that though?
Clearly what you have to do is build 105 of these, one for each key and wire them all together as the worlds least practical keyboard into a single USB-port through 10x 12-port USB hubs.
Finally it makes sense why they made the USB device limit 128 targets per bus :)
https://youtu.be/BGGOn-H7s3Q
Brilliant. I love beautiful almost useless devices!
He’s chosen completely the wrong keycap. It should’ve been “any”.
+1
I am using a new (but old) keyboard from last century, from surplus stock that some ebayer discovered I guess, anyway it is not USB and that is the way I like it as it is more secure.
May not be more secure since it can still be snooped on via RF emissions. However the PS/2 adapter and isolated keyboard/mouse ports do work in situations where the bios or operating system has caused the usb bus to fail, allowing you to recover, debug, or reboot in situations where the alternative is hitting the power or reset switches instead.
What if you made this into a Morse code keyer and used it to input all your text? You’d be such a legend. *Replaces entire qwerty keyboard with single key.*
I made one based on a digispark, using a hand made perfboard “shield” for the key. The footprint is no bigger that that of the key with the exception of the USB fingers. It needs a USB extension cable to connect it to a PC. It is programmable over USB. I use it as my CTRL-ALT-DEL key so it is three in one actually. Unfortunately it has no case, this case is really beautiful!!