Creating Your Own Chordset for the Spiffchorder

Layout or How Many Thumbs?

Code Considerations

3 modes available


The keycodes.h file contains the names you will assign to your chords. Unless you want to rewright some of the code (which you are more than welcome to do) you are restrictied to these key codes. They are the usb keyboard key codes, the codes for the spiffchorder mode manipulation and some special codes that are translated by the program into a sequence of usb key codes. There are a few kinds of lines in keycodes.h, any section beginning with slash asterik /* is a comment section up through the */. Anything following 2 slashes // is a comment from there through the end of that line. Other than comments, there are several types of lines you need to know about:

  • KEY lines like KEY_G define standard USB key codes
  • MOD lines like MOD_RALT define and manipulate the keyboard modifiers.
  • MODE lines like MODE_FUNC define and manipulate the Spiffchorde mode state.
  • SPC lines like SPC_quote define special keys that generate multiple USB codes.

There are a few others as well but these are defined in the comments of keycode.h should you need them.


And further down you will see lines like this:

  MOD_LSHIFT,           // 0x02
  MOD_LALT,             // 0x04
  SPC_dollar,           // $
  SPC_percent,          // %
  SPC_ampersand,        // &


The Format of the .h file

An empty chord file is provided as empty.h. You can use it as a template for your custom chorder.

Building the Cross Compiler

Windows Cross Compiler

For compiling the SpiffChorder firmware under Microsoft Windows, the easiest solution is to use WinAVR. This package contains the avr-gcc tool-chain, avr-libc and some other utilities, including the avrdude programming software and Programmers Notepad, all compiled into a single Windows installation package.

The majority of the development on the SpiffChorder was done with WinAVR, and using the Programmers Notepad editor. It worked for me, so it should work for you as well (provided you have a Windows installation).

Linux Cross Compiler


Under Xubuntu 7.10 (which is what I run) I installed avr-libc, binutils-avr and gcc-avr from the ubuntu repositories using apt-get (or synaptic).

Programming the AVR the First Time

Programming the AVR over USB

spiffchorder/chord_creation.txt · Last modified: 2008/01/16 09:05 by priestdo
Top of the Wiki Creative Commons License Valid CSS Driven by DokuWiki Recent changes RSS feed Valid XHTML 1.0