Stick a trackball on your keyboard

Despite having designed several of my own ergonomic columnar split keyboards, I have been daily driving my Corne (crkbd) for the past several months. I removed the tucked-most thumb keys and outer pinky column and thus am using it with a 34-key layout.

I usually set up with my mouse (a Logitech MX Vertical) in between the two halves of the board. Recently, I found that the repetitive motion back and forth between the keyboard and mouse to be somewhat irritating. I figured it was time for an integrated pointing device.

I had experimented in the past with embedding joysticks, and later Cirque trackpads in keyboards, but ultimately was not a huge fan of how they felt to use. I’ve never used a trackball before, but decided to give the Pimoroni trackball a shot since it was sort of closer in operation to a trackpoint, which I don’t mind using on my laptop.

Fortunately, there was already support for it in QMK, and an esteemed member of the ergo keyboard community had posted an STL file to embed the module into the Corne’s MCU cover.

One poorly-calibrated print and a few bodge wires later, and my Corne had a trackball on it.

I ended up writing some firmware logic to use an auto mouse layer, with a few cheap tricks to give me a hold-to-scroll modifier. For fun, I also used the RGBW LED in the trackball to indicate the active layer.

A few hours of testing later, and the trackball feels pretty natural to use, and is much less annoying to flick compared to reaching over to grab a mouse.