Guides

Controller Polling Rate Explained: What Hz Actually Means

What polling rate measures

Polling rate is how often a device reports its current input state over USB, measured in Hz (updates per second). A controller polling at 125 Hz sends a new report roughly every 8 ms; at 1000 Hz, roughly every 1 ms. It’s a property of how often data is communicated, separate from how the controller feels to hold or how precise its sticks are.

Where the number comes from

USB defines this timing at the protocol level. For low-speed and full-speed USB devices — the category most controllers fall into — the interval between reports is set directly in milliseconds by a descriptor field called bInterval, which historically defaults to values like 8ms (125 Hz) on many HID devices designed for broad compatibility rather than gaming (Microchip, “What is bInterval?”; ArchWiki, Mouse polling rate). High-speed USB devices instead use a different unit based on 125-microsecond microframes, which is what makes rates like 1000 Hz achievable on hardware and firmware built to support it.

Why gaming-focused controllers push for higher numbers

A higher polling rate shortens the maximum time between a physical input and the moment it’s reported to the computer — one contributor to overall input latency, though not the only one. The jump from 125 Hz to 1000 Hz is generally the one players notice most; further increases produce progressively smaller returns, since other links in the chain — the game engine, rendering, and display response time — increasingly become the limiting factor instead.

What a browser can and can’t measure

This is the part most polling-rate discussions skip: a webpage has no access to raw USB HID traffic. The Gamepad API only exposes controller state to JavaScript, and the practical way to observe changes is to check that state once per rendered frame via requestAnimationFrame — which means the observed update rate is capped by whatever the browser’s frame loop and your display’s refresh rate allow, regardless of how fast the controller itself is actually reporting to the OS underneath (MDN, Using the Gamepad API; W3C Gamepad specification).

That’s why the Controller Polling Rate Test on this site is explicit about labeling its result the browser-observed update rate, not the hardware polling rate. If your controller is rated for 1000 Hz but this test — or any browser-based test — shows something close to 60, 120, or 144, that’s most likely your display’s refresh rate acting as a ceiling on what the browser can observe, not evidence the controller itself is underperforming.

Practical takeaways

  • Treat any browser-measured Hz figure as a same-machine comparison tool — useful for comparing wired vs. Bluetooth, or one browser vs. another — rather than a substitute for a manufacturer’s hardware specification.
  • Wired (USB) connections are generally more consistent than Bluetooth, which adds its own radio scheduling overhead on top of the USB layer.
  • A higher polling rate is one input to overall responsiveness, not the whole picture — it won’t compensate for a game or engine that’s slow elsewhere in the pipeline.

Run the Controller Polling Rate Test on your own setup to see how wired and Bluetooth compare, and use the Gamepad Tester to confirm every button and stick is reporting correctly in the first place.

Sources