Device tests · Input devices
Gamepad / Controller Test
This gamepad tester shows exactly what your browser receives from a game controller: every button with its pressed state and analog value, both analog sticks with live X and Y values, and a resting stick drift check.
Press “Start Controller Test”, connect your controller by USB or Bluetooth and press any button. Nothing is installed and nothing about your controller leaves your browser.
- Buttons, triggers & sticks
- Stick drift check
- No permissions required
Ready to test your controller
Press start, then connect your controller and press any button.
Ready to test your controller
Controller status
- Status
- Ready to test your controller
- Controllers found
- —
- Name / ID
- —
- Mapping
- —
- Buttons / axes
- —
Resting drift check
Let go of both sticks, then measure for 3 seconds. The largest distance from centre is reported.
Small non-zero values can be normal. Controllers, browser mappings and hardware deadzones differ, so this is guidance, not a hardware diagnosis.
Overview
What this controller test checks
- Whether the browser detects your controller, its reported name and how many controllers are connected.
- Every button the controller exposes, shown as pressed or up, with its value from 0 to 1 — triggers and pressure-sensitive buttons show values in between.
- Left and right analog sticks: X value, Y value and distance from centre, with a live position dot.
- A 3-second hands-off measurement of how far each stick rests from centre.
Procedure
How the test works
- 01
Start the test
Press “Start Controller Test”. The page begins reading controllers.
- 02
Connect and press
Connect your controller and press any button — browsers only reveal a controller after an input.
- 03
Test every button
Press each button and trigger. Its tile switches to PRESSED and its value bar fills.
- 04
Move both sticks
Roll each stick around its full range and watch the dot reach the edge in every direction.
- 05
Check drift
Let go of both sticks and press “Measure resting drift”. Keep hands off for 3 seconds.
- 06
Pick another controller
With several connected, choose one from the controller selector.
Stick drift
What stick drift is and how it is measured
Stick drift is when an analog stick reports movement while nobody is touching it. In a game it shows up as a character slowly walking or a camera creeping on its own. It is usually caused by wear or dirt in the stick's sensor, but a reading alone cannot tell you the cause.
The resting drift check reads both sticks on every animation frame for 3 seconds while you keep your hands off. For each stick it records the largest distance from centre, calculated as √(x² + y²), and reports that raw number with a cautious label.
- Below 0.05: excellent / negligible offset.
- 0.05 to below 0.15: small offset — common and often hidden by a game's deadzone.
- 0.15 and above: noticeable drift — worth re-testing after cleaning, and comparing in another browser or device.
- These thresholds are this page's own guidance for reading the numbers, not an industry standard or a manufacturer specification.
Axes
How to read X and Y axis values
Each stick reports two axes between −1 and +1. X is horizontal: −1 is fully left, +1 fully right. Y is vertical in the browser's convention: −1 is fully up, +1 fully down. 0, 0 is the centre.
At rest a stick rarely reads exactly 0.000. Values a few thousandths away from zero are ordinary sensor noise. Pushed fully in a direction, a healthy stick should reach close to ±1 on that axis; diagonal pushes can read a distance slightly above 1 on some controllers.
Deadzone
What controller deadzone means
A deadzone is a small area around the centre in which a game ignores stick movement. Because no stick returns perfectly to zero, games use it so tiny resting offsets do not move your character.
This page shows raw browser values with no deadzone applied, so you see offsets a game would normally hide. The dashed circle on each stick marks an illustrative 0.10 radius only — it is not your game's setting, and this page cannot measure or know any game's internal deadzone.
If your resting offset sits inside the deadzone a game uses, you will not notice drift in that game. If it is larger, raising the game's deadzone setting can hide it, at the cost of slightly less responsive small movements.
Factors
Common controller problems
What this test can reveal, and what it cannot.
Stick drift
A stick that rests well away from centre shows a high value in the resting check.
Unresponsive button
A tile that never switches to PRESSED means no input reached the browser.
Sticky trigger
A trigger whose value does not return to 0.00 after release may be dirty or worn.
Limited stick range
A stick that cannot reach near ±1 in one direction may be obstructed.
Intermittent connection
Repeated disconnected messages point to a cable, port or wireless issue.
Phantom presses
A button flickering to PRESSED untouched can indicate a faulty contact.
Troubleshooting
If the test does not behave as expected
Controller not detected
Press a button after connecting — browsers hide controllers until they receive input. Then try another USB cable or port.
Bluetooth controller missing
Pair it in your operating system's Bluetooth settings first, then press a button with this page in focus.
Buttons show only numbers
The browser did not recognise a standard layout. Inputs still work; only the names are unknown.
Sticks seem swapped
Non-standard mappings may place the right stick on different axes. Check the extra axes line under the buttons.
Drift reading is high
Re-measure without touching the controller, rotate the stick a few times and test again in another browser before drawing conclusions.
Nothing updates
Keep the page in the foreground. Some browsers pause controller input in background tabs.
Compatibility
Browser and controller compatibility
The test works in browsers that implement the Gamepad API, including current Chrome, Edge, Firefox and Safari. Many common Xbox-style, PlayStation-style and generic USB or Bluetooth controllers are recognised, but support depends on your operating system, its drivers and your browser — not on this page.
Some controllers appear with a non-standard mapping, fewer buttons or extra axes. The test still shows every button and axis the browser reports; it simply cannot name them. iPhone and iPad support depends on the iOS version and controller model.
Methodology
How Testpartout measures this
The method below is exactly what the code on this page does — nothing is described that is not implemented.
What the implementation does
- After you press start, the page calls navigator.getGamepads() on every requestAnimationFrame and updates the display only when the selected controller reports a new timestamp.
- Left stick uses axes 0 and 1, right stick axes 2 and 3. Missing or invalid axis values are treated as 0 and clamped to −1…+1.
- Distance from centre is √(x² + y²). The resting check keeps the maximum distance per stick over 3 seconds.
- gamepadconnected and gamepaddisconnected events are used to report connections; a disconnect of the selected controller clears its display.
- The polling loop is cancelled when you leave the page.
Limits of a browser measurement
- The browser receives values after the operating system and driver have processed them, which may already include a deadzone or calibration.
- Axis and button numbering differs between controllers and browsers, especially with non-standard mappings.
- A drift reading cannot distinguish worn hardware from dirt, a driver issue or a stick that was touched during measurement.
- Vibration, gyroscope, touchpad, battery level and audio jacks are not tested.
Privacy
What happens to your data
This section describes the behaviour of the code on this page, not an intention.
- Controller input is read in your browser only while this page is open and the test has started.
- No button presses, stick values or controller names are stored or sent to any server.
- If you accepted analytics, only anonymous events such as “test started” or “controller connected” are counted — never input values or controller names.
FAQ
Frequently asked questions
- How do I test a controller online?
- Press “Start Controller Test”, connect your controller and press any button. Every button, trigger and stick then appears with live values, so you can press each one and see whether it registers.
- How do I check controller stick drift?
- Let go of both sticks and press “Measure resting drift”. For 3 seconds the page records how far each stick rests from centre and shows the raw distance with a cautious label.
- What X and Y values should a joystick show at rest?
- Close to 0 on both axes. A few thousandths either side is normal noise. This page labels a resting distance below 0.05 as negligible and 0.15 or more as noticeable drift.
- Is a small amount of stick drift normal?
- Yes. Most sticks never return exactly to zero, which is why games use a deadzone. A small offset only matters if it is larger than the deadzone your game uses.
- What is controller deadzone?
- A small area around the stick's centre in which a game ignores movement, so resting offsets do not move your character. This page shows raw values without any deadzone and cannot measure a game's deadzone.
- Why is my controller not detected?
- Browsers only reveal a controller after you press a button with the page open. If it still does not appear, check the cable or Bluetooth pairing, try another port and make sure your browser supports the Gamepad API.
- Can I test Xbox, PlayStation or generic controllers?
- Many Xbox-style, PlayStation-style and generic controllers work if your operating system and browser recognise them. Support depends on drivers and the browser, so some controllers may show numbered buttons or not appear.
- Does this site save controller data?
- No. Button presses, stick values and controller names are processed only in your browser and are never stored or uploaded.
Found an issue with this test? Report it.