Why circularity is not a screenshot of a circle
A lot of “circularity testers” ask you to spin the stick and then overlay your path on a unit circle centered at the origin. That plot is pretty and often wrong. If the stick rests at (+0.12, −0.04), a mechanically round gimbal becomes an offset oval around (0, 0). You then “fail” a controller that is merely biased — which is a drift problem, not a circularity problem.
CTRLCHK subtracts the median rest from every sample, keeps only outer-reach points (radius ≥ 0.7), bins them around 360°, and compares each bin’s max reach to the mean reach of the envelope. Average error is the mean of those relative deviations. Quadrants (up-right, down-right, down-left, up-left) get their own mean reach and error so a smashed corner cannot hide in a global average.
How to run it
Start the health check, finish the hands-off centre so rest is known, then rotate each stick once around the outer edge. Slow is better than fast: we need samples in most angular bins, not a blur. Continue unlocks when range coverage is complete; circularity is computed from the same samples. Bands: under 5% excellent, 5–10% good, 10–15% moderate, over 15% poor. Poor circularity applies a penalty to the range contribution of the health score. It does not invent a drift failure.
If you only care about rest, stay on the stick drift test. If the complaint is “diagonals feel short” after a drop, this is the page. Snapback after a flick is a third axis — see the snapback test.
What the number cannot say
Circularity here is a 2D envelope in Gamepad units, not a CMM scan of the gimbal. Software gates, anti-deadzone, and the game’s own circularity correction sit downstream. A hall-effect module can still plot an oval if the firmware tilts the axes. Treat the measurement as evidence, then confirm in the game that actually matters to you.