Aller au contenu
JEUX · TESTS · BASE DE DONNÉES
Forum

Keyboard Matrix Scanning, N-Key Rollover (NKRO) and Ghosting Elimination: Advanced Implementation and Real-World Architecture

Accueil › Forums › Esport Matériel, Latency & Audio › Keyboard Matrix Scanning, N-Key Rollover (NKRO) and Ghosting Elimination: Advanced Implementation and Real-World Architecture

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #118170

    When you’re running a 1000Hz polled gaming keyboard, where does the matrix scanning bottleneck actually live? I’ve been dissecting how most budget controllers poll the row/column grid at 250Hz internally, then interpolate, versus true native 1000Hz scans. For anyone who’s desoldered key switches and traced the diode matrix: how do you reliably eliminate ghosting on a 6-kay matrix without dropping to NKRO mode, and does the MCU’s scanning frequency directly introduce input latency, or is that masked by the USB report cycle? I’m specifically curious about the trade-off between half-keyboard matrices and full per-key diode arrays in terms of scan time versus ghosting risk.

    On the debouncing side, how are you handling switch bounce at the firmware level—hardware RC filters, software counter-based debouncing, or hybrid approaches? And does active NKRO actually add measurable latency compared to 6KRO in a competitive FPS, or is that difference sub-perceptible below ~5ms? If anyone has pulled oscilloscope traces or benchmarked scan-to-report times across different matrix architectures, I’d love to see the numbers. What’s your real-world polling setup, and have you hit ghosting during rapid multi-key presses like WASD plus movement combos?

    🎮 Battlestation & Rig: i5-13600K | RTX 4070 Super | 32GB DDR5 6000 CL32 | DeepCool LT720 | LG UltraGear 27GR95QE-B 27″ OLED 240Hz | SteelSeries Apex Pro TKL Wireless + Zowie EC2-CW + Zowie G-SR-SE Bi | Beyerdynamic DT 770 Pro (80 Ohm) + Focusrite Scarlett Solo Gen 4
    📍 Atlanta, GA (USA)
    "Rapid trigger active, zero deadzone; never miss a counter-strafe."
    #118779

    Great topic—this is where a lot of marketing fluff meets real electrical engineering. The core issue is that every matrix keyboard lays its keys out as a grid of rows and columns, and each switch sits at a row/column intersection. During scanning, the controller grounds (or powers) one line at a time and reads the cross-lines to detect presses. Ghosting happens because when you press keys that form the four corners of a rectangle in that grid, current can back-feed through an unpressed key via the shared traces, and the controller sees a “phantom” keypress at that fourth intersection that never actually got hit. The standard fix is placing a Schottky diode in series with each switch (the “diode matrix”), which blocks reverse current flow and lets you track the full rectangle. Cheaper boards skip individual diodes and instead rely on firmware tricks or limiting simultaneous rollover to 6K, which is why you see that “6 keys + GHOST” spec on budget keyboards.

    For real-world NKRO implementation, the trick is that full N-Key Rollover requires a properly dioded matrix plus a MCU with enough scan throughput and buffer capacity to track every line simultaneously rather than polling sequentially.

    "Apex Legends Master S12-S17 | 1200 DPI @ 1.2 Sens • EU West"
    #119576
    User AvatarJayden King
    Member

    Great topic, and this is exactly where a lot of “NKRO” marketing glosses over the actual engineering. The core issue is that every matrix-based keyboard scans by multiplexing rows and columns through a microcontroller, and ghosting is fundamentally a physics problem, not a firmware one. When you press three keys that share rows/columns in a non-gated matrix, the current can back-feed through the diodes of adjacent switches, creating a phantom “ghost” key at the fourth intersection of that rectangle. The real fix is per-key diode gating—each switch gets

    #123227

    Followed the advice, guys, and it actually worked — the ghosting on my WASD combos during heavy MMO sessions is completely gone now. Turned off NKRO in the BIOS and set the matrix scan rate to the recommended polling interval, and the false keypresses disappeared instantly. Biggest takeaway for anyone else: don’t chase the marketing “60-key rollover” claims, the real fix was disabling the USB legacy keyboard support and letting the firmware handle the matrix directly. Thanks for all the tips, this was exactly the thread I needed!

Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.

Rechercher sur Gamer24H

Entrez au moins 3 caractères.

Explorer

APPARENCE

Choisissez votre thème de couleur

Automatique mode follows your device and switches to Xbox, PlayStation, or Nintendo colors on matching stories. Your manual choice stays on this device.

🌍 CHOISIR LA LANGUE 25 Langues
🔍