Hacker News new | ask | show | jobs
by lrsjng 2211 days ago
What is the technical difference between points 2) and 4)? Why is it in example 2) possible to identify the two keys?
3 comments

The article isn't very good.

A keyboard is scanned by pulsing each row individually and checking which columns become active because a pressed key connects them. (Or vice versa.)

In (2), when the green row is pulsed, only the green column becomes active, because it's connected to the green row by the pressed key (upper left red dot).

In (4), when the upper of the two green rows is pulsed, both the green columns become active — the first because the upper-left red dot is pressed, and the second because there is a path through all three of the red dots (pressed keys). So the keyboard senses a key press at the dotless intersection, even though that key is not pressed.

Better keyboards solve this problem with a diode on each key, so that the roundabout path can't happen. Cheap keyboards rearrange the rows and columns into squiggly paths so that the three-key pattern doesn't happen very often, being especially careful with the modifier keys.

As I have mentioned somewhere else, I can't explain this by anything else than lazy design. Surface mount diodes are extremely cheap and their cost pales in comparison with the cost of accompanying switch or even LED.
You can't put diodes on a membrane keyboard. (Well, maybe you could, but the side with the traces is right up against the other membrane. Hmm, could you dope the membrane? brb, patenting) And if you did, the cost would still be greater than zero, so it wouldn't fly.

Ghosting on a discrete contact-switch keyboard is inexcusable, of course.

On most rubber dome keyboards there is enough space between rubbers to have diode there. You could also put diodes on the other side of PCB.

I am not sure about costs, though, I did not consider membrane keyboards for my research. Membranes are extremely cheap. Not just because of the membranes being cheap but also because there is no assembly (PCB is contacts, no assembly required for switches) and because there might not be need for double-sided PCB. In this case diodes could force double-sided PCB, vias, and maybe even double sided assembly.

Presumably the different colors paired with "so long as the keys in question fall into mutually discrete columns and rows." means they keyboard is actually "several keyboards" at the hardware level, and different keys activate different logic boards for processing.
Yes, actually, you can still determine the keys. The usual method is to scan the rows and/or columns one by one and then you always only have one row and column active at a time, so you can determine individual keys. However, if you strobe too slow you can miss keystrokes.