Gamepad Test
No controller detected
Press any button on your controller to wake it up — browsers hide gamepads from web pages until you do, to protect your privacy.
Make sure it's plugged in or paired first. A Bluetooth controller may need to be paired with your device before your browser can see it.
Summary
- Controller connected
- Standard button layout
- Every button pressed at least once
- Trigger travel measured
- No stick drift detected
- Full stick range in every direction
- Rumble confirmed
Most gamepad testers just show you a live diagram and call it a test. This one measures things a diagram can't show you: whether either stick reports movement while sitting perfectly still, how far a stick has to move before your browser sees it, whether it reaches full deflection in every direction, and whether your analog triggers travel smoothly or are stuck. One thing this tool deliberately refuses to measure: your controller's USB or Bluetooth polling rate. The Gamepad API only lets a browser check for updates as often as the screen repaints, so any number claiming to be your controller's polling rate would really just be a measurement of your monitor wearing a costume — this page says so honestly instead of printing a fake one.
How it works
- Connect Your Controller. Plug in a USB controller or pair one over Bluetooth, the same way you would for a game.
- Press Any Button to Wake It Up. Browsers hide connected controllers from web pages until you press a button on it, as a privacy protection — this page can't skip that step, and neither can any other website.
- Check Button Coverage. Press every button, trigger, and stick click at least once. The diagram lights up each one as it's tested, and a progress line counts how many of the total you've covered.
- Measure Stick Drift. Run the drift check without touching either stick — it watches for movement your controller reports while genuinely at rest.
- Check Stick Range and Deadzone. Roll a stick slowly around its full edge to check whether it reaches full deflection in every direction, then push it slowly off-center to estimate how far it has to move before anything registers.
- Test Rumble. If your browser reports vibration support, play a short test effect and confirm whether you actually felt it — the browser reporting success is not the same as a motor turning.
Why This Tool Won't Show You a Polling Rate
A gaming mouse's polling rate can be measured because a mouse's own driver reports it. A controller has no equivalent: the Gamepad API is something your browser checks periodically, at roughly the rate your screen refreshes, not something the controller pushes updates through. Any figure this page could print claiming to be your controller's report rate would actually just be your monitor's refresh rate wearing a disguise.
"Standard Layout" vs. Numbered Buttons
Most modern controllers — Xbox, PlayStation, and most third-party USB pads — get automatically remapped by your browser into a "standard" layout, a shared numbering the Gamepad API defines so that button 0 reliably means the same physical button on any standard-mapped controller. When that happens, this test shows you a labelled diagram: face buttons, shoulders, triggers, sticks, and D-pad, each in roughly the position they sit on the real hardware.
Some controllers — often older, generic, or unusual hardware — never get remapped this way. Rather than guess and risk labelling the wrong physical button, this test falls back to a plain grid of numbered buttons and axis bars. It's less pretty, but it's honest: a wrong label would be worse than no label at all.
Stick Drift: What "At Rest" Actually Means
Stick drift is when a controller reports stick movement even though nobody is touching it — the classic symptom of worn potentiometers or a failing Hall-effect sensor. This test asks you to leave both sticks alone for a few seconds and watches the largest movement either one reports during that window. A perfectly healthy stick should report something extremely close to zero the entire time.
- Clean — no meaningful movement reported at rest.
- Slight drift — a small amount of movement, worth noting but rarely urgent.
- Significant drift — the stick is reporting real movement while untouched, the kind that shows up as unwanted camera or character movement in games.
The Deadzone Estimate — the Most Cautious Number on This Page
A deadzone is the small range around a stick's resting position where movement is ignored, by design — without one, drift and sensor noise would constantly register as tiny unwanted inputs. This test asks you to push a stick slowly away from rest and reports the smallest movement it saw registered.
This is deliberately the most cautious measurement on this page: if the stick was moved too quickly during the check, the first non-zero reading caught could already be well past where the deadzone actually ends, so the test refuses to report a number at all rather than print a confident-looking guess. Seeing "not enough data to trust a number" here is a normal, expected outcome, not a broken tool.
Rumble: Why This Test Asks You, Not Just the Browser
When a browser reports that a vibration effect finished playing, that only means the browser's own request completed — it is not proof a motor inside your controller actually turned. Support for controller vibration also varies by browser far more than most web features: some browsers support it fully, some only partially, and some not at all, regardless of what your controller itself is capable of.
Nothing Is Uploaded
Every measurement on this page — button presses, stick movement, trigger travel, drift, deadzone, rumble — is read directly from your controller by your browser and processed entirely inside this tab. Nothing about your controller or how you use it is ever sent anywhere.
Frequently asked questions
Why doesn't my controller show up right away?
Browsers deliberately hide connected controllers from web pages until you press a button on the controller itself — a privacy protection against sites silently fingerprinting your hardware. Press any button and it should appear immediately.
Why are the buttons shown as numbers instead of names?
Your browser hasn't remapped this controller to the shared "standard" layout, so this page has no reliable way to know which physical button is which. Rather than guess and risk a wrong label, it shows numbered buttons instead.
Can this test my controller's polling rate?
No, and this is deliberate. The Gamepad API only lets a browser check for updates at roughly the display's own refresh rate, not the controller's real report rate — any number claiming otherwise would just be measuring your monitor.
My left stick drifts in games but this test says it's clean — why?
Some drift only shows up once a controller warms up during play, or under specific stick angles this brief test may not have captured. Try running the drift check again after a few minutes of use.
Does this work with Bluetooth controllers?
Yes. A Bluetooth controller may need to be paired with your device first, through your operating system's Bluetooth settings, before your browser can see it at all.
Why won't rumble work even though my controller has it?
Support for controller vibration varies a lot between browsers, independent of what the controller itself supports. If your browser reports no support, or reports success but you feel nothing, that's a browser limitation this page can't work around.
Does this upload or store anything?
No. Every measurement runs locally in your browser tab and is never sent anywhere or saved after you leave the page.
Does this work on mobile?
Yes, if your phone or tablet's browser supports the Gamepad API and you have a controller paired to it — many current mobile browsers do.
Nothing about your controller or how you use it is ever uploaded, recorded, or sent anywhere. Every measurement — button presses, stick movement, drift, deadzone, trigger travel, rumble — is read from your controller and processed entirely inside this browser tab.