Gamepad Tester: Stick Drift Evidence, Buttons & Session Compare
Inspect raw controller axes and buttons in your browser, run a hands-off or range protocol, and export comparable JSON/CSV evidence without claiming hardware latency.
Controller Evidence Lab
Requires HTTPS, a compatible browser and a connected controller exposed by the Gamepad API. Press a controller button before scanning. No device is required to inspect the clearly labeled example.
Supported scope: 60 seconds / 3,600 browser snapshots · up to 8 axes and 32 buttons · JSON baseline ≤8 MiB · foreground sampling only · no device polling-rate, hardware latency, calibration or compatibility certification.
Your inputs
Required fields are marked with an asterisk.
Your result
Review your output, then save it to your device.
Make the next step clear.
Your findings, assumptions and next steps will appear here after you run the check.
Controller Evidence Lab · https://gamepad.kitforma.com/ · KitForma
Real downloadable output
Files stay in your browser
Clear format and size limits
Understand the evidence.
Focused guides explain the rules, the edge cases and the checks worth doing before you act.
Measure controller rest behavior without moving the sticks
Use a hands-off protocol and distinguish center statistics from a fault diagnosis.
Read the guide ↗Field guide / 02Inspect controller travel and button transitions
Use deliberate motion and numbered controls when mappings differ.
Read the guide ↗Field guide / 03Understand browser controller timing and export useful evidence
Separate frame scheduling from hardware polling and end-to-end latency.
Read the guide ↗Before you start
Does a nonzero stick value prove drift?
No. First choose the hands-off rest protocol and leave the controller untouched. The report describes center bias, RMS radius and samples beyond your review radius. Driver behavior, calibration and device design can affect values; the tool does not use a universal pass/fail threshold.
Can this measure my controller’s polling rate or input latency?
No. It samples the browser Gamepad API on animation frames. The reported intervals are browser snapshot timing and can include scheduling gaps. They do not identify the USB/Bluetooth polling interval, switch latency or end-to-end display response.
Why does no controller appear?
Connect it, keep this page visible and press a controller button before scanning. Use an HTTPS page and a browser that supports the Gamepad API. Some controllers, drivers, privacy settings or embedded contexts do not expose a compatible device. The lab does not replace an unavailable device with a simulated live result.
Does it change deadzones or vibrate the controller?
No. The review radius is drawn as a reference; raw reported axes are unchanged. The tool does not send haptic commands, write firmware or alter system calibration. Use device-specific settings separately if you choose to make a change.
What does range coverage mean?
The report counts twelve angular sectors reached by each pair of axes when the radius is at least 0.5, alongside min/max values. It describes your sampled motion. It is not a calibrated physical-circle error or a promise that every reachable position was tested.
Can I compare two sessions privately?
Yes. Stop a session, use it as a baseline, or load an exported version 1 JSON report. Protocol, radius, source and mapping/layout must match for direct comparison. Device IDs are omitted and there is no automatic storage; Clear removes the local session and baseline.
Sources & assumptions
Formats, algorithms and supported features are documented below. Check the stated scope and inspect your output before using it.
- MDN: Using the Gamepad API ↗
Connection activation, gamepad snapshots and browser mapping.
- W3C Gamepad specification ↗
Normalized axes, button state and standard mapping semantics.
- MDN: requestAnimationFrame ↗
Frame callbacks follow browser rendering and visibility, not device polling.
Reviewed 2026-10-19. Read our methodology or report an issue.