Henry / DecaKeyer

Hand-held Chorded Keyboard with 10 Micro-switches

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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) https://github.com/Henry/DecaKeyer/raw/master/Images/DecaKeyerHand.jpg https://github.com/Henry/DecaKeyer/raw/master/Images/FingerSwitches.jpg https://github.com/Henry/DecaKeyer/raw/master/Images/TrackBall.jpg https://github.com/Henry/DecaKeyer/raw/master/Images/DecaKeyerInside.jpg

Teensy Pins

Chorded keys

FingerWire colourPort pin
Index tippurplePB0
Index middlepurplePB1
Middle tipbluePB2
Middle middlebluePB3
Ring tipyellowPB7
Ring middleyellowPD0
Pinky tippinkPD1
Pinky middlepinkPD2

Modifier Keys

FingerWire colourPort pin
Thumb tipgreyPD6
Thumb middlegreyPD7

Trackball connections

TrackballWire colourPort pin
Blue ledbluePF5
Red ledredPF1
Green ledgreenPF4
White ledwhitePF0
UppinkPF6
DowngreyPF7
LeftorangePB6
RightyellowPB5
ButtonpurplePB4
GndbrownGnd
VccredVcc

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

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

About

Hand-held Chorded Keyboard with 10 Micro-switches

License:GNU General Public License v3.0


Languages

Language:C 80.9%Language:C++ 19.1%