SpiffChorder FAQ

- What exactly is the SpiffChorder?

The SpiffChorder is an implementation of chording keyboard Chorded keyboard. It is an input device where characters are typed by pressing multiple keys at the same time. It was designed to entirely replace a computer keyboard. Specifically, the SpiffChorder consists of the hardware and software needed to emulate a conventional usb keyboard in an object or objects with only a small number of keys or switches on it. For the purposes of building one, you can think of it as functionally consisting of six main components, three hardware, and three software:

  • Hardware
    1. an Atmel atmega168 or atmega8 pic: This is the computer in your keyboard. It will run the software below to translate your keypresses into usb keycodes.
    2. the circuit board: the actual electronics not including the keyswitches, you will likely not modify this part, you just build it.
    3. the input device: the thing with the keyswitches on it. Just about anything you can get an open/closed signal from can be used a a keyswitch. Typically this consists of keyswitches on some sort of object that fits in or straps to your hand, sits on a desk or is part of an article of clothing, or a dashboard but it can also be a separate electronic device that turns finger or other motion into on/off signals. You can model this after one of the existing patterns or put your switches on anything you think will work.
  • Software
    1. the keymap files: the part of the software that maps chords to keyboard events. This is easy to modify without any knowledge of programming languages.
    2. the program: the rest of the software. Written in C, you will likely not modify any of these files.
    3. the usb bootloader (optional): this part of the software once installed, allows you to reprogram your pic over the usb line without a separate pic programmer. This code is used by the SpiffChorder if you want this functionality but it is not required and not something we wrote. It has sometimes been a problem to get working. The archive of the SpiffChorder code includes the usb bootloader code and instructions for compiling your SpiffChorder with or without it.

- Multiple Keys? How many?

The circuit design of the SpiffChorder allows for up to 8 keys for chording and up to 3 additional keys that can be used as modifiers (ctrl, alt, shift). The implementation that sees the most use consists of a total of 7 keys all used for chording in this case the modifiers are also entered as chords.

- Are all possible variations "stable"

No, since you can change the code and you can modify the keybindings you could render it unstable. You could create a keymap where you have no way to get out of a special mode or state unless you unplug it (for example, no way to undo number/symbols lock). However, if you exercise a little planning and care in designing your keymaps, this should not be an issue. The SpiffChorder device and the modified_nasa have been in daily use for over two years so we feel safe saying that this combination is “stable”.

- How much does it cost to build?

The software is open and free. You only pay for the parts of your chorder. The circuit can be built for under $25 US. The input device cost depends on what you want to use for switches and such, if you want a 7 key desktop or handheld chorder you can do that with good keys for under $10 US, if you want to embed a sensor system for chording in the latest haute couture, then you may spend a little more. In addition you will need access to a programmer for the atmel microprocessor to load the code the first time. If you don't have that Greg will program your chip for you at no cost. Just send him a chip and a self addressed stamped envelope. Contact him first to confirm address and schedule. However, programmers are not that expensive and depending on where you live, it may be cheaper to make or even buy a programmer than to mail chips back and forth.

spiffchorder/faq.txt · Last modified: 2025/02/28 19:33 by priestdo
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0