2009-10-04 - 2016-05-10

Keyboard matrix limitation.



Shortly.

On a today keyboard matrices, their keyboard controllers can properly read only up to two keys (which are sharing row or column) being pressed simultaneously.
(if the pressed keys do not share rows or columns, they do not interact anyhow)
First image below is representing 2x2 lines of a keyboard matrix.
It is needed only so much, to show where the limitation appears, so I am not bringing a bigger part of a matrix.
A keyboard controller sends impulses to wires from (lets say) the bottom, and reads an incoming back signals (lets say) from the left (the order isn't meaningful, it is just I am trying to begin my explanation from some point).
The first image below shows all contacts open.
I am omitting cases when one or two keys are shorten, and immediately begin to show on the second image the case with three key contacts being shortened, and that is the situation when the controller cannot define which keys are pressed.
This can be explained with a rhetorical question : in the shown example you see 3 keys pressed, so their 3 pairs of contacts are shorten; the remained 4th key is not pressed, is its contact also shorten ?

image: part of matrix image: part of matrix, with contacts of some key being connected


Detailed.

This keyboard matrix problem already is named as : ghosting, masking, blocking, n-key rollover; so I will not invent a new name for it.
To find out, which keys cannot be pressed simultaneously on your keyboard : open Notepad, press a desired three keys combination for one second - your computer will beep (if beeper is on, and exists at all) if that combination is not supported (mostly probably due to this limitation).
Or try a page with javascript - keyboard hit test.
The described above limitation, when only two simultaneously pressed keys are guaranteed to be read, can easily be dissolved on manufacturer's side, and hardly on user's.

Solutions.

Keyboard matrix with diodes (what not to do).
Keyboard with no matrix-like connection.
*any of these solutions are actually for a manufacturers, not for a users.
For a user there also is a solution : stop naming keyboards with 2kro which manufacturers are calling "gaming" gaming; insist instead (lets say when you are doing a review or something) that they aren't gaming (well, I don't offer to lie anything).
Keyboards with 2kro are not gaming keyboards. Even if they are called such (due to their one or another way looking shape), they aren't useable for gaming.

Note.
The test which says "open a text editor, press both "Shift" keys simultaneously, then type "THE QUICK BROWN FOX JUMPED OVER THE LAZY DOG"" - is useless.
First, because the Shifts are not necessarily included in the matrix on the same lines with the mentioned THEQUICKBROWNFXJMPDVLAZYG keys (thus, if they are not on the same lines, they will not conflict with these character keys).
Next, because some keyboards might have both shifts simply connected together, instead of them being "Left Shift" and "Right Shift" as they normally are.
Both kinds of tricked these ways keyboards will successfully pass this test, yet being unable to exceed the limitation of 2 simultaneously pressed keys.

Note.
Stuff like "3kro" (or 4, or 5) has no meaning; if you think you have such keyboard, then after you will test it deeper, you will see that it can't read every combination of 3 keys (just press keys O and P, and then try as third some other keys near them, one by one), and thus it is a 2kro keyboard.
I'll briefly repeat what limits there do exist.
There is a 2 keys (2kro) limit caused by the leads connected into a crossed matrix.
There is a 6 keys (6kro) limit caused by USB protocol.
There might be an 18 keys (18kro) and other such limits caused also by USB.


Tags : keyboard, matrix, limit, limitation, ghosting, anti-ghosting, antighosting, masking, blocking, n-key rollover.