A live diagram of your connected controller (PlayStation, Xbox or Switch layout, auto-detected), a full keyboard tester, and your mouse polling rate. Everything runs locally; nothing is recorded.
Game controller
none detected
Connect a controller over USB or Bluetooth, then press any button so the browser reveals it.
🎮 No controller yet — press any button on your gamepad (moving the sticks doesn't wake it).
⚠ This tab isn't focused — click anywhere on this page first, then press a controller button.
✕ This browser doesn't expose the Gamepad API — try Chrome, Edge or Firefox.
Controller not showing up? Open the checklist
Mode switch (GameSir, 8BitDo, Flydigi, EasySMX…): set it to X-input / “X” mode. In some modes (Apple/MFi, keyboard-mouse mapping) the pad announces itself as a keyboard + mouse, and no browser can see it as a controller.
Press a face button (A/B/✕/○) while this tab is focused — browsers hide controllers until a button press for privacy. Stick or trigger movement usually doesn't count.
Bluetooth pads: if it paired but won't appear, remove the pairing and pair fresh. On Windows, check it shows under “Bluetooth & devices” as a controller, not a keyboard.
Check the OS sees it: Windows — run joy.cpl; macOS — System Information → USB/Bluetooth; Linux — ls /dev/input/js*. If the OS can't see it, no browser will.
Try another browser: Chrome and Edge have the widest pad support; Firefox is close; Safari is pickier with off-brand pads.
name —mapping —buttons —axes —
controller
Non-standard mapping — raw buttons:
Raw axes (sticks, triggers — and on many generic pads the D-pad shows up here as a “hat” axis):
Analogue sticksroll each stick slowly around its full edge a few times
release both sticks, then run — samples rest position for 5s
Symbols match the detected brand. The diagram is a representative layout (standard mapping), not a photo of your exact model.
Keyboard
0 keys tested
Press every key — it lights up while held and turns green once tested. Hold several at once to check anti-ghosting / rollover. Reset clears the marks.
Mouse
move inside the pad
Polling rate is measured from the events your browser exposes (using coalesced pointer events for high-rate mice). Move continuously and fast for a true reading.