Servo Calibrator
Hobby servos aren't as linear as the datasheet says — see the write-up for exactly how much. This tool measures your specific servo's real pulse↔angle curve using an AS5600 magnetic encoder as ground truth, builds a 20-point calibration table automatically, and then lets you drive and watch live trajectories against it — right here in the browser, no install.
What you'll need
- An Arduino-compatible board with I²C and a free PWM-capable pin (
A3by default) - An AS5600 magnetic encoder breakout, with the magnet mounted on the servo's output shaft
- The hobby servo you want to characterize, with a bare horn — no linkage or load attached
- An external power supply for the servo, sized for its stall current
- Chrome or Edge on desktop — Web Serial isn't implemented in Firefox or Safari
Safety notes
- Calibrate with a bare horn. No linkage, mechanism, gearbox, or load attached — a loaded mechanism can make a stall look like normal resistance and vice versa.
- Calibration deliberately drives the servo into its mechanical end stops to find them, on purpose, briefly, once per direction — that's expected, not a malfunction.
- A hard pulse-width safety ceiling exists as a fail-safe in case stall detection doesn't trigger for some reason; calibration aborts with a clear error instead of silently accepting a bad range.
Get the hardware side
The Arduino sketch and full build notes live in the
Servo-Calibrator repo on GitHub —
flash ServoCalibrator_Companion.ino
to your board, wire it up per the diagram above, then come back here and connect.
Runs entirely in your browser over Web Serial — nothing is uploaded to a server, and the page only talks to whatever port you pick in the browser's own device dialog.