01 // Polling Rate vs. Scan Rate
There is a critical distinction between how often a keyboard *reports* data and how often it *scans* its own matrix.
- Polling Rate: The frequency (in Hz) at which the PC asks the USB controller for updates.
- Internal Scan Rate: The frequency at which the keyboard's MCU checks the physical switch states.
A keyboard can have an 8000Hz Polling Rate, but if its Internal Scan Rate is only 1000Hz, the effective accuracy is still limited to 1ms intervals. True high-performance boards synchronize these two frequencies.
| SPECIFICATION | INTERVAL | JITTER TOLERANCE |
|---|---|---|
| 125 Hz (Standard) | 8.0 ms | High (±4ms) |
| 1000 Hz (Gaming) | 1.0 ms | Medium (±0.5ms) |
| 8000 Hz (Hyper) | 0.125 ms | Ultra-Low (<0.1ms) |
02 // Browser Input Pipeline Jitter
When testing in a browser, your input travel through several layers: Hardware → USB Buffer →
OS Kernel → Browser Process → JavaScript Event Loop.
Each layer adds potential **Jitter**. The Cytific KB Tester bypasses standard
throttling by utilizing pointerrawupdate and high-resolution
performance.now()
timestamps to isolate the physical reporting interval from the browser's paint cycle.
03 // The "Debounce Delay" Tax
Physical switches need time to stop vibrating (bouncing) before they are considered "pressed." Traditional debouncing algorithms add a static delay (e.g., 5ms or 10ms) to every press.
Advanced Optimization: Modern "Hall Effect" or optical switches don't suffer
from
mechanical bounce, allowing for 0ms Debounce. This can shave up to 15ms off your
total
reaction time in competitive environments.
04 // OS-Level Latency Tuning
The operating system itself can be a bottleneck. To achieve the cleanest results on our diagnostic graphs, consider these professional tweaks:
Disable Filter Keys
Windows accessibility features like 'Filter Keys' inject artificial delays into the input stream to ignore accidental repeats.
USB Power Management
Disable 'USB Selective Suspend' in your power plan to prevent the controller from entering low-power states between polls.
Process Affinity
For the most stable 8000Hz polling, isolate the browser process to a specific CPU core to minimize context switching jitter.