Skip to main content
GEARCHECK LAB
Controller Lab // Signal Activity Diagnostics

CONTROLLER POLLING RATE TEST

Estimate how often the browser receives a fresh controller timestamp while you move a stick or press controls. A dedicated high-frequency browser sampler watches the Gamepad API timestamp for changes, while the page also reports the sampler's own cadence so you can see when the browser may be limiting the estimate.

LOCAL TESTNo input history is uploaded. Measurements exist only in this browser session.
Live diagnostic

Fresh gamepad updates per second

AWAITING CONTROLLER
Connect a controller, press a button, then keep a stick moving.The Gamepad API often exposes new timestamps only when input changes. Continuous stick movement gives a more useful estimate than leaving the controller idle.
0UPDATES / SECOND

Move one stick in small circles for several seconds. Compare the rolling value rather than a single instant reading.

How to run a repeatable controller polling test

  1. Connect one controller, press a button, and keep this tab visible in the foreground.
  2. Close heavy background work, then move one stick in the same small-circle pattern for at least ten seconds.
  3. Record the rolling average, recent low/high range, timestamp spread, and sampler cadence—not just the largest instant number.
  4. Reset the sample and repeat twice without changing the browser, port, cable, controller profile, or movement pattern.
  5. For USB versus Bluetooth, change only the connection and repeat the same three runs.
  6. If results conflict, repeat in another supported browser before attributing the difference to hardware.

What the controller polling result measures

The tool counts changes to Gamepad.timestamp exposed by the browser while you generate input. The rolling average comes from recent timestamp intervals; the low/high range counts fresh timestamps in one-second windows.

The sampler cadence is a separate ceiling check. When the observed controller rate gets close to that cadence, JavaScript may not be checking often enough to observe every browser-exposed update.

This is a browser-visible update estimate, not a certified USB report rate, controller latency measurement, or manufacturer specification.

Worked controller polling result examples

Observed patternCareful interpretationUseful next check
124–127 updates/s across three USB runs; sampler near 900/sThe browser-visible rate is repeatable and far below the sampler ceiling. Report it as about 125 browser updates/s, not as a certified 125 Hz USB rate.Repeat with the same movement in another supported browser if you need a stronger comparison.
Estimate near 480/s while sampler varies around 520–590/sThe measurement is too close to the observation ceiling for a confident hardware claim.Reduce background load, keep the tab foregrounded, and compare with a lower-level USB measurement if the exact report rate matters.
USB repeats near 250/s; Bluetooth repeats near 120/sThe connection modes expose a repeatable difference in this browser setup, but transport, firmware, drivers, and browser behavior are all possible causes.Repeat matched runs, then compare responsiveness in the actual game or app.
Zero or very low updates while the controller is untouchedThis does not show a disconnected or slow controller by itself; many timestamps advance only when input changes.Move one stick continuously and confirm the connection with the controller connection test.

Limits that affect browser-visible update rate

  • Browser scheduling: timer clamping, background-tab throttling, CPU load, and power saving can reduce observation cadence.
  • Input activity: a device may reuse its timestamp until a stick or button value changes.
  • Transport and software: USB ports, Bluetooth radio conditions, drivers, firmware, controller profiles, and operating-system mapping can alter what reaches the Gamepad API.
  • Non-standard mappings: the timestamp can still change, but button and axis layouts may not match common assumptions.
  • Latency: update rate alone does not include game processing, frame queues, rendering, or display delay.

How to compare results without overclaiming

Use the median pattern across repeated runs. Keep everything except the variable you want to compare unchanged, and describe the result as browser-observed. A stable number can support a connection or browser comparison, but it cannot diagnose a cable, radio, firmware, or controller component on its own.

GearCheck Lab’s thresholds are screening aids, not repair or warranty decisions. Read the testing methodology for evidence rules and the privacy policy for site data practices.

Controller polling rate FAQ

Is this the same as a controller's USB polling rate?

No. This page counts fresh Gamepad API timestamps exposed to JavaScript. A USB protocol analyzer measures a lower layer and may see reports the operating system or browser does not expose.

Why does the result show zero while the controller is idle?

Some devices and browsers advance the gamepad timestamp only when an input value changes. Keep one stick moving smoothly during each sample.

Why does the page show sampler iterations per second?

JavaScript must check often enough to notice timestamp changes. If the observed update rate approaches the sampler cadence, the browser may be limiting the estimate.

Why can Bluetooth look lower or less stable than USB?

Wireless transport, radio conditions, power management, drivers and firmware can all affect browser-visible timing. Repeat matched samples before drawing a conclusion.

Does a higher update rate prove lower controller input lag?

No. Update frequency is only one part of end-to-end latency. Firmware, transport, operating-system scheduling, the game engine, frame timing and the display also matter.

Does this test upload controller input or identify my controller?

The measurement and recent history stay in the current browser tab. The page reads the Gamepad API locally and does not upload button or stick samples.