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.
UK Raspberry Pi reseller Pimoroni has made its own RP2040 ‘Pi Silicon’ based programmable keyboard which requires no soldering and comes with 16 keys, all featuring independently controlled RGB LEDs.
Keybow 2040 is Pimoroni’s second RP2040 based board, following on from their Tiny 2040 which offered a smaller version of the Raspberry Pi Pico. We took the £50 ($70) Keybow 2040 for a test drive, using it to save us time at the terminal and to create a colorful light show during those cold, dark winter nights.
Design and Use of Pimoroni Keybow 2040
As you may have already guessed, the Keybow RP2040 is powered by an RP2040 ‘Pi Silicon’ SoC, this is the same chip as used in the Tiny 2040 and other third party ‘Pi Silicon’ boards. It differs from earlier B0 variants of the chip, as confirmed by Raspberry Pi Founder Eben Upton who told us that it has “some more floating point support functions I think. Moving these to ROM frees up a little more RAM in applications that use them. Checking the datasheet, there are no errata fixes in this stepping."
The RP2040 is hidden away on the middle PCB layer, which is also where the sockets for the keys and the RGB LEDs are connected, along with a single USB C port for power and programming.
The first thing that strikes us about the Keybow 2040 is not the keys on top, but rather the exquisite silkscreen printing on the unit. Most noticeable on the underside of the board, the gold and black design is striking and permeates through the layers used to construct the board.
Ok now we can take a look at the keys, which have 16 clear keycaps covering your choice of linear (quiet) or clicky keys. Our review unit featured clicky keys via gold Kalih Cherry MX compatible switches. Each key features an RGB LED driven by an IS31FL3731 PWM LED matrix driver which handles all of the RGB effects, essentially reducing the work of the RP2040.
On one edge of the PCB is a series of GPIO breakouts for I2C, UART and typical GPIO operations. All of these breakouts require some delicate soldering to fully use them. All of this is sandwiched in a chassis measuring just 3 x 3 x 1 inches (76 x 76 x 26mm).
The Keybow 2040 sits nicely upon our desk and glows, comfortingly, as we work. Right now the best way to use and enjoy Keybow is via Adafruit’s CircuitPython programming language, a version of which has been created to specifically support Keybow 2040. Pimoroni is working on its own version of MicroPython and USB HID necessary for emulating a keyboard / mouse is in the works and this code should be available soon after release.
With CircuitPython, we were able to quickly control all 16 LEDs, creating flashing patterns and different color sequences with relative ease. CircuitPython’s adafruit_is31fl3731 library is part of a collections of libraries freely available for download, but we noticed that there was something wrong with what this library thought was the first key, and what the board library, used to interface with GPIO pins, thought was the first key.
In fact they were off by 90 degrees and this meant that pressing a key would cause the wrong key to light up in our test code. We reached out for help and a member of the community responded and was able to resolve the issue with some algebra. The new code has been passed back to Adafruit and should be fixed within a couple of days.
With the corrected version of CircuitPython, we created a simple project which mapped a sequence of key presses and text input to a single keystroke. When we pressed the bottom left key, it would simulate a key sequence on our computer which opens a terminal window and types in a command to launch a system monitor application. The key would change color from green to blue, and back again.
Use Cases for Pimoroni Keybow 2040
With the ability to map keystrokes, mouse movements and commands to any of the 16 keys, the Keybow 2040 is a powerful device for home workers and gamers. We can map commonly used sequences including reloading, inventory management and combo moves in our games or actions in a photo editor like Photoshop, and we can use Keybow 2040 perform a series of complex steps all from the push of a button.
If you’ve ever wanted an extra 16, programmable keys on your keyboard, the Keybow 2040 lets you add them.
Keybow 2040 is an impressive board and while it may only serve a single use, what it does, it does well thanks to good hardware and the CircuitPython library. The clicky keys feel responsive, and the RGB LEDs are bright and even.
At £50 ($70) we pay a high price for convenience, but Keybow 2040 is a refined and well made piece of kit that may just save you a few thousand keystrokes over the course of its life. There are cheaper alternatives, such as Pimoroni’s RGB Keypad, which uses rubber dome switches and requires you to plug in a Raspberry Pi Pico, but the smart money is on Keybow 2040.