Measure g from your phone's own calibration — and find out, as a cohort, how much to believe it.
Your phone's accelerometer is factory-calibrated: at rest it reports its specific force, and the
vendor's claim is that the magnitude |a| = √(ax²+ay²+az²) ≈ g. So you can read g by laying
the phone still and averaging. But it is a claim, not an equality — the reported |a| differs
from true local g by a calibration error you cannot see from inside one phone. This tutorial has two moves:
characterise your accelerometer so you know how precisely it reads (its noise floor), then
measure g and bring it to the cohort — where you discover that your precise, confident number is
still ~1 % off, because only the spread across many phones (and an independent geodetic value)
reveals the calibration error. Characterisation gives precision; the cohort gives accuracy.
g ± u_A, and later an honest total g ± U.Everything goes in the shared data schema.
1 · Characterise (the mandatory minimum — it is your error budget). On each of your team's ≥ 2 different phones, with phyphox or similar:
|a|, which is just ≈ g).
Propagated to your estimator and averaged down, this sets your precision u_A.u_A.Stretch (optional): the aliasing demo (drive above Nyquist), live clipping to find a_max, a −3 dB bandwidth sweep.
2 · Build the static-read pipeline. From a "with g" recording of the phone at rest:
|mean(a)| (average each axis, then take the magnitude)
over mean(|a|) (average the per-sample magnitudes). The magnitude is nonlinear, so noise rectifies
and biases mean(|a|) upward. Declare which you use.3 · Pre-register your precision-only interval. Compute g ± u_A, where u_A is
Type A only (from your characterisation). Commit it. Do not pad it with a guessed calibration term —
that comes later, and not from you alone.
| time | what happens |
|---|---|
| 0–10 | post your characterisation summary + precision-only g ± u_A + your combination rule — before seeing others |
| 10–30 | everyone measures in the same defined environment (one room, a level, quiet, thermally-settled surface); log temperature |
| 30–45 | the cohort assembles a phone-only consensus — and you watch the spread blow past everyone's precision-only bars |
| 45–55 | that excess spread is your missing uncertainty — the vendor-calibration error, finally visible. Derive a calibration Type B from the spread, inflate to your honest total g ± U |
| 55–60 | reveal the independent geodetic value (BKG); does the honest-total consensus cover it? debrief + logbook |
Two house rules:
Your cohort compares its consensus against an independent geodetic value for the test site — Gustav-Mie-Haus, Hermann-Herder-Str. 3, ground floor (φ ≈ 48.0018° N, λ ≈ 7.8511° E, height ≈ 280 m). To get it:
48.0018, longitude 7.8511 (ETRS89 — equal to
WGS84 at this precision) and the physical height ≈ 280 m (DHHN2016). Use the exact
spot of your measurement if you can.external_reference block — and remember it is a comparator, never
averaged into the phone consensus (it is ~10²–10³× tighter; it would just overrule the room).Self-assessed. Judge your own work against these, in the logbook; mark each solid / partial / not yet with one line of evidence:
± u_A and ± U, and is the gap between them the calibration error your own phone could not see?U, or a calibration bias the whole cohort shares?u_A, or did you bolt a number on afterwards?You did this well if you forecast the miss and explained it as calibration, and your honest-total interval covers the geodetic value for a reason you can state. You did this poorly if your tiny precision-only bar missed and you cannot say why.
This measures g to ~1 %, dominated by your phone's consumer-grade calibration. It is a lesson about calibration trust chains, not a precise g. If you wanted the precise number, you would route onto a clock instead — swing the phone as a pendulum and time it. Saying which you are doing, and why, is the metrology. The geodetic "reference" is itself a model estimate with its own uncertainty — an independent witness, not the truth.