DEV Community

Cover image for ⌨️ I built a browser-based Keyboard Diagnostic Suite to test NKRO, Chatter, and Latency
Chandra Sekhar Dey
Chandra Sekhar Dey

Posted on Edited on

⌨️ I built a browser-based Keyboard Diagnostic Suite to test NKRO, Chatter, and Latency

As developers, our keyboards are our primary tools. When a mechanical switch starts failing (hello, double-typing) or gaming chords start dropping inputs, the typical solution is to download a legacy, potentially sketchy .exe diagnostic utility. I wanted to solve this natively on the web.I recently shipped the Keyboard Diagnostic Suite: Testing Rollover, Chattering, and Performance, a client-side web application built to evaluate hardware and firmware input limits directly in the browser.Here is how the core modules work under the hood:Switch Chattering Detection: Mechanical switches suffer from "contact bounce" as they age. The app measures millisecond intervals ($\Delta t$) between consecutive keydown timestamps on identical keys. If $\Delta t < 50\text{ ms}$, it flags the input as hardware chatter or a failing firmware debounce limit, whereas $80\text{--}200\text{ ms}$ registers as standard rapid human input.Matrix & NKRO Rollover: Tracks concurrent inputs to find hardware matrix limits (from older 2KRO/6KRO up to full N-Key Rollover) and detects ghosting when three or more keys share row/column intersections without isolation diodes.Input Pipeline & Latency: Evaluates polling intervals and computes browser event processing deltas (comparing Event.timeStamp against the execution queue) to isolate USB hub delays, KVM buffering, or heavy CPU IRQ loads.Client-Side Privacy: Everything runs 100% locally using native Web Performance and Keyboard Event APIs, meaning no keystrokes are ever sent to a server.You can try the live tool here with zero installation: keyboardtest.tech

Top comments (0)