N-Key Rollover keyboard

  • Thread starter Thread starter Man-wai Chang
  • Start date Start date
M

Man-wai Chang

What's the opposite of N-Key Rollover?

--
@~@ Remain silent. Nothing from soldiers and magicians is real!
/ v \ Simplicity is Beauty! May the Force and farces be with you!
/( _ )\ (Fedora 17 i686) Linux 3.6.10-2.fc17.i686
^ ^ 18:21:01 up 2 days 12:34 0 users load average: 0.00 0.01 0.05
ä¸å€Ÿè²¸! ä¸è©é¨™! ä¸æ´äº¤! ä¸æ‰“交! ä¸æ‰“劫! ä¸è‡ªæ®º! è«‹è€ƒæ…®ç¶œæ´ (CSSA):
http://www.swd.gov.hk/tc/index/site_pubsvc/page_socsecu/sub_addressesa
 
What's the opposite of N-Key Rollover?

I meant the name for that...

--
@~@ Remain silent. Nothing from soldiers and magicians is real!
/ v \ Simplicity is Beauty! May the Force and farces be with you!
/( _ )\ (Fedora 17 i686) Linux 3.6.10-2.fc17.i686
^ ^ 18:21:01 up 2 days 12:34 0 users load average: 0.00 0.01 0.05
ä¸å€Ÿè²¸! ä¸è©é¨™! ä¸æ´äº¤! ä¸æ‰“交! ä¸æ‰“劫! ä¸è‡ªæ®º! è«‹è€ƒæ…®ç¶œæ´ (CSSA):
http://www.swd.gov.hk/tc/index/site_pubsvc/page_socsecu/sub_addressesa
 
Man-wai Chang said:
What's the opposite of N-Key Rollover?

http://iitestudent.blogspot.ca/2011/05/8279-programmable-keyboarddisplay.html

"In two key lockout mode if 2 keys are pressed simultaneously only
the first key is recognized."

http://en.wikipedia.org/wiki/N-key_rollover#n-key_rollover

"Certain high-end keyboards have "n-key rollover". This means that
each key is scanned completely independently by the keyboard hardware,
so that each keypress is correctly detected regardless of how many
other keys are being pressed or held down at the time.

Most music keyboards use isolation diodes in their keyboard
matrix to implement full n-key rollover (sometimes abbreviated NKRO),
making them immune to both key ghosting and key blocking.

However, to reduce cost and design complexity, most keyboards do not
isolate all keys in this way. Instead, they use a matrix of key switches,
without any isolation diodes, that assumes that only a limited number of
keys will be held down at any given time."

*******

I built my own keyboard, and fitted a 1N914/1N4148 switching diode to
each keyswitch, to prevent ghosting and allow more than one key to be
depressed without losing it. I think on my keyboard, that's to prevent
a fast typist from having problems when the first key isn't completely
released, when the second key is starting to make contact. I'm not sure
my keyboard controller would support "mashing" a whole bunch of keys.
It probably did not have a buffer deep enough to allow that. Back
in those days, the geometry of silicon gates was so large, there was
a cost penalty for doing storage inside a chip. Adding a deep FIFO might
have doubled the price for the chip. The keyboard decoder I used,
might even have been NMOS and not CMOS, to give you some idea how
ancient the thing was.

Also, my chip was not a "full matrix" type. The signals for the modifier
keys were handled separately. So perhaps shift, control, alt, might have
had their own inputs, and not have been subject to ghosting. I notice
newer keyboards, all the keys seem to be wired to the matrix.

I doubt if you take a screwdriver, and examine the PCB on your keyboard,
you'll find the diode scheme that I was using. And I don't think the
diode idea can be fitted inside the chip. It has to be done at each
keyswitch, right on the PCB.

The diodes can be purchased for less than a penny ($0.01) each. So
doing a whole keyboard costs slightly more than $1 USD :-) That's
actually a significant expense, when you consider the retail price
of generic keyboards.

http://www.digikey.com/product-detail/en/1N914BTR/1N914BTR-ND/458816

This is how you add diodes to support N-key rollover (assuming the
keyboard controller can handle multiple keys).

http://www.avernus.com/~gadams/hardware/keyboard/images/choc-mini-matrix-schematic.png

Example of a keyboard with something added per switch. And judging by
the color and form factor of the diodes, those are 1N914/1N4148 style
general purpose switching diodes (the cheap ones). On this keyboard,
the keys are held in place by the upper substrate, while the lower
substrate is the single-sided PCB of the keyboard controller. A diode
is in series with each switch.

http://www.avernus.com/~gadams/hardware/keyboard/images/choc-mini-5398-diodes.jpg

Paul
 
What's the opposite of N-Key Rollover?

If you go to a keyboard forum (like geekhack.org), they will use terms
like 2-key rollover or 6-key rollover, to refer to non-N-key (aka, <
10-key) rollover scenarios.

Nearly all membrane keyboards are really just 2-key rollover.

Note that even if you have an N-key rollover keyboard, the USB
specification for keyboards has a 6 key limit. The only way to break
the 6-key rollover limit is to use the PS/2 port, or for the keyboard
to fake it by registering itself as multiple keyboards (my home
keyboard, the Noppoo Choc Mini, pretends it is 2 USB keyboards, in
order to get N-key rollover).
 
What's the opposite of N-Key Rollover?
I meant the name for that...

N-key lockout. Feels awful, like typing on an old mechanical
typewriter that jams if more than 2 keys are pressed at once.

I once played around with an unencoded keyboard wired to a couple
of I/O ports, and the feel of the typing could be changed a lot by
changing the scanning software. My first attempt gave n-key lockout,
but by storing just the previous decoded key I got 2-key rollover,
which felt a lot better and for all practical purposes as good as
n-key rollover. By storing the whole key matrix, I got n-key rollover
but sometimes with phantom keys. I was able to fix that problem in
software (sometimes lock out if more than 2 keys pressed at once) or by
wiring a diode in series with each key switch. BTW a simple hardware
decoder that scans the matrix will automatically give 2-key rollover,
and I think it gives reliable n-key rollover if diodes are added.
 
What's the opposite of N-Key Rollover?

FYI, here is the specification for the original IBM PC-AT keyboard:
http://www.users.on.net/~fzabkar/PC-AT/IBM_AT_keybd.txt

"The keyboard is able to detect all keys that are pressed, and their
scan codes will be sent to the interface in correct sequence,
regardless of the number of keys held down."

Not all keyboards conform to the original spec.

Mine doesn't:
http://groups.google.com/group/comp...month/2003-06/d2512d916364da51?rnum=11&lnk=nl

- Franc Zabkar
 
Most music keyboards use isolation diodes in their keyboard matrix
to implement full n-key rollover (sometimes abbreviated NKRO),
making them immune to both key ghosting and key blocking. However,
to reduce cost and design complexity, most keyboards do not isolate
all keys in this way. Instead, they use a matrix of key switches,
without any isolation diodes, that assumes that only a limited number
of keys will be held down at any given time." ******* I built my own
keyboard, and fitted a 1N914/1N4148 switching diode to each keyswitch,
to prevent ghosting and allow more than one key to be depressed without
losing it. I think on my keyboard, that's to prevent a fast typist from
having problems when the first key isn't completely released, when the
second key is starting to make contact. I'm not sure my keyboard
controller would support "mashing" a whole bunch of keys. It probably
did not have a buffer deep enough to allow that.

I once had a PC keyboard with a diode in each switch, and I think
it gave perfect n-key rollover (or at least 16-key rollover -- 2
people). Also the keys felt great, and the key caps were 2-color
molded so the markings couldn't rub off. Unfortunately it had only
83 keys, meaning it was only for XT computers. :(

The old IBM model F 84-key AT keyboard passes the THE QUICK BROWN FOX
JUMPS QUICKLY OVER THE LAZY DOG TEST (both shift keys held down),
despite not having a diode in each switch, but the IBM model M
101-key does not.
 
N-key lockout. Feels awful, like typing on an old mechanical
typewriter that jams if more than 2 keys are pressed at once.

Thanks! Good analogy here.. :)


--
@~@ Remain silent. Nothing from soldiers and magicians is real!
/ v \ Simplicity is Beauty! May the Force and farces be with you!
/( _ )\ (Fedora 17 i686) Linux 3.6.10-2.fc17.i686
^ ^ 18:21:01 up 2 days 12:34 0 users load average: 0.00 0.01 0.05
ä¸å€Ÿè²¸! ä¸è©é¨™! ä¸æ´äº¤! ä¸æ‰“交! ä¸æ‰“劫! ä¸è‡ªæ®º! è«‹è€ƒæ…®ç¶œæ´ (CSSA):
http://www.swd.gov.hk/tc/index/site_pubsvc/page_socsecu/sub_addressesa
 
Thank you all for the replies!

--
@~@ Remain silent. Nothing from soldiers and magicians is real!
/ v \ Simplicity is Beauty! May the Force and farces be with you!
/( _ )\ (Fedora 17 i686) Linux 3.6.10-2.fc17.i686
^ ^ 18:21:01 up 2 days 12:34 0 users load average: 0.00 0.01 0.05
ä¸å€Ÿè²¸! ä¸è©é¨™! ä¸æ´äº¤! ä¸æ‰“交! ä¸æ‰“劫! ä¸è‡ªæ®º! è«‹è€ƒæ…®ç¶œæ´ (CSSA):
http://www.swd.gov.hk/tc/index/site_pubsvc/page_socsecu/sub_addressesa
 
Back
Top