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].
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
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.
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.
Yes! I always use the Joycons like this. Just rest them however I'm comfortable. Although the rectangular shape makes them uncomfortable to hold in the hand for too long which is a shame.
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.
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.
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.
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.
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.
And if you fancy getting more 'Boutique' there's always the ZealPC "Clickiez" which are a reinvention of the ALPS style of click mechanism in an MX compatible chassis. Fabulous (but expensive) switches.
I also have a UHK and a Magic Trackpad and just keep it between the halves. It enforces proper separation, since without it I tend to default to keeping the halves too close together, and while the modules partially overlap the corners, there's still more than enough usable space.
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.
> 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.
I pity the poor soul who needs to use multiple key layers in a game, especially SC2. But if you got past Silver League, then you're better than I was in Wings of Liberty.
I remember using AutoHotKey back then to swap caps lock and CTRL (or was Backspace in there somewhere?) to cycle through my hatcheries and spam larvae injects, since they weren't queue-able at that time.
I have a single, dedicated layer for SC2. I didn't play WoL, non-queuing injects sounds like a nightmare!
Backspace (next base cam) inject is still a thing, but it's not really recommended: it tends to send different queens towards different hatcheries, delaying the injects. Again I didn't play WoL so I don't know which keys were re-bindable in the client at the time, but currently you can use almost anything for anything (except you can't change the modifiers like ctrl, shift, alt); those who use base cam inject will sometimes bind it to space.
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.
Are you familiar with the Ignore Mod Interrupt option of qmk? That solved that issue for me, depending on your typing style it might solve for you too.
Another option is moving those keys to bottom row, or moving layers to combos to free thumb keys to for mods or move mods to combos as one shots.
I just flashed one of my keyboards with the "official" ZMK layout and it's so much better. I must have missed quite a few settings when I tried replicating it myself. I can't notice the delay at all.
My strategy on my Let's Split and now Iris is that I select layers by holding down left hand Homerow keys, then type with my right hand. Holding f turns my right side into Vim style arrows. Holding s turns it into a number pad, and holding s turns it into a symbol pad. Modifiers are where you'd expect but holding them types my most commonly used symbols {} under Options, Esc and Enter under Commands, <> under Hypers. Control is where you'd expect caps lock and ' but tapping those are " and ' respectively.
So what I'm saying is use home row hold/tap just for layer selects that will only affect the other hand, and use hold/tap modifiers for programming symbols.
Maybe you'll find my post https://arathunku.com/b/2023/moonlander-keyboard-layers-tour... helpful with oneshot modifiers across layers but also keeping Shift and Ctrl accessible. I really hated any timers / held vs tapped on home rows, it prevented me from fast typing and rollovers. Now I really only have space bar on hold/tap that's used in usual writing but it's on my right thumb and have never been a problem.
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.
Hopefully, there is surprising lack of ergonomic keyboards with function keys. That's basically the most important reason I'm waiting for moergo glove80 to arrive. But I would also like to have something flat and thin with low profile switches for portable usage.
If you were to get your hands on a QMK/VIA-powered keyboard, you could tweak the firmware for your own Fn+(anything) to map to Vol+, Vol-. Not the same, but you could have this 'under your fingertips' at all times.
I tried this a while ago, but never used it much. I end up leaving my system volume at predictable levels most of the time, and ended up rebinding my arrow cluster's extra layer for Prev/Next song, which got much more use.
I love my QMK Ploopy mouse. I use on of the buttons as a layer change, which gets me access to extras I added. Stuff like paste and plain text paste are super useful. (On MacOS plain text paste is shift+option+command+p)
I remember ages ago I had keyboard with big scroll wheel on the left , super convenient.
Currently due to many sources (PC, console, occasional synthesizer, BT receiver) I just have small mixer between my PC and speakers and it is super convenient. I actually considered hacking something akin to 3-4 encoders with display showing current app making sound and giving option to change the volume of that app
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.
If you're looking for portability with ergonomics I've been very interested in following Ben Vallack's advice in this video https://invidious.weblibre.org/watch?v=iOupyi-lQZM, which is to take a small keyboard like the gergoplex[0] and strap it to your thighs with a giant rubber band.
I've been looking for a gergoplex but gboards.ca has been down for a long time. If you read the later blog posts on web.archive it's a sad situation, I doubt it'll be back online.
> I'd be very surprised if that was as ergonomic as a symmetrical layout.
The body is complex, and movements build on top of that. It's hard to reason about it as a system in this way.
For now though, what matters is it's more fun to type on an ortholinear keyboard. I wish the focus was on that aspect and not health benefits until there's data.
:o) I can agree that a discussion about health benefits would be more compelling with data.
As an anecdote, I'll say I find my ortho keyboard using a Dvorak layout much more comfortable to type on than row-stagger QWERTY; and certainly looking at videos show that the latter looks much busier at the same WPM.
The main thing I'd argue is that many of the design features of a standard keyboard (asymmetry; big spacebar; row stagger, with different stagger for each row..) don't seem to be good design decisions compared to even a grid of keys all the same size.
On a QWERTY keyboard, think about the letters "I" and "E", which the middle fingers on your right and left hands respectively would hit. Both require your middle finger to reach up and slightly left. It's not a mirrored movement—both skew left. The stagger breaks symmetry of any non-home row finger movements.
I think I see it, it seems to me that my finger naturally wants to hit in between "E" and "R", but it hits exactly on top of "I".
So ortho fixes this, but could it then introduce problems for other pairs? It seems hard to believe that there is a layout which is 100% better for all combinations.
Regarding symmetry, our hands are already asymmetrical due to handiness (left-handed, right-handed), and the brain naturally adapts, and there is also the risk of Hawthorne effect if you A/B test ortho/staggered. Some real studies on layouts would really be useful.
Ortholinear can be interpreted as 0 stagger, but still takes time to adjust to. However, when I was using ortho at work and ANSI at home, it didn't take much effort for me to alternate.
Ortho layouts are also most often used on compact boards, and the Preonic (5x12 grid, '50%' form factor) is probably the most 'plug and use' friendly ortho I've come across.
Yeah, a split keyboard and traveling back and forth is not so fun. When I was in the office full time it just stayed there, since 95% of my typing was done there. Now I am home the vast majority of the time, and it stays home. I just have a 60% keyboard I use for travel, not my favorite but it gets the job done and travels easy.
When I worked in an office, one of my favorite boards to bring to/from was a Tokyo60. 60% HHKB-ish layout, split backspace, ctrl-instead-of-caps, and a classy aluminum case.
If you're curious enough to get into designing your own, there are much simpler guides than the OP here, if you know what you want to accomplish.
I have no problem admitting my interest in ortho layouts is mostly an aesthetic preference.
At home where I can spread out I'm quite content with my Ergodox. But for travel, I find my 2x2u Preonic quite comfy... all the keys you need, none that you don't, with only a minimimum of layers needed.
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 think you’d be constantly doing that for like two days. Then you would adapt and stop using the wrong hand. (Provided that you don’t use another keyboard simultaneously that let’s you keep going with the old habit.)
I was in a similar position, but highly motivated to switch due to advancing RSI symptoms. I waited to switch until a low-code, long-duration project came across my desk and was pleasantly surprised by how quickly my old habits were replaced. The trick seems to be that with split keyboards (especially orthilinear models) the finger closest to the next key is usually the one you ought to use anyhow. When home-row is mandatory, it's easy.
After a month or so at most, I was back to full speed. It did ruin me for laptop keyboards, though, I can't type on those at all anymore.
Similar experience, except I was surprised to find that my laptop typing have actually been improving without trying despite (or due to?) also using a qwerty but otherwise quite different layout.
I had to re-learn the B and the 6 when I moved to a split keyboard, but it was totally worth it. Just plan to spend some time in typing drills/tests and you'll get the hang of it soon enough. It really is amazing what you can adapt to.
I'm a bit of a n00b for QMK firmware based keyboards, but I think there is a function for flipping the mapping of each side so you can do stuff like that.
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).
If you don't need to have the halves be fully separated, you can have an easy time designing a custom PCB, assuming that you can get good/accurate footprints for the switches you want to use.
The below PCB is meant to be 'like a Preonic, but with 2x2u spaces, and full 5x12 grid'. Diode placement is aesthetic, but serves as a way to fill the 'dead space' between the main halves.
Whether you use 2d design to make a stacked/layered case, or 3d printing, you could probably jank-design a top cover to go along with your own custom build.
Oh, but here's the thing: I wanted 5x12, and 2x2u. I also wanted to make it compatible with existing 5x12 keymaps, for ease of firmware tweaking.
I have an assembled proto, and while it was rough around the edges, it was fun to use. The case was made of laser-cut sheet metal bolted together with standoffs, and the switch plate had a cutout in the center to show off those banked diodes.
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.
I just got a K3 (non-pro) last Friday and I'm mostly liking it. For years I used an Apple Magic Keyboard Pro (or whatever the wired full size keyboard like it is) and really liked it, but wanted something narrower and without the 10-key so I could move the mouse closer to the centerline of my body.
So far it's been good, but there's a couple things that are taking some getting used to:
1) The spacer bar is wider than on either the Apple keyboard or any of my HP laptops. I hit space with my pointer fingers, sometimes right sometimes left, and I keep accidentally hitting the Command key along with space, and popping up Spotlight on top of whatever I'm doing.
2) The delete key is in a funny position. I almost wish it was where the backlight key is. I guess if I'd gotten the Pro keyboard I could remap it.
3) The lack of eject key means I've lost my Ctrl-Shift-Eject shortcut for immediately blanking the screen. Not huge, but I liked being able to do this on demand.
Otherwise, it only took a few days to get accustomed to the greater key travel and I think I like it. Although I have half a mind to return it and get the Pro now, just to fix the Delete key... And maybe I can make the backlight key be some combo, and I can restore eject?
1) Now that you mention it, the space bar is kind of wide. I use my thumbs for it though, so I didn't even notice because I hit it pretty much in the middle.
2) Yea, I'll have to see if I can develop an intuition for the delete key. I don't use it super much. In general I am positively surprised how many of the keys I hit pretty consistently without looking, given that it does have a different layout for all the top right stuff. I also realized how much I relied on the spacing between different key groups, e.g. between ESC and F1, or ESC and ~, to find stuff. Now those gaps are gone and I am having to use a different mental mapping, haha. But it's been better than excepted, tbh. I also didn't even realize there was a backlight key up there. Nice, thx!
3) I've mapped this to meta-shift-ESC. Should be easy enough to find a different key combo?
Question for you: do your key caps have translucent letters so the backlight can shine through? The pro does not, which makes the backlight kind of.. useless? Because I can't see the letters on the keys anyway :D
For #3, how did you change that mapping in macOS? That'd definitely work for me... And I can probably get used to delete, although it'd be neat to have it at the top of the row above Home.
And yes, the keycaps do seem to be translucent to some degree. I almost say too much because when the light is on bright it's like the sides of the caps themselves glow, but the letters do as well.
I bought mine from the Keychron store on Amazon, and when I got it I noticed a greasy fingerprint on the bottom of the box, but all seemed good. I'm now realizing that it's missing both the keycap and switch puller, and the keycaps on my (white) model match the colors that the RGB should have.
I'm wondering if maybe I should return it and order the pro directly from Keychron? I guess I could sort out pretty much everything that way...
Oh, I'm on Arch ackshually :D
But I'm sure you can add another keyboard shortcut on OSX? Isn't there a setting for shortcuts that lets you define that sort of thing? It's been a while that I've used a Mac.
Interesting re. mismatch. I got mine from Keychron directly, they ship very fast. 4 days or so from China.
The keycaps on my Pro aren't translucent at all, so the LED lighting is useless in the dark. It's quite silly. But oh well, at this point I know where most of the keys are.
I think it should definitely come with a key puller and extra caps, almost sounds like they sent you a previously sold one that was sent back or something.
I'm thinking I got one that way from Amazon, yeah... I think I'll look into a return, although that keycap thing you mention gives me pause because I really like using the keyboard on dim, with lightly lit up letters.
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 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..
Yeah, I think homebrew keyboards are converging to a local optimum because 2D is much easier. Take a PCB, solder or hotswap the swithches, add some acrylic plates or a simple 3D print and you are done. Dactyl-like keyboards require a 3D printer, long printing times, sanding down imperfections, etc. And then the palm support story is not great.
The homebrew market is ready to be disrupted by someone who sells injection-molded components for curved keyboards, so that it can move out of this local optimum. Maltron sells separate cases, but the design is dated.
Until then, I agree, just get an Advantage or maybe Glove80.
Sure, 2d pcbs are certainly easier to design and get run. However there are a few people I've seen in the niche of a niche which is 'non flat keyboards' that are getting flex pcbs run for dactyls and their kin.
I think Dvorak is the only alternate the makes sense to use because it's supported most places. You can easily get a new device and set it for Dvorak. Anything else and you are now Googling for guides. I have Dvorak on my Mac, iPhone, Windows, and Chromebook. If I have to help a co-worker on their machine I can quickly switch it over.
That said I will not purport that Dvorak is better in any technical way that the other alts.
For me the switch was to force me to break my bad typing habits and learn to touch type.
How long did it take to get to the point where Dvorak wasn’t frustrating? (Not necessarily to equal speed, but to at least non-distracting/non-aggravating.)
For me personally it took 2 months to "fully" adjust (meaning I can type without looking at the keyboard but every now and then I make a typo and need to correct it). I used this -> https://www.keybr.com/ almost every day. You can just set preferred layout without actually changing your keyboard's settings and it have very nice "teaching" sessions.
Tbh I don't notice a huge difference, its more comfortable but sometimes I have a brain lag when I need to type on my phone since its on qwerty. Ergo layouts tends to be worse on mobile (because ergo usually have common letters close to each other and its not very cool on a small screen, qwerty is suprisingly one o f the best for smartphone's 2 thumb style)
About two months of typing. If you are remotely ever interested print out a keymap of Dvorak and have it somewhere visible. Just seeing it over and over and over again will build that familiarity. Just do it today, even if you'll never end up trying it.
Without that it took me like two weeks of it actually being painful where I was closing my eyes and mentally moving each finger deliberately. After about 6 weeks I got to 30 WPM which I felt was sufficiently fast to work as a developer unimpeded. 2 years later I'm up to 60 WPM which is faster than I ever was with QWERTY. What I do is three 120 second long sessions of www.MonkeyType.com at lunch each work day.
Colemak user, maybe a comparison: 2 weeks until I could "type" but it was frustrating as hell. About 1 month to 70wpm, which was the bare minimum where my thoughts would no longer outrun my fingers. After about 6 months I was back at 110-120wpm consistently, but ever since then I notice that I'm regaining little micro-skills I remember having, like hitting the right key upside down with my left hand while walking past the desk. So I suppose the learning never stops ;) About 7 years now.
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/