- Supports MX and Choc switches
- Dual-wireless, powered by Nice!Nano v2's and ZMK
- Compatible with lots of popular keysets
Why CB70? It's my initials, and it used to be a 70-key layout. When I deleted a key, changing the name to The Joke Number just seemed too obvious.
- KiCAD files for the combo MX/Choc PCBs in
/PCB
- Keyboard Layout Editor JSON for the MX and Choc versions in
/KLE
- Config files for the ZMK firmware in
/ZMK
, and pre-compiled firmware in/Firmware
- OnShape docs for three different cases: MX, Choc, and Choc Slim
- STL files for the 3 different case styles in
/Case
The key layout is based around something I've been honing for almost five years now. I've tried a few different ortho/ergo layouts, but contrary to what the internet says, they always slow me down way too much. Meanwhile, I use this at my desk, I still use my MacBook Pro's built-in keyboard a lot, and I average 110-120 WPM on both.
A few thoughts on the layout:
I wanted to maintain parity between my keyboard and my MacBook Pro's keyboard as much as possible, so I don't do much with ZMK itself. Rather, I use Karabiner-elements to make many of these 'tricks' work for both my custom keyboard and my MacBook Pro.
I've found I never use my left thumb for the space bar, so I placed a Shift key where my left thumb naturally falls. I fell in love with this almost immediately, and it's the first thing I miss when typing on my MacBook Pro. I've tried a few different Karabiner-elements hacks to attempt to replicate this for the MBP's built-in space bar, but none of them work that well.
I use the Caps Lock key as an additional Command key with my left pinky, which you'll see in the Choc keyset. That's remapped in Karabiner-elements so it works both places.
The bottom-left key is a "Function" key, but I use a Karabiner-elements complex modification called "Map Function to Hyper when held" to give me a bunch of custom shortcuts. I can't figure out how to share that directly here.
The bottom-right Backspace key is remapped to Option-Backspace, which deletes a word. This is maybe my single favorite thing I've ever done on a computer. If I'm writing in Slack and realize I want to reword the last few words I typed, it's a super quick way to delete a word at a time.
The left column gives me a dedicated Esc key, and the other three are remapped to volume up/down, and a play/pause key.
You'll need at least 69 switches, either 2-pin MX or Choc. If you use MX switches, you'll need 4 plate-mount stabilizers, such as these. The Choc version doesn't use any stabilizers.
You can get the same Choc keycaps you see in the picture from FK Caps' Custom Shop if you want.
For Choc switches, you'll need 60 1u keycaps, and 9 1.5u keycaps.
For MX switches, you should be able to get by with a pretty standard TKL or 70% keyset (that's by design). The only 'weird' keys are:
- 1.75u right Shift key
- 1.5u Backspace key in the bottom row
- 2u space bar
- 1.25u Shift key for your left thumb
The pictured MX version is the MT3 Susuwatari keyset from Drop, with the Base kit covering everything except the 2u space bar (which I added from the "Spacebars" kit).
- 12 M3 x 4mm heat set inserts
- 12 M3 x 8mm screws
- 69 1N4148 diodes
- 2 3.7V batteries with JST-PHR-02 connectors
- 6 JST 2.0mm connectors for the PCB. The PCBs are spaced for the 2mm JST connectors, which are sometimes also called JST-PHR-02, like on the linked batteries.
- 2 nice!nano v2 boards
- These round pin headers to socket the nice!nanos
- Most people use diode legs to socket the nice!nanos, but if you want nicer pins, these are the only ones I've found.
- Some push button switches and SPST slide switches for reset and power. These particular ones can be wired to JST connectors for case mounting, or soldered directly into the PCB for low-profile setups.
Assembly should be pretty straightforward if you've built a keyboard before. The PCBs are marked for diode orientation. You'll want to make sure to install all of the diodes and the nice!nano sockets before installing any of the keyswitches. I also needed to snip the nice!nano socket legs flush with the PCB so the keyswitches mounted flat.
See the ZMK instructions for using GitHub actions to build the firmware yourself if you want to edit the keymaps.