I got a Chocofi keyboard
The Chocofi is an open-source 3x5(+3) 36-key wireless low-profile Corne variant with Kyria-style stagger. I’ve been meaning to switch to 3x5 hardware for years since I’ve been using a 3x5 keymap from the very beginning, just on 3x6 hardware.
allow me to explain the Pusheen; his tummy is a screen cleaner and let me tell you my screen used to be filthy but has never been cleaner since I got him
I got mine fabbed and soldered by Beekeeb. Beekeeb specializes in small low-profile split ergomechs.
It’s a bummer that zmk
doesn’t support pointing devices yet, because that means I can’t use the beautiful Lenovo trackpoint module I put so much effort into setting up for my MX Corne. RIP. Unless…I go the extra mile to implement PS2 support in zmk
….just kidding I don’t have time for that right now, we need to finish writing MIT Mystery Hunt.
hardware thoughts & tips
It’s great, I am really enjoying low-profile and it’s nice to finally have a keyboard that matches my keymap size. Always felt silly carrying around unused columns. The Chocofi packs down to less than half the size of my old keyboard, which was already quite small. It fits easily in an inexpensive hard drive carrying case.
The Kyria-style stagger took a little bit of getting used to, but it is definitely more comfortable for me than the traditional Corne shape. I really like letting my hand rest in its natural shape, and now I no longer need to deviate my wrists to type in the pinky column.
Battery life is incredibly impressive. They last me at least 1-2 weeks of full-time use. So far I’ve never run out because it’s easy to remember to recharge weekly.
I didn’t originally buy screens. They seemed like an unnecessary splurge, as I had no plans to use them while typing. However, I had trouble building/flashing my firmware at first and couldn’t get into the debug console either, so I broke down and bought the nice!views to save time debugging my firmware issues.
I wouldn’t have bought them if not for debugging, but now that I have them, I’m very impressed by them. They’re crisp and refresh quickly.
keycaps and switches
On my MX (normal mechanical switch height) keyboard, I have Hako Violet switches (tactiles with 28gf actuation and 40g total) and DSA keycaps, which are my holy grail combo. Unfortunately, no analogue to Hako Violets exists in low profile land because it is inherently harder to make a good tactile switch with a really short stem. People have been working on this for years and the shorter travel distance means it’s just not physically possible to manufacture low-profile tactiles as light as MX tactiles can get.
When I first bought this board, I got Light Blue (20gf linear) switches and MBK keycaps because the items I wanted were out of stock and waiting for their next production run. I wanted LowProKB’s Choc Sunset switches (40gf tactile) and LDSA keycaps, which I got hold of later. (All the photos in this post show the MBKs.)
- Light Blues + MBKs: Do not recommend. Combined with the flat surface of an MBK, 20gf is so light that you can easily brush a neighboring keycap with a feather light touch and accidentally make typos without even feeling them.
- Choc Sunsets: Surprisingly, these were too heavy for me. You wouldn’t think 40g vs 28g would make such a big difference, but somehow they felt twice as heavy to me as the Hako Violets.
- Light Blues + LDSAs: Actually great. Night and day difference from the MBKs. LDSA keycaps manage to fix most of my complaints with the Light Blues. The spherical scoop gives me better tactile feedback and forces me to apply force straight down in the middle of the keycap, instead of just sloppily slapping anywhere on the flat surface of an MBK. This eliminates stem friction and tactilely-undetectable typos. When I make a typo on LDSAs, I can actually feel it.
30g would probably be better than 20g because it would allow me to rest my fingers on the keys, but I’d rather not buy yet another set of switches, and I’m happy enough so far with the vastly improved typing experience the LDSA keycaps are giving me.
Choc switch installation
Choc switches have one pin that is very thin. Make sure the pins are actually aligned with the sockets, and insert the switch straight in. The thin pin can get smashed in so that the pin is not actually in the socket, but it looks/feels as if the switch is seated properly. You won’t notice until you start typing and the key doesn’t work. It was easy enough to straighten the pins back out with needlenose pliers, but a little harrowing since I didn’t have a lot of spares.
firmware thoughts & tips
I had trouble setting up the zmk
build system locally on my cursed silicon Mac, which I find a new reason to complain about every time I interface with hardware, CAD, or photoshop. I’m sure someone in the world has done it, I just ran out of patience before I was able to figure it out.
For now, I’m using GH actions to build even though I really dislike the unreliable feeling of fragility that comes with relying on the cloud. It feels strange and weird to not have a local build pipeline. I think I need to dig up a 15-y.o. Lenovo out of storage and put Linux on it to use whenever I can’t figure out a macOS incompatibility. It would be nice to have a backup option that can actually talk to things.
If you are using a Mac to flash firmware, your data cable must plug directly into the computer, not pass through a hub. A direct USB-C adapter is fine.
Macs have a port problem where the designers took out all the ports to make it thinner. Web cloud-only devs who only use their laptops as combo browsers+shells love it, anyone who interfaces with hardware hates it. So I always have a big port hub plugged into the side of my Macbook. One funny thing about Macs is that even though you can send and receive high speed data just fine through the hub, I (and other keeb friends) have never been able to flash firmware to a keyboard through a Mac hub for some reason, which is a simple but weird possibility you maybe don’t think about until hour 5 of swearing and nitpicking through every last line of code and testing and swapping out several different data cables.
In summary, don’t punish yourself with a Mac if you talk to hardware. I only have one because it’s been necessary for a lot of my software jobs.
Otherwise, it was pretty straightforward porting my functionality from qmk
to zmk
, although it’s a bit annoying that zmk
keycode aliases seem to prioritize word readability over length standardization. So on QMK, it was easy to format all my keycodes into a compact little grid, but my ZMK keymap overflows way off my screen.