DecaKeyer: Hand-held Chorded Keyboard with 10 Micro-switches
Aim
The aim of this project is to construct a hand-held chorded keyboard with
chords inspired by the
Twiddler-2.1 but using
two-switches per finger rather than three with the third being emulated by
pressing the two simultaneously. Low force Panasonic micro-switches are used
which are MUCH easier and more satisfying to press than the stiff tactile
switches used in the Twiddler-2.1, even when pressing two simultaneously.
However some of the chords are too difficult to press, in particular chords
which involve one finger pressing a front-switch and another pressing a
back-switch. When the difficult chords are eliminated there are too few to be
able to create an equivalent of a full keyboard and another mode/layer is
really needed. Overall this has been an interesting project but the resulting
keyboard is not as easy to use as the Twiddler-2.1, even with its slightly
harsh switches, and maybe a better approach would be to improve the Twiddler
concept with lower-force, longer travel switches with better tactile feedback
and flatter keycaps so that they are not so hard on the finger tips.
Images
Here is the current version of the DecaKeyer fabricated in
Polymorph (known as Friendly Plastic
in the US)
Teensy Pins
Chorded keys
Finger | Wire colour | Port pin |
---|---|---|
Index tip | purple | PB0 |
Index middle | purple | PB1 |
Middle tip | blue | PB2 |
Middle middle | blue | PB3 |
Ring tip | yellow | PB7 |
Ring middle | yellow | PD0 |
Pinky tip | pink | PD1 |
Pinky middle | pink | PD2 |
Modifier Keys
Finger | Wire colour | Port pin |
---|---|---|
Thumb tip | grey | PD6 |
Thumb middle | grey | PD7 |
Trackball connections
Trackball | Wire colour | Port pin |
---|---|---|
Blue led | blue | PF5 |
Red led | red | PF1 |
Green led | green | PF4 |
White led | white | PF0 |
Up | pink | PF6 |
Down | grey | PF7 |
Left | orange | PB6 |
Right | yellow | PB5 |
Button | purple | PB4 |
Gnd | brown | Gnd |
Vcc | red | Vcc |
Teensy 2 Software
The Teensy-2.0 micro-controller is used in
this project. The installation notes are really for my own reference but they
may be useful to others. I am developing software under OpenSuSE but all
these tools are available for other GNU/Linux distributions.
Install AVR tools on OpenSuSE
Open firefox and follow instructions on
- http://software.opensuse.org/package/cross-avr-gcc
- Use the 1-click install of CrossToolchain:avr
Or add the repository and use zypper
- sudo zypper addrepo http://download.opensuse.org/repositories/CrossToolchain:/avr/openSUSE_13.1/
zypper in cross-avr-gcc avr-libc cross-avr-binutils
CLI Loader (used instead of Teensyduino)
Download the latest CLI app for teensy-2
wget https://www.pjrc.com/teensy/teensy_loader_cli.2.1.zip
unzip teensy_loader_cli.2.1.zip
cd teensy_loader_cli
make
- Install somewhere in your
PATH
eg:cp teensy_loader_cli ~/bin/linux
Compile and Upload
The complete source code for the firmware is provided and may be compiled,
linked and loaded using make
:
- Compile only:
make PROGRAM=deca_keyer
- Compile and upload:
make PROGRAM=deca_keyer load
The program defaults to deca_keyer
so
- Compile only:
make
- Compile and upload:
make load
is sufficient.
- Clean out built project files:
make clean
The chords definitions are provided in the form of a header file which is
converted from a more readable form by the convert
utility provided.
To convert the chord definition .txt files to the corresponding .h files
simply:
make maps
Notes
Study of existing commercial offerings
- BAT Keyboards
- Desk only (right hand and/or left hand)
- Good ergonomics
- 7-keys
- Thumb keys too far apart
- Cherry Red switches -
- linear
- poor feedback
- quite hard to press several at once
- Having so few keys means that many modes are needed
- 3 key chords for { etc.
- Twiddler-2.1
- Hand-held
- poor ergonomics
- too close to palm
- key caps too narrow
- keys slightly too hard to press
- joystick awful
- Three rows of keys - lots of combinations - no modes
- Microwriter
- Good ergonomics
- Nice tactile feel
- Good choice of Cherry micro switches
- Two keys on thumb can be pressed separately or together
- Right-hand only
- Desk only
- Having so few keys means that many modes are needed
- Not all characters are accessible
- Good ergonomics
Conclusion is that a hand-held device with rows of micro switches to avoid
modes and provide a good tactile experience is optimal e.g.
Chordite with two rows of switches the
finger-pairs which can be pressed separately or together.
Choice of switch arrangement
- 2 rows of finger switches which can also be pressed simultaneously See
Chordite. - 2 switches on thumb for Ctrl, Shift and Alt.
- Optional trackball on thumb
- with switch to enable trackball mode
- use finger switches for mouse buttons
- e.g. SparkFun Blackberry trackball breakout
Choice of micro-switch
- Cherry E63
- Used in Microwriter
- A bit spongy
- Travel is too long
- Force is too little
- Not readily available
- Omron SS
- Force is too little
- Tactile feedback is too weak
- Panasonic AV
- Good force (options for light and heavier)
- Good tactile feedback
- Good travel
- Clicking is rather high pitched
- Lever is rather loose laterally
- Panasonic AVT
- As for AV but with better lever hinge
Best choices (simulated roller lever)
- Panasonic AVT3244613
- force 0.34N
- So far appears best choice
- Maybe the force is a bit too large when pressing 2 at the same time
- Panasonic AVT3242613 force 0.16N
If AVT3244613 proves to hard to press use the AVT3242613