I don’t have any pictures of the rest of the wiring, but that was the most boring part: connecting the microcontroller to the matrix, wiring up the indicator LED (those I had were too bright so I had to add a resistor in series), and finally I decided to add a physical switch to cut the battery so I had to drill yet another hole through the case.

Final step was to write the software. I initially thought of porting an existing firmware, but I eventually decided to write my own, both because I wanted to learn how the core of the system actually worked, and because I wanted to add bells and whistles such as a breathing light when the device is connected over bluetooth:

In the end, it took a long time to get right: there is very little documentation as to what to implement to get a device to be recognized as a keyboard over BLE. Through trial and error I kind of figured it out, but it was pretty painful.

The other little feature I added was the magnetic charger. I got a cheap one off of Amazon that I gutted and customized using some brown paracord as sleeving.