Pressing two adjacent keys at the same time fails

Description

Hi,

If I hit "f" and "g" at the text console at the same time, I see "fg" (or "gf") in the shell. If I hit "r" and "t" together, or "y" and "u", I instead see one of the characters, or most often neither of them. The keyboard allows some sets of two adjacent keys to be pressed together, but not others.

This exhibited itself in Tamtam, where I can't play chords using some combinations of keys, even though the keys play notes individually -- nothing is played with "rt" or "yu", but both notes are played together with other combinations.

This is on a machine labeled "test kbd". I think it's a B3 keyboard sample.

Oldest firstNewest firstThreaded

Comments only

Change History (6)

Chris,
The behaviour you mention is "normal". The keyboards are electrically divided into four or five zones I believe, and a zone can only provide one signal at a time. Nat will know what those are as he wrote the algorithm to use multiple keys. Certain combinations of keys cannot be used in TamTam . When you see the results "fg" in the console, it is becasue you have not hit the keys at _exactly_ the same time. The last letter has simply usurped the signal from the first in the same zone. You will see this in TamTam precisely because when the keys are held down, they rely on the keys having an independent signal that is not interrupted by another. Some modern keyboards do not exhibit this behaviour (Mac keyboards for instance) but most cheaper keyboards will. I'm afraid nothing can be done about this unless a different type of keyboard is used.

I'll show this to someone at 1cc, because I don't think the explanation above quite covers it -- if a zone can only provide one signal at a time, why can I get "a" and "s" (or indeed any combination other than "rt" or "yu") at the same time?

I'll show this to someone at 1cc, because I don't think the explanation above quite covers it -- if a zone can only provide one signal at a time, why can I get "a" and "s" (or indeed any combination other than "rt" or "yu") at the same time?

The first explanation (zones) makes sense. The second explanation (sealing) does not make sense.

It's a matter of cost. One can argue about this being a good or bad place to cut corners. Supporting arbitrary key combinations requires a controller chip with N wires for N keys. (plus misc. non-key wires) A more limited solution requires a controller chip with 2*sqrt(N) wires for N keys, assuming N is a perfect square. With about 80 keys, that's 80 vs. 18.

So even with a "cheap" grid layout, we should be able to detect two keys. Could anyone explain how the "zones" work? Presumably this is done to cut down the number of necessary wires, but I could not find any description of it.