Local controller diagnostics

Controller tester

Inspect the exact buttons and axes your browser exposes, then sample neutral stick behavior without installing software or uploading readings.

How to use

  1. Connect by USB or Bluetooth, choose Start testing, then press a controller button.
  2. Press every button and move each stick and trigger while watching the live values.
  3. Leave the controls untouched, run the three-second neutral sample, then review the results.

Before you start

Starting uses the browser Gamepad API to read connected controller names, mappings, buttons, axes, and reported rumble support. Processing stays on this page. The API normally shows no permission prompt, but browsers may hide a controller until you press one of its buttons.

  • Gamepad API
  • Local processing
  • No saved readings
  • No upload

Ready. Connect a controller, then choose Start testing.

Live controller data

Values are raw browser readings. A button can be analog even when it also reports pressed.

Browser-reported ID
Mapping
Buttons
Axes

Paired axes

Raw position and session-adjusted values

Start testing and interact with a controller to see paired axes.

Buttons

Index, pressed state, and analog value

No button readings yet.

All axes

Normalized by the browser to −1…1

No axis readings yet.

Vibration

Optional output test

Availability will be checked on the active controller. A completed command does not prove motor strength.

Neutral calibration and drift sample

Leave self-centering sticks and triggers untouched for three seconds. This creates a session-only display offset; it does not change controller firmware, operating-system calibration, or game settings.

No neutral sample yet. Sampling reports observed offsets and noise without issuing a hardware verdict.

Representative test cases

  1. Buttons: press and release each control once. Confirm its value rises and returns to zero without sticking.
  2. Range and motion: move each stick slowly to its edges and around a full circle. Look for repeatable gaps, jumps, or limited range.
  3. Neutral behavior: release all controls, run the three-second sample, and repeat once under the same conditions.
  4. Connection comparison: if supported, repeat over USB and Bluetooth. Consistent observations are more useful than a single spike.

Limits of this test

  • The browser and operating system may normalize, remap, hide, or reorder inputs. Non-standard axes are not assumed to be sticks.
  • A short neutral sample cannot certify hardware health. Touching a control, surface vibration, wireless conditions, and browser timing can affect it.
  • The selected dead zone is only a comparison. Games can apply different axial, radial, or response-curve processing.
  • This page does not measure electrical sensor output, true polling rate, or end-to-end input latency.
  • Rumble support varies by controller, connection, platform, and browser. An unavailable or ignored vibration command does not prove a broken motor.

For an unexpected result, reconnect the controller, close software that may capture controller input, repeat the test, and compare with the platform or manufacturer’s official utility before considering repair.