CTRLCHK

CTRLCHK / Test your controller

See every input. Measure what matters.

Live controller diagnostics for drift, buttons, triggers, range, circularity, and snapback — entirely in your browser.

Device

No controller detected

Waiting
Live controller input visualization

Connect a controller over USB or Bluetooth, then press any button to begin.

Standby—

Live readout

Every axis and button, measured in real time.

Nothing untouched is treated as a failure. This is a viewer, not a verdict — run a health check when you want scored measurements.

LX+0.00 
LY+0.00 
RX+0.00 
RY+0.00 
L radial0.0% 
R radial0.0% 
L2N/AUnmapped
R2N/AUnmapped
Buttons observed0 / 0
No downloadNo accountData stays on your deviceHow it works

Understand the signal

A health check that shows the working, not just a score.

Most online “controller testers” are live LED boards: a stick moves, a button lights up, and you are left to guess whether the rest position is noise or drift. CTRLCHK is built around the opposite idea. The live view is a viewer. The health check is a measurement. Those two jobs stay separate so a flick of the stick cannot be mistaken for a defect.

What the health check actually measures

A full run starts with a 3-2-1 get-ready countdown, then a five-second hands-off centre capture. Rest offset, jitter, P95, RMS and peak are retained. From there you rotate each stick for range coverage and circularity error, flick for snapback, press required buttons, pull analog triggers, and — where the browser exposes it — confirm dual-rumble. Capability-limited stages such as rumble on Firefox are reported as unsupported. They never lower the score.

The output is a versioned report: recommended deadzone percentages you can type into a game, a repair-versus-replace note, and a shareable card. JSON is still there for people who want the raw object. Guidance is labeled as guidance. If you disagree with a band, the numbers that produced it are on the same screen.

Why the numbers can be trusted

Centre validity is judged from rest-relative jitter, not from distance to the mathematical origin. A DualSense that rests 8% off centre but does not move will pass the hands-off capture and be scored as drift, which is the honest result. A still pad does not stall the countdown: sampling is keyed to a monotonic clock, not to Gamepad.timestamp, which many browsers freeze when nothing is changing.

Layout is not hardcoded to axes 0–3. Standard mapping is preferred; Sony HID and ABS orders, signed trigger axes, and hat-encoded D-pads are normalized before any statistic is computed. Mapping quality is written into the report so a heuristic layout cannot hide behind a confident score.

FAQ

Questions people actually ask

What controllers work with CTRLCHK?

Most USB and Bluetooth pads the browser exposes through the Gamepad API, including DualSense, DualShock, Xbox Series, Xbox One, and many generic HID pads. Named buttons depend on the standard mapping; CTRLCHK applies known layouts when the mapping is empty rather than inventing failures.

What is stick drift?

Movement the controller reports while a stick is at rest. CTRLCHK separates rest offset from jitter and reports robust P95 rather than a single noisy peak, then suggests a software deadzone you can type into game settings.

Does anything leave my device?

Controller axes, buttons, and diagnostic samples are processed locally. CTRLCHK does not upload Gamepad API input. Optional privacy-preserving visit analytics in production do not include raw controller data, and there is no advertising script.

Is this a hardware diagnosis?

No. Health labels are versioned product guidance, not a manufacturer specification. The raw measurements remain visible so you can disagree with the label.

Controller diagnostics

Jump to the measurement you actually need.