Controller not detected on ChromeOS
When ChromeOS won't detect your Xbox, PlayStation or other gamepad, it's usually the cable/Bluetooth pairing, a driver, or the browser/game not reading it. Try these, then test every button live.
Step-by-step fix
-
Use a known-good data USB cable (not charge-only), or re-pair over Bluetooth. Press the controller's pair/sync button.
-
Run the CheckMyMic controller test and press a button — buttons and sticks should light up.
-
On ChromeOS, make sure the controller driver is installed (Xbox pads are plug-and-play; PlayStation pads may need Steam Input or DS4 tooling).
-
Test the analog sticks for drift in the tester, and the triggers/bumpers.
-
Restart ChromeOS and reconnect.
Frequently asked questions
My controller charges but isn't detected on ChromeOS.
Charge-only cables are common — swap to a data cable, or pair over Bluetooth. Then press a button and watch the controller test: once ChromeOS really has the pad, it also appears in its Bluetooth/USB device list, which is the quickest way to tell a cable problem from a driver problem.
How do I check for stick drift on ChromeOS?
Open the controller test on ChromeOS and don't touch the sticks — if the on-screen sticks move on their own, you have drift. Mild drift can be masked with a bigger in-game deadzone; drift that keeps growing is the stick module wearing out.
Still not detected on ChromeOS after every step — what's left?
Test the pad on another device: pair it to a phone or a second computer and open the CheckMyMic controller test there. Detected elsewhere means this machine's Bluetooth, USB port or driver; dead everywhere means the controller itself. Remember the tester only sees a pad after you press a button — that's how the Gamepad API works, not a fault.
Which controllers work on a Chromebook?
Recent Xbox, PlayStation and Switch Pro pads work over Bluetooth or USB. Pair under Settings → Bluetooth, then remember browser games use the Gamepad API — the pad stays invisible to a page until you press a button, so press A/X once with the controller test open before concluding it isn't detected.