System Guides‎ > ‎Hardware‎ > ‎Keyboards‎ > ‎


Key Blocking & Ghosting

    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.

    Key Blocking is as simple as it sounds; you experiencing it when you reach your maximum key roll over. So if you press 2 keys, and the third key is blocked on your board; then you just experienced blocking because your keyboard is only 2KRO.

Key Rollover (#KRO & NKRO)     

    NKRO is when you can press as many keys as you want at the same time, and all of them go through. This is similar to what some 'gaming keyboards' incorrectly market as "anti-ghosting", even though Logitech and Razer only apply it to the WASD cluster. Note that right now only PS/2 keyboards can exhibit full n-key rollover; though Microsoft and Ducky are just two companies who have already looked at designing NKRO over USB.

    #KRO, where # = Any Number, is the key roll over of your board; and stands for the maximum number of keys you can press without experiencing any key blocking.

    Many USB mechanical Keyboards are labeled as 6KRO, meaning any 6 keys can be pressed at once without the user experiencing blocking. This is generally enough for most users. Though a limited number of games may have a problem with 6KRO.
USB keyboards with 6KRO also allow for a maximum of 4 modifier keys to be used with those 6 normal keys. These modifiers include CTRL, ALT, Shift, & Super (Windows, Command, or Meta Key.)
Sometimes this also includes the FN key present on select keyboards.

Key Bouncing     

    All types of key switches - including rubber domes - do this. When you press a key, the switch "bounces" on and off very quickly as it sets into place. This causes keys to register multiple times for each press. Because of this, keyboards need to implement some sort of debouncing delay - so that once you press a key, the controller waits a certain amount of time before registering a keypress. As an example, Cherry MX switches need 5ms of debouncing time, while rubber domes need longer (exactly how long depends on their quality).

Polling Rates and Response Times     

    While it is very useful for mice, it's just about meaningless for keyboards. Let's assume for a minute that all switches have the 5ms debouncing time of Cherry MX switches (which is being very generous). Even if you had super human speed and reflexes, every single key would be delayed by at least that much. So really, any polling rate over 200Hz (at best) is absolutely useless, and nothing but market hype. It may even be a bit detrimental, because you'd be wasting CPU time polling the keyboard unneededly. And unlike USB keyboards, PS/2 boards aren't polled at all. They simply send the signal to the PC whenever they are ready to, which causes a hardware interrupt, forcing the CPU to register that keystroke.

PS/2 or USB?

PS/2 wins on three fronts:
  1. It supports full n-key rollover. 
  2. PS/2 keyboards aren't polled, but are completely interrupt based. 
  3. It is impossible for it to be delayed by the USB bus being used by other devices. 

    There are two types of USB transfer modes - the interrupt transfer mode (USB polls keyboard, when key is sensed the USB controller sends the interrupt to the CPU), and the isochronous transfer mode, which reserves a certain amount of bandwidth for the keyboard with a guaranteed latency on the bus. Unfortunately, there are absolutely no keyboards made that use the latter, because special controllers would have to be used, thus making it cost prohibitive.

    So if your keyboard supports both PS/2 and USB, and your PC has a PS/2 port, there's no reason not to use it.