BeogradPC
⌂ Home
Deadzone 0.10

No controller detected

Connect your gamepad, joystick, or racing wheel via USB or Bluetooth, then press any button (or turn the wheel).
Browsers only expose controllers after the first user input.

Racing wheels — Logitech G29 / G920 / G923, Thrustmaster, Fanatec, MOZA… — get a dedicated Wheel mode with live steering angle, pedals and paddle shifters.

Press any button to start

About the Online Gamepad & Controller Test

Test Xbox, PlayStation, generic USB controllers and racing wheels straight from the browser: check every button, measure analog stick drift, tune dead zones, verify triggers and vibration, and calibrate pedals with live min/max detection. Works with wired and Bluetooth controllers.

Why is my controller not detected?

Browsers only expose a gamepad after you press a button on it — this is a Gamepad API security rule. Connect the controller, press any button, and it should appear. If not, try another USB port, make sure no other program has exclusive access, and check that the controller works in the operating system first.

How do I check for stick drift?

Release both analog sticks and watch their live position readout. A healthy stick returns to values very close to zero; a stick that keeps reporting movement while untouched has drift. Small residual values are normal and are absorbed by the dead zone.

What is a dead zone and how should I set it?

A dead zone is the small region around the stick's center where input is ignored, hiding sensor noise and mild drift. Set it just large enough that the resting stick reads zero. An oversized dead zone makes aiming feel sluggish; too small and the character moves on its own.

Can I test racing wheel pedals here?

Yes. The pedal panel uses live min/max calibration: fully press and release each pedal once and the page learns its real range and orientation automatically, including inverted axes. Note that some wheels, such as the Logitech G920, report nothing on a pedal axis until the pedal is physically touched for the first time.

Does vibration testing work in every browser?

Rumble support depends on the browser and controller. Chromium-based browsers support vibration for most Xbox and PlayStation pads; some generic controllers expose no vibration actuator at all, in which case the test reports it as unavailable.

Help — Gamepad Test

Connect your gamepad, joystick, or racing wheel via USB or Bluetooth. Browsers only expose the device after you press a button on it (security requirement). Once detected, the device is identified by its USB vendor/product ID (brand, model and type are shown in the header strip) and appears as a pill in the top toolbar.

Modes:

Visualizer — schematic gamepad with hit-heatmap (each button color-grades blue→green→cyan→amber→red as you press it more), analog axes, analog triggers, and a full button grid. Labels follow the active label scheme (Xbox / PlayStation / Nintendo / Numeric — cycle via the A/B button in settings).

Wheel — appears automatically when a racing wheel is detected (Logitech G29 / G920 / G923 / G27 / G25, Thrustmaster T150 / T300 / TMX / T248, Fanatec, MOZA, Simucube…). The wheel illustration rotates live with the steering axis; pick the rotation range (180°–1080°, default 900°) to read the angle in degrees. Pedal bars show clutch / brake / throttle. Press each pedal fully once after connecting — pedal ranges and direction are calibrated live from real movement (Logitech pedals report nothing until first touched). If a pedal lands on the wrong bar, run Auto-detect pedals (press each pedal when prompted) or pick the axis manually; flips which end counts as released. Paddle shifters light up and count presses. Detection uses USB vendor/product IDs with name-based fallback, so unknown wheels still work.

Stick gamut — rotate each stick in a full circle. The canvas draws all positions visited; outer ring = full deflection, inner ring = current deadzone. Octant coverage tells you whether the stick can reach every direction.

Vibration — test the weak (high-freq) and strong (low-freq) motors independently or together. Magnitude (0–1) and duration (100–3000 ms) are configurable. Not all controllers expose vibrationActuator; the support status row tells you.

Raw data — pretty-printed Gamepad object snapshot, throttled to 100 ms.

Deadzone (top-right slider, 0.00–0.30) filters axis noise: values below threshold display as zero and don't contribute to triggers. Raw values are still recorded in JSON export.

Privacy: All data stays in your browser. The page makes no network calls (CSP connect-src 'none'). Settings (theme, deadzone, label scheme, vibration defaults) are stored in localStorage under the gptest: prefix.

Reset clears button hit counts, stick gamut points, simultaneity peak, and vibration log across all controllers. Export writes a JSON file with system info and per-controller stats.