To use this tool, try to press and release a key as quickly as possible. I find flicking the edge of a keycap works well to create very short key presses.

Shortest Key Press Estimated Scan Rate
press any key press any key

## Theory

The scan rate of a keyboard measures how frequently the keyboard updates (internally) the state of its key matrix. Normally, the scan rate is limited by the bounce time of the key switches used and the debounce algorithm used. For example, the debounce time of Cherry MX mechanical switches is rated at ≤5ms. So assuming a simple algorithm is used that waits 5ms for a switch signal to stabilize, then the scan rate would be limited to 200Hz.

The idea used here is that the scan rate of the keyboard effectively determines the shortest delay between a key press and a key release. Using this information we estimate the scan rate as: `ScanRate = 1 / ShortestKeyHold`.

Note that scan rate is not the same as poll rate. On a USB device, poll rate refers to how often the OS will check the USB device for updates. The poll rate together with the scan rate determines the maximum input latency. For example, take the example above were the scan interval is 5ms. If our poll rate is 1000Hz, then the keyboard is polled every 1ms and so the maximal input latency is 1+5=6ms. However, if the scan rate were 100Hz, then the maximal input latency would be 10+5=15ms. Note: It is possible to look up the poll rate of a USB device using software.

Take these calculations with a grain of salt.