This is a pretty novel use of the low-profile Choc switches. I like it.
QMK supports ARM very strangely, but the more I think about it, the more I like it. They use ChibiOS as an RTOS to basically schedule USB code alongside QMK, and then they get ChibiOS's USB support for free. (Note that on many of these ARM chips, the USB is actually handled in hardware; you just need to get the right bytes into the right memory addresses at the right time. You don't have to be awake at the exact instant to toggle a USB pin at exactly the instant the protocol demands. So it works quite well; ChibiOS is not preempting your matrix scan at random times or anything.)
Having said that, I think it's reasonable to write your own firmware. QMK feels very very legacy right now. It is hard to use modern dev tools to work on the code (like clangd), and the newer chips are supported in a very janky manner because of assumptions made for the original AVRs that it ran on. I always thought it was weird that the boards that OLKB use are among the most jankily-supported, even though they fund the development of QMK. They also don't really maintain all of the in-tree examples, so you'll copy someone else's outdated keyboard code and be starting with code that barely works. (I made an STM32F103-based keyboard recently, and the example code actually has their own debouncing algorithm, rather than calling QMK's newish built-in debouncing algorithm. So you get latency by default, although it hasn't bothered me at all so I haven't fixed it.)
The model of flashing firmware to change the key layout also seems crazy to me, in an era where you can easily enumerate as a flash drive and just drag a JSON-encoded keymap onto it to adjust the layout. (Or just edit it live, a la CircuitPython.) I watch new users of QMK-based keyboards struggle and give up on a somewhat regular basis. Seems strange to me.
QMK worked well for me, using supported controllers but entirely custom odd-ball hardware designs. It handles the somewhat annoying bits (USB protocols etc.) while allowing you to completely rip out most of the built-in logic (matrix code, scanning, layers, ...) without touching the tree. It also has a lot of kitchen sink functionality, although some really weird omissions as well (the only way built into QMK to receive free-form communication from the host is through virtual serial port). Overall it's kinda neat for that specific niche.
But as a "framework for [basic] customizable keyboards" it is imho a poor choice because of those omissions and what you mention.
> The model of flashing firmware to change the key layout also seems crazy to me, in an era where you can easily enumerate as a flash drive and just drag a JSON-encoded keymap onto it to adjust the layout. (Or just edit it live, a la CircuitPython.)
Are there any keyboards that have that functionality? I know Logitech allows you to save macro key info to the hardware. However, last I saw that was only for specific macro keys, not all keys like QMK.
QMK does already save some things into "EEPROM" (more realistically, flash on the MCU), like whether you've enabled NKRO, which LED pattern is selected, etc. Because it's opaque, it ends up just being another trap for the inexperienced. "I pressed a key and now my keyboard doesn't work." Yup, that can happen thanks to the magic of persistent storage.)
I think the reason QMK doesn't use flash for keymaps is because it was simply designed before that was within the capabilities of the hardware it ran on. My Ergodox firmware just barely fits in the 32k of available flash on the 32u4, for example. But a STM32F103 has twice or 4x that much flash, so there is much more room to breathe and add creature comforts.
(You can also use USB mass storage to flash devices, see UF2: https://github.com/microsoft/uf2. It's so much better than DFU or all the hacks Arduino uses.)
I think TEX are innovating bigtime here. Have a look at the TEX Kodachi web configurator for example - their keyboards use exactly this mechanism for layout adjustment.
Charachorder looks like a modern attempt to produce something similar to the Datahand (availability was always limited, and the company has gone defunct by now): http://www.atpm.com/7.05/datahand.shtml
The biggest issue with these devices is the huge learning curve upfront. You need to invest a lot of time to get to a point where the productivity / speed claims get true.
I learned Dvorak many years ago, and I would never switch back to a more traditional layout, but I’m not sure I would recommend it to anybody in general.
There actually is a modern (almost) equivalent of the DataHand called the Azeron gamepad [1], and there are some DIY 3D printed DataHand replicas too [2][3].
If you want to type really fast (>200 WPM) and don't mind a VERY steep learning curve, then getting a $95 Georgi keyboard [4] and learning steno [5] is probably the way to go.
> Type individual characters like a keyboard or press all the letters in a word simultaneously and CharaChorder's internal processor will automatically arrange them on your screen in real time. THIS ALLOWS USERS TO TYPE 5X FASTER THAN IS PHYSICALLY POSSIBLE ON ANY KEYBOARD
You typed "anagram" but it spit out "nag a ram". Hmm. There goes the "5x".
Worse physical feedback than the terminal keyboard made of stones at HEU (Hacking at the End of the Universe) '93. Because there is no physical feedback at all. However, if that can somehow be emulated (like on an Apple Magic Trackpad), perhaps?
Charachorder looks cool, though very difficult to learn. I wish someone would make a similar device using strain gauge joysticks (AKA Thinkpad TrackPoint) instead of moving physical switches. You could type with nearly zero finger movement.
Like the feedback of smartphones? Especially those prior to the very recent vibrate on touch
People want to type, and they want to do it quickly. Tactile feedback is nice... but most people do not engage in typing for the fun of it. The primary concerns for this are input reliability, ease & speed of setup, and learning curve.
You aren't using such a thing to replace your desktop keyboard. You're using it to replace your smartphone keyboard, and probably primarily for typing emails without having to carry things around
> most people do not engage in typing for the fun of it. The primary concerns for this are input reliability, ease & speed of setup, and learning curve.
Swipe-style input on phones seems more popular than keypresses, despite having lower input reliability, more difficult setup, and an inability to enter certain words.
It's faster than typing, though, as long as the word you want to enter is part of the swipe input method's dictionary.
Are you sure swipe-style is more popular? My anecdotal experience is that hardly anyone even knows swipe typing is possible until I show them. I mostly interact with people aged between 25 and 50. Perhaps swipe typing is more common among younger users?
Smartphones work to some extent because they are relatively light and you hold them in your hand. This means it is very much not a rigid surface. Typing on a projective keyboard on e.g. a desk is very unpleasant, because you are pecking a hard, rigid surface with your fingers.
Sure, but at least in my imagination, the primary use-case doesn't care. The primary use-case being that you have a surface, but no/inaccessible laptop/desktop, and you need to type up something long and quickly; perhaps debugging a production problem as a sysadmin, or trying to stop an email chain from going out of control as a PM, or trying to respond a high priority client immediately, during lunch or any other out-of-office reason. Or hell, trying to respond to an HN thread with a long-form comment before the conversation dies out.
I can't trust emails on a smartphones because they're so error-prone. If this thing is reliable in its input, and easy to setup, then the "unpleasantness" of typing on a desk is very low on the list of concerns, unless it's extremely unpleasant, if not outright painful.
And unless you're a hunt-and-pecker (which couldn't feasibly use the tool in the first place, afaict), I don't see how it could be that unpleasant. And playing with the idea on my desk.. it's not the greatest feeling, but its hardly a showstopper.
It's not a general keyboard replacement. It's a few-usecase and higher-constraint keyboard replacement; the only thing that matters is whether it supports those specific fewer usecases significantly better than the currently available alternatives, because it doesn't hinder using the general tool as a fallback.
Very recent? I’ve joined the smartphone club with the Samsung galaxy S1 and every phone I had since than had haptic feedback.
Except my iPhone XR now; which is my first edge to edge display smartphone
Product idea: Selfie Type + disconnected keyboard.
Tactile feedback + no need to mess around with bluetooth configurations (or to even support bluetooth). Actually this could be used to revive dead keyboards...
Characorder looks interesting, as I am trying to find something similar to engelbart's chorded keyboard. Do you know how long it takes to become proficient with Characorder?
Spelling something like AbstractFactory<Factory<IEnumerable<TDataType>>> must be fun. (But not as fun as it would be if I had more experience with Perl).
cap abstract cap factory join leb cap factory leb capital letter india cap enumerable join leb capital letter tango cap data join cap type join reb reb reb slap
While I think that the way he has figured out how to input symbols quickly is really cool, I wonder if there wouldn't be a better way. Our autocomplete systems can close brackets and all those nice things. Maybe voice commands could understand structures like templates when inputting commands with your voice?
Indeed, and the example above is just one of many possible ways to achieve the same result. That one works out of the box, but is tedious and cumbersome as you noticed.
To reduce voice strain and make input more reliable, one would spend a little bit of time to set up shortcuts so that e.g. "i enumerable" produces 'IEnumerable' and "of type" expands to '<‸>' and places the cursor at the caret. The voice input system is fully programmable at different levels of abstraction.
As I already talk to myself a lot, I'm way closer to this sort of strategy working than I would have thought before you mentioned it. Though I don't enunciate at all when I talk to myself, so whatever was doing the detecting would need to work on subvocalization.
It reminds me of a talk someone gave about this ad-hoc verbal shorthand someone invented so that they could use speech-to-text to code. The talk sounded really funny but the process did seem fairly productive.
a couple of additional pictures would be useful. right now I don't haven't got an idea how to hold it.
fun fact, I went to youtube what Logitech G13 is and the first video that has anyone holding it is not even in top results.
took me a few minutes of looking at it all puzzled but I think if you go to the picture where he has the wrist rest put on it you can kind of see how it works. I think the wrist goes on the pad, thumb to the stick and your fingers will hit the keys. I do wish there was a video though.
It's good to see these smaller gaming keyboards getting more common. I never got why people who play low mouse-sensitivity games like CS:GO use full-size keyboards that limit the space they have available for a big mousepad.
An imo more interesting ergonomic gaming keyboard is the Azeron [1]. It's based on the old DataHand keyboards (which were way ahead of their time) and I hope that this kind of ergonomic layout becomes more common. I don't own one myself (I use a HHKB Pro 2), but not having to move your hands at all when typing seems pretty comfortable.
Counterstrike pros do a lot of things that seem weird at first, like playing low resolution 4:3 on a 16:9 monitor, with black bars on the sides. That seems ridiculous until you consider that they don't actually need that extra field of view (since if an opponent catches you looking away, you'll lose), and it makes player models larger on screen.
As far as keyboards, I believe most of them are using full size keyboards, not even tenkeyless, because they need the number pad for buy binds. Also, many of them rotate their keyboard slightly clockwise. I'm not exactly sure why, but it does get rid of ulnar deviation as well as take up less room on the desk.
>Also, many of them rotate their keyboard slightly clockwise. I'm not exactly sure why, but it does get rid of ulnar deviation as well as take up less room on the desk.
The reason I've always heard for that is that desk space on LAN tournaments used to be pretty limited so they had to rotate their keyboards like that in order to fit them, and now they're just doing it out of habit. And I get that buy binds are convenient but it doesn't seem worth the extra desk space, especially not when there are many other unused keys that can be used for buy binds instead.
When I wrote full-size I meant that they could be using Tenkeyless (no numpad) or 60% (no numpad, arrow cluster, or F-row) keyboards instead of normal full-size ones.
Huh. Your comment resonated with me, but confused me a bit as I had a 'Nostromo' Gaming Keypad too, but I knew it wasn't from Razer, so had to go check...
I have a Razor Nostromo too, and I remember at some point I discovered it was Belkin hardware (perhaps in the name of some driver). I believe Belkin licensed it to Razor.
I was gifted one because I asked for a separate keypad for gaming. Problem is, I am left-handed and the model I got is for normal people. Yet it was quite convenient, I have been using it for years, as testifies its poor state. A few years ago, some games couldn't handle keypad keys properly (facking normies...), so the fully configurable keys of the Nostromo did the trick. I simply couldn't use the directional pad and the other thumb operated buttons as-is (used them for rarely used stuff instead - it's still better than reaching out for the keyboard).
I had the same problem-- I think the ergonomics of it were awful, though. I couldn't even imagine how to hold it in such a way that it wouldn't try to slip out of my grasp when using the joystick.
Never mind gaming – with some slight modifications (like some thumb buttons), two of these mirrored could make a very nice work keyboard, with the joysticks replacing the mouse + two scroll wheels.
Nice use of Kailh's Choc switches. I wish there were other keycap options out there for them though. It's such a shame that injection moulding is so expensive to get off the ground.
Respect to the person making it. I love ergonomic mechanical keyboards, but I have 0 skills to make them, so I've paid several hundred dollars to the EZ company for their Ergodox/Planck keyboards. Love both to death though.
Wish I could improve my electrical skills enough to actually make one of these from scratch.
As someone with zero formal electrical education and have built multiple keyboards, it really is easier than it looks. Just a decent soldering and a build guide us all you need.
Now, designing the PCB or hand-wiring (lik in the OP) is obviously a bit more involved. However, the most complicated circuitry is just a diode matrix. It really is that easy.
Edit: not to take away from the OP -- his build is definitely impressive and time-consuming. But if you're thinking of designing and building your own keyboard, the concepts are quite simple.
I recently received my Dygma Raise [1] after backing on Kickstarter and also beta tested their proof-of-concept tech, the "Shortcut". Their old version used a thumbstick but abandoned it after feedback; I was a little disappointed but they opted for switching the space into four separate keys which I find pretty good as an alternative.
Very glad these kinds of devices are gaining attention. At worst, a better gaming experience. At best, tackling RSI and allowing us to type/game for longer.
It's really weird. Every image shows a device that looks like it is intended to be used with your left hand, except for one tiny image of someone actually using the thing. In that image, they are using it with their right hand, and the device in that image looks like a mirror image of every other image on the page. WTF?
It is for your left hand since most gamers use the WASD keys for movement. Here's a video of a similar design being used to play Quake. https://www.youtube.com/watch?v=xyVSANPnLlg
[EDIT]
The Azeron comes in both right- and left-handed versions so that's why some images show a right hand. The Azeron works similarly to one half of a DataHand keyboard.
Yes - this is the issue for me with the Razer controllers: They are right-handed only. Like the Sherbet, the Azeron is 3D printed, which of course makes it much easier to manufacture left-handed models. The Azeron looks good, but at nearly 200 euros it's pretty pricey.
Mouse is always in the right hand and that's used for aiming (in shooter games at least). Typically left click is fire and right click is aim-down-sights.
Does it actually work though? What I've found is that the positioning of the forearms and where the weight of the arm rests tends to be the most important thing about avoiding wrist pain.
I’ve always wanted one of these kinds of devices for gaming. Unfortunately they’re never made for left handed people. I understand how that’s the case for such niche accessories, but when I see a brand like Razer not having keypads, it just means ~15% of gamers can’t use the device.
I imagine it must be not too hard to learn to use either hand. I started a new job and got given a shit mouse which caused me wrist pain and I found I was able to use the left hand until I went and got my own mouse. It was a bit awkward at first but after a few hours I felt I was 90% as good as I was with the right hand.
There are several left handed keyboards (from a quick web search), with the number pad and navigation keys on the left.
I don't see any with the Enter key to the left of A.
There are still left-handed mice, and OSs still include the option to switch around the buttons. I have a mouse on either side (on Linux), with the one on the left using flipped buttons.
I used to use a Belkin N52 then an N52TE. My current gaming keyboard is a Razer Orbweaver Chroma (https://www.razer.com/gaming-keyboards-keypads/razer-orbweav...) which I’m pretty happy with - the mechanical switches are good, although the extra row of buttons seems a bit superfluous.
After my G13 started acting up I got myself a Razer Tartarus V2 and honestly I'm disappointed to the point I feel like I need to warn people. If you buy Razer, make sure you can return it if you're disappointed.
First the Tartarus V2 has issues with several MMOs where keys will get "stuck" and based on googling this has been an issue with other Razer products for 5+ years. While some may have been fixed Tartarus V2 still has the issue 2 years after release.
Second, the Razer Synapse software pack suffers from gamer marketing bloat and requires you to have a razer account to even allow configuring your device.
The razer account thing is absolutely ridiculous, I agree. What is worse is it keeps trying to update and has broken more than once (I have a keyboard too, and both were set up with different versions of synapse and I don’t want to have to redo my config).
If they go bankrupt or if I lack a net connection, the hardware stops working. Super annoying.
As for the Tartarus keys sticking - was that because it had membrane keys? Or was it software? The orbweaver has mechanical and is the main reason I bought it over the Tartarus.
QMK supports ARM very strangely, but the more I think about it, the more I like it. They use ChibiOS as an RTOS to basically schedule USB code alongside QMK, and then they get ChibiOS's USB support for free. (Note that on many of these ARM chips, the USB is actually handled in hardware; you just need to get the right bytes into the right memory addresses at the right time. You don't have to be awake at the exact instant to toggle a USB pin at exactly the instant the protocol demands. So it works quite well; ChibiOS is not preempting your matrix scan at random times or anything.)
Having said that, I think it's reasonable to write your own firmware. QMK feels very very legacy right now. It is hard to use modern dev tools to work on the code (like clangd), and the newer chips are supported in a very janky manner because of assumptions made for the original AVRs that it ran on. I always thought it was weird that the boards that OLKB use are among the most jankily-supported, even though they fund the development of QMK. They also don't really maintain all of the in-tree examples, so you'll copy someone else's outdated keyboard code and be starting with code that barely works. (I made an STM32F103-based keyboard recently, and the example code actually has their own debouncing algorithm, rather than calling QMK's newish built-in debouncing algorithm. So you get latency by default, although it hasn't bothered me at all so I haven't fixed it.)
The model of flashing firmware to change the key layout also seems crazy to me, in an era where you can easily enumerate as a flash drive and just drag a JSON-encoded keymap onto it to adjust the layout. (Or just edit it live, a la CircuitPython.) I watch new users of QMK-based keyboards struggle and give up on a somewhat regular basis. Seems strange to me.