Keyboard Tester / Stick drift test
Stick drift test
Connect your controller, press a button, then let go of both sticks and press Measure resting drift. A clean stick reads close to 0.000. A reading of 0.100 or more means the stick reports movement while untouched and will likely drift in games. Rotate each stick around its edge to draw its roundness trace.
No controller detected yet. Press any button on your controller: browsers only show a controller after a button press.
Connected controllers
| Index | Id reported by the browser | Mapping | Buttons | Axes | Timestamp |
|---|
Left stick
- x
- 0.000
- y
- 0.000
- Distance from centre
- 0.000
- Resting drift
- not measured
- Circularity
- rotate the stick
- Directions covered
- 0%
- Furthest reach
- –
- Deadzone
- –
Let go of the stick and press Measure resting drift.
Right stick
- x
- 0.000
- y
- 0.000
- Distance from centre
- 0.000
- Resting drift
- not measured
- Circularity
- rotate the stick
- Directions covered
- 0%
- Furthest reach
- –
- Deadzone
- –
Let go of the stick and press Measure resting drift.
Raw buttons and axes
| Input | Value | Level | State |
|---|
What the numbers mean
Each stick reports two values from -1 to 1, one for sideways (x) and one for up and down (y). Resting drift is the distance of the stick’s resting position from the exact centre, worked out as the square root of x squared plus y squared and averaged over one second. A resting position of x 0.06 and y 0.02 has a drift of 0.063. Under about 0.03 is clean, up to about 0.1 is small, and above that is likely to be felt in a game. These bands are rules of thumb, not a standard.
Deadzone
Games ignore stick movement inside a small circle around the centre, called the deadzone. Drag the slider to draw it on the stick: if the resting dot sits inside the circle, a game with that deadzone would not see the drift. The page suggests a value just above your measured drift. A large deadzone hides drift but also makes small, precise aiming less sensitive, so it is a workaround rather than a repair.
Roundness trace
Rotate the stick slowly around its outer edge for a few turns. The shape fills in showing the furthest point reached in every direction (72 directions of 5 degrees). Circularity is 100% when every direction reaches the same distance. Most sticks do not reach a perfect 100 because the stick’s gate, the plastic ring it moves in, is not round; many are squarish, and the trace shows that. A trace with a flat or missing section, or a low "directions covered" value, means you have not circled all the way round, or the stick is catching.
If your stick drifts
Blow compressed air around the base of the stick while moving it, and wipe the base with a cotton swab and a little isopropyl alcohol. Check that a protective case or grip is not pressing on the stick. Recalibrate in your system or the controller’s own software if it has that option. If a measurement stays high after cleaning, the sensor under the stick is worn and needs repair or a new controller. Run the controller tester for the other checks.
Questions people ask
How do I test for stick drift?
Connect the controller, press a button, leave the sticks alone and press Measure resting drift for each stick. The number is how far the resting position is from the centre. Near 0.000 is good; 0.1 or above is likely to drift in games.
What is a normal amount of drift?
No stick is perfectly zero. Values under about 0.03 are usually invisible; up to 0.1 many games hide it with their deadzone. These bands are a rule of thumb, since each game sets its own deadzone.
What is stick circularity?
It is how evenly a stick reaches the same distance in all directions when you rotate it around its edge. 100% would be a perfect circle. A drop usually comes from the stick’s gate shape or wear, and a very low value can mean you have not covered all directions.
Can I fix stick drift with a deadzone?
A bigger deadzone hides small drift by ignoring small movement, in games that let you set one. It does not repair the stick, and it reduces fine control.
Why does the tester show nothing for my controller?
The sticks show for controllers with the standard mapping. For other controllers the page lists raw axes instead. Press a button on the controller first so the browser reveals it.