Skip to content

Treadmill (FTMS)

When you run on a treadmill, OmniBandBridge (OBB) can pull belt speed and incline straight from the machine. Most modern “smart” treadmills broadcast these over the standard Bluetooth FTMS profile (Fitness Machine Service) — the same data Zwift and other apps read — so OBB can consume them live while it keeps re-broadcasting your band’s cadence to Zwift or a watch. OBB is, at the same time:

  • an RSC provider — it sends the running metrics (from the Mi Band or an RSC sensor) out to Zwift / a GPS watch;
  • an FTMS consumer — it reads belt speed and incline from the treadmill.

Getting speed & incline from the treadmill

Section titled “Getting speed & incline from the treadmill”

OBB connects to the treadmill’s FTMS service (0x1826) and subscribes to its Treadmill Data characteristic (0x2ACD), which carries instantaneous speed, incline percentage and ramp angle. Two transports are supported — pick whichever your setup exposes:

  • BLE — OBB scans for nearby FTMS machines; you tap the one you want and it connects as a GATT client.
  • DirCon / TCP — for treadmills (or bridges) that expose FTMS over the network (WFTNP), OBB connects over TCP.

Once connected, the live belt speed (km/h) and incline (%) appear in the UI next to your running metrics and are written into every row of the workout log.

You don’t need a smart treadmill. The UI also lets you enter speed and incline by hand — handy for a basic treadmill, a machine that doesn’t expose FTMS, or when you simply set the pace yourself. Speed and incline have quick +/− step controls with presets, and OBB records the values you set just like it would record FTMS data.

There are two speeds in play, and OBB keeps them distinct:

  • Belt speed — how fast the treadmill belt is moving (from FTMS or your manual input).
  • Athlete speed — the runner’s own speed as measured by the Mi Band / footpod source.

They are similar but not identical (foot slip, stride timing, where the band sits, etc.), so OBB logs them as separate columns rather than conflating them. On a treadmill, the belt speed is the one that matters for pace and distance, and it’s the speed OBB feeds into the power model.

Why the treadmill’s speed can be more accurate than a footpod

Section titled “Why the treadmill’s speed can be more accurate than a footpod”

It’s counter-intuitive, but a well-calibrated treadmill reports its belt speed directly — it’s a mechanical readout of the motor, with no drift. An inertial sensor (even a good foot-mounted one) has to estimate speed by integrating acceleration, which accumulates error and needs its own calibration. So on a treadmill in good condition, the FTMS belt speed is the most trustworthy speed source — more so than a foot sensor. That’s why, on treadmill runs, OBB prioritises the treadmill speed (FTMS / manual) over the band-derived speed.

Speed and incline aren’t just logged — they’re the two inputs OBB needs to compute your personalized metabolic power. Incline matters a lot: running uphill costs far more energy than the same speed on the flat, and OBB’s power model accounts for that from the incline value.

The treadmill is, in fact, the ideal case for this calculation, because every input is known precisely:

Input Source on a treadmill Accuracy
Speed FTMS / manual exact (belt readout)
Incline FTMS / manual exact
Body mass entered once in Settings user-set
Wind none (indoor) variable removed

Outdoors the same model runs on GPS speed and DEM/barometric grade, but with more uncertainty on both — so a treadmill gives the cleanest power estimate OBB can produce. See Outdoor walk/run (GPS) for how speed and grade are derived without a machine.

  • Incline indoors comes from FTMS or manual only. The phone’s barometer can’t sense treadmill incline (you’re not actually climbing, so air pressure doesn’t change) — it’s used only for outdoor runs, together with DEM elevation maps (see Outdoor walk/run (GPS)).
  • Everything is recorded. Belt speed and incline are saved second-by-second in the workout log and summarised into segments (grouped by speed/incline changes) for the workout details.