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
From Comp.sys.wearables Newsgroup Archive (CSW)
Maintained by R. Paul McCarty
Archive created with babymail