CodaCoda

Input Update Rate Analyzer

How often does your browser receive new input from your controller? Move a stick for a few seconds and see the rate, the gaps between updates and how steady they are.

This is the rate your browser delivers, not necessarily your controller’s USB or Bluetooth polling rate — the section below explains the difference.

Checking for controller support…
Start, then keep a stick moving in circles until it finishes.

While it measures, the page checks the controller as fast as the browser allows, which keeps one processor core busy for those seconds.

How to measure

  1. Connect the controller and press any button so the page can see it.
  2. Close other heavy tabs and keep this one in front: browsers slow down background pages.
  3. Start, and keep a stick moving in circles until the measurement finishes. A resting controller has nothing new to report.

Two numbers, two questions

Browser updates count every time the browser marked new data for this controller — the Gamepad API’s timestamp. Whether it moves on every report the controller sends or only when something changed is up to the browser and the controller’s driver, which is why the page measures values as well.

New values observed count every time the readings themselves changed. A controller that sends the same values twice in a row shows up once, so while a stick is moving this is a floor for the update rate, not a ceiling.

For each, the page shows the typical rate (from the median gap, so one long pause does not distort it), the spread of the gaps, the longest gap, a histogram, and every gap in order — a flat band is a steady rhythm, scatter is jitter.

Page checks is how often this page looked. During the measurement it checks as fast as the browser lets a page run code, so it sees updates the moment they exist; if it ever looked fewer than twice as often as updates arrived, the result says so.

Why this is not your polling rate

Between the controller and this page sit the operating system, its driver and the browser, and the browser collects controller data on its own schedule before it hands anything to a page. When the controller sends faster than that schedule, only the latest of its reports is there to see each time; when it sends slower, every report arrives. So the rate here can match the controller’s, or sit below it — it is the input as the browser delivers it, which is a true measurement of exactly that.

Games read controllers through their own path, not through a browser. What the controllers themselves report, from published measurements, is in the polling rate guide.

In Coda
Coda reads controllers directly, not through a browser, and its live telemetry shows the polling rate Coda itself receives, the rate it submits to the game, frame intervals and stalls — System → Live telemetry. What Coda does.

Controller polling rates explained · Gamepad Tester · Stick Drift Analyzer · All Controller Lab tools