SpiffChorder Project
Spaceman Spiff's Chording Keyboard Experiment (or SpiffChorder for short) is an experimental platform for creating a USB chording keyboard. Stable, reliable and up to the demands of daily use the SpiffChorder is an alternative to conventional keyboards that is simple enough to be built as a first time electronics project. At the same time, the design allows for modification of the number of keys, the chord mapping and the physical layout providing an ideal platform for experimentaton without having to create a device from the ground up.
A chording keyboard or Chorded keyboard is an input device where characters can be typed by pressing multiple keys at the same time. A popular design is the 7-key chorder, where one key is used for each of the index finger, middle finger, ring finger and pinky, and 3 keys for the thumb. This can be used with either the left or right hand (or a chorder can be used for each hand, increasing typing speed). The current incarnation of the SpiffChorder is a 7-key chorder, although because of the easily changeable chord-maps, fewer keys can be used as well. The hardware-design has been designed for chords consisting of up to 8 keys, plus 3 additional keys that can be used as modifiers (ctrl, alt, shift). This allows substantially different chording ideas to be implemented, such as the Twidlette.
Both the hardware design and software/firmware for the SpiffChorder is open, and you can make modifications as you see fit. The license is based on Objective Development's license, which is now GPL, but with the addition that the hardware is documented and open as well.
Objective Development's AVR USB driver is a firmware-only implementation of the low speed USB standard (1.5Mbps) which can be used on cheap AVR microcontrollers from Atmel.
The hardware for the SpiffChorder is very simple, and consists mainly of an ATmega168, a 12MHz crystal, and a few passive components for interfacing with the USB port. Apart from this 7 switches are connected, and optionally 3 LEDs for indicating the internal state. The SpiffChorder originally used an ATmega8, but due to the limited flash memory in these devices (in particular when also using a boot loader), it was decided to aim for the ATmega168 instead, which is only slightly more expensive, and apart from the extra flash memory also has port-change interrupts, which will be a benefit when implementing pointing device support.
The project page can be found at http://symlink.dk/projects/spiffchorder/, but this wiki will contain more updated information and more specific information, especially when it comes to the documentation of the project.
The SpiffChorder is up to the task of daily use as a primary keyboard. It has been in use as such since October of 2007. The current build was released in March of 2008 and currently serves as the input system on wearable computers, in-car computers, palmtops, laptops and desktops. Folks type on their SpiffChorders while running, walking, riding, sitting, standing and lying down. We have heard from people around the world who have built and use Spiffchorders, sometimes as their first electronics project.
If you build one or want to build one, please let us know.
Mikkel Holm Olsen AKA Spaceman Spiff