What the number means
A controller does not stream its position continuously. It sends a report — every button, trigger and stick value at that instant — at a fixed rhythm. The rate in hertz is how many reports per second; the interval between them is 1000 divided by the rate, in milliseconds.
| Rate | Interval |
|---|---|
| 125 Hz | 8 ms |
| 250 Hz | 4 ms |
| 500 Hz | 2 ms |
| 1000 Hz | 1 ms |
| 8000 Hz | 0.125 ms |
The interval is the most a movement can wait before the PC hears about it. At 250 Hz, a flick that starts just after a report is known up to 4 ms later. That is the part of input delay the polling rate decides, and it is only one part: the game, the display and everything in between add their own.
How fast common controllers report
| Controller | USB | Bluetooth |
|---|---|---|
| DualSense (PS5) | 250 Hz (SDL; Gamepadla measured 250 Hz) | Sources disagree: SDL says it appears to be 1000 Hz; Gamepadla measured 542 and 799 Hz |
| DualSense Edge | 1000 Hz (SDL) | 1000 Hz (SDL) |
| DualShock 4 (PS4) | 250 Hz (SDL; Gamepadla measured 249.94 Hz) | Set by the PC at 250, 500 or 1000 Hz (SDL); Gamepadla measured 728 Hz |
| Xbox Core Controller | About 125 Hz (Gamepadla, by cable) | About 133 Hz (Gamepadla, firmware 5.23.6.0) |
The Xbox figures are Gamepadla's measurements, the Bluetooth one on firmware 5.23.6.0. Gamepadla has also measured DualSense units modified to report faster over USB, at 500 and 1000 Hz.
What software can and cannot change
Between the controller and the game sits whatever reads the controller — the game itself, Steam Input, or an emulator. That layer cannot create reports the controller never sent. It can only lose time, in two ways:
- Reading on its own clock. If the software checks the controller at a fixed rate slower than the controller reports, it misses reports. If it checks faster, it finds the same report again and gains nothing.
- Holding work back. Every step of processing adds a little delay before the result is available to the game.
On the far side, the game reads the latest state when it processes input, often once per rendered frame. A faster report rate does not make the game read more often; it makes the state it reads more recent.
What Coda does, and what “up to 8000 Hz” means
Coda reads the two kinds of controller differently, because they work differently:
- PlayStation controllers push their reports to the PC. Coda processes each one as it arrives, with no clock of its own in between, so it carries whatever rate the pad delivers — 250 Hz from a stock DualSense over USB, more from a pad that sends more.
- Xbox controllers are read through XInput, which has to be asked. Coda asks on a clock you set under POLLING RATE · XBOX CONTROLLERS in the System tab: 250, 500, 1000, 2000, 4000 or 8000 Hz, with 2000 as the default. At 4000 and 8000 Hz Coda keeps one processor core busy to hold the timing, which is the cost of those two settings.
So “up to 8000 Hz” is the ceiling of what Coda will carry, not a rate it creates. A stock controller reports far less, and no software changes that. Whatever the rate, Coda sends a new state to the game only when it differs from the last one.
You do not have to take any of this on trust: Coda's live telemetry shows the polling rate it actually sees from your controller, the rate at which it submits to the game, frame intervals and stalls, while you play.
Does a higher polling rate matter?
Going from 125 to 1000 Hz shortens the longest wait for a new report from 8 ms to 1 ms. Whether you notice that depends on the game's frame rate and on everything else in the chain, and claims of a specific overall latency figure are worth asking about: they need a measurement from the stick to the screen to mean anything. What a higher rate reliably gives you is a fresher state each time the game looks.
The rate is also only one of the things between your thumb and the game. How the stick is shaped on the way — deadzones and the response curve — decides what the game receives in the first place.
To see how often your browser receives new input from your controller — a related number, and not the same one — try the Input Update Rate Analyzer. It says on the page what a browser can and cannot measure.