I have been using an Ergodox EZ keyboard for over seven years. The thing starts at $300 (and you probably want some tent tilts (I have), and maybe some wrist rests (I don’t use these anymore), but after 7 years of having to occasionally use someone else’s keyboard (or the default laptop keyboard), this was money well-spent, and I’ve recommended it to everyone. (FWIW, the first week or so is a bit challenging as your fingers/brain get used to things…) The price includes regularly updated firmware and a configurator (Oryx) to modify the behavior of all keys. Keys can be different depending on tap vs hold, and many layers can be added (so that a single key can be have multiple layers depending on which layer I’m on). For example, my shift keys double as (
(left shift) and )
(right shift), and a key just under my thumb has the all-important underscore, at least for Python programmers.
About a year ago, however, I began to have problems, and it was with that underscore. I typically work on a set of Windows VMs using Remote Desktop Connection. Well, I wanted to alter the behavior of a couple keys, and Oryx automatically flashes the most recent version of the firmware. I do this will some regularity…but when updating the keys and updating to firmware version 22.0, my underscore key started to show odd behaviour with the underscore only on these VMs. Using it repeatedly would create a line like the following: -____--______-_---______
. These means that everytime I wanted to type an underscore, close to half the time it would produce a hyphen. This ruins the experience of coding Python. It was time to either get used to my prior version of the keyboard (rolling it back worked fine, but I could no longer configure changes), use a different keyboad, or find a new job (yes, coding convenience/habit is serious business).
I reached out by email to support (who are incredible, and very responsive!), and followed numerous steps to reset, re-flash, etc. Nothing worked, until a final suggestion ultimately worked:
- Go to advanced settings (see settings gear icon).
- Select
MISC
option. - Enable
Troubleshoot Polling Rate
:

I also found that I had to decrease the debounce delay (under DEBOUNCE
) to less than 30 (I’m still optimizing this as I keep dropping letters).
Now, no problems, no compromises — and many thanks to Ergodox EZ’s support team.