Use It

FIGkeys can be used to interface to a PS/2 keyboard in the normal way; it supports the main keys on a PS/2 keyboard, but not the numeric keypad and not the function keys or other special keys on a PS/2 keyboard. In addition you can change the keyboard layout to some degree with FIGkeys, just using your PS/2 keyboard. Finally you can upgrade the firmware on FIGkeys.

Normal Usage

To use FIGkeys:

FIGkeys supports the following PS/2 keyboard layout by default (it's a UK layout):

The following keys are special:

Modifying The Keyboard Layout

FIGkeys is supplied only with a UK keyboard layout. However, you can reprogram (some) of the keyboard layout just using your FIGkeys and the numeric keypad on the PS/2 keyboard. For example, let's say you want the 'Q' key on a UK keyboard to display 'A':

The key you pressed in step 1 will be reprogrammed into FIGkeys non-volatile EEProm memory. The following PS/2 keys can be programmed in this way [UK key table, to be replaced by a proper diagram]:

It doesn't matter if you overwrite one key with the same code as another because FIGkeys does the remapping based on the grid location of the key, not the character that's displayed. For example, after doing the above you'll end up with two keys that display 'a' when pressed. But you can change the key at B3 back to 'Q' by pressing the key at B3 then typing 0 5 3 on the numeric keypad, then pressing . on the numeric keypad.

FIGgypad Codes

FIGgypad codes can be easily worked out from the order you press keys on a FIGgypad. If a shift is pressed first then the first digit is 1, otherwise it's 0. Then follows your secondary keypress 0 for SW1 to 7 for SW8 and finally your primary keypress 0 for SW1 to 7 for SW8. If only a (optional shift+) primary key is needed, then the first digit is 1 if shift is needed followed by 0 for SW1 to 7 for SW8, which you then repeat.

However, the following tables will make this easier:

0 Row Col codes:

1 Row Col codes:

Note: A few keys are not properly mapped before firmware 0.9.8: these are, _, ~ and `. In addition PgUp and PgDn are not recognized by the editor, they are for use in user programs. Complete implements command completion in the 0.9.8 editor (and later) and is mapped to Shift+Space on a PS/2 keyboard.

Upgrading the FIGkeys firmware

From time to time, the FIGkeys firmware may be upgraded. FIGkeys contains an incredibly small 128b bootloader; which can program and verify Flash and EEProm as well as directly control the AVR hardware - for example, you can control the FIGkeys GPIOs from the bootloader or activate the timers etc from a bootloader programmer.

The first stage in upgrading the FIGkeys firmware involves downloading an alternative FIGnition firmware image to your FIGnition. This firmware image is dedicated to upgrading FIGkeys firmware. The same firmware image is used for AtMega168 and AtMega328 FIGnitions. When the process is finished, you will need to download your normal FIGnition firmware image back to your FIGnition.

When you release SW1 FIGnition will display:

Remove the USB connector; hold down SW2 and then plug in the USB connector. You should see the message:

When you release SW2 the upgrade should begin. The FIGgyPad programmer will read the page size; show each page as it's being programmed; verify the Flash image; program the EEProm and finally verify the EEProm:

If any step is faulty you'll see an appropriate message:

 If the ATtiny24's bootloader isn't running (or the bootloader is missing); then the FIGgypad programmer won't be able to read the target AVR flash page size.

 If there's a verification error in the flash, the FIGgypad programmer will stop and display the first location that failed to verify and why it failed.

 The Figgypad programmer reads the EEProm status on the ATtiny24. If it never returns 'ready' then EEProm programming will appear to hang.

 If there's a verification error in the EEProm, the FIGgypad programmer will stop and display the first location that failed to verify and why it failed.