Joystick Tester

Test your analog sticks for drift, dead zones, and range of motion. Plot the exact path of every stick movement in real time.

Quick start

  1. 1
    Connect your controller. Plug it in over USB, or pair it over Bluetooth in your device settings first.
  2. 2
    Press any button first. Browsers won't notice a controller until they see its first input, even from a button rather than a stick.
  3. 3
    Move each stick in a full circle. The plot below traces the path live, so you can see the actual shape your stick draws.

Test your sticks

Live status

Checking for a controller…

No controller detected

Connect a controller by USB or Bluetooth, then press any button — most browsers won't notice it until you do.

How to read the results

The plot and trail

The dot shows the stick's current position; the faint line behind it is the path it has travelled recently. Move the stick in a slow full circle and watch the shape — a healthy stick traces a smooth, round path that reaches close to the outer edge in every direction.

Magnitude and angle

Magnitude is how far from centre the stick currently sits, from 0.000 at rest to roughly 1.000 at full deflection. Angle shows the direction in degrees, with 0° pointing right and increasing counter-clockwise. Together they describe the same position as X and Y, just in a way that's easier to reason about for circular motion.

Drift badge

This watches the stick at rest. If it reports a position notably away from centre while completely untouched, the badge switches to a drift warning. A healthy stick should read at or extremely close to 0.000, 0.000 when left alone.

Dead zone overlay

Drag the slider and a ring appears on the plot. Anything inside that ring is being treated as "centre" for the purposes of this test. Find the smallest radius where your resting dot stays inside the ring without drifting outside it — that's a reasonable dead zone value to use in games that let you set one manually.

Range of motion

This tracks the farthest point your stick has reached in eight directions since the last reset. If one direction consistently falls short of the others, especially compared to its opposite side, that can point to mechanical wear or a stick that's slightly off-centre in its housing.

Connecting by device

Windows & Mac

Plug in over USB, or pair over Bluetooth in your system settings first. Chrome, Edge, and Firefox all support the controller out of the box once it's paired.

Android (phone & tablet)

Pair the controller in your device's Bluetooth settings, then open this page in Chrome. Other Android browsers vary in their support.

iPhone & iPad

Pair an MFi or Bluetooth controller in Settings, then open this page in Safari. iOS has supported the same Gamepad API since version 14.5.

Linux

Plug in over USB or pair over Bluetooth, then use Chrome or Firefox. Some distros need a one-time udev rule for certain Bluetooth controllers to be recognised by the OS at all — if the controller isn't visible at the system level, it won't be visible here either.

Troubleshooting

The dot won't sit still at centre

Check the X and Y readout while not touching the stick. Small flicker around 0.000 to 0.010 is normal sensor noise. Anything larger and steady in one direction is drift, not noise — the drift badge will flag this automatically.

The traced path looks oval or squashed, not round

Most analog sticks are mechanically biased very slightly, so a touch of ovalness is common. A path that's heavily flattened or cut off sharply on one side, rather than gently uneven, usually points to a mechanical limit or wear issue rather than normal variation.

One direction in the range test stays low no matter how hard I push

That side of the stick may be mechanically restricted or worn. Confirm by comparing it to the same stick's opposite direction, and to the same direction on your other stick if your controller has two.

Nothing happens when I connect a controller

Press a button first — many browsers won't register a controller until they see its first input, and moving a stick alone sometimes isn't enough to trigger that first detection.