MouseLatencyTester 1.1.0
Knowing which mouse is plugged in β without guessing.
Install
Download LatencyTester-1.1.0-Setup.exe below, or use Settings β Check for updates if you already have 1.0.0.
Verify against SHA256SUMS.txt:
2E857CC0623B01330956A15EEDE558319673110A80D4E455C418B87228E9AFC3
Mouse detection
Devices β Detect connected mouse reads the USB string descriptors and fills in the profile name, manufacturer and serial.
The Windows registry is no help here β it only ever reports the generic INF name "HID-compliant mouse" β so the descriptors are read directly with HidD_GetProductString. That means the name you get is often the internal or dongle name rather than the marketing one: an ATK F1 reports as Compx Wireless mouse 8k dongle-L. Rename it to whatever you like. The profile is linked to the device by its VID:PID hardware ID, not by its name, so the name is yours to change.
Once linked, plugging that mouse in selects its profile automatically at startup.
If several devices expose a mouse collection β a keyboard with mouse emulation, for instance β you get a picker instead of a guess. Detection only fills the identity fields; anything you already typed into model, switch type or notes is left alone.
Polling rate measurement
Live test β Measure counts the mouse's actual Raw Input reports for two seconds while you move it, then fills the field with the nearest standard rate and reports the figure it really counted.
It measures what the mouse achieves, which is not always what it is configured for. If you do not move enough, it says so rather than inventing a number, and it refuses to run at all during test mode so it can never sit beside the timing path.
The rate is intervals divided by the time those intervals span. Counting over wall-clock under-reports whenever your hand pauses, and taking the median interval over-reports whenever Windows delivers a batch of reports at once β both were observed while validating this against synthetic input at known rates, where the formula tracked injected rates from 125 Hz to 4 kHz to within 0.1%.
DPI β not detected, and not faked
No Windows API exposes mouse DPI. It lives entirely inside the mouse, and vendor software reads it over undocumented HID reports that differ per manufacturer. The field stays manual, with a tooltip saying why.
A guessed DPI written into a benchmark's metadata would be worse than an empty one, so it is left blank for you to fill in from your mouse's own software.
Also in this release
- Schema v2 adds
devices.hardware_id. Your existing archive is migrated in place β columns are added, nothing is dropped or recreated. - Every Win32 call in the new module declares its
restype/argtypes. Without that ctypes truncates 64-bit handles on x64, and a truncatedGetModuleHandleWresult madeRegisterClassWfault with an access violation β caught before release. - 246 tests, 87% coverage of the non-GUI code, CI on Windows and Linux.
Unchanged
The measurement pipeline is untouched: TRIGβclick association, tβ/tβ, the calibration offset, the 2β100 ms filter, debounce/re-arm, test mode and the OLED freeze all behave exactly as in 1.0.0. Firmware is still v1.4 β no reflash needed.
Full Changelog: v1.0.0...v1.1.0