Gamepad Tester and Stick Drift Test

To test a controller for stick drift, release both sticks and measure for a few seconds. A resting deviation above about 12 percent suggests drift. The polling rate cannot be measured in a browser.

Press any button on your controller once to connect it.

Stick drift test

Put the controller down and release both sticks. Do not touch it during the test.

Rumble test

Did this solve your problem?
Prefer us on Google

How to use

  1. Connect the controller by USB or Bluetooth, then press any button once. Browsers hide a controller until it sends its first input.
  2. Press buttons and move the sticks. Each button lights up and triggers show a value from 0 to 100 percent. The circles show the stick position and the axis values from -1 to 1.
  3. For the stick drift test, put the controller down, release both sticks and press Start. After 5 seconds you get the largest and average deviation of each stick and a suggested deadzone.
  4. Use the rumble button to check the motors if your browser and controller support it. With several controllers connected, pick one from the list.

How it works

The page reads the Gamepad API on every screen frame. A stick axis runs from -1 to 1, and a stick at rest should report 0 on both axes.

The drift test collects every frame for 5 seconds. The deviation of a sample is the distance from the centre, sqrt(x squared + y squared). The page shows the maximum, the average and the average resting position (X, Y).

The suggested deadzone is the maximum deviation rounded up to the next whole percent, plus one point. The labels for none, slight and suspected drift use fixed limits (about 5 and 12 percent). They are a rule of thumb, not a manufacturer standard or a diagnosis.

Reading the drift result

Stick drift means the cursor or camera moves although you are not touching the stick. Worn potentiometers, dust and a loose spring are the usual causes. A small resting deviation is normal for any stick, which is why games apply a deadzone.

Max deviationLabelWhat to try
Under 5%NormalNothing needed
5% to 12%SlightA deadzone of 10 to 15% in the game settings usually hides it
Over 12%Drift suspectedClean around the stick, test on another device, then consider repair or warranty

If the controller is not detected

  • Press a button after the page has loaded. Chrome, Edge and Firefox only expose a controller after the first input.
  • Close Steam, the console companion app and other games that may hold the controller exclusively.
  • PlayStation and Switch controllers work over USB in most browsers. Over Bluetooth, pair them in the system settings first.
  • If buttons are labelled with numbers such as #0, the browser did not report a standard layout. The sticks and values still work.

Good habits when testing

  • Run the drift test with the controller on a table so your hands do not touch the sticks.
  • Repeat it two or three times. A real drift shows up in every run, a one-off bump does not.
  • Test wired and wireless separately, since a weak battery can also cause odd readings.

FAQ

How do I do a stick drift test?

Connect the controller, press a button once, put it on a table and press Start in the drift section. Do not touch it for 5 seconds. The result shows the largest and average deviation of each stick and a suggested deadzone.

Can this show my controller polling rate?

No. The Gamepad API gives the page a snapshot once per screen frame, so the real polling rate of the controller cannot be measured in a browser. Any number shown here would be the screen refresh rate, not the controller.

What deadzone should I use?

Use the suggested value as a starting point and set the in-game deadzone a little above it. A larger deadzone hides drift but also makes small stick movements stop registering.

Why does my stick never read exactly 0?

Analog sticks have tolerance, so a tiny reading at rest is normal. Only a large or steadily growing deviation points to drift.

Why is there no rumble?

Rumble needs a browser and a connection that expose the vibration actuator. It often works in Chrome and Edge over USB, and is missing in Safari and on many Bluetooth connections.

Is anything sent to a server?

No. Everything runs in your browser and nothing about your controller is stored or uploaded.