How to use the controller tester
Connect the controller, then press any button. Until you do, the page shows a waiting screen: browsers deliberately hide gamepads from websites until you interact with one, so a page cannot fingerprint you by the devices you have plugged in. Once the controller appears, its name, mapping, button and axis counts and an update-rate counter are shown at the top, and each connected controller gets its own tab.
Press every button in turn. It lights orange on the diagram while held and keeps a green outline once tested, while the button grid shows its analogue value and how many times it has been pressed. Triggers fill their bar in proportion to pressure — a healthy trigger reaches 1.00 at full pull and falls back to 0.00 on release. The stick panels show the exact position of each stick to four decimal places, its distance from centre and its angle, with the dead zone drawn as a shaded circle that you can resize with the slider.
Testing for stick drift
Stick drift is when a thumbstick reports movement while nobody is touching it — the camera slowly turns or your character creeps forward. It is caused by wear in the potentiometers inside most sticks, dust, or a stick that no longer re-centres properly. Put the controller on a table, take your hands off, and click Measure drift. The tester samples both sticks and triggers for three seconds and reports the average resting distance from centre on a 0 to 1 scale.
| Resting offset | Verdict |
|---|---|
| Below 0.02 | Excellent |
| 0.02–0.06 | Fine: any normal dead zone hides it |
| 0.06–0.12 | Slight drift: raise the in-game dead zone |
| Above 0.12 | Drift: the stick needs cleaning or replacing |
A small offset is normal on every analogue stick, which is why games apply a dead zone: any reading inside it is treated as zero. If the dot sits outside the shaded circle at rest, a game with that dead zone would see movement. Hall-effect and TMR sticks, used in some newer controllers, do not wear in the same way and usually read very close to zero.
What the circularity test tells you
Rotate each stick slowly around the outer edge of its gate. The tester records the furthest reading in each of 72 directions and draws the resulting outline in green. Once at least 90% of the edge has been traced, it reports the circularity error: the average difference between your outline and a perfect circle of radius 1. Values under about 5% are excellent, 5–12% is typical, and higher figures mean the stick reaches full deflection in some directions but not others, which shows up as uneven aim or movement speed on diagonals. A square-ish outline that bulges at the diagonals is normal for many controllers and can be corrected in games that offer a radial dead zone or outer dead zone setting. A flat spot in one direction usually points to a worn or dirty stick.
Vibration, mapping and browser support
Most controllers have two rumble motors: a heavy, low-frequency one in the left grip and a lighter, high-frequency one in the right. Test them separately with Strong motor and Weak motor; if one does nothing, that motor or its wiring has failed. Xbox One and Series controllers also have motors in the triggers, which Chromium browsers can drive with Trigger rumble. Chrome and Edge support rumble for Xbox and PlayStation controllers; Firefox and Safari support is patchier, and DualSense adaptive triggers are not available to web pages at all.
A controller with standard mapping has been matched by the browser to the usual layout, so button 0 is always the bottom face button and axes 0–3 are the two sticks. Unusual or older pads may be reported with no mapping; the raw lists stay accurate even when the diagram cannot. Some DirectInput pads report the d-pad as a single axis with stepped values rather than four buttons. The Gamepad API is polled once per animation frame here, so inputs are sampled at your screen's refresh rate; this is the same rate most games read controllers at, but it is not a measure of the controller's wireless latency.
To check a keyboard or mouse as well, use the keyboard tester or the mouse tester.
Frequently asked questions
Why isn't my controller detected?
Press a button on it first — browsers only expose controllers after an input. If it still does not appear, check it works in the operating system's own controller settings, try a different USB cable (many are charge-only), and close programs such as Steam that can take exclusive control. Bluetooth controllers must be paired before the page can see them.
How do I know if my controller has stick drift?
Let go of the sticks and click Measure drift. If the average resting offset is above about 0.06, games with small dead zones will notice it; above 0.12 is clear drift. You can also watch the stick panels: at rest the dot should sit inside the shaded dead-zone circle and stay still.
Does it work with PS5 DualSense and Switch Pro controllers?
Yes. DualSense and DualShock 4 controllers are recognised and labelled with the PlayStation symbols, including the touchpad click, and Switch Pro controllers get Nintendo labels. Some browsers expose these pads with non-standard mapping over Bluetooth, in which case the raw button and axis lists are the reliable view.
Why doesn't the vibration test do anything?
Vibration depends on both the browser and the connection. Chrome and Edge support rumble for Xbox and PlayStation controllers; Firefox and Safari often do not. Some controllers do not rumble over Bluetooth on certain systems, and third-party pads may have no motors. If the tester says vibration is available but you feel nothing, a motor may have failed.
What is a good circularity error?
Under about 5% is excellent and 5–12% is typical for a healthy stick. Many controllers read slightly beyond 1.0 at the diagonals, which raises the figure without being a fault. A large error concentrated in one direction, visible as a flat side on the green outline, suggests a worn or obstructed stick.
Is my controller data sent anywhere?
No. The Gamepad API is read by JavaScript on this page and nothing is uploaded. The only thing saved is your dead-zone setting, in your browser's local storage. The report is generated on your device when you copy or download it.