What is analog stick drift
Stick drift is the bane of every controller owner's life: your character creeps across the floor, your camera slowly pans to one side, or your aim reticle slides away even though your thumbs are off the sticks. The underlying cause is almost always mechanical wear inside the analog stick module, and understanding how it happens makes it easier to diagnose whether your controller is genuinely drifting or just suffering from a misconfigured deadzone.
The variability of symptoms is part of what makes drift so frustrating. The same underlying fault can feel barely noticeable in one game and unplayable in another, depending on how each title handles its deadzone. Knowing whether the hardware or the software is responsible is the first step toward deciding whether to clean, repair, or replace the controller.
How potentiometer wear causes drift
Stick drift is when a thumbstick reports a non-zero position while you are not touching it. In a game, that translates to your character walking, the camera drifting, or an aim reticle creeping in one direction on its own. Inside each stick, two small potentiometers translate physical position into a voltage the controller reads; a conductive wiper slides across a resistive contact pad every time the stick moves. That friction removes a tiny amount of material with each motion, so the resistance at the neutral position shifts over time and the controller reads a false reading as real input.1
How this tester exposes hidden drift
This tester reads raw axis values from the Gamepad API with five decimal
places, which gives enough resolution to catch drift that is invisible
in-game because the game's deadzone filters it out. The canvas shows the
stick's live position as a dot, with a trail of its recent path and a
dashed ring representing the deadzone threshold.2
TIP Leave the controller flat on a desk and keep your hands off the sticks for at least 10 seconds. Any dot movement outside the deadzone ring during that stillness is drift the game will register as input. If the dot wanders outside the ring without you touching the stick, that stick has measurable drift that could affect gameplay in titles with tight or custom deadzones.
Reading the deadzone ring
A game's deadzone is the radius around the stick's center that the engine treats as zero input, and every engine picks a slightly different default. The tester draws that radius as a dashed ring on each canvas so you can see at a glance whether your stick's resting position falls inside the filter or outside it, which is the difference between a controller that feels fine and one that creeps.
What the ring represents
The dashed circle on each canvas represents the deadzone threshold, which
is the radius within which a game ignores stick input. Game engines commonly
expose this threshold as a configurable deadzone range; Bevy, for example,
rounds axis values between deadzone_lowerbound and deadzone_upperbound to
zero. Use the slider below the left stick canvas to match the deadzone of
the specific game you are testing against.3
If your stick's resting dot stays comfortably inside the ring, the game filters it out and you will not experience drift. If the dot wanders outside the ring even briefly when untouched, that drift reaches the game as real input. The axis value readout below each canvas shows the exact floating-point value, which is useful when looking up or comparing a game's deadzone setting in its options menu.4
A worked example makes the ring easier to read. Say you set the slider to 0.08
and your left stick's resting dot shows an axis value of 0.03 while your
hands are off the controller: that reading sits inside the ring, so the game filters it
out completely and you feel no drift during play. If the same stick instead rests at 0.12, it falls outside that 0.08 deadzone, so the drift reaches the game as real
stick movement even though your thumb never touched it.
Testing buttons and triggers
Once you have checked the sticks, the next step is to work through every button and trigger in sequence. The tester lights up each control as it registers a press and shows the raw value the Gamepad API reports, so you can spot buttons that fail to register, triggers that do not return to zero, or inputs that flicker without a firm press.
Reading the button grid
The button grid below the stick canvases lights up each button as it is pressed. Bumpers (LB, RB) and face buttons toggle between lit and unlit. The analog triggers (LT, RT) display a vertical fill bar that tracks the physical depth of the press, which is useful for identifying triggers that do not return to zero or that have reduced travel range.4
Press each button firmly and release it several times. A button that does not light up at all is unresponsive at the OS/browser level, which almost always indicates a hardware fault such as a broken contact or a worn membrane. A trigger that never reaches its minimum after release may have spring damage or debris lodged in the mechanism, and a fill bar that jumps instead of sliding smoothly points to an internal wear issue.5
Work through every button and trigger slowly, watching both the lit state
and the numeric value the Gamepad API reports for each control. A button
that flickers without a full press, or a trigger that jumps between values
instead of ramping smoothly, often signals a worn contact or a failing
spring before a full failure sets in. If you notice those symptoms, capturing
a screenshot of the grid makes it easier to describe the fault when seeking
a repair or replacement.
What about vibration and rumble testing
Everything above watches the controls that send input: sticks, face and
shoulder buttons, and analog triggers. Vibration works in the other
direction, and the Gamepad API keeps the two directions
separate. Haptic feedback travels through its own interface,
GamepadHapticActuator, which represents the rumble hardware
in the controller, and a page has to call that interface deliberately to
spin the motors.6 This
tester reads. It never sends commands to your controller, so a silent pad
during your test is not a verdict on the motors; the one API surface this
page exercises simply has nothing to say about rumble.
That separation is why rumble trouble is usually a software question rather than a dead motor. A game has to request the effect, browser support for the actuator that delivers it varies, and the controller has to expose the hardware at all, so a missing rumble can fail at any of those links while the motor itself is fine.6 When you want proof the motor spins, trigger a moment you know rumbles in a specific game, such as the jolt on a menu selection or the crash of a hit. The result belongs to that game, not to any reading here. Motors sit outside what this page can tell you, and it says so plainly.
Browser compatibility
The Gamepad API is widely supported, but the way controllers are exposed to web pages varies by browser and operating system. Chrome, Firefox, and Edge all implement the spec, yet each has its own permission model and device-detection quirks, which is why a controller that works perfectly in one browser may appear as "waiting" in another until you press a button.
Where the Gamepad API works
The Gamepad API is supported across modern browsers, though connected
gamepads are only exposed after you physically press a button. That
requirement is a deliberate browser security measure that prevents
websites from silently fingerprinting your hardware before you interact
with a page, which is why the tool shows a waiting state until the first
press registers.7
Controller support also depends on your OS and browser combination. Chrome lets websites connect to HID devices such as gamepads when you grant device access, and PlayStation says the DualSense supports USB Type-C and Bluetooth connections on Windows, macOS, Android, and iOS/iPadOS. Behind those differences sits a question you can answer in under a minute: does the operating system itself see the controller at all?89
When the tester stays on the waiting state, make the operating system answer before the browser does. On Windows, open Game Controllers in Control Panel and see whether the pad appears in the device list; a controller the OS cannot list is invisible to every browser, which points the search toward cables, batteries, or drivers instead of this page. macOS and Linux reach the same answer by different routes, and the platform walkthroughs cover them in full: testing a controller on Windows 11, the macOS controller test, and the Linux controller test. Once the OS sees the pad, any remaining waiting state points at the browser layer, and a second browser settles the question fast.
Phones work too, which matters when the only computer in reach is the one
in your pocket. Chrome on Android and Safari on iOS both implement the
Gamepad API, and Safari on iOS has supported it since
version 10.3, so this tester runs on either platform once a controller is
connected.7 For a diagnostic session,
prefer a wired USB-C cable over Bluetooth. Pairing usually behaves, but a
cable removes the pairing variables between you and the readings: nothing
to re-pair halfway through, no connection drops interrupting the
stillness test, and no doubt about which host the controller is answering.
When the goal is trustworthy numbers, the simplest transport wins.
Common approaches to fixing stick drift
Stick drift often responds to cleaning before replacement becomes necessary. Compressed air blown into the gap around the thumbstick dislodges dust and debris that shift the potentiometer's resting position. Contact cleaner sprayed into the mechanism while rotating the stick removes residue from the resistive track, and Nintendo recommends brushing away dirt or debris around stuck Joy-Con sticks before sending the controller in for service.10
When contamination is not the cause, worn potentiometers are the likely culprit. You can replace the potentiometers in DualShock 4, DualSense, and many other popular controllers with inexpensive parts from electronics suppliers. Hall-effect stick modules are marketed as robust, long-lasting upgrades for some controllers because they replace the resistive contact with a magnet and a sensor, which eliminates the friction wear that causes many drift cases. If drift only appears in games with small deadzones, use this tester to confirm whether your stick's resting position stays inside the deadzone ring your game applies, since drift that falls within the filter never reaches the game as real input.11
Hiding drift with a bigger deadzone
If the drift reading is small, software can make it irrelevant without a screwdriver. Drift that falls inside a game's deadzone never reaches the game as input, so raising that threshold until your stick's resting position sits inside it is a legitimate mitigation, not a dodge. Size the value here first: watch the resting dot, read the axis value printed under the canvas, then raise the deadzone slider just above that number and confirm the dot falls back inside the ring. When it does, every game running that deadzone or larger ignores the drift completely, and the controller stays in service while you weigh whether a repair is ever worth the cost.
The tradeoff is real, though. A bigger deadzone swallows the small nudges you use for fine aim before they register, so every micro-adjustment needs a larger physical push to produce movement, which is exactly what competitive players notice first. Where you set the value depends on how you play: many games expose a deadzone slider in their own options menus, and if you launch through Steam, the Steam Input configurator applies per-controller settings that include a deadzone radius for each stick, plus anti-deadzone controls for titles whose own thresholds feel mushy.12 For sizing the number against your own readings, the deadzone calibration guide walks through the full process game by game.
If the controller is still inside its warranty window, capture the evidence before you contact anyone. Support agents triage repair claims by reproducibility, so a screenshot of the resting dot outside the deadzone ring, with the deadzone value and the axis readout visible, tells them more than a paragraph of description; a short video of the dot holding that position with nobody touching the stick settles any doubt. Date the capture, because drift that worsens across a week of readings is a stronger claim than a single number. The Joy-Con drift documentation guide walks through the Nintendo repair case in detail, and the same capture discipline works for any vendor's claim form.
Gamepad & Joystick Drift Tester Checklist
- Deadzone slider set to 0.05–0.15 Most games apply a deadzone somewhere in this range near center — match the slider before judging drift.
- Resting dot stays inside the ring A dot that wanders outside the ring after 10 seconds untouched is drift the game will register as real input.
- Buttons and triggers register cleanly A button that never lights up, or a trigger that will not return to zero, points to a hardware fault rather than stick drift.
Leave your controller untouched above and run its readings against this checklist.
Testing a used controller before you buy
Secondhand controllers are where this tester earns its keep, because drift and dead buttons are exactly the faults a listing photo never shows. The scenario repeats everywhere: you meet the seller, and you have a couple of minutes to decide before someone else messages them about it. Since the tool runs in a browser with nothing to install, you can open it on a laptop or phone in the seller's own space, connect the controller, and read the hardware directly instead of trusting a stranger's word about how it was treated.
Run the checks in order of what a fault would cost you. Start with the
stillness test, because potentiometer wear is the priciest fault to
repair and it hides well: set the deadzone slider to 0.15,
leave the controller untouched for ten seconds, and a resting dot that
sits outside the ring is a repair bill waiting under the stick cap. With
the sticks cleared, sweep every button, bumper, and d-pad direction,
watching for controls that never light. Finish with the triggers: pull
each one fully, release, and confirm the fill bar returns to zero. A dot
outside the ring at 0.15, a button that stays dark, or a
trigger that rests above zero all justify walking away.
Know what the two minutes cannot tell you, too. This tester reads inputs, so it says nothing about battery health, nothing about how the Bluetooth radio behaves beyond the room you are standing in, and nothing about wear that has not yet produced symptoms, such as a potentiometer that starts drifting only after an hour of warm play. Those unknowns are a reason to price a used pad as a used item rather than a safe bet. What you do leave with is the part that matters: proof that every input path works at the moment of sale, in numbers you can hold against any deadzone the games you play actually apply.
- 1.
iFixit, "Hall-Effect Joysticks: How do they work and how will they eliminate joystick drift?", ifixit.com, accessed June 2026. https://www.ifixit.com/Wiki/Hall-Effect_Joysticks
- 2.
World Wide Web Consortium, "Gamepad," W3C Working Draft, w3.org, July 2025. https://www.w3.org/TR/gamepad/
- 3.
Bevy Contributors, "AxisSettings," docs.rs, accessed June 2026. https://docs.rs/bevy/0.15.0/bevy/input/gamepad/struct.AxisSettings.html
- 4.
Mozilla Developer Network, "Gamepad - Web APIs," developer.mozilla.org, accessed June 2026. https://developer.mozilla.org/en-US/docs/Web/API/Gamepad
- 5.
iFixit, "Here’s Why PS5 Joysticks Drift (and Why They’ll Only Get Worse)," ifixit.com, accessed June 2026. https://www.ifixit.com/News/48944/heres-why-ps5-joysticks-drift-and-why-theyll-only-get-worse
- 6.
Mozilla Developer Network, "GamepadHapticActuator - Web APIs," developer.mozilla.org, accessed September 2026. https://developer.mozilla.org/en-US/docs/Web/API/GamepadHapticActuator
- 7.
Mozilla Developer Network, "Gamepad API - Web APIs," developer.mozilla.org, accessed June 2026. https://developer.mozilla.org/en-US/docs/Web/API/Gamepad_API
- 8.
Google Chrome Help, "Connect a Website to a USB, Serial, or HID Device," support.google.com, accessed June 2026. https://support.google.com/chrome/answer/12576972
- 9.
PlayStation, "How to use DualSense wireless controllers with PC, Mac and mobile devices," playstation.com, accessed June 2026. https://www.playstation.com/en-us/support/hardware/pair-dualsense-controller-bluetooth/
- 10.
Nintendo Support, "Joy-Con Control Sticks Are Stuck or Difficult to Move," nintendo.com, accessed June 2026. https://en-americas-support.nintendo.com/app/answers/detail/a_id/22641/
- 11.
8BitDo, "Ultimate 2.4G Controller," 8bitdo.com, accessed June 2026. https://www.8bitdo.com/ultimate-2.4g-wireless-controller/
- 12.
Valve, "Input Source Modes," Steamworks Documentation, partner.steamgames.com, accessed September 2026. https://partner.steamgames.com/doc/features/steam_controller/input_source_modes