Max Number of Simultaneous Key-Press (N-key Rollover NKRO and Ghosting)

By Xah Lee. Date: . Last updated: .

What is n-key rollover?

N-key rollover (NKRO) is the number of simultaneous key presses a keyboard can register.

6-key rollover means a max of 6 keys can be pressed simultaneously. This is the normal maximum for keyboard with USB interface. (but some keyboard have work-around over this, such as using 2 internal USB.)

Full n-key rollover means the keyboard can correctly detect any number of simultaneous key presses.

What is key ghosting?

key ghosting is when multiple keys are held down but the wrong keys are registered.

What is Anti-Ghosting Tech

Some gaming keyboards, such as Microsoft Sidewinder (year 2010) , have so-called “anti-ghosting” tech. Basically, it's a scheme to let you press many keys simultaneously, but is not real hardware NKRO.

Unlike partial anti-ghosting solutions which have many combinations of 3 keys which do not work, Microsoft's SideWinder X4 features multitouch technology that allows it to detect, and report ANY combination of QWERTY keys, up to 17 keys. Additionally, it can report 7 modifier keys, 1 hot key and 1 macro key, bringing the maximum number of reported keys to 26. See the SideWinder X4 Anti-Ghosting FAQ for more information.

[Microsoft SideWinder X4 Anti-Ghosting FAQ At]

Test How Many Keys Can Your Keyboard Register

Hold down both left Shift key and right Shift key, then press x. See if the letter shows up on your screen.

Yes? Now, try other keys, while keep both the Shift keys depressed. Go through the whole alphabet. Best is to ask your friend to help you hold both the Shift keys down.

On my Microsoft Comfort Curve Keyboard 2000 and Natural Ergonomic Keyboard 4000, when both Shift are held down, the key x and / and 3 do not work!

Microsoft Comfort Curve keyboard 2000-s336x186
Microsoft Comfort Curve Keyboard 2000
ms n4000 keyboard-s336x186
Microsoft Natural Ergonomic Keyboard 4000

On my Apple iMac keyboard M2452 (year 1999), all the top row {Q W E R T Y U I O P [} does not work, except ] and \.

Apple iMac keyboard M2452 1999 jxg7P-s250
Apple USB keyboard, 1999. (Bondi Blue iMac)
Apple pro keyboard german layout 92684-s414x151
Apple Pro Keyboard A1048, Year 2003

On my Apple keyboard A1048 (year 2003), same result.

N-key rollover, Key Ghosting, Keyboard Switch Circuit Design

The issue is rather complex. It has to do with cost-saving design of the circuit, and also the keyboard interface protocol (For example, USB vs PS/2).

Ideally, each key is a electronic switch. When a key is pressed, a signal is send for that key. This is logically simple, but it is a expensive way to design the circuit.

Instead, the electronics of the keys are laid out on a rectangular grid. When a key is pressed, it shorts the row and column the key is on. This row+column determines which key is pressed. This way, you don't need a switch per key. Suppose you have 30 keys on a 3×10 matrix. With one switch per key (full n-key rollover), you need 30 switches. But with a grid approach, you need just 3+10=13.

keyboard key ghosting
Grid approach for keyboard circuit. [Anti Ghosting Explained At ]

The problem with the grid approach is that when several keys on the same column or row are being pressed, it has problem knowing exactly which new key is being pressed. So it may not register a key you pressed, or may send a adjacent key that you didn't press. (this is why it's called ghosting)

This is a simple design flaw of circuit, and can be easily fixed, However, fixing this problem so that all keys can be detected correctly when simultaneously pressed, means more electronic components, more cost. But most people never need to press more than 3 keys at the same time anyway, so keyboard makers don't bother with complete solutions. They just make few extra grids for different cluster of keys and or re-arrange the correspondence between the keys and positions on the grid, so that common key combination do not lie in the same column or row.

The modifier keys, for example, {Alt, Ctrl, Shift}, often need to be used with other keys together. So, keyboard makers have made sure that multiple keys with these have no problem. But uncommon combination, such as pressing both Left and Right Shift plus other keys, is practically never used. So they become the victims.

Connector Matters: USB vs PS/2

PS/2 can always detect any number of simultaneously pressed keys.

USB can always detect any number of simultaneously pressed keys too, however, due to complexity of the multi-purpose USB protocol, most keyboard uses default “boot protocol” in USB, so can only detect max of 6 simultaneously pressed keys.

Which Keyboard Has Full N-Key Rollover?

Any non-gaming keyboard from Microsoft and Logitech Keyboards do not have n-key rollover. For example, all these: • Microsoft Keyboards GalleryLogitech Keyboards GalleryApple Computer Keyboards.

Who Needs to Press 6 Keys Simultaneously?

For example, the Stenotype over PC keyboard project. See: Stenotype Machine .

Also Braille2000, see:

To use any computer braille-entry program, including Braille2000, you will need a keyboard that responds to six-key input. Be alerted that many famous-brand computer systems are supplied with keyboards that are NOT suitable. Be especially careful when shopping for a laptop computer not being able to use its built-in keyboard will be a real hassle.

from Source

Also, in gaming, the need to press more than 5 keys simultaneously is common. Usually, the arrows keys or WASD keys are used to control your character movement, while Shift with left/right arrow makes your avatar move left/right instead of turning left/right. Sometimes 2 arrows such as up/right arrow makes your avatar walk diagonally. Add keys for jumping or crouching, usually needed to be combined with avatar movement keys. Add a key for run mode. Then, there's also things like firing a gun, shield, quickly you have 5 or 6 keys pressed simultaneously.

Basic modern keyboards already have shifted their electronic grid so that multi-key combo with the modifier is no problem. But when the game or game playing gets advanced, like doing some strife shooting while prim jump etc as in Second Life , you need a keyboard that does well. For this reason, as cited by Microsoft and elsewhere, gaming keyboards often take the extra mile to make this correct.

As another example, i recall about 10 year ago, i can play Street Fighter on PC, in a 2 player versus mode. For single player, you need 4 keys for the movement and another 4 or 6 for various levels of kick and punch. For 2 person playing on the same keyboard you really need keyboard that can detect some 20 simultaneous keys correctly. Remember those super combo inputs for executing special attacks. LOL

N-key Rollover and Emacs

Discovered a dead key. In emacs, i have the ▤ Menu key set as Hyper, and i have Hyper+Shift+x as a shortcut to some command. However, Microsoft Natural Ergonomic 4000 simply does not register that combination when right Shift is used, but left Shift works. [see Emacs: How to Set Super and Hyper Keys]


Key Switch Topic

Xah Keyboard Guide