Controller Polling Rate Test

This controller polling rate test reports how often the browser hands the page a new gamepad sample. Move a stick and read the hertz figure. It is a real measurement of the browser path. It is not the USB poll rate printed on a controller box.

This page focuses on the browser-observed update rate. Every other check is still here.

Inputs stay in this browser. Nothing is uploaded.

Press any button on the controller. Browsers hide gamepads until you press a button on this tab.

Browser-observed rate—
Sample age (ms)—
Left stick0.00
Right stick0.00
Offset—

This is how often the browser hands us a new sample. It is not the controller’s USB poll rate. How old the newest sample is when the page draws it. This is not display lag and not in-game lag.

Buttons

Face

YTriangleXB30.00
BCircleAB10.00
ACrossBB00.00
XSquareYB20.00

D-pad

Up0.00
Right0.00
Down0.00
Left0.00

Shoulders and triggers

LBL1LB40.00
RBR1RB50.00
LTL2ZLB60.00
RTR2ZRB70.00

Center and sticks clicks

ViewCreate−B80.00
MenuOptions+B90.00
XboxPSHomeB160.00
LSL3LSB100.00
RSR3RSB110.00
ShareTouchpadCaptureB170.00

Sticks

Left stick0.00, 0.00 · 0.00
Right stick0.00, 0.00 · 0.00

Up on the plot is up on the stick. The numbers keep the browser’s sign: positive Y is usually down.

Vibration

Motion

Gyro, accelerometer, touch position, and battery are not part of the standard Gamepad reading. Chrome and Edge on desktop can request a DualSense or DualShock 4 over WebHID.

Full checkup

  1. Buttons
  2. Sticks
  3. Triggers
  4. Rumble
  5. Review

A short pass over buttons, both sticks, both triggers, and vibration.

Raw data
Raw values appear here after a controller connects.

How to measure controller polling rate in a browser

  1. Focus this tab. Background tabs often slow gamepad delivery.
  2. Move a stick in a slow circle. The rate only counts samples whose timestamp actually changes.
  3. Read the median hertz. A handful of samples is noise. Wait until the number settles.
  4. Change one thing. Repeat on USB, then Bluetooth, or in another browser. Compare those, not a spec-sheet 1000 Hz.

The tester stores the gap between Gamepad timestamps and shows the median, converted to hertz. Gaps under 1 ms and gaps over 200 ms are dropped so a stutter does not dominate. The developer notes show the same timestamp field.

What a browser can and cannot measure

A wired competitive pad may poll USB at 1000 Hz. Chromium often delivers gamepad samples on a cadence near 125 Hz, or tied to the animation frame, whichever path it is using. The page can only count deliveries it receives. A higher USB rate can still feel better in a native game while this number stays flat.

How to read your update rate

  • The chip stays on the prompt until you move a stick or hold a button. A still pad may not refresh its timestamp.
  • A stable number in the tens or low hundreds of hertz is normal for a browser.
  • A number that collapses when the window is in the background tells you the browser is the bottleneck.
  • Compare sample age on the latency test if the rate looks fine and the pad still feels late.

USB polling rate vs the browser-observed rate

USB polling is how often the host asks the device for a report. The browser-observed rate is how often that report becomes a Gamepad timestamp you can read. Operating systems, HID stacks, and the browser coalesce reports. Bluetooth adds its own interval, often coarser than a wired report. Use this page to see that difference on your machine. Use a hardware analyzer if you truly need the USB figure.

Why the rate changes

  • USB versus Bluetooth on the same pad.
  • A focused tab versus a background tab.
  • Chrome versus Firefox versus Safari. Their delivery clocks differ.
  • Steam Input or another remapper sitting in the middle.
  • A display running at a low refresh rate, if the browser ties samples to frames.

The write-up of what the number is, and what to ignore, is What does a controller polling rate test actually measure?.

Frequently asked questions

Why is my 1000 Hz controller not showing 1000 Hz?

Because this page measures browser delivery, and browsers do not surface every USB report. The pad can still be polling faster than the page can see.

What number should I expect?

Often something near a frame rate or near 125 Hz in Chromium, once you are moving a stick. Treat a large gap between USB and Bluetooth as the finding, not a specific “good” hertz.

Does a higher number here mean less input lag?

Not by itself. Rate is how often samples arrive. Sample age is how stale the latest one is. A game adds more delay on top. Read both chips.