Gamepad tester
Every button, both sticks, stick drift measured, and vibration. Nothing to install.
Buttons value 0–1
Axes −1 to 1
This controller does not use the standard layout in this browser, so the drawing may not match it. The lists above show every button and axis it reports, by number.
Drift test
Let go of both sticks for 5 seconds. Each stick's average resting position is measured.
| Stick | Rests at x, y | Offset | Deadzone needed | Verdict |
|---|
Verdict by resting offset (1 = full travel): none under 3 %, slight from 3 % to under 7 %, drifting at 7 % or more. Deadzone needed = the furthest reading during the rest, rounded up to the next whole %.
Range test
Roll each stick slowly round its edge, two full turns, then stop. 16 slices of 22.5°; a slice counts when the stick reaches 90 % of full travel in it.
| Stick | Coverage | Average reach | Off the circle |
|---|
Vibration
Connect a controller to try its vibration.
Update rate and chatter
Move a stick to measure how often the controller sends a new reading.
Two presses of one button that start less than 50 ms apart are flagged here as chatter. No chatter seen.
How to test a controller
- Connect the controller by USB cable, or pair it over Bluetooth in your system settings.
- Press any button. The drawing appears and lights each button as you press it; triggers fill a bar from 0 to 1.
- Check the stick dots: they should sit on the centre cross when you let go and follow your thumb smoothly.
- Tap Start drift test and take your thumbs off both sticks for 5 seconds. Read the verdict and the deadzone each stick needs.
- Tap Start range test, roll each stick round its edge twice, and read the coverage. Then try the vibration buttons.
How the drift test works
For 5 seconds the page reads both sticks on every screen frame (about 300 readings at 60 Hz) and averages them. The offset is the distance of that average from the centre, where 1.00 is the stick pushed all the way. A good stick rests within 1 or 2 % of the centre; a worn one sits further off and often creeps in one direction.
Worked example: the left stick rests at x 0.08, y 0.03. The offset is √(0.08² + 0.03²) = 0.085, so 8.5 %, which is drifting by the thresholds printed with the test. If the furthest single reading was 0.085 too, the deadzone needed is 9 %: a round deadzone of 9 % in a game's settings would hide that drift. Many games use a large deadzone by default; the long-standing recommendation in the Windows XInput documentation is 7849 of 32767 for the left stick (about 24 %) and 8689 (about 26.5 %) for the right, so a small drift may never show in those games, and appears in games with a small deadzone or after you lower it.
If any reading during the test goes past 35 % from the centre, the page assumes a stick was touched and asks you to run it again. A real drift points the same way every time; a stick that rests at a different spot each time you let go has a loose or worn spring.
How the range test works
The circle round each stick is cut into 16 slices of 22.5°. A slice counts as covered once the stick reaches 90 % of full travel inside it; the coverage is covered slices divided by 16, so a stick that cannot reach one 45° stretch of its edge scores 14 of 16, 87.5 %. Covered slices fill in on the large stick drawings as you roll.
Average reach is how far the stick got in the covered slices (1.00 is exactly the edge), and off the circle is how far that reach is from a perfect circle on average. Many pads report a slightly squarish range, around 1.05 to 1.10 on the diagonals; a reach well under 1.00 in some slices points at a worn stick or a gate blocked by dirt.
Update rate and chatter
Each report from the controller carries a timestamp. The page counts how many different timestamps arrive per second while you move a stick. The page reads once per screen frame, so it cannot show more than your screen refresh rate (60 on a 60 Hz screen), and some browsers only stamp a report when a value changes, so hold still and the rate drops.
Chatter is a worn switch that reports two presses for one press. People rarely press the same button twice less than about 70 ms apart, so two presses that start less than 50 ms apart are flagged with the button's name and the gap. A bounce shorter than one frame (17 ms at 60 Hz) can slip between two readings and be missed.
What it cannot do
- It cannot calibrate, remap, update or repair the controller. It only reads what the controller reports. Drift is fixed by recalibrating in the console or system settings, cleaning, or replacing the stick.
- Some browsers show a pad to the page only after a button press, so a connected pad can look missing until you press something.
- Safari and some pads expose fewer buttons. The home or guide button is often kept by the system, and motion sensors, touch surfaces, back paddles and resistance triggers are not visible to web pages at all.
- On a phone or tablet it needs a Bluetooth (or USB-C) controller. The touch screen is not a gamepad.
- A driver or helper program (such as a launcher with its own controller settings) may already apply a deadzone, so a small drift can read as zero here and still show in a game that reads the raw stick.
- Vibration works only where the browser offers it for that pad; the page says so when it does not.
Privacy
The readings never leave your device and nothing is saved. The page sends an anonymous page-view count and one of two fixed words, pad-connected and pad-drift-test; never the controller's name or any reading.
Questions
How do I check my controller for stick drift?
Connect the controller, press any button so the page sees it, then tap Start drift test and take your thumbs off both sticks for 5 seconds. Each stick gets its average resting offset, the deadzone that would hide it, and a verdict: none under 3 %, slight from 3 % to under 7 %, drifting at 7 % or more. Run it twice; a real drift gives the same direction both times.
Can I test a console controller on a computer or phone?
Yes, if the browser can see it as a gamepad. Connect it by USB cable or pair it over Bluetooth in the system settings, open this page, and press a button. Current controllers from the big three consoles show up in Chrome, Edge and Firefox on Windows, macOS and Android; Safari shows most of them too. The label buttons switch the names to the style printed on your pad.
How do I test a controller on a PC?
Plug it in or pair it, open this page in Chrome, Edge or Firefox and press any button. The drawing lights each button, the trigger bars show 0 to 1, and the sticks move a dot with a trail. If nothing appears, close programs that take over controllers, try another USB port or cable (some cables only charge), and press a button again.
Why does my controller not vibrate in the test?
Rumble needs the browser to offer it for that controller. The page checks for it and says plainly when it is missing. Chrome and Edge rumble most pads that have two motors; Firefox and some Bluetooth connections do not. If the page offers rumble and nothing moves, the motors, the battery or the connection may be at fault.
Is this an online tester, or do I need to install something?
Nothing to install and no account. The page reads the controller through the browser's built-in Gamepad API, and every reading stays on your device. It works offline once loaded.