I'm typing this post on the first prototype version of my new custom keyboard, the Basis Split. It's a split ortho keyboard with three rotary encoders and Boardwalk-like usage of ergo modifier keys. It's about equal to a 65% keyboard. (This is a rip from a post I made on Reddit, because i figured this was a better way to talk about the evolution of the design in the future)
This prototype case is a POM sandwich with silicone layers on top and bottom of the POM plate to provide complete isolation.
It's built with a custom PCB running QMK. The PCB has mill max 7305 hot swap sockets for all the key switches as well as the encoders, so the encoders can be swapped out as easily as a switch. I'm currently running ALPS EC11 w/ detants for coding (switching through tabs in my editor, quickly moving through find next/prev), but can switch to detant-free for 3D and photo editing tasks.
I started off running Halo Clears, but have recently switched to 67g Zilents to appease my family's request for quieter keys. I tried to switch to gat black ink silents, but they kept popping out of the POM plate and flying off the board. Zilents and Halos snap in fine.
How I designed and built the Basis:A little bit about me: I'm a software engineer at a Major Tech Company. I have a history of working with prototypes and hardware, but I've never actually built anything or done EE since college (which was a long time ago).
I got into mechanical keyboards last year when I started a new job and decided to splurge on a nice keyboard. My first board was a Durgod TKL, but I pretty rapidly started experimenting with different boards and getting into ortho layouts. I got a Preonic, but missed having my 'programming' keys on the top layer (stuff like brackets and math operators I use constantly). To remedy that, I got an XD75 but never got super comfortable with the bank of 1u keys. I also got a nyquist and enjoyed the ergonomics of a split keyboard.
After a while, I started to look into designing my own layout.
My design goals:- Ortho
- Split (or not!)
- Looks beautiful
- Has fast access to programmer keys without needing too much divergence from how I type on my laptop (no layers for core keys)
- Has a layout that isn't too divergent from a typical laptop keyboard (no thumb clusters, etc)
- Symmetrical layout when my hands are on the home row
- Has multiple key sizes for peripheral keys for better usability affordances
- Uses relatively standard keysets for availability (the Basis can be filled with an ergo keyset)
- Configurable continuous input. This became the encoders, which I initially wanted for fiddling with photos and 3d editing, but found they're also super useful in code editors
ExperimentsOnce I got going, I started with a bunch of experiments in KLE (
http://www.keyboard-layout-editor.com/) to prototype renders with Blender that started with
https://github.com/snagy/Keyboard-Layout-Editor-for-Blender (some checkpoints of that process
https://imgur.com/gallery/W8Jxgnp and
https://imgur.com/gallery/lhz9Ylk and
https://imgur.com/gallery/Y6OMASW) until i had something I felt compelled to make.
ProcessOnce I decided to make it, I learned kiCAD and the followed the ai03's PCB design guide
https://wiki.ai03.me/books/pcb-design/chapter/pcb-designer-guide . I also went through a ton of components from digikey/mouser while experimenting with parts. This was one of the shipments when I wanted to learn more about different encoders and knobs that are commonly available:
https://twitter.com/visageofscott/status/1253533213248458752/photo/1In the meantime, I used
https://github.com/FrancisUsher/KeebGen and Fusion 360 to turn my KLE file into some usable plates and got them cut at Pokono. I wanted to experiment with a sandwich gasket design, so I made a case with multiple POM layers of different thicknesses, and my plate is entirely sandwiched between a pair of .5mm silicone layers that isolate it from the screws and surrounding case.
Eventually I got my PCB to a state I wanted and used JCLPCB to print and assemble my PCBs. The assembly didn't include USB ports or a couple of other components, so I also needed to learn how to solder to put attach those. I am still not very good at soldering:
https://twitter.com/visageofscott/status/1265442852084936704/photo/1Unfortunately I messed up my initial PCB design and put the wrong capacitors on my USB crystal. Fortunately those components were fairly isolated so I was able to get replacement caps and desolder the bad ones and replace them.
Once I got the PCBs actually working and connected, I configured QMK to match my design and flashed that with relatively little drama.
What's nextI'm currently building a CNC non-sandwich case in Fusion 360 for a smoother, seamless look. The first version of this will be mono (not a split) but using the same PCB which is modular and can be broken apart for a split or used as a mono board. Designing and manufacturing the case is a whole load of new stuff to learn.
I've already got the next rev of the PCB designed, with ESD protection and USB-C ports, and some cleaned up placement of some components to hopefully lead to a more reliable design. I'll order these after i finalize the case design, to make sure I don't have any weird gotchas from the case.
I'm also going to enable VIA support and poke at QMKs encoder support to make it more robust and configurable.
The futureI don't currently know where I'll take this project.
I'm delightfully happy with the result; it's exactly what I wanted, and it's my favorite keyboard I've ever used. I can't wait to make a 'nicer' version for myself with a fancy case and heavy weight.
I will almost certainly open source the PCB and sandwich case designs. I will probably sell a few one-off builds from the prototype runs (most will be gifts to friends and co-workers). I might decide to run a group buy or possibly just manufacture a few and sell them myself. If I decided to actually do a GB or sell them I'll do an IC to see what people actually want (split or mono, hotswap or not, etc).
I would also love to make some custom knob molds that match keycap profiles better, so in a dream world people could make knobs alongside new keysets.