PS5 Controller Tester (DualSense)
This PS5 controller tester reads a DualSense or DualSense Edge through the browser: face buttons, create and options, the touchpad click, both sticks, L2 and R2, and dual rumble. Adaptive trigger resistance, the microphone, and gyro need more than the Gamepad API. Specs and USB ids live on the DualSense and DualSense Edge pages.
- PlayStation labels by default
- Drift sample for both sticks
- Rumble called out separately from haptics
{"waiting":"Press any button on the controller. Browsers hide gamepads until you press a button on this tab.","noApi":"This browser does not expose the Gamepad API, so the live tester cannot read inputs. The written checks on this page still apply.","insecure":"This page is not a secure context, so the browser will not share gamepads. Open the site over HTTPS.","privacy":"Inputs stay in this browser. Nothing is uploaded.","checkAgain":"Check again","layout":"Button labels","layoutAuto":"Match the connected pad","layoutPs":"PlayStation","layoutXbox":"Xbox","layoutNintendo":"Nintendo","layoutGeneric":"Numbers","player":"Controller","buttons":"Buttons","face":"Face","dpad":"D-pad","shoulders":"Shoulders and triggers","center":"Center and sticks clicks","extra":"Other buttons","sticks":"Sticks","leftStick":"Left stick","rightStick":"Right stick","up":"Up","down":"Down","left":"Left","right":"Right","stickHint":"Up on the plot is up on the stick. The numbers keep the browser’s sign: positive Y is usually down.","offset":"Offset","deadzone":"Inner deadzone","radial":"Radial","axial":"Axial","shape":"Deadzone shape","afterDeadzone":"After deadzone","inside":"Inside deadzone","measureDrift":"Measure drift (3s)","release":"Release both sticks and hold them still.","measuring":"Measuring resting offset…","trace":"Trace circularity","tracing":"Push the stick around the outer gate.","stopTrace":"Stop trace","vibration":"Vibration","strong":"Strong motor","weak":"Weak motor","duration":"Duration","play":"Play vibration","pulse":"Pulse three times","triggerRumble":"Try trigger rumble","rumbleMissing":"This browser did not offer a vibration actuator for the selected controller. Chrome and Edge usually do; Firefox and Safari often do not.","rumbleSent":"Vibration command sent.","rumbleFailed":"The browser rejected the vibration command.","triggerUnsupported":"Trigger rumble is not available on this actuator. Dual rumble still ran if the browser accepted it.","rate":"Browser-observed rate","sampleAge":"Sample age","moveStick":"Move a stick to measure the update rate.","rateNote":"This is how often the browser hands us a new sample. It is not the controller’s USB poll rate.","ageNote":"How old the newest sample is when the page draws it. This is not display lag and not in-game lag.","ageUnavailable":"This browser’s gamepad timestamp cannot be compared with the page clock.","gyro":"Motion","requestHid":"Request DualSense access","hidIntro":"Gyro, accelerometer, touch position, and battery are not part of the standard Gamepad reading. Chrome and Edge on desktop can request a DualSense or DualShock 4 over WebHID.","hidMissing":"WebHID is not available here. Use Chrome or Edge on a desktop computer, connect the pad by USB, and try again. Buttons and sticks above still work through the Gamepad API.","hidEmpty":"No device was selected.","hidOk":"The browser allowed access to {name}. This version confirms the device and does not stream gyro values yet, so it cannot show a wrong motion number. Buttons and sticks above stay on the Gamepad API.","hidDenied":"The browser blocked or cancelled device access. Gamepad readings are unaffected.","raw":"Raw data","rawEmpty":"Raw values appear here after a controller connects.","checkup":"Full checkup","startCheckup":"Start full checkup","resetMarks":"Reset marks","stepButtons":"Buttons","stepSticks":"Sticks","stepTriggers":"Triggers","stepRumble":"Rumble","stepDone":"Review","checkupIdle":"A short pass over buttons, both sticks, both triggers, and vibration.","checkupButtons":"Press every face button, the D-pad, bumpers, menu buttons, and both stick clicks.","checkupSticks":"Rotate each stick out to the gate.","checkupTriggers":"Pull both triggers fully.","checkupRumble":"Play vibration, then say whether you felt it.","feltYes":"I felt it","feltNo":"I felt nothing","checkupSkipRumble":"This pad has no vibration actuator in this browser, so that step is skipped.","announcePress":"{label} pressed","modelLink":"This looks like {name}.","openModel":"Open the model page","presetNote":"Labels are locked to this page’s layout. Change “Button labels” if they do not match the pad in your hands.","mappingStandard":"standard mapping","mappingOther":"non-standard mapping","healthy":"Healthy","borderline":"Borderline","drift":"Drift","couldNotMeasure":"Could not get a still sample. Rest the controller on a table and try again.","suggested":"Suggested inner deadzone","coverageLow":"Keep tracing the outer edge. Too few sectors were filled to score the gate.","noPadSelected":"No controller is selected.","slotsLabel":"Connected controllers","noneConnected":"None connected yet","focusDrift":"This page focuses on stick drift. Every other check is still here.","focusDeadzone":"This page focuses on deadzone and calibration. Every other check is still here.","focusVibration":"This page focuses on vibration. Every other check is still here.","focusPolling":"This page focuses on the browser-observed update rate. Every other check is still here.","focusLatency":"This page focuses on sample age and input timing. Every other check is still here.","focusGyro":"This page focuses on motion. Buttons and sticks still use the Gamepad API.","focusButtons":"This page focuses on buttons. Sticks, triggers, and vibration are still here.","names":{"edge":"DualSense Edge","dualsense":"DualSense","ds4":"DualShock 4","joycon":"Joy-Con","switchpro":"Switch Pro Controller","bitdo":"8BitDo pad","deck":"Steam Deck or Steam Input device","series":"Xbox Series controller","xone":"Xbox One controller","xbox":"Xbox controller","nintendo":"Nintendo controller","generic":"generic PC gamepad"}}Labels are locked to this page’s layout. Change “Button labels” if they do not match the pad in your hands.
Inputs stay in this browser. Nothing is uploaded.
Press any button on the controller. Browsers hide gamepads until you press a button on this tab.
This is how often the browser hands us a new sample. It is not the controller’s USB poll rate. How old the newest sample is when the page draws it. This is not display lag and not in-game lag.
Buttons
Face
D-pad
Shoulders and triggers
Center and sticks clicks
Sticks
Up on the plot is up on the stick. The numbers keep the browser’s sign: positive Y is usually down.
Vibration
Motion
Gyro, accelerometer, touch position, and battery are not part of the standard Gamepad reading. Chrome and Edge on desktop can request a DualSense or DualShock 4 over WebHID.
Full checkup
- Buttons
- Sticks
- Triggers
- Rumble
- Review
A short pass over buttons, both sticks, both triggers, and vibration.
Raw data
Raw values appear here after a controller connects.
- Connect. USB is the simplest on PC and Mac. Bluetooth works once the OS has paired “DualSense Wireless Controller.”
- Press a button on this tab. The pad can be connected to the OS and still hidden from the page until you do.
- Check L2 and R2 as analog. A half pull must land between 0 and 1, not snap straight to 1.
- Sample drift and play rumble. Healthy sticks rest under about 0.06. Rumble here is dual rumble, not the PS5 haptic engine.
How to connect a DualSense to PC, Mac, and Android
- PC: plug in USB, or hold the Create button and the PS button until the light bar flashes, then pair in the system Bluetooth panel.
- Mac: the same gestures. Current macOS releases see the pad in browsers without a driver from this site.
- Android: pair in Bluetooth settings or use USB if the phone supports it, then open Chrome and press a button on this page.
- If Steam rewrites the pad into an Xbox device, you are testing Steam Input. Close that layer for a raw reading. More is in How do you use a DualSense on PC?.
What this PS5 test checks
Buttons in the standard mapping, including L3, R3, Create, Options, and the touchpad click when the browser exposes it. Both stick scopes, the drift sample, circularity, and the deadzone overlay. Analog triggers. Dual rumble and, where offered, trigger rumble. The raw id string so you can see 054C:0CE6 or 054C:0DF2 when the browser includes them.
DualSense-only features
Adaptive triggers, voice-coil haptics, the speaker, the microphone, the mute button’s full behavior, touch coordinates, the light bar, and the gyro are DualSense features. This tester sees the classic gamepad slice plus a WebHID confirmation on the gyro test. It does not mute your mic, move the light bar, or change trigger tension. Those need output reports we do not send.
PS5 stick drift test and normal values
Standard DualSense sticks are potentiometers and they do drift with wear. On a healthy pad, a 3-second rest on a table usually stays under 0.06 radius in this tester. Treat 0.06 to 0.12 as borderline and anything over 0.12 as drift you will meet in a shooter with a small deadzone. The Edge uses swappable modules, so a bad side is a module swap rather than a whole-pad mystery. Run it from the stick drift test as well; the instrument is the same.
Calibrate your DualSense
Set the in-game deadzone from the measured radius on the calibration and deadzone test. That is the safe calibration. Writing a new hardware center is a vendor-tool job; this site does not do it. If you use an official Sony or repair tool, sample again afterwards and keep the number.
Common PS5 controller problems and fixes
- Not detected: press a button on this tab, try USB, and quit the layer that is grabbing the pad. See controller not detected.
- Stick drift: sample, then deadzone or module replacement. Do not blow into the stick.
- Rumble feels weak: you are hearing dual rumble, not PS5 haptics. Confirm the actuator line on the vibration test.
- Wrong button names: this page locks PlayStation labels. Switch the label control if Steam is presenting an Xbox pad.
DualSense vs DualSense Edge
The Edge adds back buttons, replaceable stick modules, trigger stops, and onboard profiles. Browsers often hide the back buttons from the standard 17, so check the raw list and the Edge page. The standard DualSense is the pad most PS5 owners have; its drift fix is a repair, not a module you can pop out with a slider.
Specs
| DualSense | DualSense Edge | |
|---|---|---|
| USB VID:PID | 054C:0CE6 | 054C:0DF2 |
| Sticks | Potentiometer | Replaceable modules |
| Triggers in browser | Analog L2 / R2 | Analog, plus hardware stops |
| Gyro in Gamepad API | No | No |
Frequently asked questions
Can I test a DualSense on PC with this page?
Yes. USB or Bluetooth into Chrome or Edge is the complete case. Firefox will show buttons and sticks and usually skip rumble.
What resting value is normal for a DualSense?
Under about 0.06 radius on a 3-second table sample is a healthy reading in this tester. Over 0.12 is drift you should expect to feel.
Does this test the microphone and haptic triggers?
No. Those are outside the Gamepad API, and this version does not drive them over WebHID either.