Device test · Game input
Gamepad Tester
Connect a controller and press any button to see it live.
Connect a controller by USB or Bluetooth, click this page, then press a controller button. If it does not appear, check the connection and the troubleshooting advice below.
No diagnostic test has run yet.
Measure drift (5 s) samples every axis while your hands are off the sticks and compares the resting means with the ±0.05 and ±0.10 bands. Deadzone probe records a 1.5-second baseline, then watches a slow sweep for the nearest values beyond the resting noise. Rumble test asks for a half-second effect; you confirm whether you feel it.
Verdict
NOT RUN
—
Run Measure drift (5 s) above, with your hands off the sticks, for a verdict on stick drift.
Published thresholds: a resting mean within ±0.05 is PASS. Past ±0.05, at or inside ±0.10, is CHECK SETTINGS. Beyond ±0.10 is LIKELY FAULT. These describe the reported axis value, not the cause of an offset.
If it's flagged
How this test works
The board reads every controller the browser exposes through its Gamepad API. Buttons shows how many are pressed out of the number reported, and Axes is the number of axes reported; neither has to match the physical controls one for one. A button tile lights while pressed and stays marked after release, and the bar along its bottom shows its value from 0 to 1. An analogue row's peak is the highest value seen since the row appeared or you last pressed Reset. Axes run from −1 to +1 with zero in the middle, and an axis can be a stick, a trigger or another control. Pads that report the standard mapping get familiar button labels; other pads keep bare indices. Press each control and see which tile or row responds before you read the results.
The drift sample reports each axis's mean resting value, peak-to-peak spread and furthest reading from zero. The deadzone probe compares a sweep with a 1.5-second resting baseline, whose noise band is the furthest any resting reading strayed from the baseline mean; the gap is how far beyond that band the nearest sampled step lands. Every figure is a reported axis value, so a gap shows where the numbers jump and never a physical distance on the stick. The vibration check calls playEffect for half a second and shows how the browser answered the request.
The page polls with requestAnimationFrame, re-reading navigator.getGamepads() on every animation frame, so the sampling rate follows the browser's frame scheduling as well as the controller, and a background tab can be throttled. Keep this tab visible during a test. Polling stops when the page no longer sees a connected pad. Reset clears the test results, button marks and recorded peaks, and the live board keeps updating while a controller is connected.
Running a controller drift test
If a camera creeps or a character walks on its own, measure the resting values. Once the controller appears, put it on a flat surface and take your hands off the sticks. Press Measure drift (5 s) and wait out the five seconds. If you touch a stick, cancel and start again, because a small nudge can slip past the movement check. Read the mean and the spread together: the mean is where the axis rests, and the spread shows how much it wandered during the sample.
The page calls a resting mean within ±0.05 settled, one past ±0.05 up to ±0.10 borderline, and one beyond ±0.10 drift. These are Device Bench's working bands. In a game, the deadzone decides what you notice: an offset smaller than the deadzone is ignored, and a larger one reaches the game as movement you never made. An axis that reports exactly 0.000 on every reading is left unclassified, because the controller or its driver may snap the center to zero before the browser sees it; judge that stick in a game with its deadzone turned down. Means more than 0.60 from zero are also left unclassified, since not every axis is a self-centering stick.
Then run the Deadzone probe. Keep the controls still for the baseline, then move each stick slowly toward its limits and back, and pull the triggers too if they appear as axes. Press Finish probe when you are done, or it stops by itself after 30 seconds. Write your numbers down, change one thing at a time, and measure again with the same browser, connection and sweep speed. The stick drift guide covers what causes drift and how each fix works.