Ticket #1297 (closed defect: invalid)

Opened 7 years ago

Last modified 7 years ago

Pressing two adjacent keys at the same time fails

Reported by: cjb Owned by: mlj
Priority: normal Milestone: Not Triaged
Component: keyboards Version:
Keywords: Cc:
Action Needed: Verified: no
Deployments affected: Blocked By:
Blocking:

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.

Change History

  Changed 7 years ago by ethrop

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.

  Changed 7 years ago by jg

  • status changed from new to closed
  • resolution set to invalid

This is a known limitation of they keyboard, and part of the tradeoff made when a sealed keyboard was chosen.

follow-up: ↓ 4   Changed 7 years ago by cjb

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?

Will leave this closed in the meantime, no need to reopen.

in reply to: ↑ 3   Changed 7 years ago by AlbertCahalan

Replying to cjb:

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.

  Changed 7 years ago by bert

On regular PC keyboards you can press any two, though not necessarily any three keys at the same time. Here's a good explanation http://www.dribin.org/dave/keyboard/html/

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.

  Changed 7 years ago by MitchellNCharity

  • verified unset

On B4, it appears r+t and y+u now work. But y+t+b does not.

Do all two letter combinations now work?

Note: See TracTickets for help on using tickets.