“DIY mechanical keyboard doubling as a XIAO development board with lots of Grove ports and fancy features!
I have always been fascinated by mechanical keyboards and keyboards in general and have experimented with some wild designs, but I never got around to building my own.
At the time, everyone was building keyboards using Teensy or ProMicro, which have their limitations. Everything changed when the Seeed XIAO boards came along and the keyboard contest run by Seeed challenged the keyboard community to realize the potential of the tiny development boards.
Around the same time as the keyboard competition, Seeed decided to run its own internal competition for Seeed employees. This was the perfect outlet for my built-up tinkering energy and so I decided to build my own keyboard!
So, the challenge is: could someone with no formal electronics education build a custom keyboard by piecing together bits of other designs? Can it be completed before the deadline!? (spoiler for the last question: no)
Developing the Design
A lot goes into the design of a keyboard, and I have had literally years to think over what I want in a keyboard and find inspiration. I also had another tool up my sleeve; as Seeed Fusion’s manufacturing specialist, every submitted design in Seeed’s keyboard contest ran by me at some point. That gave me plenty of inspiration and a lot of schematics to study (all available legitimately online). In the end, I chose around 10 designs to reference.
This keyboard is designed to be used as my office keyboard. There are a lot of repetitive tasks in my office job in addition to lots of copying and pasting, so extra buttons and knobs for macros are a must but at the same time, finding desk space is always a challenge so num pads are a no-no. I also often use my laptop away from the office so the layout and size should not be too dissimilar to laptop keyboards to minimize ‘home-sickness’.
As for the competition, the only requirement was that the design includes Seeed’s products. This is a XIAO keyboard after all, so I can check that box. But that alone did not feel sufficient. Nothing says Seeed more than Grove modules, and I liked the Raspberry Pi 400 concept of a keyboard that also works as a development board. Imagine running Grove bits and bobs straight from your keyboard! So there we have it, I decided on a keyboard that works as a XIAO development board complete with Grove connectors!
As for the choice of XIAO development board (currently there are 5), RP2040 and nRF52840 are common choices for keyboards. The latter is typically chosen for wireless Bluetooth keyboards, but as I will be uploading code to the keyboard frequently, it makes more sense to have a wired connection, so I went with XIAO RP2040. I also don’t have to worry about charging batteries with a wired connection. Plus, with more and more support for RP2040 and CircuitPython, it makes more sense to pair RP2040 with the Grove modules.
XIAO RP2040 development board and keyboard!
5 Grove ports for plugging all sorts of Grove modules! (1 x analog/digital, 3 x I2C, 1 x UART) with individual on-off switches
Headers for all XIAO pins for further development/debugging
Tight, laptop-style layout with all the necessities
Added spacebar-centered rotary encoder for fun
I’d like to thank all XIAO keyboard participants for sharing their designs, in particular, Sonal Pinto for sharing his XIAO RP2040 keyboard PurpleOwl. My design is largely based on PurpleOwl and is essentially an expansion of PurpleOwl to make use of the leftover pins with a modified layout. With the shift register method, only three pins are required for the entire keyboard ‘matrix’ which leaves a lot for other fancy add-ons such as Grove connectors.”