DecaKeyer: Hand-held Chorded Keyboard with 10 Micro-switches


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.


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

Or add the repository and use zypper

CLI Loader (used instead of Teensyduino)

Download the latest CLI app for teensy-2

  • wget
  • unzip
  • 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

  • make maps


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

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
  • 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