Watch every axis your controller reports as a live waveform over time, sticks, triggers, and anything else hiding past the standard four, the way an oscilloscope shows a signal rather than a single snapshot.
Checking for a controller…
No controller detected
Connect a controller by USB or Bluetooth, then press any button. Most browsers will not notice it until you do.
Useful for checking whether two axes that should move independently are secretly linked, or whether two axes that should mirror each other, like an opposite facing pair on a flight stick, actually do.
A single live readout answers exactly one question, what is this axis doing right now. A waveform over time answers a much more useful set of questions. Does the line return cleanly to zero every time you let go, or does it settle somewhere slightly off and stay there. Does it move in a smooth, continuous curve when you sweep the stick slowly, or does it jump in small steps that suggest the sensor's actual resolution is lower than you would expect. Does a brief, sharp spike appear and vanish on its own even though you never touched anything, the kind of momentary glitch a static number could easily display for one frame and disappear before you ever noticed.
None of these patterns are visible in a number that simply updates in place. They are only visible in a trace that keeps a short visual memory of where that number has actually been.
Each axis trace sits on its own zero line. At rest, a healthy stick axis should draw an almost perfectly flat line right on that baseline, with at most an extremely fine, barely visible flicker. A trace that sits noticeably above or below its baseline while you believe nothing is touching it is showing you drift directly, in a much more immediate way than reading a single decimal number ever communicates.
Move a stick slowly through its full range while watching its trace. A healthy axis draws a smooth, continuous curve. An axis with a coarser internal resolution, or one developing certain kinds of wear, can draw a curve with visible small steps or flat plateaus where the reported value briefly fails to update even though the stick is still physically moving. This is a genuinely hard pattern to notice from a live number alone, since each individual step looks like a perfectly normal reading in isolation.
Trigger axes should rest flat at their minimum value and rise in a clean, even curve as you pull, mirroring the shape of your own finger's motion reasonably closely. A trigger trace with a flat plateau partway through its rise, where pulling further does not move the line at all for a stretch, points to a genuine mechanical dead spot in that part of the trigger's travel.
Most controllers report four axes, two per stick, but some report more, an extra axis for a secondary trigger pair, a directional pad reported as an axis rather than separate buttons, or other hardware specific extras. Any axis that appears here that you were not expecting is worth investigating on its own, simply by moving every input on your controller one at a time and watching which trace responds.
Pick any two axes to draw on the same canvas in two different colours. This is the most direct way to check a suspicion that two inputs are not behaving independently, for instance if pushing one stick seems to faintly affect a reading on the other, a wiring or cross talk issue that would otherwise be very hard to confirm through separate single axis views alone.
Plug in over USB, or pair over Bluetooth in your system settings first. Chrome, Edge, and Firefox all support the controller out of the box once it is paired.
Pair the controller in your device's Bluetooth settings, then open this page in Chrome. Other Android browsers vary in their support.
Pair an MFi or Bluetooth controller in Settings, then open this page in Safari. iOS has supported the same Gamepad API since version 14.5.
Plug in over USB or pair over Bluetooth, then use Chrome or Firefox. Some distributions need a one time udev rule for certain Bluetooth controllers to be recognised by the operating system at all. If the controller is not visible at the system level, it will not be visible here either.
Let it sit untouched for a good ten seconds before judging it, since a stick can take a brief moment to settle right after being released from a firm push. If it is still wandering after that, the trace is showing you genuine drift on that axis.
A small amount of stepping at very fine zoom is normal sensor quantisation and not a fault. Visible, chunky steps during an otherwise slow, deliberate sweep are more worth paying attention to, particularly if they appear at the same spot in the stick's range every time you repeat the motion.
Some controllers map a directional pad or an extra trigger pair to an axis rather than individual buttons. Try pressing every input on your controller slowly one at a time, watching the trace list, to identify what is actually driving that specific axis.
Press a button first. Many browsers will not register a controller until they see its first input.
If a trace looks unusual, an axis you expected to see is missing entirely, or you want a second opinion on a waveform pattern before assuming a hardware fault, reach out directly. A short description of what you are seeing, along with your controller model and device, is normally enough to help track down what is going on.
info.gpadviewer@gmail.comSign in to your account