Keyboard Remapper Dongle Based on Pico
Human Interface Device specifications for USB have brought together keyboards, mice, and trackballs, as well as game controllers, tablets, touch-screens, etc. from a past where they all had a different type of connector. Unlocking the secrets of the interface helps improve productivity in some ingenious ways, including this Raspberry Pi Pico man-in-the-middle key remapper!
You may have seen those very versatile macro keyboards, such as the Stream Deck series from Corsair, which offer you a set of keys — typically between 6 and 15 keys — that you can assign to any task on your PC.
But sometimes I’ve wanted even more customization, for example, more keys, or the ability to hit said key on my keyboard without leaving the home row. Also, adding more and more keys to your workspace is great if you get a kick out of working in Darth Vader’s bathroom (guilty!), but sometimes you want to focus, keep looking at the screen, and keep your hands on the keyboard. For this, you’d need something that comes between the keyboard and the computer to intercept keystrokes, most likely via USB, and pass a different action to the PC, based on what you need done.
Being completely hardware-based, it doesn’t take advantage of complicated hotkey apps and scripts, but will work with any computer — Windows / Mac / Linux (good old Raspberry Pi) — that has a USB input for human interface devices such as keyboards, mice, and trackballs.
This is something I’ve been wanting to get working on for a while now, and Jacek has just made my job a whole lot easier. Ultimately, I envision a foot switch that, when pressed, will transform my entire keyboard into a macro keyboard for that moment, and then I will have not 6, or 15, but over 100 special function keys at my disposal. Let go of the foot switch, and it’s back to my regular keyboard, and I never had to leave the home row to get that macro performed in a split second, and I never interfered or remapped any of my operating system’s special keyboard shortcuts.
Thanks again to Jacek for tackling the weeds down that path, making it easier for the rest of us!
But sometimes I’ve wanted even more customization, for example, more keys, or the ability to hit said key on my keyboard without leaving the home row. Also, adding more and more keys to your workspace is great if you get a kick out of working in Darth Vader’s bathroom (guilty!), but sometimes you want to focus, keep looking at the screen, and keep your hands on the keyboard. For this, you’d need something that comes between the keyboard and the computer to intercept keystrokes, most likely via USB, and pass a different action to the PC, based on what you need done.
The Fedoriyński Solution
Well, thanks to Jacek Fedoriyński, a lot of that groundwork has been done, and it’s based on our familiar Raspberry Pi Pico to boot!Where to Find It
He has the complete source on his GitHub page, and he has expanded the idea to old-school serial keyboard input, as well as Bluetooth. Among the range of versions he has, you can use either one or two Raspberry Pi Picos, the latter offering further compatibility, among other things.Configuration Interface
Another great feature is that you don’t need to set it up manually with some arbitrarily-formatted firmware data files when programming the device – it’s completely configurable through a clever web interface, which runs in Chrome and takes advantage of WebHID.Thanks again to Jacek for tackling the weeds down that path, making it easier for the rest of us!