Gamepad Tester — Buttons, Stick Drift & Rumble

Free online controller test: buttons light up live, measure stick drift + deadzone suggestion, press counts, update rate and rumble — all in the browser.

Loading the controller tester…

Connect, press a button, watch it light up

Plug the pad in over USB — or pair it over Bluetooth — then press any button on the controller itself. That last step is mandatory: browsers refuse to reveal a gamepad until you’ve touched it, so a page can never discover hardware silently. The moment the first press lands, the tester fills in: the pad’s reported name, layout, button and axis counts, and a live diagram where every input lights as you use it — face buttons, bumpers, D-pad, stick clicks, home. LT and RT show their analog pull as a fill level, not just an on/off, and the two stick scopes trace X/Y position with a fading trail.

Drift, counted presses, update rate, rumble

The resting-drift check is the reason most people arrive: hands off the sticks for four seconds and you get each stick’s worst offset, a plain-English verdict, and a deadzone suggestion sized to your hardware — the number to paste into your game’s settings or Steam Input. The button grid counts every press per input and replays your last sixteen presses as a sequence — handy for “did that click register?” debugging before an RMA. The update-rate panel measures the honest layer of input speed: how often the browser refreshes the pad snapshot and the press-to-detection gap, both bounded by the frame loop. And if your browser exposes the actuator, the rumble buttons fire the weak and strong motors independently.

What a web page can’t see

Everything above the wire is observable; the wire itself isn’t. USB polling rate, true end-to-end latency and hardware internals stay invisible to JavaScript — the tester labels those ceilings rather than pretending past them. For the parts that live off-page: why sticks drift and how to fix them, what a deadzone really costs, polling rate and input lag, which controllers pair cleanly, and the browser-by-browser API quirks.

Frequently asked questions

Why doesn't my controller show up?

Two gates must open. First, the pad has to reach the OS — USB cable, or a successful Bluetooth pairing. Second, the browser only reveals gamepads after you press a button on the pad; that's a deliberate privacy rule so a page can't fingerprint hardware you never touched. Connect, press any button once, and this tester lights up within a frame.

How do I check for stick drift?

Connect the pad, put it on the desk, then press Measure resting drift and don't touch the sticks for four seconds. The report shows each stick's worst resting offset and a verdict band — under ~0.03 is normal sensor noise, past ~0.10 is real drift games will feel. The suggested deadzone it prints is the value to dial into your game or Steam Input. Causes and fixes live in the stick drift guide.

What deadzone should I set?

Just above your stick's resting offset — never bigger than it needs to be. The drift check suggests a value rounded up to the nearest 5% with a little headroom. A deadzone that's too generous eats the first degrees of stick travel and makes aim feel laggy. The deadzone guide explains the trade-off and where the setting actually lives.

Can this measure my controller's polling rate?

Partially — and the partial answer is labeled honestly. The page can count how often your browser refreshes the gamepad snapshot and how long a press takes to reach the page, both capped by the animation frame loop (~16.7ms on a 60Hz screen). The pad's true USB polling rate (125/250/1000Hz) happens on the wire where JavaScript can't see it — the polling rate guide covers what those numbers mean and how to change them.

Why doesn't the rumble test do anything?

Rumble support is a browser-and-pad lottery. Chrome and Edge expose the dual-rumble actuator on Xbox and DualSense pads; Firefox offers an older single-motor pulse on some devices; Safari generally exposes none. The tester reports exactly which channel your browser offers — 'not exposed' is the browser's answer, not a broken controller.

Which controllers work?

Nearly everything USB or Bluetooth: Xbox 360/One/Series pads are the reference citizens, PS4/PS5 controllers work well, Switch Pro and Joy-Cons pair with quirks, 8BitDo pads are solid in X-input mode, and fight sticks, wheels and generic HID pads all enumerate. The compatibility table lists each family's caveats.

The labels don't match my pad's buttons — is it broken?

No — your pad reports a non-standard mapping. The tester still shows every button, trigger value and axis live, it just can't promise that index 0 is physically 'A'. Browser-side layout quirks like this are covered in the Gamepad API notes.

Is anything uploaded or tracked?

No. The entire tester runs in this tab — pad state is read straight from your browser's Gamepad API and never leaves the page. The site is static files; there is no endpoint that could receive your inputs. The one outbound ping is a small cookieless page-view counter disclosed in the privacy policy.

Latest articles