Stick drift test
Drift is not a yes or no. Every stick reads slightly off centre, and the question is whether yours reads far enough off to matter. This measures where both sticks sit when you let go — twice, because a stick that is still at rest can still fail to come back after you move it — and reports the number as the percentage a game dead zone is set in.
Press any button on the controller. Browsers keep a gamepad hidden until it is used.
| Stick | At rest | After return | Furthest | Pulling |
|---|
- Verdict—
What did the worse stick measure?
Running it
The test has two parts and takes about ten seconds.
Let go. Put the controller down and do not touch it for four seconds. This measures where the sticks sit on their own.
Then swing. Roll each stick right around its edge a few times and release it. The test waits until it sees a stick reach the rim and come back, then measures for another two seconds. This is where the sticks land after being moved, which is not always where they sit when they have not been.
The result is per stick: where it rests, where it landed after returning, the furthest it wandered during either, and which way it is pulling.
Reading the numbers
Under 2% is sensor noise. Every stick has it; there is nothing there.
2% to 8% is drift that exists and that you almost certainly cannot feel, because games apply a dead zone of roughly 10% to 20% and it is being swallowed by it. Worth knowing about, not worth acting on. If it is climbing month by month, that is the thing to watch rather than the number itself.
Above 8% is close enough to the dead zone that it crosses it, which is when a character starts walking, a camera starts panning, or a car pulls to one side.
The direction matters as a cross-check. If the measurement says the stick pulls down and left, and your character walks down and left, that is the same fault seen twice and the diagnosis is settled. If they disagree, look at the game rather than the pad.
What this cannot see
A controller that applies its own dead zone in firmware subtracts the drift before the browser gets anything, and Xbox controllers do exactly that. So a clean reading here is good evidence and not proof: it rules out drift larger than the controller’s internal dead zone, and says nothing about drift smaller than it.
There is also no way from a web page to tell a worn potentiometer from a dirty one, or either from a stick module coming loose. The number says how far off centre it is; opening the controller is the only thing that says why.
Before you replace anything
Clean it first. A large share of drift is dust and skin oil in the gap around the stick rather than a worn part. Compressed air around the base, or a cotton bud with isopropyl alcohol, then work the stick through its full range a few times. Measure again. This costs nothing and fixes more controllers than it has any right to.
Then recalibrate, if the controller supports it. PlayStation and Switch pads have a calibration routine in the console settings. Xbox pads do not, and no amount of looking will find one.
Then check the warranty. Drift has been common enough on several popular controllers that manufacturers have repaired or replaced them outside the normal warranty period, and in some regions have been required to. It is worth ten minutes before it is worth thirty pounds.
Then the stick module. It is an inexpensive part and a well-documented repair on most controllers, but it is soldered, so it needs an iron and a steady hand. On a controller with any warranty left, do not open it — that ends the warranty and this is exactly the fault they cover.
Common questions
Why is my drift 0.0% when the stick clearly drifts in games?
Because some controllers apply their own dead zone in firmware before reporting anything, so a small drift is subtracted before the browser ever sees it. Xbox controllers do this; a PlayStation pad reports closer to raw. If this reads zero and games disagree, the drift is inside the dead zone your controller is already hiding, and the fault is real but not visible from here. The second measurement is the one to watch in that case, because a return that lands off centre often shows up even when the resting reading does not.
Why measure twice?
Because they fail differently. A stick sitting off centre while untouched is a sensor reading wrong. A stick that rests correctly but lands somewhere else after you swing it around is a mechanical problem — the centring spring or the housing is worn and it is no longer being pushed all the way back. The second is the more common early symptom, and a test that only measures a stick nobody has touched misses it entirely.
What does the percentage mean?
How far the stick sits from centre, as a fraction of how far it can go. 100% is the stick pushed fully to one edge. Games express their dead zone in the same terms and typically set it somewhere between 10% and 20%, which is why 8% is the line here: past it you are close enough to the dead zone that ordinary noise crosses it, and the character starts moving.
Can I fix drift myself?
Sometimes, and it is worth trying before replacing anything. Compressed air or a small amount of isopropyl alcohol around the base of the stick clears the dust and skin oil that cause a good share of drift, and costs nothing. If that does not help, the stick module itself is a replaceable part on most controllers and inexpensive, though it is soldered on nearly all of them. Recalibrating helps only where the controller supports it — PlayStation and Switch pads do, Xbox pads do not.
Is a dead zone a real fix?
It is a mask, and an expensive one. Raising the dead zone means every small stick movement inside that range is ignored, so aiming and steering lose their fine control precisely where you need it most. It will stop the character walking on its own. It will not give you back the precision, and the drift will keep growing.
Does this work on a Switch or DualSense controller?
Yes, provided the browser can see the controller at all — press a button first, as with any gamepad. Joy-Cons connected individually are the awkward case: each half reports as its own unlabelled device, so the browser often cannot tell which axis is which, and the reading may appear under the wrong stick. The number is still correct; only the label is unreliable.