Table of Contents

Creating Your Own Chordset for the Spiffchorder

Layout or How Many Thumbs?

Code Considerations

3 modes available

keycodes.h

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:

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

  KEY_F,
  KEY_G,
  KEY_H,
  KEY_I,
  KEY_J,
  KEY_K,

And further down you will see lines like this:

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

Planning

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

AVR-GCC,

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

http://www.fischl.de/avrusbboot/

Programming the AVR over USB

http://www.fischl.de/avrusbboot/