KeyDisembark

Darren Smith, assignment 2
Screen Shot 2012-10-08 at 3.11.02 PM.png

KeyDisembark is the opposite of a KeyBoard. It is an ergonomic one handed text input device that allows for touch typing. KeyDisembark has 5 buttons, one for each finger. Each combination of simultaneous key presses gives a different input, allowing for 31 possible keys. These are allocated to a-z, shift, ".", "?", backspace, and space, with capital letters, return, ",", and "!" being enabled with shift.

YouTube Video



Hardware

KeyDisembark is built using an Arduino Leonardo, breadboards, 5 momentary tactile switches, and a 3 color LED for state (normal, shift, caps lock). Arduino's built in pull-up resistors are used in combination with the switches to reduce part count. The Arduino and 2 breadboards are attached in a triangle form that can fit in your hand. I first tried to build a sphere that could split in half with holes for the buttons but abandoned that approach when the 3d printer messed up on the first half. Sugru is used to make it fit better into my hand and smooth out the uncomfortable corners.

Screen Shot 2012-10-31 at 4.52.08 PM.png

Software

Because Leonardo is used, there is no software required to use it with your computer. The program running on the Leonardo is fairly simple, it monitors state, tracking all buttons that have been pressed. Once it detects that no more keys are being pressed, it looks up a key to send based on all keys that have been pressed since last time no keys were pressed.
Because the tendons to human fingers are not completely independent, some button combinations are awkward and slow to type. I wrote a javascript "game" to test all combinations repeatedly, measuring speed. Key assignments were then assigned by matching letter frequency in English with observed typing speed.

Screen Shot 2012-10-08 at 3.13.49 PM.pngScreen Shot 2012-10-08 at 3.13.04 PM.png

There is also a significant learning curve with any new keyboard layout. To help overcome this I also built a training program in ruby. This program chooses words for you to type and tells you the correct combination if you take too long. It tracks how well you have mastered each combination. Getting a combination wrong or waiting for the hint reduces your mastery of that combination, and getting it right increases your mastery. Words are chosen to maximize your mastery of all combinations. To avoid overwhelming the learner, at most 2 new combinations are presented at a time (no more will be given until these are mastered). This program was useful for me to learn basic typing pretty quickly.

Future work

I believe something similar to KeyDisembark could be useful in practice. I estimate competent typing speed would be around 40 wpm (based on my speed in the javascript test program where you could practice key presses before they are counted). You could also combine two of these devices, one for each hand with mirror configurations. Typing could be done using both, alternating between hands, this could theoretically double typing speed, making it faster than conventional keyboards. This is one of the principles behind the Dvorak keyboard, alternating hands is faster than using the same hand.

One limitation of KeyDisembark is that you cannot type all of the symbols, numbers, and various control keys. This is possible by creating more modes (like shift/capslock). Alternatively more combinations are possible if you count double presses while holding a key to register differently. However due to the fact that these would all have to be memorized, it would making the learning curve even steeper.

The device is custom fit to my hand if your hand is smaller or you are right handed, this might be awkward to use. However I believe it should be possible to make something that would work well for most people, probably something around the size of a tennis ball.

Sources and inspiration

  • Perkinput (Shiri uses a similar idea for braille like input on mobile phones)
  • A keyboard I saw years ago that I cannot find on the internet now. It was like a keyboard, but with only home row and a space bar. The same principle was used, key combinations for individual keys. It was reportedly faster than a standard keyboard once mastered.
  • http://en.wikipedia.org/wiki/Letter_frequency
  • Dvorak keyboard

External links

Github: https://github.com/darrenks/KeyDisembark
Youtube: http://www.youtube.com/watch?v=rtnACphfJrE