CodaCoda

Stick Drift Analyzer

A free stick drift test. Put the controller down, let the page record both sticks at rest, and see where each one settles, how far it strays, how much it wanders — and the smallest deadzone that would have hidden all of it. Nothing to install; nothing stored.

Checking for controller support…
Put the controller down, hands off, then start.
±0.25
Left stick
±0.25
Right stick

Zoomed to ±0.25 around centre · dashed ring: Coda's default deadzone (0.15) · gold ring: the smallest deadzone that hides this recording · cross: average position

How to measure

  1. Connect the controller and press any button so the page can see it.
  2. Disconnect Coda or any other remapping tool first. With one running, the browser reads its virtual controller — after its deadzone — and a drifting stick can look perfect.
  3. Put the controller on a table. Hands off: holding it moves the sticks.
  4. Choose a time and start. Ten seconds describe a resting stick; thirty catch one that creeps slowly.

How to read the result

Average position is where the stick settles; its distance from centre is the steady part of drift. Furthest reading is the worst single moment. Instability is how far the readings scatter around their own average: a stick can sit off centre and stay put, or sit near centre and twitch. The verdict says which of the two it is — a steady lean or a wander.

The verdict follows the furthest reading:

  • Measurement noise — within two of the controller’s smallest steps of centre. An 8-bit axis, as PlayStation controllers report, moves in steps of 0.0078 and cannot even show 0.0000; its two values nearest centre are ±0.0039. That is resolution, not a fault.
  • Small resting offset — up to 0.10. Analog sticks commonly settle a little off centre; this stays well inside Coda’s default deadzone of 0.15.
  • Stick drift — beyond 0.10. The deadzone has to be chosen with this offset in mind, and above 0.15 even Coda’s default no longer hides it.

A reading past 0.5 means the stick was moved, and the result is withheld rather than guessed.

Smallest step is the finest difference between two readings the recording saw — about 0.0078 on an 8-bit axis, far finer on an Xbox controller, whose sticks report 16-bit values. It shows only once the stick has moved between neighbouring values; a perfectly still stick has nothing to compare.

The deadzone that hides this recording is the furthest reading plus 0.01, rounded up to the next hundredth — the smallest round deadzone that would have hidden every reading of this run. When the offset leans along one axis, the per-axis figures cover it with less dead area.

Your recommended Coda settings

After 3 runs, the page suggests a Deadzone for each stick — the one Coda setting a resting stick can speak to. Push both sticks around and let go before each run: a stick lands a little differently every time, and a deadzone has to cover wherever it lands. The page notices when a stick was not moved past 0.5 between runs and does not count that run as a new resting position.

The value is the furthest resting reading of all runs plus 0.01, rounded up to the hundredths Coda’s field takes. Readings from an 8-bit controller are first converted to the scale Coda compares them on: a browser reports the stick byte b as b ÷ 127.5 − 1, Coda as (b − 128) × 258 ÷ 32767, so centre is 0.0039 in one and exactly 0 in the other. A per-axis alternative appears when it frees at least 0.03 on one axis; above 0.25 the page says how much travel the deadzone costs.

Anti-Deadzone is not the same thing, and nothing here suggests one. The deadzone works on the input — readings inside it count as centre. The anti-deadzone works on the output — where the stick starts once it leaves the deadzone, to step past a game’s own deadzone. A stick lying still measures the first and says nothing about the second, or about Max Zone.

A stick that reads exactly centre for a whole run gets no suggestion: a controller read directly practically never does that, while a signal that has already been through a deadzone — Coda’s virtual controller, Steam Input — does.

What it cannot tell you

  • Whether drift will grow. Sticks wear and drift changes with warmth and use; a recording describes these seconds, so measure again before trusting a small value for long.
  • What causes it. The page sees numbers, not the sensor; dirt, wear and a loose part can all produce the same reading.
  • What a game shows. Games and tools apply their own deadzones on top of what the controller reports, so a stick that drifts here can look still in a game, and the other way round.
In Coda
Coda sets the deadzone per stick — Sticks → Left Stick / Right Stick → Zones → Deadzone, or Per-axis deadzone for an offset that leans one way. Its default is 0.15. What Coda does.

How deadzones fix drift · Circularity Analyzer · Gamepad Tester · All Controller Lab tools