Polling Rate Tester

Measure how often your browser actually receives new data from your controller, see your best matching rate among 125, 250, 500, and 1000 Hz, and understand exactly where a browser based reading hits its own ceiling.

What this measures, and where the ceiling is

Polling rate describes how many times per second your controller sends fresh data to your computer over USB or Bluetooth, a number set by the controller's own firmware and reported in specification sheets as 125, 250, 500, or sometimes 1000 Hz. A browser cannot read that raw hardware polling rate directly, since the operating system sits between the controller and the page, and a webpage can only check for new data once per rendered frame through the same animation timing system every page uses for smooth motion.

That creates a real, hard ceiling worth understanding plainly. Most displays and browsers render at 60 frames per second, which puts a practical limit of roughly 60 checks per second on what any webpage can ever observe, regardless of how fast the controller underneath is actually polling. A controller genuinely polling at 1000 Hz and one polling at 125 Hz can both appear similar from inside a browser if your display itself is only refreshing at 60 Hz, since the page simply cannot check any faster than its own frame rate allows. This tool reports the fastest, most consistent update interval it can actually observe within that ceiling, and is upfront below about what that number can and cannot tell you about your controller's true rated polling rate.

Run the test

Live status

Checking for a controller…

No controller detected

Connect a controller by USB or Bluetooth, then press any button. Most browsers will not notice it until you do.

How to read your results

The headline number and nearest rate

This is the fastest sustained update rate this page was able to observe, converted into an approximate Hz figure and matched against the four common marketed polling rates. Treat the matched rate as the closest bracket your observed behaviour fits into within this page's own limits, not a certified reading of your controller's actual firmware setting.

Display ceiling and whether your reading is limited by it

This shows your display's approximate refresh rate, detected the same way the dedicated Refresh Rate Test on this site measures it, since that number sets the hard ceiling on how fast this page can ever check for new controller data. If your measured rate lands suspiciously close to this ceiling, the flag here will say so directly, since that is a strong sign your controller is capable of polling faster than this specific test was able to observe, rather than a sign its true rate is actually limited to what you see.

Average interval and the graph

Average interval is the mean time in milliseconds between one new controller reading and the next, the raw number the headline Hz figure is calculated from. The graph plots each individual gap as its own bar, so a controller polling steadily shows a flat, even row of bars, while one with an inconsistent connection, commonly seen over Bluetooth under interference, shows a row with scattered taller bars representing momentary stalls.

Why a browser cannot show your true polling rate above 60 to 144 Hz

A web page updates through requestAnimationFrame, a browser timing system tied directly to how often your screen actually redraws, which for the overwhelming majority of monitors is 60 times per second, or up to roughly 144 to 240 times per second on a high refresh rate gaming display. Every single time that callback fires, the page can check what the controller currently reports, but it cannot check in between those moments no matter how fast the underlying USB or Bluetooth connection is actually delivering fresh data behind the scenes.

This means a controller rated for 1000 Hz polling is genuinely sending update packets a thousand times per second at the hardware level, information that matters enormously for the operating system and any native application reading it directly, but a browser sat on top of a 60 Hz display will only ever get the chance to notice roughly 60 of those moments per second, observing a small, evenly spaced sample of a much faster stream rather than the full picture. A high refresh rate monitor genuinely raises this ceiling and lets a browser get meaningfully closer to a controller's true rate, which is exactly why the display ceiling reading on this page matters as much as the headline number itself.

Getting the most accurate reading this method allows

Use a high refresh rate display if one is available to you, since a 144 or 240 Hz monitor genuinely raises the ceiling this test is working against and lets your measured rate climb meaningfully closer to your controller's true rated speed. Keep the controller actively moving throughout the test, a stick rolled in a slow continuous circle or a trigger held at a constant partial pull, since a controller sitting completely still can sometimes report the exact same value across several consecutive frames in a way that looks like a slower update rate than is actually happening.

Close other demanding browser tabs and background applications before testing, since anything competing for your system's rendering budget can cause the page itself to occasionally miss a frame, which would show up here as an artificially lower reading unrelated to your controller at all.

Troubleshooting

My result reads close to 60 Hz no matter what I do

Check the display ceiling reading on this page. If it also reads around 60 Hz, your monitor's own refresh rate is very likely the limiting factor, not your controller, and this is the expected outcome described in the scope section above rather than a sign anything is wrong with your hardware.

The graph shows scattered tall bars rather than a flat row

This points to inconsistent delivery, most commonly seen over Bluetooth in an area with other 2.4 gigahertz interference nearby. Try a wired USB connection if available and compare the two results directly.

My result seems to change between attempts

Run the test for a longer stretch, at least twenty to thirty seconds of continuous controller movement, before judging the result, since a short burst is more easily skewed by a single missed frame than a longer, steadier sample.

Nothing happens when I connect a controller

Press a button first. Many browsers will not register a controller until they see its first input.

Need help?

If your result looks unusual, the display ceiling reading seems wrong, or you want a second opinion on what your measured rate actually tells you about your hardware, reach out directly. A short description of what you are seeing, along with your controller model, monitor, and browser, is normally enough to help track down what is going on.

info.gpadviewer@gmail.com