How ChonkerKeys Came About

Nigel
ChonkerKeys
Published in
7 min readAug 31, 2021

--

I have decided to take the plunge yet again to build another company. This time, it is hardware. I am starting with a product called ChonkerKeys. Here is the story.

When the world started locking down in early 2020, I stopped having to travel for work as a consultant. Instead, work became back-to-back Zoom meetings. It was tiring. To take my mind off work, I had to work with my hands, as I always do. One of the things I did was to re-build a 3D printer that I had for years but lay dormant. Being in Hong Kong, I had access to all kinds of obscure parts through online shopping, as they are being shipped from nearby Shenzhen and the greater mainland China. The 3D printer restoration was a success (that’s a story for another day). Along with 5 mechanical keyboards, a headphone stand, a custom mini ITX case fan mount, a mount for a sound board, a few RC cars, this project built my confidence as a hardware maker.

Projects (from left): two of the keyboards, headphone stand; cover for 3D printer electronics & custom fan harness; custom mount for sound board

With a rebuilt 3D printer and an extra one I bought, an Ender 3, I was looking for projects to build during the year-end holiday 2020. There were a couple of projects where people built hardware to control Zoom meetings. The project I was going to do was a pull-chain toilet flush to quickly leave Zoom meetings. Instead of procuring pull switches, I opted to use leftover mechanical keyboard switches left from the builds I made. So the project evolved into a large button that simply said “Leave Meeting”.

Leave Meeting button under a computer screen showing a Zoom interface

It was a fun project in itself. Does it solve a problem? A bit — I use it all the time. There was a satisfaction to always be the first to leave any Zoom meetings by just a push of a button.

I shared it on Reddit /r/MechanicalKeyboard . It became a hit. People asked if they could buy it. I thought it’ll be fun to actually develop it into a product, but I had no time beyond work. Perhaps I could make this into my work? This singular button is not a good product. There is no use beyond the sheer novelty of it.

There is something very powerful about having simple hardware to do just one thing. On-screen interfaces have become too complex these days. I think I am fairly digitally savvy, but I am constantly frustrated by the overloaded UI controls and gestures on our screens. I keep accidentally engaging the gestures on my phone and tablets. Should I be swiping or tapping? I want physical feedback from my devices and the certainty that I pressed or interacted with technology properly. I love the touchpad on my Macs. I feel like I am actually touching and moving the virtual panel. What other “natural” ways are there to interact with technology?

I felt that there is more to be done in hardware for human-computer interaction. Hardware has become cheap, varied and plentiful. I love tinkering with hardware. Coupled these with a bit of “demand” for the singular Leave Meeting button, I decided to start a venture to explore this area.

Back to the button. Buttons have been around for a long time. As a means of interacting with technology, there is nothing more direct and more certain than a press of a button. How should I make my design into an actual product?

Left: early sketch of a key. Top right: key with off the shelf keyboard switches and stabilizers. Bottom right: Keys of multiple sizes

I took advantage of typical MX keyboard switches, which were designed to be very durable. A Kailh switch for example can withstand 80,000,000 taps according to their specifications! Fitting a switch and stabilizers in a smaller key proved to be challenging, but doable. It took a lot of tweaks in FreeCAD and a lot of 3D prints.

If we had different sized keys, how would they fit together? I went through an exercise of figuring out the right dimensions, and came up with 3 key sizes — 1u, 1.5u and 3u.

Studies of how different sized keys can fit nicely in a grid, with spacing among them

Lights would be good too, as feedback for Zoom status. The place that made sense for lights would be the base. Wouldn’t it be cool for the entire base to light up, as if the key was floating? An issue was where to put the LEDs and how light diffuses out. Ray-tracing suggested it might work, but to test it in the real world, I had to print in a clear material. That, and along with other reasons, I started to build up my “garage”.

Left: my “garage” with 3D printers and a Snapmaker; Right: an SLA printer just finishing printing a transparent key base

Printing the base in transparent resin worked pretty well.

A early 1.5u key prototype with 6 LEDs underneath
A later prototype with up-firing LEDs shining through a keyboard switch

Putting all the keys together:

1.5u, 1u and 3u keys loosely assembled

Next problem: putting a Pro Micro in each button will be overkill. Maybe ATTiny? It would still be overkill if each button was its own USB device. So the decision was to have one Pro Micro / ATMEGA32U4 controlling a bunch of buttons and NeoPixels.

Here’s a ray-traced render of an earlier attempt. The pattern is much different now. Note: I need to protect the current pattern — if you want to see the latest pattern and collaborate, please DM me.

The other problem was to design a “keyboard” to allow the keys to be moved to different positions, while maintaining connections. This proved to be a tough problem. It is now solved after many, many CAD iterations, 3D prints and trying different connectors.

A stylized illustration of how the keys can be detached. Photo credit: IG @studio21_aaron

Next was deciding the board size and buttons to include. We couldn’t have too many keys because the number of pins on an ATMEGA32U4 is limited, and I wanted each key to have its own NeoPixel daisy chain for ease of programming and reliability. So the initial configurations will be 2x4 or 3x4. For Zoom, there are 5 rather straightforward buttons — audio, video, screen sharing, Leave Meeting, and a “like” or “raise hand” button.

The board configuration for video conferencing (The Original)

For the larger board, I had thought about making four of them WASD keys. When I asked my gamer friends though, all of them said the keys were too big for them. So now, out of the box, the additional keys on The Max are additional frequently used functionalities for video conferencing for hosts and power users. That said, they will be configurable to send shortcut keys strokes. Perhaps not for FPS games, but it may be fun for say retro games where you press alternating buttons really quickly?

The board configuration for the larger board (The Max)

In the latest software engineering best practice, DevOps, a programmer’s work is not done until the software is running in production. Is there a parallel to hardware? While I could not do the actual tooling for ABS plastics, having 3D printers and access to plenty of parts from TaoBao sort of gets me to the equivalent of “deploying to dev environment”. The exercise of printing all the parts and trying to assemble them improves the design not just in how it works, but in how to make sure the product can be assembled.

Timelapse of key housing being printed

Putting together the prototype requires many tweaks to the 3D model, test assembly, and PCB design.

An assembled The Original prototype, with key caps off

The firmware was initially done in Arduino. Despite the uniform colors that you see in the image above, all the LEDs are individually programmable.

LEDs responding to button presses in the prototype

The rest is what you see in Kickstarter. For the software, we learned techniques from AutoHotkey, and used UI Automation or Mac Accessibility with Applescript. We are building Chrome extensions for web-only video platforms.

Let me know what you think. Final plug: if you like what you see, and want to get one for yourself to play with, pledge on Kickstarter.

--

--