Gamepad Tester

Test buttons, analog sticks, deadzone, polling rate, and vibration — all in your browser

Connect your gamepad and press any button to start Supports USB and Bluetooth controllers
Connect controller
X 0.000 Y 0.000
X 0.000 Y 0.000

Buttons

Deadzone Analysis

Connect controller to analyze deadzone
Left Stick
x: 0.000 y: 0.000 Circularity Avg Err:
Right Stick
x: 0.000 y: 0.000 Circularity Avg Err:
Detecting... Left Stick
Detecting... Right Stick

Drift detection: magnitude < 0.02 = no drift; 0.02-0.03 = drift detected (keep stick centered for 0.5s)

Vibration Test

Dual Rumble

0.8
0.5

Trigger Rumble

0.7
0.7

Trigger rumble requires an Xbox controller on Chromium-based browsers

What Does This Tool Actually Test?

This page reads your gamepad's raw button values, analog stick positions, trigger ranges, and vibration using the browser's built-in Gamepad API. Everything runs in your browser tab — nothing is sent to any server. If something feels off with your controller, this is a solid starting point for narrowing down whether the issue is hardware, firmware, or your game's dead-zone settings.

Main Test See every button, stick, and trigger respond in real time. Useful for confirming a specific button registers, checking whether a stick returns to center cleanly, or reading the raw 0–1 trigger value before any game software applies its own curves.
Diagnostics Measures polling rate (how fast your controller reports data), analog stick center offset, and per-frame input processing delay. Handy when comparing controllers or tracking down intermittent misfires.
Touchpad For DualSense and DualShock 4 owners — tracks raw finger coordinates as you swipe across the touchpad surface. Requires enabling an experimental flag in Chrome first.
Health Wizard A six-step guided checkup: buttons, sticks, triggers, D-Pad, drift, and vibration. Ends with a scored report card you can copy as text or save as an image.

Connecting Your Controller

Plug in via USB or pair over Bluetooth, then press any button. Browsers only activate a gamepad after receiving at least one input event — that's a security measure to prevent passive fingerprinting. Once the status bar turns green you'll see the controller name and a live update indicator. If you have more than one controller plugged in, a dropdown in the status bar lets you switch between them.

Browser and Controller Support

All Chromium-based browsers (Chrome, Edge, Opera) and Firefox 52+ support the Gamepad API. Safari added partial support in version 16.4. Xbox wired and wireless receiver, PlayStation DualSense and DualShock 4, Switch Pro Controller, and most generic USB HID gamepads work without any extra setup. Vibration requires Chrome or Edge — Firefox doesn't expose the vibrationActuator API. Nintendo Joy-Cons have limited button mapping on some operating systems.

Diagnostics Tab — The Numbers Behind Your Controller

Polling Rate

Shows how often per second the browser reads your controller's state. Most wired gamepads report at 125 Hz (8 ms interval); some gaming controllers reach 250 Hz or higher. The value is capped by requestAnimationFrame, so it won't exceed your monitor's refresh rate. If you're seeing 60 Hz on a 144 Hz display, try a different USB port — 2.0 vs 3.0 choices have been known to affect HID polling behavior on some systems.

Deadzone Inspector

Rotate the left stick through its full range and watch the scatter plot fill in. Each dot is one resting sample; a cluster spread wide of center means your stick has a physical offset or worn mechanism. This gives you a real measurement to base per-game deadzone settings on rather than guessing. A stick that consistently sits more than 3–5% off center when fully released is showing early drift.

Input Processing Delay

Measures the gap between when the browser updates the gamepad state (gamepad.timestamp) and when the page processes it inside requestAnimationFrame. Healthy values are 1–5 ms. Spikes above 16 ms usually point to a busy browser tab, not a hardware problem. Keep in mind: this measures browser-layer overhead only — true end-to-end latency from physical press to game response requires hardware measurement equipment.

Health Check Wizard — Know Where Your Controller Stands

Click the Wizard tab and hit Start to run a guided six-step checkup: press every button, sweep both sticks in full circles, fully stroke both triggers, tap all four D-Pad directions, rest the sticks for drift measurement, and test each vibration motor. Any step can be skipped if your controller doesn't support that feature — skipped steps are noted in the report but don't count against the overall grade.

Reading the Results

Each step earns Pass, Warning, or Fail. A Warning on Buttons means some buttons weren't pressed during the test; a Fail on Drift means the stick shows measurable off-center noise when fully released. The overall grade is Excellent (all pass), Good (minor warnings only), or Needs Attention (any failures). Hit Copy Report for plain text you can paste anywhere, or Export Image for a shareable card — handy for warranty claims or trade-in descriptions.

Touchpad Test — Experimental Feature

The Touchpad tab uses the Gamepad Multitouch API, a Chromium Dev Trial that surfaces raw touch-point data from game controller touchpads. Enable the Chrome flag described below, connect a supported controller via USB, and you'll see live finger trails, coordinate readouts, velocity tracking, and basic gesture detection. The sections below walk through supported hardware, the Windows Bluetooth caveat, and known API constraints.

How to Enable It

Open chrome://flags/#enable-gamepad-multitouch in Chrome 114 or later, switch the entry to Enabled, and relaunch the browser. Once active, the Touchpad tab unlocks automatically when you connect a compatible controller — no other configuration needed.

Supported Controllers

Chrome's multitouch driver currently supports: Sony DualSense (PS5), Sony DualShock 4 (PS4), Valve Steam Deck, and Valve Steam Controller. Both Sony controllers expose two-finger multitouch hardware — DualShock 4's surface is 1920 × 942 px — but the Dev Trial reports at most one contact per animation frame due to a current implementation cap.

Windows + Bluetooth: Touchpad May Not Work

On Windows, connecting a DualShock 4 or DualSense over Bluetooth often routes through the system's generic HID or XInput layer instead of passing raw HID reports to Chrome. Chrome's touchpad driver needs the raw Bluetooth report with ID 0x11 to read touch data — if Windows intercepts the connection first, gamepad.touchEvents returns empty or null and the Touchpad tab shows "API Not Available" even though buttons and sticks work fine. Three workarounds: use a USB cable (most reliable); install DS4Windows, which exposes the raw HID interface over Bluetooth; or connect on Linux or macOS, where Bluetooth usually works without extra steps.

Known API Limitations

A few rough edges worth knowing: the Dev Trial reports at most one touch contact per frame even though the hardware supports two simultaneous fingers — the second shows up the following frame. Touch-lift events aren't always fired reliably; this tool works around it with a 750 ms stale-contact timeout. Pressing the touchpad as a button briefly corrupts the reported coordinates; the tool freezes the position during that window to avoid phantom movement. Only Chromium-based browsers expose gamepad.touchEvents — Firefox and Safari do not implement this API.