inputprobe

Gamepad tester

Connect a controller and press any button on it.

Wired or Bluetooth both work. The browser only shows a controller after a button press. Then press every button, roll both sticks and pull both triggers; the diagram lights as each one registers.

Controller diagram. Each button fills as you press it, and its label is drawn beside it. LT RT LB RB L3 Y X B A R3

Connect a controller and press any button on it. Wired or Bluetooth. The browser only shows a controller after a button press.

left stick
right stick
left trigger - right trigger - state refresh seen -

held: none

registered 0 of 17 standard buttons

bottom face button A / Cross

presses 0 fastest gap -

Not pressed yet.

right face button B / Circle

presses 0 fastest gap -

Not pressed yet.

left face button X / Square

presses 0 fastest gap -

Not pressed yet.

top face button Y / Triangle

presses 0 fastest gap -

Not pressed yet.

left bumper LB / L1

presses 0 fastest gap -

Not pressed yet.

right bumper RB / R1

presses 0 fastest gap -

Not pressed yet.

left trigger LT / L2

presses 0 fastest gap -

Not pressed yet.

right trigger RT / R2

presses 0 fastest gap -

Not pressed yet.

view button View / Share / Select

presses 0 fastest gap -

Not pressed yet.

menu button Menu / Options / Start

presses 0 fastest gap -

Not pressed yet.

left stick click L3

presses 0 fastest gap -

Not pressed yet.

right stick click R3

presses 0 fastest gap -

Not pressed yet.

d-pad up

presses 0 fastest gap -

Not pressed yet.

d-pad down

presses 0 fastest gap -

Not pressed yet.

d-pad left

presses 0 fastest gap -

Not pressed yet.

d-pad right

presses 0 fastest gap -

Not pressed yet.

home button Guide / PS

presses 0 fastest gap -

Not pressed yet.

This is a gamepad tester that reads your controller the way a game does and shows you what actually arrives: which buttons register, where each stick rests and how far it travels, how far each trigger pulls, and whether the browser can make it rumble. Connect the controller by cable or Bluetooth, press any button on it so the browser lets the page see it, and the drawing above lights as you press. It works as an Xbox controller tester, a PS5 controller tester or a PS4 controller tester, and with any generic game controller that reports the standard layout, because the names it shows are words rather than badges. Nothing is uploaded.

How to test your controller

Press every button once. The chip in the corner counts how many of the seventeen standard buttons have registered, and the ones still to press stay dark on the drawing, so you can see what is left without reading anything. Roll both sticks slowly around their rims and watch the dots trace the circle on the two small plots. Pull each trigger from rest to the stop and watch the bar fill; a trigger that reports many steps between 0.00 and 1.00 is analog, and one that jumps straight between the two is a plain switch.

The cards beneath the drawing name each button in words, with the common names for Xbox and PlayStation pads beside the position, so "bottom face button (A / Cross)" is the same physical button whichever controller you hold. If your controller does not report the standard layout, the cards fall back to numbers and the page says so, rather than guessing which cap is which. Flight sticks and arcade sticks appear too, which makes this a joystick tester as well, though their layouts are rarely standard and their axes often mean something other than a thumbstick.

What the drawing shows

A button fills cyan while it is held and keeps a dim ring once it has been pressed at least once. The stick caps move with your thumbs, and the two plots beside the drawing show the same sticks on a calibration grid with the documented dead zones drawn as dashed rings, so a stick that rests off centre is visible before you run the full stick drift test. The connection card names the controller as the browser reports it, states whether it uses the standard layout, and counts its buttons and axes. That card is worth a look on its own: two controllers that feel identical can report quite different things.

What a browser can and cannot measure

A browser does not receive controller events. It holds a copy of the controller's state and lets a page read that copy whenever the page asks. This page asks about 250 times a second, and the "state refresh seen" figure counts how often the browser's copy changed between reads. That number is a property of the browser and this machine together. It is not the controller's polling rate, and the page never calls it one. When the state changed as often as the page read it, the diagnostics say the page was the ceiling, not the controller.

The same fact means this page is not a controller latency test or an input lag test. A browser cannot see when your thumb pressed the button, only when it next read the state, so any latency figure would be measuring the page's own sampling and dressing it up as the controller's. The polling rate test explains the events-versus-frames distinction that makes a mouse measurable where a controller is not.

It also sets the resolution of every timing figure on the cards. The button test calls a mouse switch faulty only when a press lands under 25 milliseconds after a release, a floor measured on real hardware. At a 4 millisecond read gap that floor can be resolved; at a 16.7 millisecond frame gap it cannot, and every gap the page measures is a multiple of the gap it reads at. So the cards print the resolution beside any gap under the floor and describe it as data. No card on this page will call your controller faulty on timing evidence the sampling cannot support.

Rumble and connection details

Where the browser exposes vibration, a button on the connection card plays a short rumble so you can check both motors. Where it does not, the card says so in a sentence instead of showing a control that does nothing. At the time of writing, Chromium-based browsers expose it and others generally do not.

When a button does not light

Press it again, firmly; some caps have travel before the switch. Check the controller in another game or in your operating system's own controller panel. If it fails there too, it is the controller, and this controller testing has done its job: you can decide whether to clean, repair or replace before you blame the game. If the whole controller never appears, make sure it is in pairing mode or plugged in with a cable that carries data, since some charging cables do not. A controller that appears but reports no standard layout is usually one the browser does not recognise; it still works as a gamepad checker, just with numbered buttons.

Run the controller test again after any repair, and use the stick drift test when the camera or your character moves with your thumbs off the sticks. Both pages read the same controller in the same way.

Frequently asked questions

How do I test my controller online?

Plug it in or pair it, open this page, and press any button. The browser only shows a controller to a page after a button press, so the drawing stays dim until then. Once it appears, press every button, roll both sticks and pull both triggers; the chip counts what has registered and the cards list each button in words with its press count.

Does this work with an Xbox, PS5 or PS4 controller?

Yes. Any controller the browser recognises with the standard layout is shown with its buttons named by position and by the common Xbox and PlayStation names, in words. Controllers the browser does not recognise still appear, with numbered buttons and a note saying the layout is not standard. A controller tester online can only show what the browser reports; it cannot install drivers or change how the controller pairs.

Can this measure controller input lag or polling rate?

No, and the page says why rather than printing a number. A browser reads controller state on its own schedule and never sees the controller's own reports, so it cannot know when a press happened or how often the controller sends. The "state refresh seen" figure is how often the browser's copy of the state changed while this page was reading it, which is a fact about the browser, not a polling rate.

Why does my controller not show up?

Press a button on it: browsers hide controllers from pages until one is pressed. If it still does not appear, check that it is paired or plugged in with a data cable, that no other program has taken exclusive control of it, and that your browser is current. On a phone or tablet, a controller paired over Bluetooth works here too.

Does this upload anything?

No. The controller is read in your browser and nothing about your session leaves your machine. There is no account, no upload, and no server involved in the result. The "Copy result" button puts a plain-text summary on your clipboard for a forum post or a support ticket, and nothing else.