For some time, I’ve had my eye on the Corne keyboard. It looked very interesting for many reasons.
- It is a split keyboard.
- It has staggered keys. This means that each keycap is aligned vertically.
- It has a customizable firmware.
- It has LEDs.
- It has LCD screens.
This would also be an opportunity to build a keyboard.
To make things easy, I bought Corne 3.0.1 kit from Little Keyboards. It came with everything but LCD modules, switches, keycaps, a TRRS cable, and case. I also bought the LCD screens from Little Keyboard since it was convenient, and I got the switches, keycaps, microprocessors(I settled for 2 Qwiic Pro Micro because it was convenient and available to me at the time), and TRRS cable from a mix of online and brick store stores.
I have some soldering experience(hobby) and this was also an opportunity to test a new soldering iron, the TS80P.
The soldering part was fun, and luckily, no mistakes.
As for the case, the easiest way would have been to download one of many sites like Thingiverse. But instead, I went down a different way, using the KiCad files from foostan’s GitHub repo, KiCad, and Fusion 360. With a little time making sketches and extrusions, I was able to whip up a basic case, similar to the likes found on Thingiverse!
…but since I spent some time to work on this case, I wanted to try something different. I wanted my case to have sliding doors for the 2 ports on the side of each half of the keyboard!
This took a few prototypes and trial by error, but in the end, I was able to print one to my satisfation and integrate that into my case model and after 7 hours(…and a little elbow grease drilling screw holes) I had a case for half of my keyboard!
Here’s the picture of the final pair(with new keycaps)!
Corne uses QMK. I have limited exposure to this, as I do have the Drop ALT keyboard which runs a (modified?) version of QMK. The codebase may have changed since this, so consider this more of my personal experience and not a comment of the current state of the QMK codebase.
My first problem with the firmware was that while each half of the keyboard would work when plugged in, it wouldn’t work if it was connected to the other half with the TRRS.
After some digging, I suspected that what was happening is that both microprocessors thought they were the master, and it was causing some type of communication error, as the slave unit(the half that is connected by the TRRS but not the USB-C cable) would not respond, and the LCD would appear scrambled and frozen. The solution, for my case at least, was to flash the EEPROM of each board and explicitly set the left and right side of the board. The second thing was to tweak the
config.h file in the corne directory by adding,
Afterwards, I had to compile the firmware and flash both halves of my keyboard.
This documentation on QMK was very helpful!