↩ Sensing 2026 workshop
Sensing 2026 · tutorial

Characterise your phone, then trust it together

Measure g from your phone's own calibration — and find out, as a cohort, how much to believe it.

Before you read on. This assumes you have done the spaced-week anchors — the trade-off triangle, noise & Allan, and the SQL 1/√N — and can record and plot data from your phone. There is no grade; the work is self-assessed (last section). Bring a phone, a charged second phone per team, and your laptop. No pendulum, no string — just the phone at rest.

The one-paragraph version

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.

What your team produces

  1. A characterised accelerometer (the mandatory minimum below) and a static-read g pipeline.
  2. Two intervals for your g: a pre-registered precision-only g ± u_A, and later an honest total g ± U.
  3. Your part of the cohort consensus and one shared logbook entry.

Everything goes in the shared data schema.

Before the tutorial — your spaced-week prep

1 · Characterise (the mandatory minimum — it is your error budget). On each of your team's ≥ 2 different phones, with phyphox or similar:

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:

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.

In the tutorial — 60 minutes, together

timewhat happens
0–10post your characterisation summary + precision-only g ± u_A + your combination rule — before seeing others
10–30everyone measures in the same defined environment (one room, a level, quiet, thermally-settled surface); log temperature
30–45the cohort assembles a phone-only consensus — and you watch the spread blow past everyone's precision-only bars
45–55that 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–60reveal the independent geodetic value (BKG); does the honest-total consensus cover it? debrief + logbook

Two house rules:

The reference value — how to read it (BKG)

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:

  1. Open the BKG online gravity calculatorgibs.bkg.bund.de/geoid/gscomp.php?p=s (Bundesamt für Kartographie und Geodäsie; PTB points here since its own g-Extractor was retired).
  2. Enter the location: latitude 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.
  3. Read off the model g (m/s² or mGal). Within Germany the model is good to < 2 mGal (≈ 2×10⁻⁵ m/s²).
  4. Sanity-check it yourself: the International Gravity Formula 1980 at φ = 48.00° with a free-air correction for 280 m gives g ≈ 9.8080 m/s². The BKG value should land within a few mGal of this — if the two disagree by a lot, you mis-entered something.
  5. Record it in your card's 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).

Assess yourself — there is no grade

Self-assessed. Judge your own work against these, in the logbook; mark each solid / partial / not yet with one line of evidence:

  1. Two intervals. Did you report both ± u_A and ± U, and is the gap between them the calibration error your own phone could not see?
  2. Earned Type B. Did your calibration uncertainty come from the observed cohort spread (or a real spec), not a copied number — and did you recognise that excess spread as calibration rather than blame the data?
  3. Coverage. Does your honest-total interval — and the cohort's — cover the geodetic value? If not: too-small U, or a calibration bias the whole cohort shares?
  4. Characterisation that mattered. Did your noise floor / sample rate / full-scale actually set your u_A, or did you bolt a number on afterwards?
  5. Calibrated surprise. Before the cohort revealed the spread, did you predict your precise number would miss — and by roughly how much?

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.

What this does not show (read before you over-claim)

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.