Skip to content

Outdoor walk/run (GPS)

Outdoors there’s no treadmill to report speed and incline, so OmniBandBridge (OBB) reconstructs them from the phone’s GPS plus, where useful, elevation maps (DEM) and the barometer — while the Mi Band / footpod still provides cadence and the biomechanical metrics. GPS and the band are complementary: each covers what the other can’t.

Metric Mi Band / footpod Phone GPS
Cadence, stride, ground contact, biomechanics ✅ direct
Instantaneous speed ✅ (foot accel) ✅ (Doppler)
Total distance ⚠️ step integration (±5%) ✅ better on long tracks
Route track (lat/lon)
Elevation / grade ⚠️ noisy (DEM/barometer better)

Cadence always comes from the band, never from GPS. Running cadence is ~160–200 spm (≈ 2.7–3.3 Hz); detecting it from a 1 Hz GPS signal is impossible (Nyquist), and even 10 Hz sport chips can’t do it reliably in a consumer app. So the band stays the only trustworthy source for cadence, stride and biomechanics — outdoors too.

Speed is cross-validated between the two: GPS speed is more accurate over long distances, while the band’s speed is a good fallback when GPS drops out (urban canyon, tunnel), and vice-versa.

Elevation & grade — the outdoor replacement for FTMS incline

Section titled “Elevation & grade — the outdoor replacement for FTMS incline”

Grade matters because running uphill costs far more energy than the same speed on the flat — it’s a key input to OBB’s metabolic power. On a treadmill the incline is handed to us by FTMS; outdoors OBB has to derive it, and it does not use raw GPS altitude for it.

GPS horizontal error (lat/lon) is small, but the vertical error is ±3–5 m — far too noisy to compute a reliable grade from the difference between two fixes. So OBB uses the accurate lat/lon to look up elevation another way.

OBB reads ground elevation from a DEM (Digital Elevation Model) at the fix’s lat/lon — the same technique Strava and Garmin use. Because lat/lon is accurate, the DEM elevation is close to the truth and free of GPS vertical noise.

  • Offline & real-time. Grade is needed live for power, but online DEM APIs have rate limits, latency and network dependence. So at workout start (first GPS fix) OBB pre-downloads DEM tiles for a bounding box around the start (generous radius) and caches them locally; every lookup during the run is then local — no network, no rate limit, privacy preserved.
  • Tile sources. Global baseline from SRTM / AWS Terrarium tiles (free, keyless, elevation encoded in RGB), with an optional finer 10 m layer (e.g. TINITALY) where available for a cleaner grade. A repository tries the fine source first and falls back to the global one.
  • Bilinear interpolation + smoothing. GPS fixes rarely land on a DEM grid node and consecutive 1 Hz fixes (~3 m apart) often fall in the same cell, so OBB interpolates between the 4 surrounding nodes and smooths grade over a ~20–30 m distance window. The result is grade averaged over tens of metres — exactly what the power model wants (power responds to sustained grade, not to a single step).
  • Post-workout too. The DEM also rewrites elevation and total ascent at export time, populating <AltitudeMeters> in the TCX file.

A barometer gives high-frequency relative altitude change with low latency and no GPS vertical noise, so it’s the natural complement to the DEM: the DEM provides the absolute anchor (and corrects barometric drift from weather), while the barometer captures fast relative changes. OBB reads it via Android’s Sensor.TYPE_PRESSURE when available — but not every phone has a barometer (many mid-range models don’t), so the DEM is the primary source and the barometer is fused in only when present.

Just like on the treadmill, OBB feeds speed (GPS) and grade (DEM/barometer) into its personalized metabolic power model — grade here is the outdoor equivalent of the treadmill incline. The estimate carries a bit more uncertainty than indoors (GPS speed vs. an exact belt readout, terrain grade vs. an exact machine value, plus wind is no longer eliminated), but the DEM-based grade keeps it solid.

  • Optional “wait for GPS” gate before starting, so the first segments aren’t recorded with a poor fix.
  • Distance: on long outdoor tracks OBB prefers GPS distance over step integration; the route (lat/lon) is saved and exported.
  • Cadence/biomechanics still require the band — GPS can’t provide them (see above).