A timegrapher for mechanical watches.
Any app can print a rate. Hairspring measures again, tells you whether the two readings agree, and saves the evidence.
| Run 1 | +2.1 ± 0.4 s/d |
| Run 2 | +2.3 ± 0.4 s/d |
| Verdict | The readings agree |
One upfront purchase. No subscription, no account, no automatic uploads —
your data stays on your iPhone unless you choose to export it.
New to timing a watch by sound? Read the practical iPhone watch timegrapher guide for placement, measurement, and result-reading advice. If the app cannot hear or lock onto the watch, use the signal troubleshooting guide. See what changed in Hairspring 1.0.2, or subscribe to the Hairspring updates feed. If two tests give you different numbers, see why timegrapher readings change and compare them with the free timegrapher repeatability calculator. For the numbers and timing diagram themselves, use the step-by-step guide to reading a timegrapher. Choosing between the phone and dedicated hardware? Use the iPhone timegrapher vs WeiShi comparison protocol. Choosing among current iPhone apps? See the source-linked iPhone timegrapher app comparison. Choosing between a zero-install browser check and a native measurement workflow? Read free online timegrapher vs iPhone app. For a long-run check against a clock, use the free mechanical watch accuracy calculator.
Lay the phone flat, set the watch beside it, and Hairspring listens to the escapement itself:
It needs a mechanical (not quartz) watch. Rate is the measurement this method does best; amplitude and beat error are reported with their limits stated. If a reading can't be defended — too much scatter, an implausible result, timing too disturbed to number the beats — Hairspring refuses it and names the cause, because a plausible-looking wrong number is worse than no number.
Email moganes@gmail.com for help with app issues, to report bugs, share general feedback, or suggest feature enhancements. Include your iPhone model and, if a measurement went wrong, the diagnostic log — see below. Replies usually within a couple of days.
Beside the phone, not on it. Lay the phone flat on a hard surface — wood or stone, not cloth or a cushion — and set the watch dial-up about 5 cm from the bottom edge, crown toward the phone. The microphone is at the bottom edge, and a watch resting on the handset muffles it.
A watch running on the last of its reserve reads low and ragged. Give it a full wind and a minute to settle before measuring.
A ticking wall clock nearby can genuinely defeat the beat detection — its ticks arrive at a steady period too. If a measurement will not lock in a room with another clock in it, move one of them.
Hairspring can hear something periodic but cannot establish which beat rate it is. Almost always placement: re-seat the watch on a harder surface, closer to the bottom edge, and make sure nothing is covering the microphone.
Because that is what the method honestly supports. Amplitude is derived from the gap between two escapement noises, and there are several defensible ways to define exactly where each one begins — they differ by tens of degrees. Reading the range keeps you from over-trusting a single figure. The measurement underneath it is repeatable to a fraction of a degree.
Because it could not measure one it would stand behind. Too much scatter in the detected ticks, a result no mechanical watch could produce, or timing so disturbed the beats cannot be numbered at all. Each refusal names its cause and what to change. This is deliberate: a plausible-looking wrong number is worse than no number.
No. Hairspring measures a mechanical escapement. A quartz watch's stepper motor ticks once per second, which this is not built to analyse.
No. The measurement engine makes no network requests. Live audio is analysed on your device and Hairspring never transmits it automatically. If you enable Raw Capture, the recording remains on your device unless you explicitly export it.
Hairspring writes a log of the last measurement to its own folder. Open the
Files app → On My iPhone →
Hairspring → detector.log. It contains signal
levels and timing statistics, not microphone audio. Review it first and share
it by email only if you choose.