A new version of our KeyboardTest software tool has been released.

Among other changes it now has the ability to display the mouse polling rate (also known as the report rate) and display the raw mouse coordinates, in addition to displaying the screen pixel coordinates.

Here is a screen shot.



The messages per second value represents the mouse polling rate in the case of USB connected mice, or the interrupt rate in the case of PS/2 connected mice.

The default rate for a USB mouse is 125Hz. Meaning the mouse sends a report on it's current to the application or game 125 times per second. If the mouse isn't moving, then no mouse movement reports reach the application.

A rate of 125Hz means at most you can get a mouse cursor update each 8 milliseconds. A rate of 500Hz means an update every 2ms. Which might be critical in some games.

The polling rate is also linked to the DPI (dots per inch, also called the counts per inch CPI). The DPI for a mouse represents the smallest amount of movement the mouse can detect. Generally if you have a mouse with a high DPI then you'll also want a higher polling rate in order not to miss the additional precision.

KeyboardTest can display change in the raw mouse coordinates. (the XY change value in the screen shot above). If you make very small movements with a high DPI mouse you can see the mouse coordinates change without the mouse moving on the screen. How much of a difference there is between the change in the raw coordinates and the screen coordinates depends on the mouse sensitivity set in the Windows control panel.

It isn't alwasy true that higher DPI is better. It doesn't make sense to have a mouse with a huge DPI setting. Most monitors run at 96DPI. So having a mouse with 4000DPI doesn't make sense, as 1 inch of mouse movement would cover twice the width of the screen.

Having a very high polling rate also isn't always a good thing. The higher polling rate reduces the available bandwidth on the USB bus and uses up more CPU time.