Gamepad Tester — Test Your Controller Online
This gamepad tester shows every button, stick, trigger and rumble motor of your controller live, and measures stick circularity, drift and trigger travel. Plug in or pair any Xbox, PlayStation, Switch or generic PC pad and press a button: browsers hide controllers until they see an input, so nothing appears before that. The whole controller test runs inside this tab and nothing is uploaded, which makes it a quick way to check a new pad, diagnose a fault or test a controller before buying it used.
How to test a controller in four steps
- Connect it. Use a USB data cable or Bluetooth. A cable is the better first test because it rules out pairing problems and flat batteries.
- Press any button. The Gamepad API only reveals a controller after an input on that device; the status line then changes from "Press any button to connect" to "Connected" and the model name.
- Work through the pad. Press every button once, roll each stick around its outer edge, and squeeze both triggers fully. Pressed buttons stay outlined in green on the diagram, so you can see what is left.
- Run the drift test and the rumble test from the Analog sticks and Vibration cards.
With several pads connected, pick one with the P1–P4 slots on the controller card. The Auto / Xbox / PS / Switch switch only changes the drawing and labels; it never changes the data.
Reading each panel
The drift test and the stick plots sample the controller every 4 ms, faster than the screen redraws, so quick presses and flicks are not missed.
Diagram, stick plots and triggers
A button lights up while held and keeps a green outline once tested. Each stick plot draws the live position inside the unit circle plus a fading trail. Roll a stick slowly along its edge and the page measures circularity error: the RMS gap between the circle and the furthest point reached in each of 72 directions. It counts flat spots that fall short as well as square gates that overshoot, so a lower number means a rounder range. Trigger bars show analog travel from 0.00 to 1.00; a healthy analog trigger reaches 1.00 and falls back to 0.00 when released.
Stick readouts, drift test and vibration
Under each stick plot the live x · y position should read a few hundredths at most when you let go. The update rate next to the USB IDs counts how often the browser delivers a new sample. Chrome samples gamepads at roughly 250 Hz, so that figure is a browser ceiling, not your controller's USB polling rate.
The drift test counts down three seconds, then records both sticks for five seconds while you keep your hands off. It shows a verdict, the peak deflection and a suggested deadzone under each stick, and draws the peak as a dashed ring on the plot. For a deeper diagnosis, use the stick drift test. Vibration plays Heavy (left motor), Light (right motor), Burst and Pulse patterns; the trigger-motor buttons unlock only where the browser supports them.
Raw data
The raw grid lists every button index with its analog value and every axis as a bar. Controllers without standard mapping, such as flight sticks, show up here even when the diagram cannot place them; the joystick test is built around that raw view. The controller card shows the model plus the USB vendor and product IDs when the browser exposes them.
Browser support: rumble, trigger rumble and WebHID
Every current desktop browser can read buttons and axes. The differences are in output:
- Chrome and Edge (Windows, macOS, Linux): buttons and axes, dual-motor rumble, and WebHID. Trigger rumble (Xbox impulse triggers) works only on Windows with an Xbox One or Series controller.
- Chrome on Android: buttons, axes and dual-motor rumble on supported pads; no WebHID, no trigger rumble.
- Firefox: buttons and axes only. Firefox does not implement rumble effects or WebHID.
- Safari on macOS (16.4 and later): buttons, axes and dual-motor rumble; no trigger rumble, no WebHID.
- Safari and every other browser on iPhone and iPad: buttons and axes for supported controllers, but no rumble and no WebHID.
WebHID matters for PlayStation pads: it lets a page talk to a DualSense directly and read battery, gyro and touchpad data, then drive the lightbar and adaptive triggers. That lives on the DualSense tester, which needs desktop Chrome or Edge.
Controller not detected? Work through this list
- Press a button with this tab focused. Pairing is not enough; the browser waits for an input first, and it ignores controllers while the tab is in the background.
- Swap the cable. Many USB-C and micro-USB cables carry power only. If the pad charges but never appears, try a cable you know carries data.
- Close apps that grab the controller. Steam Big Picture, DS4Windows, emulators and remapping tools can take exclusive access or add a virtual pad in front of the real one.
- Check the operating system. On Windows, open
joy.cpl(Set up USB game controllers). If the pad is missing there too, the problem is the driver, the cable or the controller, not the browser. - Re-pair Bluetooth. Remove the device from the Bluetooth settings, put the pad into pairing mode and pair it again. If a console the pad is also paired with is switched on, pressing Home may connect the pad to the console instead.
- Try another browser. If Chrome sees it and Safari does not, the controller is fine.
- Leave in-app browsers. Browsers built into chat and social apps often block the Gamepad API; open this page in a full browser.
Standard mapping explained
When a browser recognises a controller, it reorders its inputs into the standard gamepad layout of the W3C Gamepad specification, so every pad reports the same indices whatever the brand:
- Buttons 0–3: bottom, right, left and top face buttons (A B X Y on Xbox, Cross Circle Square Triangle on PlayStation, B A Y X on Nintendo).
- Buttons 4–7: left and right bumpers, then left and right triggers, which report analog values.
- Buttons 8–11: View / Create / Minus, Menu / Options / Plus, then left and right stick clicks.
- Buttons 12–15: D-pad up, down, left, right. 16 is Home; 17, where present, is the extra button such as the touchpad click or Share.
- Axes 0–3: left stick X and Y, right stick X and Y, with −1 left or up and +1 right or down.
If the details panel says Non-standard, the browser passed the raw report through: button numbers follow the device's own order, triggers may be axes, and the D-pad may be a single hat-switch axis. That is normal for flight sticks, wheels and many third-party pads. Switch pads identify themselves too, and the Joy-Con test explains how single Joy-Cons map. For Xbox-specific quirks, such as the Share button or Elite paddles, see the Xbox controller test.
Privacy: nothing leaves your device
This gamepad test reads the controller through your browser's Gamepad API and does all the maths in this tab. Nothing about your controller, its name, IDs or inputs, is sent to a server, logged or sold. Some other controller testers upload every connected gamepad to their own servers; this one does not. The page needs no account, extension or download.
Frequently asked questions
My controller works in the gamepad tester but not in my game. Is the controller broken?
No. If every button and stick responds here, the hardware is fine and the fault sits between the game and the controller. Check Steam Input first: open the game's Properties, then Controller, and try forcing it on and then off. Then look for a controller or input-device setting inside the game, and close DS4Windows or other remappers that add a second, virtual pad.
My PS5 controller connects over Bluetooth, but no buttons register. It works fine with a cable. Why?
This is a pairing or software-path problem, not a broken controller. Remove the DualSense from your Bluetooth devices, hold Create and PS until the lightbar flashes, and pair it again. Then press a button with this page focused. If buttons register here but not in a game, the game needs Steam Input or DS4Windows to translate the DualSense, because many PC games only understand Xbox controllers.
Why don't the Xbox button and the Share button register when I test my controller on PC?
Usually because Windows keeps them for itself, not because they are broken. The Xbox button is reserved for Game Bar and the system, and many browsers and apps never receive it; the Share button (index 17) is only exposed on Series controllers in some setups. Test both on an Xbox console or with the Xbox Accessories app.
My Xbox controller works in Chrome on my Mac but doesn't work at all in Safari. Any solution?
Use Chrome, Edge or Firefox for the test. The controller is fine: if one browser reads it, the connection and the macOS driver work. Safari's gamepad support has changed between releases, and Mac users have reported pads that other browsers read but Safari ignores. Update macOS and Safari, press a button with the Safari tab focused, and reconnect over Bluetooth if it still does not appear.
My character drifts in one game but not others. Is it stick drift or the game?
Run the drift test here to find out. Let go of both sticks and start it: a peak under about 0.07 means the controller is healthy and the game's deadzone is simply too small. A higher peak, or a stick that does not return to centre, is real drift that other games happen to hide behind larger deadzones. Raising the in-game or Steam deadzone masks mild drift; worse drift needs cleaning or a new stick module.
Rumble doesn't work through the Xbox Wireless Adapter on PC, but it does over USB. How do I test that?
Fire the rumble test here twice, once wired and once wireless. If the motors buzz over USB but not wirelessly, the motors are fine and the problem is the wireless path: adapter drivers, controller firmware or the app sending the effect. Update the controller in the Xbox Accessories app while it is plugged in, then retest wirelessly. In Firefox, rumble never works, so test in Chrome or Edge.
I use DS4Windows with two DualShock 4 controllers and the game only sees one. What is going on?
DS4Windows adds a virtual Xbox controller for every real pad, so software can see twice as many controllers and pick the wrong one. This tester lists each of them in its Pad selector. Check whether each real pad and its virtual twin both appear, then enable exclusive mode or HidHide in DS4Windows so games see only one controller per player, or remove DS4Windows and use Steam Input instead.