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.
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.
(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.
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.
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)
Deleted Comment
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?
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
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!
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.
(Of course if you’ve got the pins, you should use ‘em!)
1. https://github.com/isoxliis/firmware-micropython/blob/72687e...
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.