Software and Computer Engineering

Modding The Microsoft Sculpt Keyboard To Be Wired

So, I've fried the wireless dongle of my Sculpt keyboard by attaching it to the wrong side of a sketchy USB multiplexer hub. This is very unfortunate as there is no simple replacement: the dongle is cryptographically paired to the keyboard.

The pairing designed to prevent eavesdroppers from sniffing the keystrokes from the wireless signal, but has the unfortunate side-effect of rendering the particular “keyboard plus dongle” set unusable if either is damaged or lost.

This got me thinking that maybe I could read the keystrokes from the keyboard itself physically? I looked up online on how to disassemble it and found a couple of write up from folks that already had that idea, and that had converted their Sculpt from wireless to wired in the process.

Sounds good! Let's see what they had to say.

Prior Art

Chad Austin (2021)

He got a dongle-less unit from eBay and was successful in converting the keyboard and even reported a latency improvement from going to wired.

In the final iteration, he used the Teensy 2.0++ microcontroller and a custom PCB designed to fit the slot where the original one is placed, almost as a “drop-in” replacement.

Chris Paynter (2021)

Another Teensy + QMK build with a custom PCB, similar to Chad's. Contains detailed disassembly instructions good diagrams on how the keyboard matrix is layed out.

John Milkspill (2019)

He soldered the factory test pads to a Teensy ARM microcontroller and used the QMK firmware. The final product fit into the battery compartment (as batteries are no longer needed after conversion to wired).

John Cooper (2018)

Identical to Chris's build above. Used a Teensy and the QMK firmware to replace the build-in controller PCB with a wired one connected over USB.

Emmanuel Contreras (2017)

He describes the process of disassembling the keyboard and is the earliest account I could find online of this wired conversion mod.

The Strategy I'm Going With

I'd prefer to not have order a custom PCB and figure out all of that. Having a nest of wires (as long as it is hidden away from view) is acceptable to me.

From reading these earlier accounts, for scanning the key matrix, I would need a microcontroller with at least 26 GPIO pins.

The new (well, introduced in 2021) Raspberry Pi Pico board built around the RP2040 microcontroller just happens to have exactly 26 GPIO pins and also is able to operate as a HID Keyboard over USB. It just fits the bill!

For the prototype, I will go with the Pico, a pre-assembled 30-pin 1mm-pitch FCC breakout board, and a nest of 26 jumpers.

I've purchased the parts from AliExpress yesterday and one month from now let's see how it pans out.