GamepadHealth / LIVE INPUT
Gamepad tester
Connection status
Press a button to detect your controller
Browsers only reveal a controller after it receives input — that’s a privacy protection, not a sign of a problem. If it’s already plugged in, press any button or move a stick now.
Move a stick or press any button
Detailed health check
Follow guided steps for a separate, explainable health report.
This turns on as soon as your browser detects controller input above.
Guided observation
Follow one clear step at a time
This flow records bounded browser observations. The local report is calculated only after the phases finish.
Step 1 of 1
Produce gentle changing input
Slowly move a stick or press a button while the visible-tab observation window completes.
This observes browser updates. It does not claim USB polling rate or end-to-end latency.
Observation flow complete
All guided phases have a recorded state
You completed the interaction flow. Unsupported and inconclusive phases remain separate.
- Input stability
The local v1 report uses provisional thresholds and is not a hardware certification. Unsupported and inconclusive phases stay unscored.
- Axes
- Buttons
- Timestamp
- —
- Haptics API
- AXIS 0
- AXIS 1
- AXIS 2
- AXIS 3
- AXIS 4
- AXIS 5
- AXIS 6
- AXIS 7
- AXIS 8
- AXIS 9
- AXIS 10
- AXIS 11
- AXIS 12
- AXIS 13
- AXIS 14
- AXIS 15
- AXIS 16
- AXIS 17
- AXIS 18
- AXIS 19
- AXIS 20
- AXIS 21
- AXIS 22
- AXIS 23
- AXIS 24
- AXIS 25
- AXIS 26
- AXIS 27
- AXIS 28
- AXIS 29
- AXIS 30
- AXIS 31
Raw mapping: use the numbered values. The standard controller diagram does not apply.
The browser delayed this preview. This is an environment notice, not a controller failure.
Connection status
Press a button to detect your controller
Browsers only reveal a controller after it receives input — that’s a privacy protection, not a sign of a problem. If it’s already plugged in, press any button or move a stick now.
Connection status
Controller detected
Live normalized input, guided observations, and the local report are available below.
Connection status
Multiple controllers detected
Choose which connected controller to preview. This selection remains only on this page.
Connection status
Controller disconnected
Reconnect or interact with the controller to continue. No hardware failure is inferred.
Connection status
Sampling paused
Return to this visible tab to continue local input sampling.
Connection status
Preparing controller detection
The connection interface is loading. No input is recorded while you wait.
Connection status
Connection interface unavailable
The interface could not prepare controller detection. This is not a controller health failure.
Connection status
Controller detection isn’t available here
Your current browser or connection doesn’t expose the controller data this test needs. That’s a browser limitation, not a sign that the controller has a problem.
GamepadHealth
Test result
This is a browser test with provisional thresholds, not a definitive hardware diagnosis.
Measurements and technical details
Provisional score thresholds — physical multi-device calibration is still required before public release.
Controller Input Stability Test: Browser Update Gaps
Check browser-observed input update gaps while moving your controller. Compare repeat tests without confusing browser timing with USB polling rate or latency.
Findings and next actions
- Input stability
Evidence summary
- Observed input interval median / p95
- —
Method and limitations
The score uses versioned integer calculations from bounded browser observations. It is not a hardware certification.
- Browser timing is not USB polling rate or end-to-end latency.
- A missed interaction can make a phase inconclusive; it does not prove a broken control.
- No model benchmark, percentile, battery health, or physical wear claim is produced.
Free browser-based controller test
Controller Input Stability Test: Browser Update Gaps
Check browser-observed input update gaps while moving your controller. Compare repeat tests without confusing browser timing with USB polling rate or latency.
No install or account needed — raw controller input never leaves your browser.
Simple and explainable
From connection to a useful report
Each stage keeps one clear task on screen and explains what the browser can and cannot observe.
-
1
Connect your controller
Use a supported browser and interact with the controller when prompted.
-
2
Follow guided checks
Complete focused stick, button, trigger, and stability steps without hidden background tests.
-
3
Review honest results
See tested, unsupported, and inconclusive areas separately instead of receiving false zero scores.
Built around clear limits
A calm diagnostic experience with no hidden claims
Browser support is explicit
Unsupported and interaction-required states remain separate from controller health.
Methods stay visible
Every future metric must explain its browser-observed method and confidence.
Local-first by default
Raw controller inputs stay in this page. A result is saved on the server only when you choose Share. Optional analytics follow your privacy preferences.
What this page covers
The phase summarizes browser callback gaps and changing input samples. Tab visibility, frame scheduling and system load can affect confidence.
How to use it
- Keep this tab visible and start the stability check.
- Move the stick steadily as instructed so the browser receives changing input.
- Avoid changing tabs or the controller connection during the sample.
- Repeat under the same conditions to compare update gaps; they are not end-to-end latency.
How to interpret the result
Retest in a visible tab with fewer background tasks. Treat large differences between runs as an environment signal, not immediate hardware proof.
Important limitations
A safe next step
Repeat under the same conditions to compare update gaps; they are not end-to-end latency.
Does this browser test diagnose hardware damage?
No. It reports browser-observed input and cannot certify internal hardware, USB polling rate, end-to-end latency, battery health or physical wear.