How to use it
- Plug in or pair the controller, open this page and press any button. The controller’s name and mapping appear in the Controller panel.
- Press every button and trigger and watch the Buttons grid; triggers show their travel as a percentage.
- Move each stick: the dot in the stick circle follows it, and the figures under the circle show the raw values and the values after the deadzone.
- Take your hands off the sticks and press “Measure drift (3 s)”. Compare the offset with your deadzone; adjust the deadzone to the value your game uses and measure again.
- Use “Test rumble” to check the vibration motors where the browser supports it (Chrome and Edge).
Example
A controller reports the right stick resting at X +0.300, Y −0.010 over 180 readings. The offset is √(0.300² + 0.010²) = 0.300, three times a 0.10 deadzone, so the verdict is “exceeds the deadzone – the stick rests off-centre”. The left stick averages +0.007, −0.003 with a maximum excursion of 0.020: “within the deadzone – resting at centre”.
How the readings are interpreted
offset = √(meanX² + meanY²) mean of all samples in 3 s
max deviation = max √(x² + y²) over the samples
centred : max deviation ≤ deadzone
drift : offset > deadzone
jitter : offset ≤ deadzone but max deviation > deadzone
after deadzone: 0 inside the circle, otherwise (|v| − dz) / (1 − dz) along the same directionValues come straight from the browser’s Gamepad API, polled once per animation frame (typically 60–120 times a second). The “standard” mapping is the W3C layout – 17 buttons and four axes in a fixed order – which is why Xbox and PlayStation names can be shown side by side; a controller without that mapping gets a numbered generic view. A button counts as pressed when the browser flags it or an analogue value reaches 50%. Browsers do not expose battery level, gyroscopes or the DualSense touchpad, and Firefox and Safari do not expose rumble.
Sources: W3C Gamepad specification – standard mapping, MDN – Gamepad API.
This is a tester, not a repair or calibration tool: it cannot change the controller’s own calibration, and the drift figures are a snapshot from the browser rather than a laboratory measurement. Input latency is not measured.
Questions
- My controller is connected but nothing shows up. Why?
- Press a button on it – browsers only list a gamepad after the page has seen input from it. If it still does not appear, check that no other app (a game, Steam, a remapping tool) has exclusive access, try a different USB cable or port, and make sure the page is open over https.
- What is stick drift and is my controller faulty?
- Drift is when a stick reports movement while untouched, usually because the potentiometer has worn or picked up dirt. A resting offset larger than the deadzone used by your games is what you notice as a character creeping or a camera turning. A small offset inside the deadzone is normal manufacturing tolerance.
- Which deadzone should I enter?
- Use the value from the game or system you play on: console system menus and most PC games sit between 0.10 and 0.25. If a stick only drifts below that value, raising the in-game deadzone hides the problem; if it drifts above it, the stick module usually needs cleaning or replacing.
- Why do the Xbox and PlayStation names both appear?
- With the standard mapping the browser places the face buttons in the same slots for every controller: slot 0 is A on Xbox and Cross on PlayStation, slot 1 is B/Circle, and so on. The label shows both so you can match whichever pad you hold.