CTRLCHK

DualSense presentation

A clear PS5 controller check, grounded in browser data.

Connect your DualSense by USB or Bluetooth to inspect sticks, buttons, and available analog inputs.

PS5 names are shown for every required control, including L3/R3 and touchpad click when your browser exposes it.

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

What a DualSense looks like to a browser

A PS5 controller is a different device on USB than it is on Bluetooth, and a different device again in Chrome versus Firefox. Sony vendor ID 054c shows up in the Gamepad id string. Standard mapping, when the browser provides it, is the easy path: left stick on axes 0 and 1, right stick on 2 and 3, L2/R2 as analog buttons 6 and 7.

When mapping is empty, CTRLCHK does not assume Xbox order. DualSense often reports L2/R2 as axes that rest at −1. Treat those as sticks and you get a “right stick pegged to the left” ghost that has closed more GitHub issues than actual drift ever did. The Sony ABS profile puts the right stick on axes 3 and 4 and folds signed triggers into L2/R2. The Sony HID profile keeps sticks on 0–3 and reads triggers from axes 4 and 5. Hat-encoded D-pads on axis 9 become up/down/left/right buttons.

USB versus Bluetooth

USB is the more complete picture: analog trigger travel is more likely to appear, and extra buttons are more likely to be enumerated. Bluetooth is enough for a drift check and a button checklist, but Firefox on macOS is the mapping minefield. If analog L2/R2 read as 0–1 after a full pull, trigger support is live. If they stay at 0, the stage is skipped without lowering the score.

Adaptive triggers, the haptic motors under each grip, the built-in microphone, and the motion sensors are DualSense features the Gamepad API does not expose. A “PS5 controller test” that claims to certify those in a tab is guessing. CTRLCHK will pulse dual-rumble when vibrationActuator exists — typically Chrome and Edge — and otherwise mark rumble unsupported.

How to read DualSense drift

DualSense sticks can rest a few percent off origin while still being mechanically quiet. The hands-off capture accepts that bias and reports it as offset. If you came here because aiming walks in Fortnite or Call of Duty, look at P95 and the recommended deadzone on the results card, then compare with the dedicated drift test. For oval gimbals after a drop, use the circularity test.

FAQ

Questions people actually ask

Does DualSense work over Bluetooth?

Yes, when the browser exposes it. USB is usually the more complete mapping: analog triggers and extra buttons are more likely to appear. Bluetooth on macOS Firefox often reports an empty mapping, which CTRLCHK compensates with a Sony profile.

Can you test adaptive triggers or haptic feedback?

No. Adaptive trigger resistance and DualSense haptics are not part of the Gamepad API. Dual-rumble, when present, is a coarse vibrationActuator pulse — not the adaptive haptic motors.

Why is touchpad click missing?

Many browsers expose 17 DualSense buttons and omit index 17 (touchpad click). CTRLCHK then drops it from the required set instead of failing the button stage.

Gyro and accelerometer?

Not available through the standard Gamepad API in this tester. Stick, button, trigger, circularity and snapback measurements still apply to the same hardware.