Building a Custom Trading Keypad: Cryptowatch 4k20k
This project started because of a random conversation in our company Slack. Someone mentioned building a custom keyboard for trading with our Cryptowatch Desktop product, similar to those Bloomberg trading terminal keypads. I thought it would be a fun side project to work on.
The Concept: 4k20 Keypad
I wanted to build a small companion keypad with 4 rows and 5 columns of keys (20 keys total), plus 4 rotary encoders for extra control. The plan was to use a Teensy LC as the brains, with the keypad working as a shield that would connect to it.
For the construction, I decided to go with sandwiched PCB boards for the top and bottom, with some laser-cut acrylic spacers in the middle. I also added some silk screens for both the top and bottom layers, with gold accents to make it look a bit nicer.
PCB Design in KiCad
This was probably one of the more complex PCB designs I’ve done. Using KiCad, I first set up all the key switches in a grid, then figured out where to put the rotary encoders in each corner.
The hardest part was definitely planning all the LED lighting. I wanted each key to be backlit individually, which meant a lot of tiny traces had to fit in not much space. I used SK6812 LEDs for general lighting and the even smaller SK6812MINI LEDs for each key.
Components and Materials
Here’s what I used for this build:
- Teensy LC microcontroller
- SK6812 LEDs for the underglow
- SK6812MINI LEDs for the key backlighting (over 100 of these tiny things!)
- Cherry MX Brown switches
- Some matching keycaps
- Rotary encoders with push-button functionality
- Laser-cut acrylic spacers
The Build Process: Soldering Challenges
The PCBs finally arrived and it was pretty cool to see my design as a real thing. The gold accents on the silk screening looked better than I thought they would, which was a nice surprise.
I started by mounting the Teensy and the basic components, but then came the real pain: soldering all those tiny SK6812MINI LEDs. These things are seriously small, and with over 100 to solder, my eyes were killing me by the end.
I had a bit of a disaster moment when I scraped off a pad while soldering one of the LEDs. Luckily I managed to fix it by soldering a wire to make the bridge. Not pretty, but it worked!
QMK Configuration
With everything soldered up, I had to get the firmware sorted. I used QMK because it’s flexible and has good documentation. I put my configuration on GitHub, naming the project “4k20” thinking I might open-source it later: https://github.com/diogorsergio/qmk_firmware .
The programming part was fairly straightforward. I set up the 20 keys for various shortcuts that would be useful in Cryptowatch. The rotary encoders were configured to control things like volume, zoom, and scrolling through charts.
The LED setup was more complicated, needing specific configs for each chain, but QMK already had some lighting modes available by default for the underglow.
The Final Result
After all that work, the 4k20 keypad was finally done. Seeing all the LEDs light up for the first time was pretty satisfying, especially knowing I had hand-soldered each one of those tiny components.
In a funny twist, after all that effort, I ended up mostly using it as a regular keypad rather than specifically for Cryptowatch. It became more of a cool desk item that people would ask about when they saw it.
Lessons Learned
This project taught me a lot about PCB design. If I did it again, I’d definitely consider SMD LEDs and a pick and place solution from the manufacturer.
It was also a good reminder of how fun it is to make something physical from scratch. Starting with just an idea and ending up with something real you can use is always satisfying.