Programmable keyboards are nothing new. Gamers and power users have had them for years. Making our own keyboards used to involve an Arduino Micro, lots of wiring and, if we were lucky, a 3D printed case.
British Raspberry Pi reseller Pimoroni has made its own RP2040 ‘Pi Silicon’ based programmable keyboard that requires no soldering and comes with 16 keys, all with independently controlled RGB LEDs.
Keybow 2040 is the second RP2040 based board from Pimoroni, after their Small 2040 which offered a smaller version of the Raspberry Pi Pico. We took the £50 ($70) Keybow 2040 for a test drive and used it to save us time at the terminal and create a colorful light show while we were working.
Design and use of Pimoroni Keybow 2040
As you might have guessed, the Keybow RP2040 is powered by an RP2040 ‘Pi Silicon’ SoC, the same chip used in the Tiny 2040 and other third-party ‘Pi Silicon’ cards. It differs from previous B0 variants of the chip, as confirmed by Raspberry Pi founder Eben Upton who told us it “has a little more floating point support features, I think. Moving these to ROM frees up a little more RAM in applications that use them. When checking the datasheet, there are no errata fixes in this step.”
The RP2040 is hidden on the middle PCB layer, which also contains the sockets for the keys and the RGB LEDs, along with a single USB-C port for power and programming.
The first thing we notice about the Keybow 2040 is not the keys on top, but rather the beautiful screen printing on the device. Most notable on the underside of the board is the gold and black design that stands out and permeates through the layers used to build the board.
Okay, now we can look at the keys, which have 16 clear keycaps covering your choice of linear (silent) or clicking keys. Our review unit featured click buttons via gold Kalih Cherry MX compatible switches. Each key has an RGB LED powered by an IS31FL3731 PWM LED matrix driver that handles all RGB effects, essentially reducing the work of the RP2040.
On one side of the PCB is a series of GPIO breakouts for I2C, UART and typical GPIO operations. All of these pimples require some delicate soldering to fully utilize them. All this is squeezed into a chassis of just 3 x 3 x 1 inch (76 x 76 x 26 mm).
The Keybow 2040 looks beautiful on our desk and glows reassuringly as we work. Right now, the best way to use and enjoy Keybow is through Adafruit’s CircuitPython programming language, which was versioned to specifically support Keybow 2040. Pimoroni is working on its own version of MicroPython and USB HID needed for keyboard/mouse emulation is in the works and this code should be available soon after release.
CircuitPython allowed us to quickly control all 16 LEDs, making it relatively easy to create flashing patterns and different color sequences. CircuitPython’s adafruit_is31fl3731 library is part of a collection of libraries that are freely available for download, but we noticed something was wrong with what this library thought was the first key, and what the board library, which was used to communicating with GPIO pins, thought the first one was the key.
In fact they were 90 degrees off and this meant pressing a key would cause the wrong key to light up in our test code. We sought help and a community member responded and was able to solve the problem with some algebra. The new code has been sent back to Adafruit and should be resolved within a few days.
With the corrected version of CircuitPython, we’ve created a simple project that maps a sequence of keystrokes and text input to a single keystroke. When we pressed the bottom-left key, it simulated a key sequence on our computer by opening a terminal window and typing a command to launch a system monitor application. The key would change color from green to blue and back again.
Utility cases for Pimoroni Keybow 2040
With the ability to assign keystrokes, mouse movements and commands to each of the 16 keys, the Keybow 2040 is a powerful device for home workers and gamers. We can map out common sequences, including reloads, stock management, and combo moves in our games or actions in a photo editor like Photoshop, and we can use Keybow 2040 to perform a series of complex steps, all with a push on the button.
If you’ve ever wanted 16 extra programmable keys on your keyboard, the Keybow 2040 lets you add them.
Keybow 2040 is an impressive board and while it may only be a single use, it does a good job thanks to good hardware and the CircuitPython library. The click buttons feel responsive and the RGB LEDs are bright and even.
At £50 ($70) we’re paying a high price for convenience, but Keybow 2040 is a refined and well-made piece of kit that could save you a few thousand keystrokes over the course of its life. There are cheaper alternatives, like Pimoroni’s RGB keyboard, which uses rubber dome switches and requires you to plug in a Raspberry Pi Pico, but the smart money is on Keybow 2040.