First, check out the Keyboard Glossary for basic terms, these will be used in this guide and throughout the section and will help you make sense of the information presented.
Modern keyboards use a matrix to detect when keys are pressed. This is required so each individual key (of which there may be over 100) doesn't need to be connected to the board controller separately.
The event when two keys on the board are pressed, and a third key that you didn't press is triggered. 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.
The event when maximum key rollover is reached and the computer doesn't register certain keys that are pressed. This occurs due to the way the keyboard checks which keys are pressed. To fix the ghosting issue, many boards are set to not register the input of a given key if the input is received at the same time as certain other keys. This can be problematic if you actually want all those keys to register at the same time.
This can be a little hard to comprehend, so consider this example:
Imagine the keys Q, W and E are set up on the board so that if you press Q and W then E might is triggered due to ghosting. Now imagine to combat this, a block is in place so if you press Q and W, E prevented from registering. Now imagine you're playing a game e.g. League of Legends where you may need to use Q, W and E at the same time, but due to key blocking, you can't use all 3 keys. To fix this issue, many board manufacturers use a matrix optimised for gaming, this prevents common key combinations such as Q, W and E from having any troubles with ghosting or key blocking.
Key Rollover (#KRO & NKRO)
NKRO is the ideal rollover for a keyboard, no ghosting or key blocking issues and any number of key combinations can be used at the same time. This property is similar to what some peripherals manufacturers incorrectly market as "anti-ghosting", even though Logitech and Razer only apply it to the WASD cluster.
Note that despite the precise definition, there are two different versions of NKRO, true NKRO and simulated NKRO.
As a general rule, if you're looking for true NKRO, then PS/2 is the interface for you. Due to the ways PS/2 and USB handle input, USB is only really capable of simulated NKRO by implementing various tricks e.g. having the computer register it as multiple devices. While this can let you functionally have NKRO in most situations, in some scenarios such as on particular operating systems, you may run into issues.
For many cheaper keyboards use #KRO (where # = any integer), where you can press # keys before experiencing key blocking.
Many USB mechanical Keyboards are labelled as 6KRO, this is generally enough for most users. 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.
As for what #KRO you'll need, realistically you will never need more than 10KRO (10 fingers and all that), however some people may prefer NKRO for completeness' sake.
All types of key switches, including rubber domes, can 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.
- Supports full NKRO.
- PS/2 keyboards aren't polled, but are completely interrupt based.
- Impossible for it to be delayed by the USB bus being used by other devices.
- PS/2 is not natively designed to be hot-swappable, in some situations unplugging and replugging a PS/2 device into the computer will render it unusable until the system is restarted. This is not always the case however, if the system drivers recognize the device then this will not be an issue.
- PS/2 connectors aren't as durable as some more modern connectors, as such they can be damaged from repeated unplugging/ replugging and suffer from bent or broken pins.
- Easily hot-swappable due to the design of USB.
- Much more popular interface in modern devices than PS/2
- Not as compatible with NKRO
- Sometimes has issues with BIOS or waking up from sleep