PS4 Controller Test

Connect your controller and press buttons to test

Last updated: April 2026

No Controller Detected

Controller Visualization

Circularity & Vibration Test

L STICK

AXIS 0: 0.00000
AXIS 1: 0.00000

R STICK

AXIS 2: 0.00000
AXIS 3: 0.00000
Spin joysticks slowly to test

Live Status

No controller connected

Press any button on your controller to connect it

Instructions

  • Connect your PlayStation controller via USB or Bluetooth
  • Press any button to activate the controller
  • Buttons will light up and glow on the SVG controller in real-time
  • Analog sticks will move dynamically based on your input
  • Trigger pressure is shown with opacity and glow effects

DualShock 4 Drift: A Brief Hardware History

Analog stick drift on the DualShock 4 is not a rare defect — it is a structural consequence of how the controller's potentiometer-based stick modules age. Each stick uses two rotary potentiometers (one per axis) with a carbon-film resistive track and a sliding wiper. Every rotation scrapes the wiper across that track. Across millions of small motions — aiming, sprinting, menu navigation — the track develops micro-grooves and the wiper loses consistent contact. Once resistance varies while the stick is at rest, the Gamepad API reports phantom input: the classic drift.

Sony shipped three notable hardware revisions of the DualShock 4. The launch units (CUH-ZCT1U, 2013) had a smaller battery (1000 mAh) and were the first to surface widespread drift complaints after 12–18 months of heavy use. The 2016 revision (CUH-ZCT2U) enlarged the light bar, moved it to the touchpad, and bumped the battery — but the stick module was largely unchanged. Replacement modules from most aftermarket suppliers (ALPS, Jin Yu Wei, generic clones) are interchangeable across revisions and solder-compatible with standard 11-pin pads.

On this tester, two measurements matter more than any single button press. First, the centered-rest axis readout: with the controller on a flat table and your hands off it, any value other than 0.00 on the X or Y axis is drift. Second, the circularity error percentage from the circularity test. We define this as the root-mean-square deviation of your traced stick path from the ideal circle at full deflection, divided by the ideal radius. A new DualShock 4 typically measures 3–6%. Anything above ~15% indicates the potentiometer wiper has worn asymmetric grooves — the stick still works, but its reported coordinates no longer match where your thumb actually is. At that point, software dead zones can mask the symptom in games but the module itself is the fix.

Replacement stick modules cost roughly $4–$8 in pairs. The procedure requires a #00 Phillips driver, about twenty minutes, and a soldering iron for the 14 joints per module. If you're evaluating a used DualShock 4 on eBay or Facebook Marketplace, run both measurements above before paying — a seller's "lightly used" often means 22% circularity.

Test your PS4 DualShock 4 controller in the browser

Plug in (or pair) any DualShock 4 and verify every face button, shoulder button, trigger, analog stick, touchpad click, and rumble motor in your browser. Stick movement is read at frame rate via the HTML5 Gamepad API and mirrored on an SVG controller in real time, with a circularity test that quantifies stick drift down to 1% increments.


Get started with your test

  1. Connect your DualShock 4 via USB cable, Bluetooth, or the Sony official wireless adapter. Need help on how to connect the PS4 controller to a PC, Mac, or directly to the console? See the step-by-step pairing guide further down the page.
  2. Press any button — browsers only expose a connected gamepad after the first input event fires.
  3. Watch the on-screen controller light up as you press buttons, move sticks, and pull triggers.

If every region you expect lights up, the controller is registering correctly with the browser. If a region stays dark, the troubleshooting section below maps each common symptom to its real-world cause — including the most-searched issue, "why won't my PS4 controller connect".


Why test a PS4 controller in the browser

A controller that worked yesterday can fail in three different ways: silently (a stick that drifts a few percent off-centre, invisible until aim feels "off"), dramatically (a button stops registering entirely), or intermittently (R2 fires only on hard presses). All three are easy to miss until they ruin a ranked match or a Dark Souls boss attempt.

This tester reads exactly what the operating system delivers to the browser via the Gamepad API. Each frame, navigator.getGamepads() returns the current state of every connected controller — the digital pressed flag and analog value for every button, plus the four axis values for the two analog sticks. The page polls at requestAnimationFrame cadence (typically 60 Hz on a standard display, higher on 120/144 Hz panels) and mirrors that state onto the SVG illustration without any post-processing or filtering.

Because the API is upstream of console firmware and PS4 system menus, you can verify a controller without booting the console at all — useful for second-hand purchases, post-repair verification, or diagnosing whether a problem is in the hardware or in a specific PS4 game.

Common reasons to run a DualShock 4 test:

  • Pre-purchase check — verify a second-hand controller before paying or before the eBay return window closes
  • Stick drift quantification — the circularity test measures how far a stick deviates from a perfect circle, giving you a single number to track over time
  • Post-repair verification — confirm a stick module swap or trigger spring replacement actually fixed the issue
  • Bumper / trigger micro-switch wear — L1, R1, L3, R3 are common wear points on heavily-used controllers
  • Vibration motor check — confirm both rumble motors fire at full and low intensity
  • Warranty evidence — a clear video of stuck input or non-zero drift is strong RMA documentation
  • PC gaming setup — verify the controller is recognised before launching a Steam game, especially on a fresh OS install

How to test your PS4 controller in 3 steps

Step 1: Connect the controller

The DualShock 4 supports three connection modes, and all three work with the Gamepad API.

  • USB cable — the most reliable way to test. Use a known-good micro-USB data cable (some cheap charge-only cables omit the data lines). Connect directly to a motherboard USB port, not through a hub. The light bar should illuminate solid blue (player 1) within a second.
  • Bluetooth — hold the PS and Share buttons together for 3–5 seconds until the light bar flashes rapidly. Pair from your OS Bluetooth menu — the controller appears as "Wireless Controller". When the light bar turns solid, it's connected.
  • Sony Wireless USB Adapter — plug the adapter into a USB port and press the PS button on the controller. Pairing is automatic.

Step 2: Press every button

Press each button at least once and watch the corresponding region on the SVG controller light up:

  • Face buttons — Cross, Circle, Square, Triangle
  • D-pad — Up, Down, Left, Right (and the four diagonals if you press two adjacent directions together)
  • Shoulder buttons — L1, R1
  • Triggers — L2, R2 (these are also analog; pull gradually and watch the value rise from 0 to 255)
  • Stick clicks — L3, R3 (press the sticks straight down)
  • System buttons — Share, Options, PS

Then push each analog stick to its limits in all directions. The on-screen sticks should track yours smoothly with no dead spots or "snapping" near the edges.

Step 3: Run the drift and vibration checks

With the sticks centred and your hands off the controller, the displayed axes should read 0.00 / 0.00. Anything above ±0.05 indicates the potentiometers are reporting phantom motion — the classic stick drift symptom. The circularity test sweeps a stick around its full range and measures the gap between actual readings and a perfect circle:

  • Below 7% — healthy
  • 7–15% — early wear; usable, monitor it
  • Above 15% — actionable; aim and camera control will be visibly affected

Press the vibration test buttons to fire each rumble motor at low and high intensity. Both motors should produce a clean, sustained buzz; a weak or absent buzz on one side usually means a disconnected motor wire after a drop.


Compatible PS4 controllers

Official Sony DualShock 4

  • DualShock 4 V1 (CUH-ZCT1) — original 2013 launch model
  • DualShock 4 V2 (CUH-ZCT2) — 2016 revision with the light bar visible through the touchpad and slightly different rumble motors
  • All colour and special-edition variants — Jet Black, Glacier White, Magma Red, Wave Blue, Steel Black, 20th Anniversary, plus game-themed editions (God of War, The Last of Us, Spider-Man, etc.)

Variant has no effect on which Gamepad API events fire — the button mapping is identical across all DualShock 4 hardware.

Third-party and PS4 Pro controllers

  • Nacon Revolution Pro Controller (V1, V2, V3)
  • Razer Raiju Tournament / Ultimate
  • SCUF Impact / Vantage / Infinity
  • Hori Fighting Commander / Onyx
  • Generic licensed and unlicensed PS4 gamepads

Any "PS4 Pro controller" — whether that means a SCUF, Nacon, Razer Raiju, or other competitive-tier pad — uses the same DualShock 4 protocol underneath, so the Gamepad API treats them identically. Most third-party PS4 Pro controllers expose the same button mapping as the official DualShock 4. Some (Nacon Revolution especially) have additional rear paddles that surface as button indexes 17–20 on Chromium browsers — they will appear in the live status panel even if the SVG illustration has no visual region for them.


What the tester checks

Button registration

Every digital button on the controller maps to a GamepadButton index in the standard mapping:

  • 0 — Cross
  • 1 — Circle
  • 2 — Square
  • 3 — Triangle
  • 4 — L1
  • 5 — R1
  • 6 — L2 (analog)
  • 7 — R2 (analog)
  • 8 — Share
  • 9 — Options
  • 10 — L3 (stick click)
  • 11 — R3 (stick click)
  • 12–15 — D-pad up/down/left/right
  • 16 — PS button
  • 17 — Touchpad click

Each button reports both a pressed boolean and a value between 0 and 1. For the digital buttons, value is 0 or 1; for L2/R2, value is the analog pull pressure scaled to 0.00–1.00 (≈0–255 in legacy 8-bit terms).

Analog stick precision and drift

Stick positions arrive on gamepad.axes:

  • axes[0] — left stick X (−1 left, +1 right)
  • axes[1] — left stick Y (−1 up, +1 down)
  • axes[2] — right stick X
  • axes[3] — right stick Y

The DualShock 4 uses analog potentiometers underneath each stick. Over time, the carbon track inside the potentiometer wears unevenly, producing two symptoms: drift (non-zero output at rest) and circularity error (the stick can't reach all positions on a full circle without skipping).

The circularity test rotates the stick around its full range and records the maximum and minimum radius. A perfect stick traces a circle; a worn stick traces an oval or a polygon. The percentage difference between the smallest and largest recorded radius is the circularity error.

Trigger pressure curve

L2 and R2 are pressure-sensitive. Pull either trigger gradually and watch the value rise. A healthy trigger produces a smooth, monotonic curve from 0.00 to 1.00. A worn trigger may "stick" at certain values (the analog spring is fatigued), jump straight from 0 to 1 (the spring has snapped and the trigger is now digital), or fail to return to 0 (mechanical obstruction inside the trigger assembly).

Vibration motors

The Vibration Actuator API (gamepad.vibrationActuator.playEffect) drives both rumble motors with configurable strong-magnitude and weak-magnitude values from 0.0 to 1.0. The strong motor is the larger eccentric mass (lower frequency rumble) and the weak motor is the smaller one (higher frequency buzz).

Browser support: Chrome and Edge implement vibration on Windows for USB-connected DualShock 4. Firefox supports it on most platforms. Safari does not yet expose vibrationActuator on the Gamepad API. macOS Bluetooth typically does not pass rumble commands through to the controller.


Troubleshooting common DualShock 4 problems

Why won't my PS4 controller connect?

Check in order:

  1. Press a button after connecting — the Gamepad API only exposes a controller after the first input event. A connected-but-idle controller appears as null in navigator.getGamepads().
  2. Cable — try a different micro-USB cable. Charge-only cables (common with phone chargers) lack data lines and will charge the controller but not register it as input.
  3. USB port — connect directly to a motherboard port. USB hubs, especially unpowered ones, can drop the controller's HID interface.
  4. Reset — press the recessed reset button on the back near the L2 trigger with a paperclip for 3–5 seconds. Reconnect via USB.
  5. Bluetooth re-pair — remove the controller from your OS Bluetooth list, hold PS+Share until the light bar flashes, and pair fresh.
  6. Browser — Chrome has the most mature Gamepad API support; if a controller fails in Firefox or Safari, try Chrome to isolate whether the issue is browser-specific.

Stick drift on the left stick

Drift appears at rest as non-zero axes[0] or axes[1] values without you touching the stick. Causes, in descending order of frequency:

  1. Worn analog potentiometer — the carbon track inside the stick module has uneven resistance. Replacement modules cost roughly $8–20 per pair and require basic soldering. The fix is permanent.
  2. Dust or debris under the stick boot — compressed air around the rubber base, with the stick rotated, can dislodge particles. Followed by a drop of contact cleaner (electronic, not WD-40) for stubborn cases. Often buys 1–6 months of relief before replacement is needed.
  3. Calibration drift in the OS — Windows and macOS both ignore Gamepad API recalibration; the controller reports raw values. The fix is hardware, not software.
  4. PS4 controller firmware bug — rare. A factory recalibration via Sony's PS4 system update path can occasionally restore drift on V1 controllers.

Trigger feels loose or won't return

Symptoms: pulling L2 or R2 produces inconsistent analog values, or the trigger doesn't physically return to its rest position.

  • Spring fatigue — the metal return spring inside the trigger assembly weakens after years of use. Replacement springs cost about $5; repair is straightforward and requires no soldering.
  • Cracked trigger plastic — visible after disassembly. Replacement triggers are sold as left/right pairs.
  • Cable obstruction — if you've opened the controller for any reason, the ribbon cable to the trigger board may be partially obstructing return motion. Reseat the cable.

Vibration test does nothing

  • Browser/platform combination — Safari and macOS Bluetooth do not pass vibrationActuator through. Test in Chrome on Windows for the most reliable rumble support.
  • Connected over Bluetooth — Bluetooth rumble is reliable on Windows but not on Linux or macOS. Try USB.
  • Disconnected motor wire — common after a drop. Opening the controller and reseating the rumble motor lead usually restores it. The motor itself rarely fails.
  • Console-side rumble disabled — settings on the PS4 itself (Settings → Devices → Controllers → Vibration Intensity) do not affect browser-driven rumble; the API talks to the controller directly.

Touchpad click does not register

Chromium reports the touchpad click as button 17. If pressing the centre of the pad doesn't fire button 17:

  • Click switch wear — the dome-switch under the touchpad surface wears out separately from the touchpad sensor. Replacement domes are cheap; replacement requires opening the controller.
  • Touch coordinate data is not exposed — the Gamepad API only reports the click event, not finger position. You can verify the click works in the browser, but multi-touch touchpad gestures need a PS4 console (or DS4Windows on PC for finer control).

How to connect a PS4 controller to PC

Using a PS4 controller on PC works through the same OS HID stack the browser reads from, so once the controller is paired, this tester will see it immediately. Choose the path that matches your setup:

How to connect a PS4 controller to PC over USB

  1. Plug a micro-USB data cable into the controller and any motherboard USB port (avoid hubs).
  2. Wait for the light bar to turn solid blue — Windows, macOS, and Linux all recognise the device as "Wireless Controller" automatically.
  3. Press any face button so the browser fires the Gamepad API "connected" event, then return to this tester.

How to pair a PS4 controller to PC over Bluetooth

  1. Turn the controller off (no light bar lit).
  2. Hold PS + Share for 3–5 seconds until the light bar pulses rapidly in a double-flash pattern — this is pairing mode.
  3. Open your OS Bluetooth menu and select Wireless Controller from the discovered device list.
  4. Once the light bar turns solid, the pairing is complete and the controller will reconnect automatically next time.

If Bluetooth pairing fails, the most common cause is a previous pairing record cached on the PC; remove the old "Wireless Controller" entry from your Bluetooth settings and try again. This is the same procedure people search for as "how to pair a PS4 controller to PC" — it works identically on Windows 10, Windows 11, macOS, and most Linux distributions.

Using a PS4 controller on PC: platform notes

  • Windows 10/11 — natively recognises a DualShock 4 over USB and Bluetooth. DS4Windows is a popular utility that re-exposes the PS4 controller on PC as a virtual Xbox 360 controller, useful for older games that only support XInput. The browser does not need DS4Windows; the Gamepad API reads the controller directly.
  • macOS — native Bluetooth support, no driver required. Some early DualShock 4 V1 firmware revisions had pairing issues on Big Sur; updating macOS resolved them.
  • Linuxhid-sony is in-tree; the controller works out of the box on every modern distribution.
  • Steam — Steam Input intercepts controller events globally on the desktop. If a Steam-launched game sees no input, the issue is usually Steam Input's "PlayStation configuration support" toggle in Settings → Controller, not the controller hardware.

How to connect the PS4 controller to a PS4 console

If you bought a replacement controller and need to pair it to the console (rather than to a PC), the flow is different: connect the new controller to the PS4 with a USB cable, press the PS button to assign it to a user profile, then unplug. The pairing record is now stored on the console and the controller will reconnect wirelessly afterwards. A factory reset (paperclip in the small hole next to the L2 trigger, hold 5 seconds) clears stale pairings if the controller refuses to bind.


PS4 controller repair: when testing reveals a hardware issue

If the tester surfaces a problem — stuck stick drift, a dead button, a trigger that won't return — the next question is whether to repair or replace. Most PS4 controller repair jobs fall into four buckets, in rough order of frequency:

| Symptom from the test | Likely cause | Repair difficulty | Approx. parts cost | | --- | --- | --- | --- | | Stick drift > 10% or non-zero rest values | Worn potentiometer module | Medium (soldering required) | $4–$8 per pair | | L2/R2 won't return to 0.00 | Trigger spring fatigue or cracked plastic | Easy (no soldering) | $5 spring kit | | Face button stays pressed or won't register | Conductive pad worn or PCB contamination | Easy | < $5 silicone pad set | | Touchpad click (button 17) dead | Dome switch under touchpad worn | Medium (full disassembly) | < $5 dome set |

A full DualShock 4 PS4 controller repair takes 30–60 minutes with a #00 Phillips driver, plastic spudger, and (for stick modules) a temperature-controlled soldering iron at ~330 °C. If you don't own the tools, professional repair shops typically charge $35–$60 for a stick swap — still cheaper than a new controller, especially for a special-edition model.

Before you commit to a repair, run the circularity test and screenshot the result. That reading is your baseline; after the swap, run it again and you should see the percentage drop into the 3–6% "as new" range. If the reading doesn't improve, the replacement module itself is faulty — common with very cheap aftermarket clones — and a different supplier is the next step.


Privacy

Every Gamepad API value stays inside the browser tab. No button presses, stick coordinates, or trigger pressures are uploaded, recorded, or logged. The page polls navigator.getGamepads() locally and renders the result; closing the tab clears the state.

You can verify with the browser's network tab — no controller-related requests fire while you test. The site loads no analytics on input data.


Frequently asked questions

Does this work with all DualShock 4 versions?

Yes. CUH-ZCT1 (V1, 2013) and CUH-ZCT2 (V2, 2016) report identical button mappings via the Gamepad API. Colour, special edition, and game-themed variants are all electrically identical to the standard model.

Can I test the touchpad's multi-touch?

No. The Gamepad API surface in browsers exposes only the touchpad click as button 17. Multi-touch coordinates are available on a PS4 console, or via low-level HID inspection with DS4Windows / hid-sony on PC.

Can I see battery level?

Browser support for gamepad.battery is inconsistent. Chromium-based browsers report it on Windows over USB; Bluetooth and macOS typically do not surface a battery field. When available, the live-status panel shows it.

Why does the stick show 0.04 at rest? Is that drift?

A small non-zero value (under ±0.05 / 5%) is within the normal manufacturing tolerance for analog potentiometers. Most games apply an inner dead zone of 8–15% for exactly this reason. Drift becomes a real problem when resting values drift past ±0.10 or when the values change as the controller warms up.

Can I test multiple controllers at once?

Yes. The Gamepad API supports up to four simultaneous controllers (navigator.getGamepads() returns a length-4 array). The tester displays the first connected controller; cycling through additional controllers requires switching focus, which is possible in the live-status panel.

Is it safe to leave the DualShock 4 plugged in 24/7?

The internal lithium-ion battery has charge-management circuitry that stops drawing current when full, so it isn't damaged by being left plugged in. Leaving it plugged in indefinitely does keep the cell at 100%, which slightly accelerates long-term capacity loss; topping up to 80% and unplugging is gentler if you don't game daily.

My controller works on PS4 but not in the browser

Most likely the browser hasn't seen an input event yet — press any button after connecting. If that doesn't help, the controller is reaching the OS but not the browser, which is almost always a Chromium / Firefox extension intercepting Gamepad API calls. Disable extensions and retry.

What's the fastest way to use a PS4 controller on PC for this test?

A wired USB connection. Plug the controller into the PC with a data-capable micro-USB cable, press any button to wake the Gamepad API, and the tester will populate within a frame. Bluetooth works too, but takes a few seconds longer to handshake on the first pairing.

Why won't my PS4 controller connect over Bluetooth?

Three causes account for the majority of failures: a stale pairing record on the PC (remove "Wireless Controller" from Bluetooth settings and re-pair), the controller is not actually in pairing mode (the light bar must double-flash, not pulse slowly), or the PC's Bluetooth radio is 4.0 with intermittent HID support — try USB to confirm the controller itself is healthy.


Related testing tools

  • PS5 Controller Test — DualSense buttons, adaptive triggers, haptic feedback, and touchpad.
  • Xbox Controller Test — Xbox One, Series X/S, Elite paddles, and Xbox 360 with appropriate drivers.
  • Keyboard Test — Test every key, detect stuck keys, verify NKRO rollover.
  • Mouse Test — Diagnose double-click failure, dead buttons, and scroll wheel issues.
  • Microphone Test — Useful for verifying the headset mic in your PS4 chat setup.
  • Headphone Test — Check left/right channels and sweep frequencies on any headset before a long session.