Skip to content

MouseLatencyTester 1.1.0

Choose a tag to compare

@PrimeBuild-pc PrimeBuild-pc released this 19 Aug 09:50
· 8 commits to main since this release

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 truncated GetModuleHandleW result made RegisterClassW fault 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