Readit News logoReadit News
Posted by u/jogme a year ago
Show HN: I made a split keyboard for large palmsjogmekeebs.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.
wahnfrieden · a year ago
I have "XXL" size hands (some fingers push against tips of most XL gloves I try) and I find the Glove80 very comfortable fwiw

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.

ndrake · a year ago
How long have you been using the glove80? I'm a smaller handed KA2 user but have been eyeing up switching to a glove80. Any complaints or trouble switching?
wahnfrieden · a year ago
I think about a year now. I would like even lighter switches than Pro Red but they're much better than the default Kinesis ones that make my hands hurt. I find personally the lighter switches are more important than avoiding bottoming out, but that is controversial. It took me a couple weeks to regain my typing speed, not a huge learning curve like it was switching to KA in the first place. The travel case is also useful but quite large. It's more fragile feeling than Kinesis products, but not as bad as many 3d-printed DIY keyboards. The fragile feeling comes from its lightness which is also an asset.
jhardy54 · a year ago
Neat! I’m surprised to see no splay, is it just subtle or have you decided against it? The thumbs look comfy and aren’t tucked under the palm, which is my biggest complaint with most keyboards, but I’m using Miryoku (36 key layout) and I’m not sure that I’d know what to do with a 34-key layout.

(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.

jogme · a year ago
Thanks!

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.

jhardy54 · a year ago
Honestly I’ve never tried a 34-key layout, though I’ve seen loads in the keyboard layout DB. Are you using something like Seniply?

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.

User23 · a year ago
I like it, but like every other keyboard that I’ve ever seen the modifier keys are in the wrong spot.

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.

opan · a year ago
What do you think of the thumb keys on the Pinky4 keyboard by tamanishi?

https://github.com/tamanishi/Pinky4

Even the leftmost one is about as far over as Alt on a typical keyboard.

User23 · a year ago
Looks promising!
zamalek · a year ago
I'm currently designing a board from actual traces of my finger movements on paper (I was mildly amused when I found that they are not symmetrical, like all human features) in combination with these: https://fkcaps.com/keycaps/hex. It's also my first attempt at using a MCU directly (kinda, MDB50Q).

Probably not possible to make a product from my anthropometrics, but I could try average out a few hands.

jogme · a year ago
The human is not perfectly symmetrical by a vertical line - same as our faces!

Do you have the project somewhere online to share - git, blog, reddit, etc.? I would like to have a follow up on your progress!

zamalek · a year ago
Thanks for the interest, it's on the back burner at the moment because I'm currently rage-coding a text editor :). Here's the repo regardless https://codeberg.org/jcdickinson/hexkbd
jhardy54 · a year ago
If you have a large enough touchscreen, I’d also recommend https://pashutk.com/ergopad/

(Note: this breaks down a bit once you move to concave key wells)

jogme · a year ago
This tool is awesome for design! Thanks for sharing it!

Deleted Comment

qubyte · a year ago
I designed my own for similar reasons, and it's interesting to see a somewhat similar position for the thumb keys. I optimised for hand/wrist position with minimal movement. However, I messed up the column stagger (off by one). Here's the writeup:

https://qubyte.codes/blog/why-did-i-create-a-keyboard

jogme · a year ago
Wow, looks cool!

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?

qubyte · a year ago
Yup, I can reach all three keys in each thumb cluster without a stretch. It's actually only a slight movement because my digits are quite long. My middle and ring fingers rest on the columns which are shifted up.
Brajeshwar · a year ago
Have you tried or were inspired by The Voyager? My friend has a Moonlander and we were discussing that the Voyager might be the ideal for the setup we were looking for.

https://www.zsa.io/voyager

jogme · a year ago
I haven't tried and wasn't aware of the Voyager at the time I started this project. Looking at it now, I think I would come to the same issue of the switches being too close to each other.

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

sierisimo · a year ago
I own a voyager and you are correct, the switches are too close so I frequently press things by accident.
Ballas · a year ago
Interesting, I have found the standard key spacing too far apart, I cannot fathom it being too close for some. I guess hand size variance is bigger than I think.

Could you explain what you did to achieve "diodeless" design and how do you prevent masking?

jogme · a year ago
> 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!

jbarberu · a year ago
Having implemented a custom matrix in qmk, I can say the timescale involved is not something you'd notice a difference between diodes vs diodeless. On ARM boards there's a setup delay to let the gpio propagate before reading the columns, which by default is set to 0.25us, which means reading 4 rows would take about 1us.

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.

flacebo · a year ago
The default debounce algorithm in QMK also introduces a minimum of 5ms delay, and the default usb polling rate another 10ms.

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.

gadgetoid · a year ago
I could believe you feel less latency, but suspect that’s more a symptom of matrix scanning working for the general case rather than being optimised for your layout. Scan with an RP2040’s PIO [1] and after debouncing I’d challenge you to measure the difference, much less notice it.

(Of course if you’ve got the pins, you should use ‘em!)

1. https://github.com/isoxliis/firmware-micropython/blob/72687e...

jogme · a year ago
iiuc you are comparing matrix implementation with or without diodes. What would be the results between matrix against pin/key implementation? I am using QMK and I haven't looked under the hood what the "direct pin" actually does.
daliusd · a year ago
34 keys are usually diodeless as many microcontrollers (promicro, elite-c and etc.) have enough connections to connect everything directly on one side of split keyboard and when you need one connection to communicate between sides. RP2040 can accommodate even more keys (even RP2040-zero). You need two microcontrollers of course.
samatman · a year ago
Looks great! I don't understand how you minimal-key-count types manage, but that's a me thing.

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.

jogme · a year ago
Thanks! Technique for sure does a lot, but after you find the right tool, it's just pain to go back.