Gamepad tester
Use this controller tester to check buttons, sticks, triggers and supported vibration.
Test guide & FAQs3D gamepad visualization
Sticks
Live stick movement
Left stick
X —Y —No sample completed
Right stick
X —Y —No sample completed
Triggers
Browser-reported values
Left trigger
B6Right trigger
B7Vibration check
Click a vibration effect, or double-pull both triggers together (LT + RT / L2 + R2 / ZL + ZR) to cycle through the effects.
Raw input register
AXES · CURRENT / TESTED RANGE
Connect a controller to inspect every reported axis.
BUTTONS · VALUE / PRESSED / TOUCHED
Coverage: —Checked buttons count toward coverage. Exclude positions the browser or device reserves; unobserved input alone does not establish a fault.
Event register
Latest 8 input changes| Time | Event | Input | Value |
|---|---|---|---|
| No changes tested yet. | |||
These are browser-visible inputs. Display-frame reads are not USB reports or hardware latency. No calibration, dead zone or quality score is applied.
Gamepad tester guide: controller inputs, sticks and vibration
This controller tester displays browser-reported buttons, stick axes and trigger values. Watch the raw values while moving each control, then compare them at rest. Device detection, mapping and vibration depend on the controller, connection and browser.
How to test
- Connect your controller by USB or Bluetooth, then press a controller button. If several devices are connected, select the one you want to test. Use HTTPS or localhost for Gamepad API access.
- Press and release each button, move the sticks around their range, then release them and watch the resting X/Y values. Pull and release each trigger. Trigger values describe browser input, not physical travel.
- If vibration is available, click an effect and check whether you feel it. Export the received data to compare connection modes or browsers. Changing the displayed controller model does not change the physical device or calibrate it.
Frequently asked questions
Why is my Xbox, PS5 or PS4 controller not detected?
Connect the controller, keep this page active and press one of its buttons. Check HTTPS access, browser support and the selected device. Try a data-capable USB cable or another browser. A matching 3D appearance does not guarantee compatibility; nonstandard devices may only expose raw button and axis numbers.
How do I check controller stick drift?
Release the sticks and watch the resting X/Y values, then move each stick and let it return several times. Persistent offset is useful evidence to compare across browsers, connection modes and games. This page applies no software dead zone and offers no universal pass threshold; it cannot calibrate or fix drift.
Why does the controller vibration test not work?
Vibration requires a controller and browser that expose a supported haptic actuator. Click an available vibration effect. If the control is unavailable or no vibration is felt, compare USB and Bluetooth or another browser. An accepted API request alone does not prove the motor vibrated.
Does the controller input test measure latency or polling rate?
No. The page reads the Gamepad API on display frames. Multiple reads can contain the same device timestamp, and browser scheduling affects the observations. Read counts and timestamp changes cannot establish USB polling rate or end-to-end input latency.
How to test & what the numbers mean
Connect and select
Connect by USB or Bluetooth, then press a controller button. Some browsers expose a device only after interaction. Use localhost or HTTPS where required. Choose the device explicitly when several are connected.
Automatic appearance uses recognizable device names or USB vendor/product IDs and falls back to a labeled preview for unknown devices. Manual selection overrides it. Only standard mapping links raw buttons and axes to the model. Nonstandard devices keep all raw readings; no mapping is guessed. Separate Joy-Con devices are not merged.
Keep comparisons valid
Switching devices starts a separate session and retains up to five previous sessions. Reset device session clears only the selected device’s current session. Capture continues after switching tabs or windows, but background reads depend on the browser. Pause, disconnect and a read gap above 250 ms interrupt samples rather than produce a pass.
Repeated browser reads may share a device timestamp. Neither read count nor timestamp changes proves hardware polling rate. JSON includes actual input changes, explicit test evidence and eviction counts. CSV contains only the current session’s retained control changes.