Tool

Controller polling rate test

Keep a stick circling, press Measure, and this page counts how many new readings a second the browser hands it from your controller, with the typical gap between two readings and the longest one. It is the rate a web page really gets, which is what counts for browser games and for cloud gaming in a browser.

Run it

  1. Connect the controller and press any button on it.
  2. Start circling one stick, quickly and without stopping.
  3. Press Measure for 5 seconds and keep circling until the result appears.
  4. Run it again on the other connection, cable or Bluetooth, and compare the two.

Read the number

  • Updates a second. Worked out from the typical gap. A gap of 8 ms is about 125 a second, 4 ms is about 250, and 1 ms is about 1,000.
  • Typical gap. The middle value of all the gaps, so one hiccup does not move it.
  • Longest gap. The worst wait between two readings. One long gap among short ones is a late or lost report, which you feel as a stutter.

The single number says little by itself. Use it to compare: one controller on cable and on Bluetooth, or two controllers in the same browser.

If the controller does not show up

Climb this ladder, smallest step first:

  1. Press a button. A browser hides every controller from a page until a button is pressed while that page is in front.
  2. Click the page, then press again. The tab has to be the active one when you press.
  3. Reconnect it. Unplug the cable and plug it back in, or turn the controller off and on so it pairs again.
  4. Check that the computer sees it. On a Mac, a connected PlayStation, Xbox or Switch controller is listed in System Settings under Game Controllers. If it is missing there, the fix is pairing: controller connected but not working on a Mac has every step.
  5. Try a second browser. Browsers read controllers in different ways, so one that is missing in one browser can show up in another.

What this is not

This is not the controller's own polling rate. The page reads through the browser's Gamepad API, and the browser and the system collect the controller's reports on their own schedule first, so the number here can be lower than what the controller sends. A stick that is not moving sends nothing new, which is why the test needs you to keep circling. For delay you can feel in a game on a Mac, controller input lag on a Mac covers cable against Bluetooth and the fixes.

It works. Now give it a job

A tester tells you the controller is fine. On a Mac, InputConfig is the app I make for the next step: it turns the buttons and sticks you just tested into keys, the mouse pointer, clicks and scrolling, in any app or game. It is free, and its Live Visualizer draws the same live picture inside the app, with the touchpad and motion sensors a browser does not pass to a page. Test it here, then put it to work there.

Questions

How do I check my controller's polling rate?

Connect it, press a button, keep a stick circling and press Measure. After five seconds the page shows how many updates a second it received and the typical gap between two of them.

What is a good polling rate for a controller?

There is no single right number. A higher rate means less delay between your thumb and the game, and a steady rate matters as much as a high one.

Why is the result lower than my controller's advertised rate?

The page reads through the browser, and the browser and the system collect the controller's reports on their own schedule first. The number here is what reaches a web page, which can be lower than what the controller sends.

Related

Download InputConfig on the Mac App StoreFree. macOS 14 or later. No account, nothing leaves your Mac. Open source on GitHub.