Technical guide

Keyboard Rollover, Ghosting, and NKRO Explained

Understand keyboard rollover, 6KRO, NKRO, ghosting, anti-ghosting, matrix limits, and why USB does not impose a universal six-key limit.

On this page
  1. Rollover describes how many simultaneous key presses the keyboard can report correctly
  2. Ghosting and a rollover limit are related problems, but they are not the same thing
  3. The familiar six-key USB limit comes from a boot-compatible HID report, not USB as a whole
  4. 6KRO can be sufficient even when NKRO is technically more capable
  5. NKRO does not mean lower latency or a faster keyboard
  6. Test the combinations you actually use, not just a random key mash

Rollover describes how many simultaneous key presses the keyboard can report correctly

Keyboard rollover is the ability to recognize multiple keys held at the same time. A keyboard described as 6-key rollover, or 6KRO, is designed to report at least six simultaneous ordinary key presses within the behavior its manufacturer specifies. N-key rollover, usually shortened to NKRO, means the implementation is intended to report an effectively unrestricted set of simultaneous keys rather than stopping at a small fixed count.

That number is not determined by whether the keyboard is mechanical or membrane. The key matrix, electrical isolation, controller, firmware, USB HID report format and operating mode all participate in the input path. Logitech, for example, currently specifies 6-key rollover with anti-ghosting on the mechanical G413 TKL SE, while Corsair specifies full-key NKRO with anti-ghosting on the mechanical K100 RGB. The switch category alone therefore cannot tell you the rollover capability.

Terms that are often mixed together in keyboard specifications
TermWhat it describesWhat it does not prove
6KROA rollover implementation designed around six simultaneous ordinary keys in the relevant modeThat every seventh physical key must always fail, or that USB itself can never report more than six keys
NKROAn implementation intended to report an effectively unrestricted set of simultaneous keysLow latency, high polling rate, mechanical switches, or better key feel
GhostingAn ambiguous or false key state caused when a matrix cannot uniquely resolve a pressed-key combinationA simple synonym for every missed key press
Anti-ghostingMeasures in the matrix/controller design intended to prevent problematic false or ambiguous combinationsA standardized promise of full NKRO unless the product explicitly specifies it
Blocking / maskingDeliberately suppressing an ambiguous key event rather than reporting a false keyThat the keyboard generated a phantom key

Ghosting and a rollover limit are related problems, but they are not the same thing

Many keyboards arrange switches as rows and columns so the controller can scan a matrix instead of dedicating an independent controller input to every key. Certain combinations in a matrix without sufficient isolation can become electrically ambiguous. A controller may then be unable to determine exactly which switches are closed. A false extra key inferred from that ambiguity is traditionally called a ghost key.

A design can avoid sending the false key by blocking or masking one of the ambiguous inputs. From the user’s perspective that may look like a key simply failed to register, which is why “ghosting” is often used loosely for several different symptoms. Rollover is the broader simultaneous-key capability; ghosting describes a specific ambiguity problem. Anti-ghosting is also a vendor feature term rather than a precise universal rollover count, so the useful specification is the actual supported key combinations or stated KRO level.

The familiar six-key USB limit comes from a boot-compatible HID report, not USB as a whole

The USB Implementers Forum HID specification defines a simple keyboard report format used for boot compatibility. In that format, the standard descriptor provides six array fields for non-modifier keys. The specification says the keyboard reports ErrorRollOver when the number of pressed keys exceeds the report count; with the Appendix B keyboard descriptor, that limit is six non-modifier keys. Modifier keys such as Shift and Control are represented separately.

That does not impose a universal 6KRO ceiling on every USB keyboard. HID report descriptors are self-describing, and a keyboard in its normal report protocol can use a different report layout. Modern NKRO keyboards can therefore report more simultaneous keys over USB. A product may still expose a 6KRO or boot-compatible mode for firmware, KVM, legacy-host or compatibility reasons, so behavior can differ between pre-boot firmware and the operating system without contradicting the keyboard’s normal NKRO specification.

6KRO can be sufficient even when NKRO is technically more capable

Most ordinary typing uses far fewer than six non-modifier keys simultaneously. Many games also need only a modest combination such as movement keys plus an action key while modifiers are handled separately by the host report format. That is why a correctly designed 6KRO gaming matrix can work without practical conflicts for many users even though NKRO provides a larger simultaneous-input envelope.

The important qualifier is the matrix. A keyboard marketed around a limited gaming matrix may guarantee useful combinations rather than every possible six-key set, while another implementation may support six arbitrary ordinary keys. If a game, rhythm application, accessibility workflow, chorded input method or multi-user setup requires unusual combinations, verify the exact product rather than assuming that the marketing label covers the required keys.

NKRO does not mean lower latency or a faster keyboard

Rollover answers how many simultaneous states can be represented correctly. It does not specify how quickly the keyboard scans its matrix, how it filters switch transitions, how often it sends USB reports, or how the host and application process them. Polling rate is therefore a separate specification, as are switch actuation behavior and end-to-end input latency.

This distinction also prevents a common purchasing mistake. A full-NKRO keyboard is not automatically faster than a well-implemented 6KRO keyboard when only one or two keys are changing. Likewise, an 8000 Hz report rate does not prove NKRO. Evaluate rollover when simultaneous combinations matter and evaluate latency evidence separately when response time matters.

Test the combinations you actually use, not just a random key mash

A practical rollover test should hold a repeatable set of ordinary keys and verify that every press and release is visible to the operating system or a trusted keyboard-event tester. Test the combinations that matter in the target game or application, then deliberately try combinations in different areas of the board. Randomly pressing a handful of keys can miss matrix-specific blocking patterns and can also overstate a six-key result when modifier keys are included.

If behavior changes only in BIOS, UEFI, a KVM switch or another pre-boot/compatibility environment, check whether the keyboard has a documented compatibility or NKRO mode before treating the hardware as defective. If the same physical combination consistently loses or invents a key in the normal operating system, compare that result with the exact model’s rollover specification. Product-level evidence is more useful than assuming every keyboard of the same switch type behaves alike.

Sources

Primary and technical sources

Technical details can vary by exact model, firmware, and platform. These are the sources used for the factual claims in this article.

  1. 01 USB Implementers Forum

    USB HID specification and keyboard report requirements
  2. 02 USB Implementers Forum

    USB-IF HID specifications and current usage tables
  3. 03 Logitech G

    Logitech G413 TKL SE specifications including 6-key rollover and anti-ghosting
  4. 04 Corsair

    Corsair K100 RGB specifications including full-key NKRO and anti-ghosting

Related

Compatibility & upgrades

PC Front-Panel USB Compatibility Explained

Match a PC case front USB-A or USB-C cable to the correct motherboard internal header, data rate and feature support before building or upgrading.