Show HN: I made a split keyboard for large palms (jogmekeebs.com)
I had an issue a few years ago - every ergonomic keyboard I tried had the switches too close to each other and my fingers were cramped in that small space.
Then I decided to create a keyboard which is suitable for larger hands and eliminates most of the wrist movement. 34 keys was the most optimized version
for achieving as little wrist movement as possible.
You can try the fitment for your palm IRL with the printable template on the website.
85 comments
[ 2.6 ms ] story [ 150 ms ] threadA couple of months back I built another prototype, this time with a 6x4 + 4 layout. I'm still not loving the layout, four keys is too much for the thumb cluster and I'm looking at dropping down to three. Ironically I've already setup my layout so it almost only uses 6x3 + 3 (I use the top row for non-typing keys like F1-F12), and in effect reinvented the Corne that I started out with...
And then I hit them with my middle finger instead, or rather smash them as it requires the whole hand to move slightly.
So in my case does not affect speed or comfort (not a frequent VIM user etc)
But if I only had two thumb buttons I would be ok.
[1]: https://www.maltron.com/store/p11/Maltron_L89_dual_hand_full...
I haven't used a Kinesis, so can't compare to it (though Kinesis is supposed to have copied their design, so I guess it's very similar.)
The rest I just use for miscellaneous other uses, like pgup/pgdn and inverted-T arrow keys. It's not for use with the thumb, but it's just a handy place to put keys you'd have to move your hand for anyway.
Could you explain what you did to achieve "diodeless" design and how do you prevent masking?
I was not precise with the "diodeless" definition - the keys are directly connected to the processor pins without using a matrix. (Therefore there are no side effects of the matrix design - ghosting, masking, key rollover. The key presses are more precise and for me they seem more responsive - less latency, but unfortunately I have no data to prove this statement.) Thanks for the question, I will fix the definition!
Also eliminating the diodes reduces the cost and the time it takes to build the keyboard, which is always nice IMO!
(Of course if you’ve got the pins, you should use ‘em!)
1. https://github.com/isoxliis/firmware-micropython/blob/72687e...
I built a macropad that has some regular keys and a SNES controller on the "same matrix", total scan time is 335us, which is dead slow as far as scanning goes, but nothing you'd be able to notice.
Other points are fair though, fewer parts in the BOM. Though routing is a bit trickier with diodeless, especially if you also want to adressable RGB.
To mitigate the debounce algorithm delay, you can put "DEBOUNCE_TYPE = asym_eager_defer_pk" in your rules.mk file.
What this does:
asym: use different debounce algorithm for key-down and key-up events.
eager: the key-down is registered instantly at the first signal, instead of waiting 5ms for debounce
defer: registering key-up will wait for the debounce delay, this will make sure you won't get multiple key-downs registered before a proper key-up
pk: per key debounce timer, uses the most resource but you have plenty on your rp2040. although I don't completely understand how this works, this is supposed to be the fastest.
To increase the polling rate, this can be defined in config.h:
#define USB_POLLING_INTERVAL_MS 2
It's in ms, so 2 is 500hz, 1 is 1000hz, IMO the latter is overkill.
Together, you save a minimum of 6ms, maximum of 14ms of delay, which is orders of magnitude more than you save by not scanning the matrix.
https://www.zsa.io/voyager
My first split was a corne (I have a feeling that many people started with a corne here) and then I wanted a draculad[0], but it wasn't available for almost a year. These two keyboards had given the most of the inspiration for the YetiS.
[0] - https://keebd.com/products/draculad-keyboard-kit
Another aspect was that some key columns were splayed, being more apart further away. It has inspired many follow-ups in the DIY ergo-mech scene in more recent years.
[0] http://xahlee.info/kbd/TRON_keyboard.html
[1] https://www.semanticscholar.org/paper/An-Implementation-of-t...
Neat keyboard. Also pretty cool how far the TRON project went and how many parts of computing it influenced.
Probably not possible to make a product from my anthropometrics, but I could try average out a few hands.
Do you have the project somewhere online to share - git, blog, reddit, etc.? I would like to have a follow up on your progress!
(Note: this breaks down a bit once you move to concave key wells)
I type those with my index, middle, and ring fingers, respectively, because when I pull my fingers back toward my wrists with my hands sitting at a neutral angle, those are the keys they pass. Moving from A to Z on a regular keyboard would be a disaster of a hand position!
Who is it who's teaching people to type that way on standard keyboards? I'm an elder Millennial, so the first class in my school that ever practiced typing in kindergarten, in the very early '90s. When and why did anyone switch to a horrible hand position?
It's only from that horrible hand position that I can imagine "keys in a straight line" being an improvement. My index fingers cover more than one column of keys, so staggering them makes all of them easier to reach, rather than one set really easy and the other set much more awkward. My fingers do not move in straight lines from coiled to uncoiled, and I doubt other people's do either. They splay as they extend. They should be able to cover more keys with less movement extended than they do coiled, so putting keys in straight lines makes it worse, not better.
Also relevant, but for improving the ergonomics of “normal” keyboards with staggered rows: angle mod. https://colemakmods.github.io/ergonomic-mods/angle.html
http://www.onehandkeyboard.org/wp-content/uploads/2012/04/Z_...
I have never heard of anyone typing like this. I type those keys with my middle, ring, and pinky finger respectively.
A quick google search of “qwerty finger map” shows that middle-ring-pinky seems to be the standard. I don’t see any disagreement across any of the results. I suspect that your typing class was the exception, or you just picked up doing it differently than what was taught. I don’t think there was a large scale “switch” on how things are taught.
But yes, if you type differently than that then ortholinear keys would probably require you to make adjustments.
This was normal when I learned. Really wondering why anyone would change it.
https://www.onehandkeyboard.org/standard-qwerty-finger-place...
As long as you type comfortably, you're doing fine. But if you want to wrap your mind around it, that starts with grokking that not only do most touch typists type Z with the pinky, and so on in, that is how it's taught as well.
So if it's what you do already, ortho just straightens that out. Most ortho keebs (I think? Not all of them, but most) are also splits, so the keyboard is lined up with the palm, something which isn't possible with a straight keyboard.
So given all that, columned keys are great. It's 32 keys which I can type without any elbow movements at all. Add in some thumb keys and we're really cooking ^_^.
This placement was normal when I learned to type, and it matches much more closely the shape my hands naturally make if I bring them together in front of me: http://www.onehandkeyboard.org/wp-content/uploads/2012/04/Z_...
But on the ortho split, I do the obvious thing and type them in the "approved fashion". I used to have a bad habit of cross-typing y, which the split has mostly cured me of, since it's plain impossible. But for the word type, I absolutely do, since it's right next door.
The main point I was trying to make is that optimal tying on a staggered keyboard doesn't have much bearing on optimal typing on an ortho board to begin with. But you've given me some insight into a related puzzle, which is that I've noticed that some people take to ortho splits almost immediately, and other people find them very hard to use at first, the latter frequently just give up.
For me it was easy, except for the cross y thing: I was typing at close to my original speed in about four hours. But I type with a loose relationship between fingers and keys to begin with, my natural 'home row' on a standard keyboard is asdv nkl; for instance, and there are a small handful of keys which I'll hit with one of two fingers depending on what sequence I happen to be typing. I suspect that people who are rigorous about the layout in your link have an especially hard time with ortho keyboards.
I also simply don't see the point in ortho boards which aren't split. If you can't align your fingers with the columns, it seems like a strictly worse layout. But some people love it.
And for me, the point isn't really the ortho, it's the split. It's just vastly more comfortable to place my hands on either side of my torso, and the ortholinear part is just a natural consequence of that placement in a "may as well" sort of way. The tilt is what makes columns natural, without that it's at least a wash, and I would say worse.
[†] which is an absurd and unnatural thing to do, like trying to pay close attention to what your knees are doing while you walk down the street.
Ring finger on z is just as uncomfortable for me as pinky on z. The problem is the typewriter key layout, not finger placement.
(Miryoku has a kludge to let you press two thumb keys at once to emulate the third, for 34-key keyboards, but that works best with low-travel switches very close together.)
How do you like the lateral pinky position? I’m currently building a Dasbob and love the pinky splay/stagger, but I’m curious about moving the top pinky key to the right.
Good point for the splay. For some reason I didn't consider it, but looking at it rn I could put a some of the keys in an angle which would feel better. I'll consider it for the next release (or a different version)!
I have nothing against 36 keys layout, the only reason for eliminating 2 thumb keys is that I can't find a proper place for the third thumb key where it would be in a nice position. I could add one key at the inner side, but the thumb just goes below the palm and it is not a comfortable position (for me at least). If you have any suggestions, please let me know! There is always space for improvement.
The lateral pinky position wasn't on the first design, but then someone with a shorter pinky who couldn't comfortably reach the top key tried it and suggested to place it there. I tried it and actually felt a lot better. (to reach the top pinky key I need to make a wrist movement, but not like this). I love it.
Also in case it’s useful: much ink has been spilled about TRRS and its alternatives, but I haven’t found any references to folks using an I2C connector (4-pin JST) instead, which eliminates hotplugging risk without introducing the risks of USB/etc.
I purchased a KB2040 (which has a female I2C connector), a 400mm male-to-male I2C cable, and an I2C GPIO expander, which is slightly cheaper than a second RP2040 on the second hand (though a second KB2040 is cheap anyway). I’m optimistic about using I2C and avoiding TRRS, but wanted to highlight it as an option since I hadn’t seen it mentioned anywhere else.
> Seniply Yes, the idea is the same. I'm using Base layer + 3 other and using one shot for the function keys. Tap dance wouldn't be a problem either, I just prefer one shot.
> trrs cable Interesting idea. Why would you like to avoid TRRS? What are the issues with it? I am thinking for the next version some BLE between the sides as it has low latency, but it's a mere idea for now and more research is needed. (also it would be for a wireless version as it would need batteries anyway)
The issue with TRRS is that you can easily damage your controller(s?) if they’re powered while the TRRS cable is either unplugged or left in a “not quite 100% plugged in” state, as the metal contacts in the connector create a short (between data and power IIRC?) when mid-way plugged in.
I recently fried a controller this way because I didn’t realize that the TRRS connector had gotten slightly yanked and was ~90% plugged in, creating a short, and the controller has been busted since.
In general the advice is “never plug/unplug TRRS while your keyboard is powered” and “always check to make sure TRRS is fully seated”, but in practice it’s easy to make a mistake that requires replacing your controller (and desoldering it if you didn’t socket it, oops).
There is an option with QMK to rediscover TRRS cable when it gets disconnected or is plugged after startup, but I see now that that's not the only problem. TRRS is an easy/cheap solution, but a dangerous one if not correct.
[0] - https://www.jonashietala.se/blog/2021/06/03/the-t-34-keyboar... [1] - https://github.com/callum-oakley/qmk_firmware/tree/master/us...
https://www.moergo.com
Switched from Kinesis Advantage after 15 years. Love the Pro Red config that's available out of box without expensive customization.
https://qubyte.codes/blog/why-did-i-create-a-keyboard
Interesting to see the thumb key positions are very similar to mine! Can you reach the outermost (outer regarding one half) thumb key without any issues?
Is your hand position like two columns for the middle finger instead of the pointer finger?
[0] https://josefadamcik.github.io/SofleKeyboard/
[1] https://www.keychron.uk/products/keychron-k15-pro-alice-layo...
It takes a little time to familiarize yourself, but you get very proficient with layers and home-row mods. The main benefit is that every single one of my fingers never has to move more than one key in any direction, and it has markedly improved my wrist health.
I have layers (most with home row mods) for:
- symbols (with long press-hold to simulate e.g. shift + keys like =, -, etc).
- navigation (vim cursor keys on rh home row, pg up/dn, etc below) & F keys
- numpad
- media & custom app keys (e.g. auto-fill password from my password manager, etc)
I also have long-press to switch window, copy, paste, undo (i.e. holding Z fires cmd-Z), combos for escape and caps.
TBH it's all muscle memory now so they might not be right.
Of course, there's a learning curve, but now I just use 34 keys (2 thumb keys each side, although dedicated shifts would be good instead of shift via home row mods which sometimes misfire).
The main thing is to make up your own keymap that makes sense. Forget trying to learn someone elses.
One advantage is that you can now put the symbols on the home row.
I'm taking the wrist pain comment as a jumping off point to remind those of us who type a lot (surely a comfortable majority!) that a major part of ergonomics is technique. Finding the right equipment for you is a part of that (I use an ergo split myself), but no keyboard can compensate for bad technique.
As an example, I always wince when I see a wrist rest involved in a setup. Wrists should not rest! Proper technique keeps the hands floating above the keyboard, with minimal or no wrist flexion (flexion is in toward the inner wrist) or wrist movement. Excursions from the home row should proceed from the elbows, not the wrists. Even a small amount of extension (opposite of flexion) is bad for you, stretching the tendons which are flexing to type keys.
Palms perpendicular with the keyboard, about two inches above it, and be sure that your rest position has no wrist extension! Flat is ideal, a bit of flexion is ok. Good keyboard technique is much the same between the piano and typing keyboards. Palms perpendicular means that if the keyboard surface is tilted toward you, fix that. A single-piece keeb should be level or point slightly toward the screen, and a split should be tented.
It's fine to rest your wrists on something: when you aren't typing. When you are, it is not fine at all. Once serious RSI and tendon inflammation sets in, there's no going back, it's a condition you'll be managing for years, if not the rest of your life.
If you're experiencing any discomfort typing, or after, by all means look into equipment. But also, please, immediately give some focus to your technique. Identify specific keyboard actions that violate the "do not move the hands from the wrist" rule, and focus on not doing them. Backspace is a common offender, to the point where I mapped caps lock to that key in response to shooting pains in my outer right wrist.
To land this back in the thread: laying out all the keys so that no hand (not wrist, hand) movement is necessary, like the keyboard in the Fine Article does, is certainly one way to prevent wrist movement. I think it's super cool that you worked out a spacing which is right for your hands, too. Even a keyboard like this can't help you if you type from a wrist-extended position, but it surely makes it much easier not to do that!
But for those of us with keyboards where you do move your hands, please, for the sake of your future self: move your hands from the elbows, not with wrist bends. It doesn't take long to get the hang of it, and the difference is night and day.
As John Napier shows in his masterwork Hands, the hand is created such that the thumb easily and precisely works in opposition to the fingers. The thumb shouldn’t be working alone, it should always be in concert with the fingers. Furthermore, since there are four natural positions for the thumb, there should be four naturally positioned modifier keys under each thumb.
From there two obvious approaches come to mind. One is to stick to a more or less traditional layout with some minor tweaking like you see with existing boards, the only real difference being the location of shift, control, alt, and meta. The other is to go all in on chording. With a total of 8 modifiers where each thumb can reasonably hold down up to two adjacent, there’s enough chording opportunity to have no wrist movement whatsoever. Such a design might resemble a musical instrument far more than a computer keyboard.
https://github.com/tamanishi/Pinky4
Even the leftmost one is about as far over as Alt on a typical keyboard.