Saturday, August 7, 2010

In this article, I'll explain what n-key rollover is and some of the available methods for testing your keyboard's level of rollover support. N-key rollover relates to the ability of a keyboard to correctly recognize multiple key presses at once (in the case, the ability to press as many keys as you want) and is a feature that is needed among the following areas of computing:

Gaming

Braille Input

Even if you are not in either one of these categories, this article may still be of interest to you since keyboards with n-key rollover are generally of higher quality. Most keyboards providing n-key rollover are of the mechanical key switch type as opposed to the rubber dome style keyboards which are, unfortunately, cheaply made and distributed with desktop PC's these days. However, I'll leave it up to another article and/or the curiosity of the reader to delve into the wonders of mechanical key switch keyboards. An excellent place to start is here.

N-Key Rollover Explained

What is it?

N-key rollover, often referred to as NKRO for short, is a term that is known and appreciated by many gaming enthusiasts but may not be as widely known as another term, anti-ghosting. Anti-ghosting is a term frequently used by Microsoft, Logitech, and other popular keyboard manufacturers when marketing their products. It is important to know the difference between the two terms:

N-Key Rollover - The press of each key on a keyboard can be detected individually, which means that each key you press will be seen by your operating system no matter how many keys you are holding down simultaneously (hence the variable 'n' in n-key to refer to as many keys as are possible to press on a keyboard).

Anti-Ghosting - This can refer to the ability of a keyboard to recognize 3 or more key presses at once. The main thing to point out is that anti-ghosting usually implies that there is a limit on which combinations of keys and how many of them can be pressed simultaneously, while n-key rollover keyboards have no such limit (except when using USB, see 'PS/2 vs USB Technical Limitations' below). The number of simultaneously recognized key presses varies between each model of keyboard that does not have full n-key rollover. In some ways, you can think of anti-ghosting as an attempt by manufacturers to improve functionality of cheaply made rubber dome keyboards, without having to implement proper n-key rollover functionality.

Note: Although this is how the term anti-ghosting is usually used, ghosting on a keyboard actually refers to something else. "Ghosting is when you press two keys on the keyboard, and a 3rd key - which you didn't press - gets sent to the PC as well. This is very rarely seen on even the cheapest modern boards, because manufacturers have the habit of limiting the rollover so that ghost keys are always blocked." -Overclock.net Forums

If you'd like to explore this topic in greater depth, I highly recommend starting with the following:

Technological Background Information - Even though this is on a braille-oriented site, skip to the section titled 'Technological Background Information' for an excellent discussion on n-key rollover (which most keyboards had in the early days of computing before keyboards became cheap commodity items).

It is probably about time to give an example to bring things into context. The Microsoft Sidewinder X6 keyboard is a fairly recent gaming keyboard that is frequently criticized for its anti-ghosting capabilities or lack thereof. With this particular keyboard, the common complaint is that gamers can't press certain 3-key combinations like:

Ctrl + W + R (Crouch + Forward + Reload)

In this case, after pressing the first two keys (Ctrl + W), the third key (R) doesn't register. While key combinations like this may not be used by every gamer, it is a real problem...even with keyboards like this marketed towards gamers. Whether you are a gamer, a photoshop user, or power user of other software you may come across certain 3-key combinations/shortcuts that may not work. The circuitry in keyboards these days is designed in such a way that only certain key combinations work. Engineers optimize the circuitry so that the most common combinations will work, but the inherent drawback with the designs is that there will be combinations that just won't work. Again, I'll refer you to the Microsoft Applied Sciences article for a much more in-depth explanation.

My intent is not to single out the Microsoft keyboard, but to demonstrate that you may run into issues like this if you don't have a keyboard that has full n-key rollover support.

PS/2 vs USB Technical Limitations

Keep the following in mind if you have an n-key rollover keyboard that can be hooked up to your computer through either USB or a PS/2 port:

USB protocol limitation - A max of 10 simultaneous key presses are recognized, 6 non-modifier keys ('w', 'a', 's', 'd', etc) + 4 modifier keys (Shift, Caps, Ctrl, etc). Although you are limited to 6 regular keys you are still guaranteed that any combination of keys will be recognized properly if you have an n-key rollover keyboard. I would guess that most people would not need support for more keys than this. I would also guess that the 6 key limit may have had something to do with braille input requirements rather than someone choosing an arbitrary limit (although that doesn't explain why the limit exists in the first place).

PS/2 - There are no limitations when using a PS/2 connection with your keyboard. You will truly get full n-key rollover support.

When given the choice between using PS/2 or USB, it is generally recommended to choose PS/2 since it doesn't have the rollover limitations. However, if you enjoy hotplug support which PS/2 doesn't have, USB may very well be the better choice for you.

Testing Your Keyboard's Rollover Behavior

There are several ways you can test rollover behavior on your keyboard. Among those I list below are:

Manual Typing Test

Web-based Tests/Demonstrations

Desktop Software (both Linux and Windows examples)

Test: Manual Typing

Often you'll see people mention the double shift-key typing test. It is a basic test for demonstrating the problems that arise when keyboards don't support n-key rollover. The test involves holding down both the left and right shift keys and typing the following sentence while still holding down both shift keys:

the quick brown fox jumps over the lazy dog

Use the following text input field to test it out yourself:

With most keyboards, you will see something like the following which was typed on a wireless Logitech keyboard (this will vary for each keyboard since each keyboard is optimized for different key combinations):TE UIC RWN JUS VER TE LAY DG

You can see that a lot of characters were dropped during the test. This is what you should see:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG

Most consumer keyboards will not pass this test, so don't feel too bad that you have a crappy keyboard...because most keyboards are crappy like this. :-P

Trivia note in case you're not sure where this phrase came from:

"The quick brown fox jumps over the lazy dog" is an English-language pangram (a phrase that contains all of the letters of the alphabet). It has been used to test typewriters and computer keyboards, and in other applications involving all of the letters in the English alphabet. Owing to its shortness and coherence, it has become widely known and is often used in visual arts. -Wikipedia

Test: Web-Based

Microsoft Ghosting Demonstration

You can use the demonstration directly below or by going to the Microsoft Applied Science ghosting demo page here. Click within the demo and start pressing key combinations...

Tests: Desktop Software

Here are several desktop applications you can use to test n-key rollover functionality. The first one is Linux-based while the remaining ones are Windows-based.

Gnome Keyboard Properties (Linux-based)

Gnome is one of the desktop window managers for Linux and it has a great tool for testing n-key rollover even though that isn't its primary purpose. You can open the Gnome keyboard properties with one of the following methods:

Run 'gnome-keyboard-properties' from a terminal

Go to the System toolbar menu on the desktop > then select Preferences > then select Keyboard

Once the keyboard properties window is open, go to the Layouts tab and click on the Add... button to open up the on-screen keyboard. Be sure to select the correct Country and Variant, then click within the keyboard area to start using it.

If you regularly use Windows, you can still use the utility without having to install Linux. Just download an Ubuntu CD image (.iso file) from Ubuntu and either burn it to CD and run the Ubuntu desktop from the CD or install and run it from a USB stick...all without having to install Ubuntu on your hard drive. Further instructions for downloading and running it are on the Ubuntu website.

Aqua Key Test (Windows-based)

Aqua Key Test is a GUI application that shows an on-screen keyboard indicating the key presses that are being recognized. This is a small standalone executable that comes from Korea.

"Unlike ALL other keytest applications that I have tested (including commercial ones like PassMark KeyboardTest) this one is not tricked by fake strokes and checks only the real signals sent from your keyboard. What does this mean? This means that scripts and macro programs like AutoHotKey or AutoIt which generate keystrokes using the Windows API do not get picked up." -Geekhack.org Forums

This is another GUI application that shows an on-screen keyboard indicating current key presses. However, this one is trial-limited to 30 days after which you need to pay for the software. You can go to the Passmark website to download it.

87 comments:

The last two tests are okay, but the typing test doesn't prove anything about your keyboard's rollover capabilities. Any crappy USB keyboard can pass that test if the matrix is wired the right way. I know this because the crappy USB keyboard I'm using right now, which I know for a fact only has 3KRO, just passed it.

Corsair k70 LUX Passes everything with flying colors, literally, full rollover, I can hit every key on the keyboard at same time and they will register and work, On my USB 3.0 Corsair K70 LUX that I paid $150 CAD for

lol, suckers.....My wife loves me so much she got duped into a purchase of the Steel-Series 7 for yours truly. The board passed all the tests but has a huge price tag and comes without a full size backspace button. It is a pleasure to use with the performance of the black cherry switches and the extreme over-engineering of the construction. It is a solid keyboard and my first mechanical keyboard I have owned. It turned me into somewhat of a student of mechanical keyboards, the reason I've found this site.

How it does at this test doesn't necessarily tell you how it would do in everyday use. Some keyboards will handle some tests better than others and some tests worse. Really, the only way for your keyboard to do well is to type every character without fail (which the one I'm typing on now doesn't do).

This is a very informative page, but I think I might have found the exception to the rule. I'm using a PS/2 Microsoft Natural Keyboard Elite on a brand new Dell Optiplex 9010, and this is the result of the typing test:

TE UIC RWN JUS VER TE LAY DG

Before anyone says anything, it's not using a PS/2 to USB converter, it's a true PS/2 connection. So unless there is some trickery going on where the motherboard has a built in PS/2 to USB converter (which I don't think is true, the device manager shows a standard PS/2 keyboard), I think it actually performs worse than the standard USB keyboard Dell sent with my system. Actually, let me plug it in and find out!

HE QUIK BRON FO JUPS OER HE LA DOG

So here is what was missed:

PS/2 - H, Q, K, B, O, F, X, M, P, ZUSB - T, C, W, X, M, V, Z, Y

Yep, the PS/2 keyboard actually performed worse. Here they are side by side:

Viper6372, your Microsoft Natural Keyboard Elite is not a mechanical or N-key rollover board. The article is saying that:1. *IF* your keyboard is N-key rollover capable2. *IF* it is plugged into a PS/2 portThen any combination of keys will be recognized.

In your case, you don't fulfill requirement 1.

I just tried this on my MS Natural 4000, and it only missed the X. I'm sure if I tried the other software tests that there would be more letters missing.

On my new fully mechanical CoolerMaster Storm, with Cherry brown switches, I passed the typing test, even over USB.

In regards to your USB / PS/2 test, the article is saying that there are some operating system workarounds which allow more key combinations to happen even if the keyboard is non-mechanical.

Maybe these don't apply to PS/2 connected keyboards. Try connecting your cheap Dell with a PS/2 adapter, and see what happens.

I see your razor blackwidow and challenge you to put a rubics cube or other hard heavy object on the number pad. then something else on the arrow keys, and try again. Das keyboard 4 ultimate passed it, and I'm really curious to see how it compares.

I need some help here guys, my keyboard works perfectly, it can do all of the tests, but for some reason if I press Shift + W + E and press E two times, the E button will stick as if I was still holding it until I release Shift and W, which is what annoys me when I play games. It doesn't do it the other way around when I hold E and Shift, the W button does not stick. Is it because I've managed to use the E button so much that my mechanical keyboard has become a potato?

NOTES: (1) For Das Keyboard 4 Pro, I got the same result whether the NKRO feature is ON or OFF. This is the keyboard I use this in my home office.

(2) I actually had this keyboard for over 3 years, and I was quite surprised that it has NKRO.

(3) The K500 is positioned by Zalman as a gaming keyboard, although it doesn't claim in it's web site and product packaging that it has NKRO. Highly unusual for a gaming keyboard not to have NKRO feature. Even with its dismal NKRO performance, I still find it a decent gaming keyboard in actual practice, primarily due to the linear Kailh Red switch.

(4) This has the oddest behavior. The 'U' key gives the letter 'Q', 'K' generates down arrow, 'P' generates '*', and other keys generates random backspace keystroke. This behavior is consistent with 3 other models of Acer laptops I tested.

Just one last observation, and this is my opinion so please take it with a grain of salt: NKRO is a nice feature to have specially when I play games, but is not a deal breaker for me. It's the feel and sound of the keyboard that matters more becasue that's where majority of my typing experience lies. Mechanical keyboards, which I prefer, make me work faster -- not because they make me type faster, but because they're more consistent and reliable.

Very interesting blog. Alot of blogs I see these days don't really provide anything that I'm interested in, but I'm most definately interested in this one. Just thought that I would post and let you know. Laptop cu gia re

Yes i am totally agreed with this article and i just want say that this article is very nice and very informative article.I will make sure to be reading your blog more. You made a good point but I can't help but wonder, what about the other side? !!!!!!THANKS!!!!!! ACMarket Android