====== SpiffChorder Project ====== Spaceman Spiff's Chording Keyboard Experiment (or SpiffChorder for short) is an experimental platform for creating a USB chording keyboard. A chording keyboard or [[wp>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, effectively doubling the 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 [[http://www.obdev.at/products/avrusb/license.html|Objective Development's license]], which is now GPL, but with the addition that the hardware is documented and open as well. [[http://www.obdev.at/|Objective Development's]] [[http://www.obdev.at/products/avrusb/index.html|AVR USB]] driver is a firmware-only implementation of the low speed USB standard (1.5Mbps) which can be used on cheap [[http://atmel.com/products/AVR/|AVR]] microcontrollers from [[http://atmel.com/|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. [[http://symlink.dk/contact/contact.php|Mikkel Holm Olsen]] AKA Spaceman Spiff [[http://wiki.cs.vassar.edu/people/priestdo/contact|Greg Priest-Dorman]]