# OmniBandBridge (free): auto-upload running dynamics + personalized power to intervals.icu from a Mi Band, Garmin or any footpod

**URL:** <https://forum.intervals.icu/t/omnibandbridge-free-auto-upload-running-dynamics-personalized-power-to-intervals-icu-from-a-mi-band-garmin-or-any-footpod/131040>\
**Category:** External Projects\
**Created:** [17 August 2026 17:57 UTC](https://forum.intervals.icu/t/omnibandbridge-free-auto-upload-running-dynamics-personalized-power-to-intervals-icu-from-a-mi-band-garmin-or-any-footpod/131040 "2026-08-17T17:57:37Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![barban](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/b/ebca7d/32.png) [@barban](https://forum.intervals.icu/u/barban)\
**Post date:** [17 August 2026 17:57 UTC](https://forum.intervals.icu/t/omnibandbridge-free-auto-upload-running-dynamics-personalized-power-to-intervals-icu-from-a-mi-band-garmin-or-any-footpod/131040/1 "2026-08-17T17:57:37Z")

</div>

First of all, a big thank you to @david: I love intervals.icu so I built OmniBandBridge (OBB) to get more of my running data into it.

**What it is:** a free Android App that reads real-time running data from a wearable you already own, **records the full run -including advanced dynamics- and auto-uploads it to intervals.icu as a .FIT file**. It can _also_ re-broadcast the same live data as a standard sensor to **Zwift** , treadmills and other apps. Supported sources are: **Xiaomi Mi Band 8/9/10** (incl. the footpod “running clip” mode), **Garmin** watches, **Stryd / any BLE RSC footpod** , and **UA connected shoes (with embedded Atlas sensor)**.

![omnibandbridge_workflow](https://forum.intervals.icu/uploads/default/original/3X/b/2/b2c702fedc7de627a05e0e47cdc88bfcec9047ab.gif)

**How it works with intervals.icu** (the part you’ll care about):

1. **Auto-upload every workout to intervals.icu** as a **FIT** file with native **running dynamics**  
(ground-contact time, vertical oscillation, vertical ratio, stride length, cadence) and **power**.
2. **Pull your athlete profile from intervals.icu** : LTHR, max HR, resting HR, threshold pace and your **HR & pace zones** - so OBB’s live metrics and zones match your intervals.icu setup instead of a generic formula.
3. **Personalized metabolic power (MEP)**: a running-power metric learned from _your own_ workouts (your zones/CP, not a one-size model). It’s written to the FIT as a developer field, so you can analyse it in intervals.icu.

Here’s what that looks like once the .fit lands on intervals.icu — the running-dynamics and MEP  
streams come through as first-class **custom streams** you can chart and analyse:

 ![intervals_screen1a](https://forum.intervals.icu/uploads/default/original/3X/f/3/f30cee8390d38c20c898c95c3a79566a935be637.jpeg)

> the _Custom Streams_ dialog on an imported OBB activity: `vertical_oscillation (mm)`, `vertical_ratio (percent)`, `GCT (ms)` and `metabolic_power (W)`.

 ![intervals_screen1b](https://forum.intervals.icu/uploads/default/original/3X/8/4/846867db303eaf4747faa2d838079217ee472218.jpeg)

> a full imported run with every stream charted side by side: power, metabolic\_power, altitude, cadence, heart rate, pace and GCT.

**Also:** treadmill FTMS (speed/incline) + external HR fusion, outdoor GPS with elevation for grade,  
CSV/TCX/FIT export, and an optional on-device AI journal. **Free, no account, local-first** — your  
training data stays on your device (and, if you choose, uploaded to intervals.icu by you).

It’s in **free closed beta** ; I’m the solo dev and I’ll keep it updated. Feedback very welcome 🙂

**Try it (Android):**

- **Google Play (closed beta)** — two quick steps: ① join the tester group [obb-beta-testers](https://groups.google.com/g/obb-beta-testers) _with the Google account you use on the Play Store_, then ② open the [opt-in link](https://play.google.com/apps/testing/com.barban.omnibandbridge) and install.
- **Prefer sideloading?** Grab the APK (no account, no group): [Releases · omnibandbridge/omnibandbridge · GitHub](https://github.com/omnibandbridge/omnibandbridge/releases)
- **More info & demo:** [https://omnibandbridge.com](https://omnibandbridge.com)

Best regards,  
Andrea

---

<div class="post-metadata">

**Author:** ![pedroqs](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/p/a3d4f5/32.png) [@pedroqs](https://forum.intervals.icu/u/pedroqs)\
**Post date:** [18 August 2026 13:10 UTC](https://forum.intervals.icu/t/omnibandbridge-free-auto-upload-running-dynamics-personalized-power-to-intervals-icu-from-a-mi-band-garmin-or-any-footpod/131040/2 "2026-08-18T13:10:25Z")

</div>

Is footpod calibration factor saved in Fit file?

---

<div class="post-metadata">

**Author:** ![barban](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/b/ebca7d/32.png) [@barban](https://forum.intervals.icu/u/barban)\
**Post date:** [18 August 2026 14:24 UTC](https://forum.intervals.icu/t/omnibandbridge-free-auto-upload-running-dynamics-personalized-power-to-intervals-icu-from-a-mi-band-garmin-or-any-footpod/131040/3 "2026-08-18T14:24:02Z")

</div>

Hi pedroqs,  
great question: it hits one of the most interesting (and debated) footpod topics: **footpod speed vs  
the treadmill belt.**

No, OBB doesn’t currently write a single value as footpod _calibration factor_ into the FIT. The FIT carries the band’s own speed, distance, cadence, stride and the running dynamics but not a separate calibration coefficient.

On the roadmap I could considering either (a) writing a calibration value into the FIT _ **if** _ there’s a field intervals.icu would actually read, or (b) surfacing it as a summary metric in the workout details offered by OBB. Curious which you’d find more useful.

But here’s the thing: it’s **trivial to recover the _footpod calibration factor_ from the data** , and the _how_ is the fun part.

As example, I took a real treadmill session of mine (a walk with three ~1-minute running surges) and computed the **footpod-vs-treadmill ratio** for every steady segment (≥ 30 s; ramps between speeds dropped). I didn’t open a spreadsheet: OBB has an on-device **AI journal**  **feature** : a small local (on your home WiFi) MCP / HTTP API server that can be used to exposes your workouts and their per-second samples to an LLM model **you** choose, and nothing leaves your phone.  
I just pointed my Claude model at it and asked _“compute the footpod/treadmill speed factor  
for each steady segment of the last workout I made”_ and it produced this:

| # | phase | treadmill km/h | mph | footpod km/h | factor | cadence | duration |
| --- | --- | --- | --- | --- | --- | --- | --- |
| 1 | walk | 4.02 | 2.5 | 4.35 | **1.081** | 98 | 134 s |
| 2 | walk | 4.51 | 2.8 | 4.67 | **1.035** | 102 | 130 s |
| 3 | run | 8.05 | 5.0 | 7.85 | **0.975** | 150 | 58 s |
| 4 | walk | 4.99 | 3.1 | 5.05 | **1.011** | 106 | 79 s |
| 5 | walk | 4.67 | 2.9 | 4.72 | **1.011** | 102 | 228 s |
| 6 | run | 8.05 | 5.0 | 7.81 | **0.970** | 149 | 59 s |
| 7 | walk | 4.51 | 2.8 | 4.59 | **1.019** | 100 | 321 s |
| 8 | run | 8.05 | 5.0 | 7.84 | **0.974** | 149 | 59 s |
| 9 | walk | 4.51 | 2.8 | 4.56 | **1.012** | 100 | 313 s |

Duration-weighted: **walk ≈ 1.02** , **run ≈ 0.97** , overall ≈ **1.02**.

Takeaways:

- The footpod stays **within ~3–8 %** of the belt - close enough to use raw for most purposes.
- But the factor **isn’t constant** : it reads slightly high when walking slowly ( **+8 % at 2.5 mph** )  
and slightly low when running ( **−3 % at 5 mph** ), crossing ≈ 1.0 around 5 km/h. So a single  
calibration constant would be a compromise; the honest picture is a mild **pace-dependent** curve.
- In this session I used the footpod embedded on my Under Armour Guardian connected shoes; the **Mi Band** behaves similarly in my tests (IMHO _ **Mi Band + running clip is a very good footpod !** _).

So: not in the FIT today, but easy to get from the data and with the AI journal feature you don’t even have to crunch it yourself, you can just _ask to whatever LLM model you are happy to use_.

Thanks again for the question, it made for a nice little study.

BR  
Andrea

---

<div class="post-metadata">

**Author:** ![barban](https://forum.intervals.icu/letter_avatar_proxy/v4/letter/b/ebca7d/32.png) [@barban](https://forum.intervals.icu/u/barban)\
**Post date:** [5 September 2026 14:54 UTC](https://forum.intervals.icu/t/omnibandbridge-free-auto-upload-running-dynamics-personalized-power-to-intervals-icu-from-a-mi-band-garmin-or-any-footpod/131040/4 "2026-09-05T14:54:40Z")

</div>

Hi all,  
following up on the footpod calibration-factor question above, I just turned that analysis into a full write-up with charts, comparing footpod-reported speed vs treadmill belt speed across paces (Mi Band 10 vs a UA HOVR Atlas footpod):

[https://omnibandbridge.com/blog/workout-analysis/footpod-vs-treadmill-speed/](https://omnibandbridge.com/blog/workout-analysis/footpod-vs-treadmill-speed/)

TL;DR: the Mi Band 10 stays basically flat (only slightly low) across the whole pace range, while the footpod’s factor drifts with pace (reads high walking, low when running fast) so a single calibration number doesn’t really hold for a footpod. On a treadmill the belt speed (FTMS) stays the most trustworthy source, which is why OBB prioritises it over the band-derived speed.

Data was pulled per-segment straight from OBB’s on-device AI-journal API.  
Hope this analysis can be of interest for the community!  
BR
