Gamepad & Joystick Drift Tester

Raw axis values, deadzone ring, and button state — all analysis runs locally. No data transmitted.

ZERO UPLOAD · ALL LOCAL

What to look for

  • -1.0 to 1.0, normalized
  • below 0.02
  • 30 minutes to an hour

A stable non-zero reading over 30 seconds confirms hardware drift; a single spike can just be desk vibration or a cable pull.

What to look for

  • -1.0 to 1.0, normalized
  • below 0.02
  • about $9.99 (iFixit)
  • 30 minutes to an hour

A stable non-zero reading over 30 seconds confirms hardware drift; a single spike can just be desk vibration or cable pull.

What to look for

  • any axis reading above 0.05 while untouched
  • above 0.08 to 0.10
  • left Joy-Con, drifting upward on negative Y

What to look for

  • -0.11

What to look for

  • below 0.02 on all axes
  • above 0.05 at rest
  • select the XInput or X mode so the browser sees a standard layout

What to look for

  • 0.08
  • 0.09
  • both axes at 0.0

A stable non-zero reading after 15 seconds untouched confirms hardware wear; a single spike right after you set the controller down does not.

What to look for

  • 0.08
  • 0.09

What to look for

  • -0.14

What this page covers

  • Windows OS check Win+R > joy.cpl, confirms the controller is visible at the driver level before testing in browser
  • Linux permissions evdev nodes (/dev/input/event*) require membership in the input group: sudo usermod -aG input $USER
  • Chrome internals page chrome://gamepad-internals/ shows raw Gamepad API data, more sensitive than any third-party test page
  • Input mode switch controllers with a D/X switch (e.g. Logitech F310) need XInput mode for reliable browser mapping

What to look for

  • 0.02, within tolerance
  • under 0.05
  • 0.85 instead of 1.0

What to look for

  • 0.06

What this page covers

  • joy.cpl Win+R > joy.cpl, the DirectInput Game Controller panel with its own Test tab
  • XInput vs DirectInput XUSB controllers report separate trigger axes in XInput, but a combined Z axis under DirectInput
  • Device Manager Win+X > Device Manager > Human Interface Devices, to update or reinstall a driver
  • Mode switches Logitech F310's D/X switch and 8BitDo button combos must be set before the controller connects

What this page covers

  • System Information > USB Apple menu (Option-click) > System Information, confirms the OS sees a wired controller before browser testing
  • Bluetooth pairing flow System Settings > Bluetooth, showing paired-but-disconnected devices that need a manual reconnect
  • chrome://gamepad-internals/ isolates whether an issue is page-specific or a deeper OS/browser problem
  • DualSense pairing hold PS + Create until the LED pulses white, then select it from Bluetooth settings

What this page covers

  • evdev vs joydev Chromium reads /dev/input/event* (evdev); jstest-gtk primarily reads /dev/input/js* (joydev)
  • Finding the right device cat /proc/bus/input/devices, then match the Handlers line's eventN to /dev/input/eventN
  • Permanent udev rule /etc/udev/rules.d/99-gamepad.rules with GROUP="input" MODE="0664", then udevadm control --reload-rules
  • input group membership sudo usermod -aG input $USER, requires a full logout/login, not just a new terminal

What this page covers

  • Switch to Desktop Mode hold the Steam button > Power > Switch to Desktop, since Gaming Mode has no browser access
  • Trackpads are not axes reported through SDL's joystick touchpad API, not the standard Gamepad API axis array
  • External controller wiring the Deck has one multi-purpose USB-C jack, so a hub is needed for USB-A peripherals
  • Steam Input conflicts Steam can grab the raw evdev device and present a virtual Xbox controller instead

What this page covers

  • Quit Steam for raw values right-click the Steam icon > Exit Steam, so the browser reads the kernel evdev interface directly
  • Per-controller override Steam Settings > Controller > set the device template to No Steam Input
  • SDL gamepad database sdl2-jstest --list shows how SDL2 games map your controller's USB vendor/product ID
  • Proton scope Proton only intercepts input for Windows-native executables, not the browser's own Gamepad API access

What to look for

  • 17 button indices

What to look for

  • -1.0 to +1.0, with 0.0 as centered
  • any persistent non-zero reading at rest
  • a 0.04 reading is invisible under a 0.10 deadzone, but visible under a 0.03 deadzone

Hall effect sticks use a contactless magnetic sensor instead of a worn potentiometer track, so they should read closer to 0.0 at rest even after heavy use.

Connect your controller and press any button to begin.

Browsers require at least one button press before exposing gamepad data — this is a security measure, not a bug.

Controller disconnected — reconnect and press any button to resume.

Left Stick
X0.00000 Y0.00000
Right Stick
X0.00000 Y0.00000
0.100
Bumpers & Triggers
LB
LT
RT
RB
D-Pad
↑
←
→
↓
System
Back
Start
L3
R3
Face
X
Y
A
B
  1. Connect your gamepad via USB or Bluetooth.
  2. Press any button on the controller — the browser will detect it automatically.
  3. Watch the left and right stick canvases. A healthy stick rests near the center dot.
  4. Set the deadzone slider to match your game's deadzone (check game settings; most use 0.05–0.15).
  5. Leave the controller untouched for 10 seconds. Any dot movement outside the deadzone ring indicates drift.
  6. Press all buttons and triggers to confirm they register correctly.

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

Hall effect sticks and drift documentation

Not every controller uses a carbon contact potentiometer. Hall effect sticks replace it with a magnetic sensor, so there is no wiper sliding across a resistive track to wear down, and a controller that uses them should hold a very consistent resting reading over its lifetime. That does not make them immune to drift, because the magnetic sensor array can still shift and firmware calibration can move after an update, so a resting offset is worth checking rather than assumed away. A hall effect stick that reads clean here confirms the sensor is centred, which is the same result you want from a potentiometer stick.

Whichever stick type your controller uses, a screenshot is the useful artefact if you contact the manufacturer. Capture the numeric axis readout and the canvas dot together while both sticks sit untouched for at least 30 seconds, so the image shows both the value and its direction from centre. A screenshot with both elements is more persuasive than either alone, and the numeric value lets a support agent match the reading to the axis and direction you describe.

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.

For a stick drift test, begin with the controller at rest, because the test measures whether an analog thumbstick reports a non-zero position while you are not touching it. In games this translates to a character walking on its own, an aim reticle that slowly creeps toward one corner, or a camera that rotates without input. In common controller modules, that false movement comes from potentiometer wear, dust, spring fatigue, or other changes that alter the voltage reading used to report stick position.1

The browser reads that position through the Gamepad API. The specification describes axes as analog input values, with centered axes returning their preferred center value and analog ranges commonly normalized for web input. For this tester, 0.0 on an axis means the browser is seeing a centered value, while a stable offset away from 0.0 is the signal you are checking.2 For the most reliable result, keep the controller flat, avoid resting cables or hands on the sticks, and wait until the first reading stops moving before you record it. That simple setup step separates real drift from vibration or accidental stick pressure.

How to run the drift test

The Gamepad API reports axis values as floating-point numbers between -1.0 and +1.0. Positive X is right, negative X is left, positive Y is down, and negative Y is up.2 To run the test, connect your controller, press any button to register the device, then place the controller flat on a desk and leave both sticks completely untouched for at least 10 seconds.

Reading the canvas dot and axis values

Watch the canvas dot for each stick. A dot sitting near center with both axes close to 0.00000 indicates no measurable drift in that browser session. A persistent non-zero value is worth watching, especially if the canvas dot stays offset while the stick is untouched. Use the deadzone slider to compare that value against the deadzone setting in the game where you notice movement, the same check you use to see how far your stick drifts past the deadzone. A stable offset that repeats across multiple readings taken several minutes apart is stronger evidence for hardware drift than a single borderline snapshot.

After the device registers, press each face button in turn and confirm the tester responds to each press before you run the observation. A control that never responds points to a registration or connection problem rather than stick drift, so resolve that first, because a controller the browser has not fully registered can report a misleading resting axis value.

Hall effect sticks

Hall effect sticks replace the carbon contact potentiometer with a magnetic sensor. 8BitDo lists Hall Effect joysticks and triggers on its Ultimate 2C Wireless Controller, and describes them as upgraded, robust, and long-lasting.3 Because there is no physical contact between a wiper and a carbon track, the wear mechanism described for traditional potentiometer sticks is not present in the same way. A potentiometer works by sliding a wiper along a resistive strip and reading the voltage at that point, so any wear on the strip or the wiper shows up directly as a wrong position reading.4

Why hall effect sticks need less wear concern

Testing a hall effect controller here should produce stable readings at rest. If the value still moves, check for vibration, pressure on the stick, or a gamepad API mapping issue before assuming the controller is faulty. Hall effect sensors resist the carbon-track wear that plagues traditional potentiometers, but they can still drift if the magnetic sensor array shifts or if the firmware calibration drifts after a firmware update.

Documenting drift for a warranty or repair request

Photographing and documenting drift values before contacting a manufacturer or repair shop strengthens your case. Take a screenshot while both sticks are at rest on a flat surface for at least 30 seconds. Capture both the numeric axis readout and the canvas dot position showing the offset from center. A screenshot that shows both elements is more persuasive than either alone, because it confirms that the numeric reading corresponds to an actual off-center dot rather than a display artefact.

For a warranty request, note the specific axis and direction of the drift: axis 1 left stick Y in the negative direction, or axis 2 right stick X in the positive direction. iFixit's troubleshooting guidance separates the causes into firmware and settings problems, internal debris, joystick wear, and a faulty circuit board, so it is worth ruling out the first two before treating a stable offset as hardware failure.5 Most manufacturers do not publish a minimum drift threshold for warranty coverage. What strengthens a claim is a stable, sustained non-zero value at rest, documented across multiple readings taken over several days rather than a single session. Take three screenshots at separate times and compare the values to show the drift is consistent and not a transient reading.

Acting within the retailer return window

If you discover drift during the retailer return period, a return bypasses manufacturer warranty processes entirely and typically has no minimum threshold or defect count requirement. For third-party repair, the screenshot gives the technician a calibration target after replacing the stick module. Retesting here after the repair confirms whether the new module reads close to 0.0 at rest. A successful repair should bring the resting axis value below 0.02 on all four stick axes, and you can use the before-and-after screenshots to document the improvement.

Run this test when your character moves without input, your aim creeps in one direction, or you want to document drift values before contacting your controller manufacturer about a warranty replacement.

Left stick showing persistent upward drift

Before
Axis 1 (LY): -0.08623 at rest - sticks untouched for 30 seconds
After
Axis 1 (LY): -0.08623 (hardware drift - cleaning may temporarily reduce it but will not resolve the wear)

A reading of -0.086 is large enough to compare against the game deadzone. Your character may walk or look upward without input.

Drift masked by game deadzone

Before
Axis 0 (LX): 0.03124 at rest - inside a 0.08 game deadzone
After
Axis 0 (LX): 0.03124 - still present and still hardware drift

The game filters it out at its current level, but potentiometer wear typically worsens over time. Screenshot the value and retest in 30 days.

Confirming a hall effect stick is drift-free

Before
Axis 0 (LX): 0.00000 / Axis 1 (LY): 0.00000 - stable for 60 seconds without touching the stick
After
(no change - exactly 0.0 throughout)

A reading near 0.0 that holds steady confirms the magnetic sensor is not producing measurable drift in this browser session.

Sources for this section
  1. 1.

    Kevin Purdy, "Here’s Why PS5 Joysticks Drift (and Why They’ll Only Get Worse)," ifixit.com, accessed October 2026. https://www.ifixit.com/News/48944/heres-why-ps5-joysticks-drift-and-why-theyll-only-get-worse

  2. 2.

    W3C, "Gamepad," w3.org, July 2025. https://www.w3.org/TR/gamepad/

  3. 3.

    8BitDo, "Ultimate 2C Wireless Controller," 8bitdo.com, accessed June 2026. https://www.8bitdo.com/ultimate-2c-wireless-controller/

  4. 4.

    Jacob Mehnert, "PS5 Controller Stick Drift," ifixit.com, accessed October 2026. https://www.ifixit.com/Troubleshooting/DualSense/Controller+Stick+Drift/538813

  5. 5.

    "Potentiometer," Wikipedia, en.wikipedia.org, accessed October 2026. https://en.wikipedia.org/wiki/Potentiometer

FAQ

There is no single universal threshold. A stable non-zero value while the stick is untouched is the important signal. Use the deadzone slider on the stick canvas to compare the drift value against the specific deadzone setting a game uses.

Sometimes temporarily. Applying a small amount of isopropyl alcohol through the stick gap can flush debris or oxidation from the carbon track and reduce drift values for days to weeks. It does not fix the underlying wear and the drift will return and continue worsening.

If the drift value is inside the game's deadzone, the browser still shows a non-zero value while the game ignores it. Check the game's controller settings for its deadzone value and compare it to the axis reading here. They may also differ if the game applies its own calibration on top of the hardware reading.

Often yes. Once the potentiometer carbon track starts wearing, the reading can become less stable. Screenshot the values today and retest in 30 days to track the progression.

Small variation between readings is normal. The browser samples the Gamepad API at the animation frame rate and each reading reflects the current hardware state. Look for a consistent directional bias across multiple readings rather than a single precise value.

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.

Gamepad tester with a connected controller at rest: left stick at X -0.15770, Y -0.03227, right stick at X 0.13283, Y -0.07576, and both dots inside the deadzone ring set to 0.170
A controller left untouched still reports small offsets: the left stick rests at X -0.15770, Y -0.03227 and the right stick at X 0.13283, Y -0.07576. With the deadzone raised to 0.170, both rest points fall just inside the ring.

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.

Sources
  1. 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. 2.

    World Wide Web Consortium, "Gamepad," W3C Working Draft, w3.org, July 2025. https://www.w3.org/TR/gamepad/

  3. 3.

    Bevy Contributors, "AxisSettings," docs.rs, accessed June 2026. https://docs.rs/bevy/0.15.0/bevy/input/gamepad/struct.AxisSettings.html

  4. 4.

    Mozilla Developer Network, "Gamepad - Web APIs," developer.mozilla.org, accessed June 2026. https://developer.mozilla.org/en-US/docs/Web/API/Gamepad

  5. 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. 6.

    Mozilla Developer Network, "GamepadHapticActuator - Web APIs," developer.mozilla.org, accessed September 2026. https://developer.mozilla.org/en-US/docs/Web/API/GamepadHapticActuator

  7. 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. 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. 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. 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. 11.

    8BitDo, "Ultimate 2.4G Controller," 8bitdo.com, accessed June 2026. https://www.8bitdo.com/ultimate-2.4g-wireless-controller/

  12. 12.

    Valve, "Input Source Modes," Steamworks Documentation, partner.steamgames.com, accessed September 2026. https://partner.steamgames.com/doc/features/steam_controller/input_source_modes

FAQ

Stick drift is when an analog thumbstick registers movement even when you're not touching it. It's usually caused by wear on the potentiometers inside the controller, dust or debris under the stick, or weakened return springs. It tends to get worse over time.

It depends on the game. Most games apply a deadzone of roughly 0.05 to 0.15 to ignore small inputs near center. If your stick shows drift values that stay outside the deadzone ring you've set, the game will register it as real input. If the drift stays well inside the ring, the game will filter it out and you're probably fine.

No. CapyToolkit runs the entire diagnostic in your browser with no server involved. Your button presses, axis values, and hardware details never leave your device.

Yes, as long as your browser and OS recognize the controller as a standard HID gamepad. Chrome on Windows and Linux has the broadest compatibility. PS5 DualSense works natively in Chrome over USB and Bluetooth. Xbox controllers work out of the box on Windows in all major browsers.

Try pressing a button. Most browsers, including Chrome, require at least one button press before they expose the gamepad to web pages. This is a browser security measure, not a bug in the tool.

Yes. Any gamepad-API-compatible input device will work. The axis visualization shows all four reported axes, so you can read the X and Y position of a flight stick the same way you would a thumbstick.

Additional resources

Guides

PlayStation Controller Test: DualShock 4 and DualSense Test a DualShock 4 or DualSense for analog stick drift, read the trigger axes, and document the result for a repair, with the model-specific notes for both PlayStation controllers in one place. Nintendo Controller Test: Switch Pro Controller and Joy-Con Drift Test a Nintendo Switch Pro Controller or Joy-Con for stick drift, read the trigger axes, and document the result for Nintendo's repair process, with the per-model notes for both controllers in one place. Third-Party Controller Test: 8BitDo, Logitech, PowerA and Razer Test an 8BitDo, Logitech, PowerA or Razer controller for stick drift, trigger range and button response, and see how each third-party pad presents itself to the browser Gamepad API. Xbox Controller Drift Test and Per-Model Notes Test an Xbox controller for analog stick drift across the Xbox 360, Xbox One, Xbox Series X/S and Elite Series 2, and see what each generation changes about the same test. Controller Deadzone Test and Calibration Guide Understand and calibrate your controller deadzone using live axis values. Learn how to match your deadzone setting to the specific game you are testing against. Controller Not Detected in Browser Fix a controller that is not showing up in your browser. Step-by-step troubleshooting for USB and Bluetooth gamepads on Windows, Mac, and Linux. Controller Trigger Test: Diagnosing LT and RT Issues Test your controller triggers in your browser. Diagnose triggers that do not register, do not reach full range, or do not return to zero after release. Flight Stick and HOTAS Test - Joystick Axis Calibration Guide Test your flight stick, joystick, or HOTAS in your browser using the Gamepad API. Read axis values, hat switch position, and throttle range without any software install.