Footboard: A 16 pedal USB Input Device


I thought it would be useful to operate a computer with my feet. This page describes how I went about building something which lets me do this.

Components

Equipment

Step 1: The Pedals

The pedals I constructed are not spring loaded, instead gravity returns them to their open position.

So one needs a bit of weight (wood) off the center of the rotational axis.

Step 2: The Box

Something needs to hold the pedals.

Eight pedals turn around each of the two metal tubes.

Step 3: The Electronics

I managed to get hold of a calculator which has a USB interface. I would imagine a USB keypad or even keyboard would also have worked. I

Step 4: Assembly

Wiring up the pedals to the calculator was a bit more complex than anticipated. I had not made provisions for the large number of wires, so I had to thread some of the wires through the pedals. Fortunately the switches did fit into the box.

The Result

Software

To a PC the calculator looks like a keypad. In order to generate all the other keys I hacked up a custom linux keymap which repurposed the sticky and meta keys. This map makes it possible to generate most characters with two pedal presses. Exceptions are arrow, enter and erase keys - they can be generated with one keystroke. The two stroke mapping is shown below. To generate a key, locate the desired character and read the leftmost field in its row. Then locate this pedal and press it before pressing the pedal labelled with the desired character.
#             CAPS LFT  BS   DWN  UP   RGT  SP   CHR2
# CHR12:      bw   vx   cd   qk   zj   %^   ?!   i 
# PCT12:      <>        @#   ,.   PgUD ScUD []   ()
# NUM  :           `    -    '    +    9    8    7
# VC   :      v5   v6   v7   v8   v9   v10  v11  v12
# 
#           RET  NUM  PCT1 PCT2 VC   CTL1 CTL2 CHR2
# CHR12:    tm   eh   sp   og   ry   nf   au    l
# PCT12:    |&   {}    \   :    =;   $*   ~"   /_
# NUM  :    0         1    2    3    4    5    6 
# VC   :    v4   vc+  vc-  prv       v1   v2   v3
This keymap can probably also be used with a normal keyboard, although some minor modifications may be needed. But it should be good enough to type with one hand without having to patch the kernel. The keymap can be downloaded here. Use loadkeys to load it into the console.

Some Experiences

It is quite slow. Two leg movements per symbol take a lot longer than one finger movement. Memorising the layout also takes time. With practice it probably will get faster.

One needs a chair of a certain height to operate the device comfortably. Even then it is a bit awkward - the legs tend to dangle.

The wood I used wasn't quite uniform and my workmanship not completely exact. The net effect is that each pedal has a slightly different feel - on a good day this could be a feature rather than a bug.

I did not pay sufficient attention when drilling the holes in the pedals. Some are not quite at right angles to the surface, resulting in a bit of play and one or two keys sticking when the pedals move sideways on rotation.

The poor calculator occasionally gets confused and hangs. I suppose this is unsurprising, the large amounts of extra wiring probably acts as some sort of inductor.

But it does work and makes a rather nice clunky sound.


up to projects