Return to the archive index

Joypad-based keyboard

From: adrian@fangorn.demon.co.uk (Adrian Godwin)
Date: Fri Aug 21 13:01:32 1998
Newsgroups: comp.sys.wearables

I just posted this to a thread on a gameboy-hacking mailing list, regarding
a chording keyboards. Since handheld keyboards are important to wearables,
I'd be interested in feedback about the idea.

--------

I've been interested in the chord keyboards for some time, but didn't want
to add the extra keys. So my plan is to use the joypad to recognise a
sequence of gestures - sort of a cross between the Microwriter and the
PalmPilot.  

The joypad has four switches : call them N,S,E and W. Adjacent switches
can be operated simultaneously (diagonal presses), making 8 unique positions.
Some of these positions can be cascaded in a single movement with only
very brief periods of no-connection (e.g N,NW or S,NE). Others are more
difficult to produce unambiguously (NW,N) and should probably be avoided -
but this still leaves the 8 main keys and 28 simple sequences. Use A and B
as case or symbol shifts and you have a lot more. Use 3-stop sequences and
the numbers of possibilities get really silly. The 8 main positions should
be reserved for cursor functions. Extra keys (select and start) can also
be used for special operations (but carefully, as they move your fingers
away from the home position).

Further extensions to the simple gestures could be used for context-sensitive
operations that insert several letters or complete a word.

The nice things about this scheme are :

It uses a readily available keypad that's fitted to a lot of systems - most
games machines want a few alphanumerics entered from time to time. It would
be very easy to prototype on a PC with a joypad. All joypads can handle 
multiple simultaneous keypresses : normal keyboards often have scanning
limitations, making chords difficult.The gestures have very definite shapes. If you've seen the Microwriter
operations guide, you'll appreciate how the shape of the key combination
can be a mnemonic for the character (some obvious ones : N,S for 'I';
N,E for 'L'; S,E for 'F').

The fingers move very little distance. A qwerty keyboard requires a
lot of hand movement, and I find chord keyboards tend to make me hold
my fingers in a stiff pattern to avoid pressing the wrong buttons
(easy to avoid with a mouse, as those 2 - 3 fingers have similar
strength. But hard to avoid pushing lightly with an index finger when
you're using the little finger).

Millions of kids are very fast on joypads, slow on keyboards ! They've learnt
not only simple direction commands but fast, complex sequences that move
game characters through the curious positions required to simulate body
movements.

Joypads are designed to be held and used that way : a chord keyboard requires
you to use all 5 fingers while also supporting the keyboard. It works better
on a desk, and doesn't necessarily work two-handed, even. A joypad works
well two-handed and can be used one-handed in a limited way.

Some bad things are :

Timing is critical to make the sequences unambiguous - it's easy to mistake
a sequence for two cursor movements. Some sequences may occur accidently, such
as N,NE,E where N,E was intended. Probably the best keyboard handler will be
fuzzy : it will take sequences of key changes and determine the intention by
analysing the proportion of time spent in each position. So, N(25ms),NE(5ms),
E(22ms) would be read as N,E rather than N,NE,E. Timing the sequences would
help the handler to train itself to the user's typing speed.

The sequences have to be learnt : there are no keys with letters on that you
can use to hunt-and-peck. Learners could use a pop-up display showing a 
diagram of the joypad and the letter options available. The first diagram
would show all the letters (or symbols, etc) around the pad. When one 
corner is pressed, the possibilities are reduced to the 7 strokes starting
at that corner, so the display changes to show the remaining options.
This approach permits long pauses between keys, and so is probably impossible
to integrate with the fuzzy handler. But the system might change over
semi-automatically as speed increases : at first, the whole rose would show
while the user learnt the stroke starting positions.  Later, with autorepeat 
on cursor keys disabled, the rose would appear only when the user hesitated 
too long before completing a stroke. 

I haven't written any code for this yet : like too many of my
projects, I got distracted before doing much more than thinking about
it. This note is sort of a stake in the ground (hence the cc list) : 
I don't know if it's enough to claim copyright with, but it might stop
someone claiming novelty on a patent. I intend to copyleft any
implementations I do, and if someone else likes the idea too I urge
them to do the same. There have been several chording keyboards over
the years, and they fail (IMHO) because the inventors try to control
the technology to repay their investment. If this idea is any good, it
will only be useful if the sequences are widely used - trying to gain
legal ownership of the gestures for letter forms would kill it very
fast.

So hands off, Nintendo and Microsoft.

-adrian

Return to archive index | Next message in thread


From Comp.sys.wearables Newsgroup Archive (CSW)
Maintained by R. Paul McCarty

Archive created with babymail