back
119 comments
Ben Valleck has an ultra-approachable video on building your own keyboard [0].

PCBs are incredibly cheap to print (<$25 shipped for me to print at https://jlcpcb.com, IIRC), and he shows you how to do some mods to the schematic using KiCad [1].

BV also has some crazier minimal keyboard designs like this 18-key split one with lots of layers: https://www.youtube.com/watch?v=yNOGEtqn85o

[0]: https://www.youtube.com/watch?v=JqpBKuEVinw [1]: https://www.kicad.org/

I made my own tutorial about how to design your own analog keyboard: https://youtu.be/TfKz_FbZWLQ

It's ultimately the same process I used to create my Analog Hall Effect Keyboard that was reviewed by Chyrosran22 recently: https://youtu.be/iv6Rh8UNWlI

I'm also gonna link the ai03 tutorial I used to design/build my own custom board. Text based, multiple pages:

https://wiki.ai03.com/books/pcb-design/page/pcb-guide-part-1...

Once you build your first little macropad, and verify that your design is generally correct, you can fork the repo you created and pretty much copy/paste your MCU region, and build a new grid of keys around it. The guide also gave me good tips on what to have assembled, and what to hand-solder, to be able to cut some costs.

I love having a split keyboard. It feels far more ergonomic than a single piece keyboard. Just relax your arms and put each half where your hands are. No having to bring your hands together and angle your wrists to get your hands in position.

The other piece of the puzzle for me is curvature. On a flat keyboard there is more stretching or physically moving but adding in a bit of curvature helps cut down on that.

For a few years now I have been using a hand wired Dactyl-ManuForm [1] and it has been great. At least for writing / programming. I go back to a regular keyboard for gaming purposes.

[1] https://github.com/tshort/dactyl-keyboard

The split and relaxed shoulders are amazing. I really wish more tech would try this approach. The Wii controller (Wiimote + Nunchuck) was my favorite controller for this reason and I have yet to find anything as ergonomic.
I use a (variant of) the Dactyl too and it's been life changing for me. I've always struggled with RSI and used to only be able to code for an hour or 2 at a time, but these days can spend all day/night typing (with small breaks to stretch) without any issues at all.

I 3D printed adapters for my chair arm rests so the keyboards sit at the front of each rest, right where my hands naturally want to be. I can then recline my chair a bit and type for hours without sitting forward/hunched over the desk.

I use MS ergo keyboards for exactly this reason. My entire career has been on those keyboards to the point that I struggle with straight keyboards.

I don't know that I'm a fan of the complete split like this, but I definitely agree with your overarching point.

Same for the split. I'm not fussed about curvature but mine is more elevated towards middle.
Not sure if the author of the post is around, but I guess this is a question for anyone who has designed keyboards: have you ever tried using shift registers for reading all the keyswitch inputs, and is it worth it? Does it mean you don't have to use a diode per switch?

I've designed my own as well but just went with the traditional key matrix with a diode per switch. Works well enough for the current size.

https://github.com/bschwind/key-ripper

My analog keyboards use analog multiplexers (74HC4067) which is similar to how shift registers work. Except they're full of flip-flops (2-way) instead of digital logic.

I made two videos talking about how I design my analog keyboard PCBs and how I'm using analog multiplexers here: https://youtu.be/TfKz_FbZWLQ

Shift registers are an interesting option. They are obviously feasible, especially if using ones with a built in pull-down.

They do avoid having a diode per key, in exchange for needing a chip for N keys, where n is the number of of parallel inputs in your parallel to serial shift register.

They can also save IO lines. Obviously with if using chainable shift registers, you can have an unlimited number of keys with just 3 IO lines.

More realistic of course, would be to use several IO lines in parallel. For a 64 key matrix, one could say use 8, 8-bit shift registers, each connected to one input line, plus one output latch line and one output clock line (for a total of 10), vs the 16 lines needed traditional matrix.

8 input lines is nice, because if you pick the I/O lines right, retrieving the values is just a single port read. Making the procedure: latch, (toggle clock twice, read port, write to next location in memory buffer) x8.

There are of course downsides, like shift registers needing more board space than tiny surface mount diodes, but this is not necessarily a deal-killer.

Last time i researched adding shift registers was over a year ago and I didn’t find many examples (I vaguely recall one possibly with qmk), and very little public discussion besides a reddit question. Popular guides like ai03’s at the time recommended upgrading to a microcontroller with more gpio before introducing shift registers.

Searching again, looks like zmk added support for the common 595 shift register: https://github.com/zmkfirmware/zmk/pull/1325

Edit: You could avoid using diodes, but diodes increase the number of switches possible via a matrix more than shift registers do by giving you more gpio. I’d imagine one can use both together.

This kind of thing is really common in the DIY synthesizer world. Here's a great resource: http://www.openmusiclabs.com/learning/digital/input-matrix-s...
I currently use a Model-M clone. It's 75% of the way to perfect for me. This is my gold-tier wish list:

Bucking-Springs

split-keyboard

WHITE backlight under the keys (I can touch type, but after 35+ years I still "gaze unfocused" and take in all the keys)

I use an actual IBM Model M from the 90s and absolutely love the feel of the buckling springs. Modern Cherry mech switches are obviously better than membranes, but they simply can't replicate the sound and tactile "jump" that occurs when the key triggers.
If you can settle for MX-style switches that have a very satisfying click, then I'd like to point you to Kailh Box switches. There's a bunch of variations, but Box Jade or Pink (from NovelKeys) have been my favorites.

The tactility is very well defined, and the tactile mechanism (click bar) is IMO better than Cherry-style click jackets, like seen in Cherry Blues.

A split keeb with a white backlight that accepts MX-footprint switches should be simple to find.

There actually was a split buckling-spring keyboard made by IBM back in the day.

Drool over this:

    https://youtu.be/oNnW4wED4uU
;-)
No idea about the white backlight but...

> This is my gold-tier wish list:

> Bucking-Springs

> split-keyboard

Model M M15: it's split. It's a collector item though.

Get the brand new model f is you want buckling springs.
Slightly off topic has anybody found a small footprint touchpad to keep close by to a split keyboard?

Similar to the touchpad on the 'Ultimate Hacking Keyboard v2' but standalone without the pogo pins coupling part? [0]

[0] https://ultimatehackingkeyboard.com/product/touchpad

I use an Apple Magic Trackpad 2.

Probably not "small", but it fits between the two halves of my Moonlander quite nicely :)

Not sure how small you're wanting, but Kinesis sells the Cirque EasyCat AG which is 3.3"x2.6". I've not used it myself, but I do have the Freestyle Pro keyboard, which I absolutely love and is very high quality, so I'd guess the rest of the products are similar.

https://kinesis-ergo.com/shop/cirque-easycat-ag/

I just put the mouse in the very middle :)

That thought felt weird in the beginning, but trust me: it works.

Not a touchpad, but gutting off-the-shelf trackballs to populate custom casings is a popular option, e.g. this mod for ZSA Moonlander boards: https://www.reddit.com/r/ErgoMechKeyboards/comments/wp1db9/m...
Have a look at that one: https://bastardkb.com/dilemma
Keymouse have a model with a trackball under each thumb, and a model where each half is a mouse as well as being a keyboard.
Yeah the community loves using the cirque trackpads. They come in varying sizes and afaik are also used in the Steam Controller.

I personally just built a keyboard with an integrated trackball however. It’s great!

> One can try to get away with very few keys ... The first thing I added was two columns on the right side that kinda just bring back the punctuation

I'd say if you look at a layout like miryoku https://github.com/manna-harbour/miryoku .. in miryoku, the [] keys are one row up from home row, accessed on a layer. Whereas, putting [] on outer columns, your hand has to move and reach over two rows.

That is, I'd emphasise layering brings more keys to within easy access of the fingers (at the cost of added complexity to use the keyboard, - which not everyone has the taste for).

This idea falls apart in games that use complex key combinations, or a lot of different keys (like in case of StarCraft 2). I have an ErgoDox and I wish it had an extra dedicated row for F-keys; my current use of the bottom row for camera hotkeys is a very poor compromise.

http://www.keyboard-layout-editor.com/#/gists/8b8dcd36c0abcc... https://gist.github.com/rollcat/8b8dcd36c0abccf430b4160ad899...

Aside: Anyone know of a thoughtful ~36 key layout similar to Miryoku but with less reliance on home row mods?

For those not familiar, to get down to this low number of keys, some layouts will place modifiers (ctrl, shift, alt, meta) as secondary actions (when the key is held down vs. tapped) on home row keys (asdf, jkl; on QWERTY). The problem is to distinguish a tap from a hold, there's a minimum delay before the key is sent, making it very annoying for fast typists as there may be visible input lag when hitting one of the home row keys.

Layering can be great. I have arrow keys on a layer under my right hand, which I constantly use. I have mostly forgotten what the rest of my layers do at this point because I never really needed them. My keyboard has a lot more keys than that one though.
this is really nice and I am actually designing a very similar board right now. People online kept telling me that 'Ergo' means it should have <40 keys, but sorry no, the desk real estate is very cheap and I can use a 70-80 key keyboard as a 40-key keyboard just fine. Having a tiny finger-cramping device just so it looks "clean" is worse than Apple slimming down their phones.

I forsee a minor surge of full-size split ergos and that's a great thing.

All keyboard should have volume wheels. I couldn't live without one now.

The ones oriented like a mouse wheel, but wide (as opposed to the ones sitting like a volume knob on a mixer) are very natural to use and unobtrusive.

With my hybrid work schedule I’m looking for more portability, and less keys. This isn’t for me, but neat.

I also use an ortho layout, but find the whole community trying to justify it as better for you ergonomically to be unconvincing. There’s little data that says ortho has any health benefits over staggered. We have data on the position and alignment of the wrist being the biggest factor, and you can achieve this with either style.

> This is the physical layout, so you see QWERTY here. I actually type on Colemak though!

How do you know if someone uses an alternative key layout? They’ll tell you.

I upvoted because of the PostScript, which has nothing to do with keyboards.
Sometimes I feel like I'm the only person who can't type on this kind of keyboard because I often use my left hand to type some right side keys and my right hand to type some left side keys. I'd constantly be clicking off into the air on this thing.

I can type near 150wpm, but it is a completely random style that mostly only follows using whatever finger happens to be closest to the next key regardless of which hand it is after leaving every finger wherever it was last used.

I haven't quite reached this level yet with the keyboard hobby, but reading this post feels a bit like looking into my future. I've soldered together a few kits designed by others and have been itching to try my hand at designing my own layout fully from scratch. Not that I need it, I'm quite happy with my current stable of keyboards, but because I think it would be a fun way to learn more about electronics.

In case anyone is interested, there are also people who hand-wire keyboards. This lets you explore funky custom layouts without having to learn the circuit design and manufacturing side. I came across this pretty detailed guide recently. https://www.crackedthecode.co/a-complete-guide-to-building-a...

I've been toying with the idea of designing my own keyboard too. I'm in love with the keeb.io iris & ergodox EZ. They're both pretty awesome, but now I'm thinking I would love to be able to take my split/iris everywhere by using choc low-profile switches & a case that would let me snap the two sides together, face-to-face, such that I could slip it in my backpack along with my laptop (and maybe some extra keys here & there).
Just bought my first "strange" keyboard from Keychron (it is pre-built, and programmable with VIA). I hope I can hardwire there all my (actually implemented with) .Xmodmap tricks, and make them available on both Windows and Linux.

This kind of article just shows me what I will become in a few years if that first experience indeed succeeds.

You may want to be careful with naming, as Nice Technologies LLC makes very similar PCBs for mechanical keyboards: https://nicekeyboards.com/

IANAL, but if they have a trademark for "NICE" in relation to keyboards, yours may be in violation.

What I want in a split keyboard is rollers or wheels built into the inside edges of the 2 halves. That would let my thumbs reach them pretty easily, and because they're mostly hidden within the keyboard body like a mouse wheel they wouldn't be wasting precious key space.
In Gamecube modding it is common to cut apart a Wii motherboard. Would it be possible to create a split keyboard by cutting apart multiple cheap full keyboards?
I have a keyboard design I’d like to have made. But I don’t have the time to do it all myself. Are the any services out there for this sort of thing?
I wanted to thank the author for the thorough blog post on how to create a new keyboard from scratch. Just a note, please add where you print the PCB, Case ecc..

Thank you.

I tried giving "split" keyboard a shot a few years back, but unfortunately it never worked...
these flat kinesis advantage clones give me cramps. Just buy an advantage or build a dactyl-like
I’ll always upvote a Colemak user. Looks nice!
>goes to all that effort

>not cupped

Probably better off going with a Matias then.