Chorded Keyboard


For the sake of this article, I’m going to assume you know nothing of chorded keyboards. If that’s not the case, you may want to skip down a ways, or just go over here:


I’m a bit of a fan of human computer interaction, and I’ve found myself quite interested by touch typing and the history of the keyboard. It seems the basic layout for keyboards that is in use today got started on mechanical typewriters. Cool machines, but the concerns involved in making a mechanical typing machine which influenced the keyboard layout are definitely no longer relevant. You can read more about it on wikipedia if you’re interested.

So obviously there are other ways we can be handling input now that input is handled by digital machines. Ultimately I’d like to do some quite radical experimentation in computer input, but I feel building a chorded keyboard is a good first step. On a normal keyboard letters are represented by keys. You press a key, you get a letter, you press a different key, you get a different letter, you press two keys, you get two letters. On a chorded keyboard letters are represented by combinations of keys, or ‘chords’.  You press a key, you get a letter, you press two keys, you get a different letter. In this way you can represent many more letters (inputs) with much fewer keys. I’ve taken this concept reasonably far by making a keyboard with only 8 keys. Not very many, but those 8 keys can represent 2**8 – 1 = 255 different inputs. More info on chorded keyboards can also be found on wikipedia.


I started out with a sketchy concept of what I wanted to make.


I made sure I was capable of compiling and flashing code to the teensyduino. Then I went to blender and made 3d files for 3d printing.


Then, while 3d printing the things, I hacked on the teensy code to get it working in a chorded schema.

Finally, everything came together with a bit of solder and the usual things.


I’m still pretty slow, but I’ve been getting better at typing on them, and it’s a really cool, comfy typing experience.

PS: I wrote this article using this chorded keyboard.


4 thoughts on “Chorded Keyboard”

  1. Hey Tristan,

    I took a look at your github a few weeks ago. I tested ASET NIOP online for a day and liked it, and have been working on a new chorded keyboard design since then. It won’t be very different from yours, but I’m hoping to make it a little more practical by making it wireless.

    I’m planning on using a few adafruit boards, (BlueFruit UART friend, and mini microcontroller 5V logic), and I could use some help setting them up. So if you’re interested, let me know.


      1. After I made that comment I actually couldn’t find this site!

        I’d like to change the body to a metal design with smaller more shallow buttons with the inclusion of a thumb button. I’ve worked with a machine shop and I know they’d be able to make something like this: (an AutoCAD of the base structure I’m considering). Getting bluetooth to work as a native bluetooth keyboard has been a factor holding me back, but I found someone at my university that is going to help me with it over the summer. If you’re still interested, I’ll email you this summer when I start finalizing and putting pieces together.

        Right now button combinations (ex: walking at an angle (forward button+side button) and and shooting at the same time in a video game) are the biggest challenge preventing this keyboard from being a complete keyboard replacement, so if you have any creative solutions to that problem I’d love to hear them. I’m considering having two buttons at each thumb, and having those be the modifier keys (shift, ctrl, alt, cmd) so that most things like ctrl+v are still one combination.

        Liked by 1 person

  2. Yeah, I definitely want to hear about your project as it progresses. I was looking into bluetooth keyboard with the esp32thing, but it doesn’t look fully polished.

    As for the gaming, adding more buttons for the thumb is not a bad idea, but the major idea I had for that kind of thing is to have different, configurable ‘modes’. You would have a change-mode chord (or button?) that would allow you to go between different configurations. The normal mode would just be a chorded keyboard for entering ascii text, but you could create modes where the left hand was mapped to ‘w,a,s,d’ with no key rollover, or whatever worked best for the game or application you are working with.


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s