[WIP] OneHand - 20% Keyboard
Posted: 06 Oct 2013, 21:34
As much as I love my Happy Hacking Keyboard, and other smaller keyboards - especially the 40% keyboard by ne0phyte at http://deskthority.net/workshop-f7/thkb ... t6455.html - I've always had a soft spot for one handed keyboards. As no one hand keyboards fully meet my requirements I decided to have a go at building my own. I started this thread to prevent me from hijacking other threads with my design.
The OneHand is a 20% keyboard designed to be used with either the left or right hands, while the other hand is operating a mouse. To minimize the number of keys each finger would need to use to perform all the functions of a standard keyboard the OneHand would use a system if chords and modes. It is also intended for two units to work together as a split keyboard.
Background
Typical chording keyboards use as few keys as possible to perform the function of the typical 104 key keyboard. This involves multiple finger chords which can be difficult to perform. To reduce the number of keys needing to be passed at one time, additional keys could be added to the OneHand keyboard. This reduces the number of keys needing to be pressed for the more obscure functions. The basis of the keyboard is the five keys microwriter used, one under each of the fingers and thumb.
It was initially thought that adding two keys for each of the three main fingers would make the keyboard more flexible. Another driving factor with the design was to make the keyboard usable by either hand. This led to a symmetrical arrangement.
I purchased a number of Cherry MX key caps to test out the arrangement. After resting my hand on the keyboard, I realized that adding another row above the primary keys would not impact the usability of the keyboard while allowing more single key characters.
When looking at entering numbers it would be advantageous to have an arrangement similar to a numeric keypad. I then added another row of key at the bottom to provide a number pad arrangement.
The main issue is going to be remembering how to select and enter the various types of punctuation. I therefore decided to implement modes via a combination of the thumb key and the five top keys. To provide mode feedback I decided to add LEDs to the top keys as a mode indicator.
Using eighteen keys for the keyboard reduces the number of combinations needed to enter the most important characters. It is possible to use a single button, in conjunction with a single modifier key (thumb) to enter all characters of the alphabet.
The modified qwerty arrangement is obviously not the best arrangement of keys, as some of the primary keys are used for the less common characters. I am therefore going to implement an optimized character arrangement once the hardware is finalized. This arrangement would also use the simpler multi-key chords to position the more common character pairs in close proximity.
Hardware
For the initial design I decided to create a PCB to hold the Cherry MX key switches in the required arrangement, and also mount a Teensy controller underneath. The board is less than 10cm by 10cm, as this was the limit for me to get cheap prototype PCBs.
The Teensy has sufficient inputs and outputs to allow each key to have its own dedicated input, and each LED to have an output. This significantly simplifies the track layout, and I decided to place the keys based on the Teensy pin layout to remove the need for vias or long traces.
While designing the PCB I added the option to have up to two additional double height keys inside the thumb keys
I have just finished the PCB design for the first prototype, and I have placed an order for 10 samples, and I'm going to experiment with different MX colors while I wait for the PCBs.
Once I've tested the arrangement, and finished the initial software, I'm going to replace the Teensy with an embedded microcontroller to allow the keyboard to be mounted lower to the desk.
The keycaps I'm using were bought from WASDkeyboards.com, and uses Row 1, 2, 3 and 4 for each row of keys, and two number pad Enter keys for the thumb keys. This provides a nice shape to the keyboard, and a useful ridge between the primary chording keys and the upper keys.
Edit: One interesting aspect is that the keyboard will work very well with my Nexus 7 in a portrait mode, as shown in the image above. This uses a simple USB OTG adapter cable to communicate with the Teensy.
Hopefully, I'll have the PCB in a couple of weeks (depeinding on shipping time), at which point I'll post an update.
EDIT: Combined images to make post shorter...
The OneHand is a 20% keyboard designed to be used with either the left or right hands, while the other hand is operating a mouse. To minimize the number of keys each finger would need to use to perform all the functions of a standard keyboard the OneHand would use a system if chords and modes. It is also intended for two units to work together as a split keyboard.
Background
Typical chording keyboards use as few keys as possible to perform the function of the typical 104 key keyboard. This involves multiple finger chords which can be difficult to perform. To reduce the number of keys needing to be passed at one time, additional keys could be added to the OneHand keyboard. This reduces the number of keys needing to be pressed for the more obscure functions. The basis of the keyboard is the five keys microwriter used, one under each of the fingers and thumb.
It was initially thought that adding two keys for each of the three main fingers would make the keyboard more flexible. Another driving factor with the design was to make the keyboard usable by either hand. This led to a symmetrical arrangement.
I purchased a number of Cherry MX key caps to test out the arrangement. After resting my hand on the keyboard, I realized that adding another row above the primary keys would not impact the usability of the keyboard while allowing more single key characters.
When looking at entering numbers it would be advantageous to have an arrangement similar to a numeric keypad. I then added another row of key at the bottom to provide a number pad arrangement.
The main issue is going to be remembering how to select and enter the various types of punctuation. I therefore decided to implement modes via a combination of the thumb key and the five top keys. To provide mode feedback I decided to add LEDs to the top keys as a mode indicator.
Using eighteen keys for the keyboard reduces the number of combinations needed to enter the most important characters. It is possible to use a single button, in conjunction with a single modifier key (thumb) to enter all characters of the alphabet.
The modified qwerty arrangement is obviously not the best arrangement of keys, as some of the primary keys are used for the less common characters. I am therefore going to implement an optimized character arrangement once the hardware is finalized. This arrangement would also use the simpler multi-key chords to position the more common character pairs in close proximity.
Hardware
For the initial design I decided to create a PCB to hold the Cherry MX key switches in the required arrangement, and also mount a Teensy controller underneath. The board is less than 10cm by 10cm, as this was the limit for me to get cheap prototype PCBs.
The Teensy has sufficient inputs and outputs to allow each key to have its own dedicated input, and each LED to have an output. This significantly simplifies the track layout, and I decided to place the keys based on the Teensy pin layout to remove the need for vias or long traces.
While designing the PCB I added the option to have up to two additional double height keys inside the thumb keys
I have just finished the PCB design for the first prototype, and I have placed an order for 10 samples, and I'm going to experiment with different MX colors while I wait for the PCBs.
Once I've tested the arrangement, and finished the initial software, I'm going to replace the Teensy with an embedded microcontroller to allow the keyboard to be mounted lower to the desk.
The keycaps I'm using were bought from WASDkeyboards.com, and uses Row 1, 2, 3 and 4 for each row of keys, and two number pad Enter keys for the thumb keys. This provides a nice shape to the keyboard, and a useful ridge between the primary chording keys and the upper keys.
Edit: One interesting aspect is that the keyboard will work very well with my Nexus 7 in a portrait mode, as shown in the image above. This uses a simple USB OTG adapter cable to communicate with the Teensy.
Hopefully, I'll have the PCB in a couple of weeks (depeinding on shipping time), at which point I'll post an update.
EDIT: Combined images to make post shorter...