Gamepad Tester: Test Any Controller Online with the Browser Gamepad API
Learn how to use the free Gamepad Tester to check buttons, analog sticks, triggers, and vibration on any USB or Bluetooth controller β right in your browser.
Table of Contents
A controller that misfires at the worst moment can ruin a gaming session, and a faulty pad is one of the most common reasons players lose ranked matches. The problem is that most people have no reliable way to check what their controller is actually sending β until now. The Gamepad Tester is a free, browser-based tool that detects any USB or Bluetooth controller, visualizes every button press in real time, tracks analog stick movement, reads trigger values, and even tests vibration motors.
There is nothing to install and no account to create. The tool is built on the standard Gamepad API that ships in every modern browser, so it works with Xbox, PlayStation, Nintendo, and most third-party controllers out of the box. Everything runs entirely client-side: your input data never leaves your device, which makes it one of the safest ways to diagnose a gaming peripheral.
In this guide, we will walk through what the Gamepad Tester does, how the underlying Gamepad API works, and how to put the tool to use in real-world situations β from verifying a used controller before you buy it to debugging input issues in a web game.
Why Use the Gamepad Tester?
- Instant detection, zero setup. Plug in a USB controller or pair a Bluetooth one, open the tool, and it appears in the live polling loop automatically. No drivers, no downloads, no configuration files.
- Complete button coverage. All 17 standard buttons β A, B, X, Y, L1, R1, L2, R2, Select, Start, L3, R3, the four D-Pad directions, and Home β are mapped visually, so a single glance tells you exactly which inputs register.
- Real analog data, not just pass/fail. Sticks and triggers report continuous values, letting you spot drift, dead zones, and worn potentiometers that a simple button tester would miss.
- Vibration testing included. The tool drives the controller's strong and weak rumble motors through the vibrationActuator API, so you can confirm haptics work before a long session.
- Privacy by design. Because everything runs in your browser, no input logs or device identifiers are uploaded anywhere. Your controller data stays on your machine.
- Works across platforms. The same page tests controllers on Windows, macOS, Linux, ChromeOS, and Android browsers, making it a universal diagnostic for any setup.
Key Features
| Feature | What It Does |
|---|---|
| Live gamepad detection | Polls the Gamepad API continuously and shows connected USB and Bluetooth controllers as soon as they appear |
| Visual button mapping | Highlights all 17 standard buttons the instant they are pressed, with per-button state readouts |
| Analog stick calibration | Displays live X/Y axis positions and traces the outer boundary of each stick's range of motion |
| Trigger readouts | Shows precise analog values for L2 and R2, from fully released to fully depressed |
| Vibration testing | Sends dual-rumble test patterns (strong motor, weak motor, continuous rumble) and resets them on demand |
| Vibration support indicator | Tells you whether the connected controller exposes a vibration actuator at all |
| Fully client-side | Free to use with no installation and no data leaving your device |
A few features deserve extra attention:
- The boundary trace on the analog view is especially useful: rotate each stick slowly in a full circle and the traced outline should form a clean square-ish ring. Gaps or flattened corners reveal mechanical wear or restricted travel.
- The dual-rumble test pattern exercises the two motors independently, which is exactly how games drive haptics β so passing this test means rumble will behave correctly in actual titles.
- The live polling loop means you can disconnect and reconnect controllers mid-session and the interface updates without refreshing the page.
How to Use
- Connect your controller. Plug it in over USB, or pair it over Bluetooth and make sure it is powered on. On Bluetooth, a quick press of any button usually wakes the connection.
- Open the Gamepad Tester. Visit Gamepad Tester in a modern browser such as Chrome, Edge, or Firefox. The tool starts polling immediately and displays your controller once the browser detects it. If nothing appears, press a button on the pad β browsers often register a gamepad only after its first input.
- Press every button. Work through A, B, X, Y, both bumpers, both triggers, Select, Start, both stick clicks (L3/R3), all four D-Pad directions, and Home. Each press lights up the corresponding element in the visual map.
- Check sticks and triggers. Move each analog stick through its full range and watch the live axis readouts and boundary trace. Pull L2 and R2 slowly and confirm their analog values sweep smoothly from released to fully pressed without jumps or dropouts.
- Test vibration. If the tool reports that your controller supports vibration, run the strong-motor and weak-motor tests, then the continuous rumble, and finally reset. You should feel distinct vibration patterns for each test.
Understanding the Gamepad API
The Gamepad Tester is powered by the W3C Gamepad API, a browser standard that exposes controller state to web pages. Here is what happens under the hood.
How browsers expose gamepads. When a controller connects, the browser assigns it an index and makes it available through navigator.getGamepads(). Pages typically poll this method on every animation frame, because gamepad state is a snapshot: each call returns the current button values and axis positions. The browser also fires gamepadconnected and gamepaddisconnected events, which is how the tool knows instantly when you plug a pad in or unplug it.
The 17 standard button mapping. Controllers that follow the W3C standard layout report a mapping property of "standard". In that layout, button indices are fixed: 0β3 are the face buttons (A/Cross, B/Circle, X/Square, Y/Triangle), 4β5 are L1/R1 bumpers, 6β7 are L2/R2 triggers, 8β9 are Select and Start, 10β11 are the L3/R3 stick clicks, 12β15 are the D-Pad directions (up, down, left, right), and 16 is the Home button. Each button reports both a boolean pressed state and an analog value, which is what lets triggers report partial presses.
Analog axes from -1 to 1. Sticks are exposed as axes, each ranging from -1 to +1. For a typical left stick, axis 0 is horizontal (left is -1, right is +1) and axis 1 is vertical (up is -1, down is +1), with the right stick following on axes 2 and 3. A perfectly centered stick reads close to 0 on both axes; a stick that reads 0.15 while untouched has measurable drift.
Dual-rumble vibration. Controllers with haptics expose a vibrationActuator object. The tool calls it with a dual-rumble effect, specifying durations and separate magnitudes for the strong (low-frequency) and weak (high-frequency) motors. By varying those magnitudes, the tester can isolate each motor, run both together as continuous rumble, or stop playback to reset. If vibrationActuator is absent, the tool simply reports that vibration is unsupported.
Practical Use Cases
Buying or selling a used controller
Used pads are a gamble: stick drift and sticky triggers are the top failure points, and sellers do not always disclose them. Run the Gamepad Tester before money changes hands. Check that every button lights up, that both sticks trace a full boundary ring without jumping, and that trigger values sweep cleanly. For sellers, a clean test run is credible proof of condition that a photo can never provide.
Diagnosing stick drift before a repair
If your character creeps sideways when you are not touching the stick, the analog view quantifies the problem. Center the stick and read the resting axis values: anything consistently away from zero is drift, and the magnitude tells you whether recalibration, contact cleaner, or a potentiometer replacement is warranted. The boundary trace also shows whether the drift is directional, which points to a worn spring or a dirty sensor path.
Debugging input in web games
Developers building browser games with the Gamepad API can use the tester as ground truth. If your game ignores a button press, check the tool first: if the button lights up there, the hardware is fine and the bug is in your axis indexing or dead-zone logic. It is also invaluable for verifying that non-standard controllers map correctly before you ship custom remapping code.
Checking retro and aftermarket controller compatibility
Cheap third-party and retro-style controllers often ship with odd mappings or missing features. The tester reveals exactly what the browser sees: whether the pad reports a standard mapping, whether the D-Pad registers as buttons or axes, and whether vibration is exposed at all. That makes it a fast compatibility screen before you commit to a controller for emulation or competitive play.
Best Practices
- Press a button after connecting. Browsers frequently hide a freshly connected gamepad until it sends its first input, so tap any button if the tool shows nothing.
- Test on a wired connection first. Bluetooth adds latency and occasional dropouts; if behavior looks strange wirelessly, repeat the test over USB to isolate the variable.
- Sweep triggers slowly. Fast pulls hide dead spots. A slow, full sweep exposes jitter, flat zones, and values that never quite reach the extremes.
- Trace stick boundaries deliberately. Rotate each stick at the physical limit in slow circles; rushed traces produce misleading shapes.
- Check vibration support before blaming it. Many controllers β and some browser/OS combinations β simply do not expose a vibration actuator. The tool's support indicator tells you which case you are in.
- Re-test after firmware updates. Controller firmware changes can alter mapping and trigger ranges, so a quick re-run keeps your baseline current.
Ready to Check Your Controller?
Whether you are vetting a secondhand pad, chasing down stick drift, or debugging input for a web game, the Gamepad Tester gives you a complete picture of your controller's health in under a minute. It is free, runs entirely in your browser, and keeps every byte of input data on your own device. Connect your controller and start testing now β your future self will thank you when every button fires exactly when it should.
Related Tools You Might Like
Happy testing!