Display & Input

Gamepad Test

Detect connected controllers, visualize buttons and sticks, read axes and triggers, and test rumble where supported.

Privacy: Gamepad data is read locally by the browser. No controller data is uploaded.

Test interface

Your browser may ask for permission after you press Start.
Connect a controller and press a button. Some browsers require a button press before the controller appears.

Left stick

Right stick

Controller—
Mapping—
Axes—
Connected—
#ButtonsPressedValue
—
Controller support varies by browser and operating system. Vibration is optional. Analog stick values may drift slightly; that is normal for many controllers.

How to use this tool

  1. Connect your controller by USB or Bluetooth, then press a button to wake it.
  2. Click Scan controllers and wait for the device to appear.
  3. Press buttons and move sticks to see live values.
  4. Use the vibration button if your browser supports haptics, then disconnect safely.

Advertisement

Technical explanation

The Gamepad API exposes connected devices through navigator.getGamepads(). Buttons, axes, triggers, and timestamps are polled with requestAnimationFrame. Vibration uses the experimental hapticActuators interface where implemented.

Browser mappings vary. A controller may be recognized while some buttons are unmapped or labelled incorrectly. Raw axis values are device-dependent.

Troubleshooting

Controller is not detected

Press a button after connecting; some browsers only expose a gamepad after user input. Check the operating-system game controller settings.

Wrong button mapping

The browser uses a standard mapping when available, but not every controller reports one. Compare raw indices instead.

Vibration does not work

Haptics support is limited by browser, operating system, and connection type.

Controller disconnects

Try a different USB port or cable, or reconnect Bluetooth. Battery level may be low.

Frequently asked questions

Advertisement