Reaching the zone should not take 20 minutes
On 24 August a real workout lost its heart-rate signal for 38 seconds — and then spent two thirds of its time below the target zone. The log tells us exactly why, and what the next update will change.
The workout
On 24 August we recorded a real workout — a 4 km easy program with the heart-rate hold set to 130–145 bpm. Twelve seconds in, the Watch signal dropped and stayed gone for 38 seconds. The app did exactly what it promises when it cannot see your heart: it refused to speed up, and after half a minute of silence walked the belt down from 5.0 to 3.0 km/h.
The signal came back at second 50, reading 97 bpm. Then the slow part started. The controller climbed one small step at a time — 0.2 km/h at first, shrinking to 0.1 as it neared the zone — roughly every 52 seconds, 21 steps in all. The first reading inside the zone arrived at minute 20, at 6.6 km/h.
That is two thirds of the workout below the target zone: 63% of the time, and 1.6 of the 2.7 km covered. The safety rules worked. The recovery did not. This note is about why, and what the next update will do about it.
The data as a table
| Time (m:ss) | Heart rate (bpm) | Belt speed (km/h) |
|---|
Where the time went
The heart-rate hold follows a few blunt rules. It never speeds up blind — every increase must be earned by a fresh heart-rate reading from your Watch. Each change is at most 0.2 km/h, and after each one it waits about 45 seconds, because your heart answers a speed change late, and acting sooner means chasing your own echo.
Those rules are why the app has never pushed a runner over their zone. They are also why the climb tops out at about 0.23 km/h per minute. That pace is right when you are near the zone. Starting from a 3.0 km/h walk, it is glacial.
Commercial treadmills document approach ramps of 1.2–1.5 km/h per minute — five to six times faster than ours. And the log shows a second, dumber loss: after the signal returned, the controller re-tested every speed between 3.0 and 5.0 km/h as if it had never seen them, when it had been holding 5.0 moments before the dropout. It knew the answer and asked all the questions again anyway.
Every speed increase must be earned by a fresh heart-rate reading from your Watch. No signal, no acceleration — ever.
Each change is at most 0.2 km/h — below the change most runners can feel underfoot.
Your heart answers a speed change late — the better part of a minute. The controller waits about 45 seconds after each step so it doesn't chase its own echo.
Ceilings, the signal-loss fallback and your own hands on the controls override everything above. That ordering does not change.
Your own curve
The log gave us something new: this runner's measured heart-rate response to belt speed. It is nowhere near a straight line. Walking (3–5 km/h) costs about 4 bpm per km/h. The walk-run transition (5–6 km/h for this runner) costs about 20. Running (6–6.8 km/h) settles to about 10.
That shape breaks any single fixed pace. At walking speed a 0.2 km/h step buys less than 1 bpm, yet today it still pays the full 45-second wait. In the transition the same step is worth around 4 bpm — there, today's caution is exactly right.
A bigger fixed step would be wasteful on the flat part of the curve and risky on the steep part. The fix has to adapt to the curve without knowing it in advance — yours will not look like this one.
Three changes
First, an approach mode. When your heart rate is well below the zone, the next update will step up every 20 seconds instead of waiting 45. Each step must first pass a commitment check: the controller adds up the speed increases from the last 90 seconds that your heart cannot have answered yet, prices them at the steepest response we measured — 20 bpm per km/h — and only steps if the projected heart rate still lands below the zone floor with a couple of beats to spare. The result moves briskly across walking speeds and slows itself back to today's pace exactly in the walk-run transition, no personal curve required.
Second, fallback memory. When the signal returns after a dropout, the controller will step back toward the speed it was already holding before the loss — at most 1.0 km/h per change, each change earned by a fresh below-zone reading, once per episode. If more than ten minutes have passed, or you touched the controls in between, the memory is discarded and it climbs the ordinary way.
Third, the fallback threshold will rise from 30 to 60 seconds. Shorter dropouts will simply freeze the speed — the belt holds, and still never accelerates while blind. Commercial treadmills never slow down on signal loss at all; they hold the load indefinitely, so even at 60 seconds we stay stricter than the entire market. One exception: if your last reading was above the zone top, the threshold stays at 30 seconds — the blind window stays short exactly when you are running hot.
Under the new threshold, the recorded 38-second dropout would not have triggered the fallback at all. The whole 20-minute detour started there.
Today vs the planned rule
We replayed the recorded workout in a simulation calibrated against its own log. The calibration is honest: under today's rule the simulation reaches the zone in 19:02 against 19:10 in reality — a 0.7% miss — with the same 21 upward steps at the same rhythm.
Under the planned rules the same workout reaches the zone in 5:49 instead of 19:02, and time spent below the zone falls from 63% to 19% — with fewer speed changes, not more. The stepped return from a dropout is the cautious variant we plan to ship; it costs about one extra minute, so call it six to seven minutes in the same simulation.
Then we tried to break it: 210 stress runs with the body's response exaggerated by half, the signal delayed 15 seconds, and noise added. Zero overshoots. The worst case peaked at 137 bpm — 8 bpm below the zone ceiling.
To be clear about labels: the workout and the curve are measured; the 5:49 is simulated on that one recorded workout. The changes are decided and planned for the next update — not shipped yet.
What stays the same
Every safety rule keeps its rank. The app still never speeds up without a fresh heart-rate reading — in any mode, including the new ones. The 10-second freeze on signal loss is unchanged, and the fallback still walks the belt down when a real dropout drags on.
Manual takeover still ends automatic control instantly: touching the speed yourself also cancels the approach mode and voids the fallback memory. The ceilings on heart rate and speed sit above everything described here. The next update makes the belt reach your zone sooner. It does not change who is in charge.
TreadPilot drives a real treadmill belt. The heart-rate hold is opt-in and never accelerates without a fresh reading from your Watch — but no software rule replaces your treadmill's own stop button and safety key. Keep both within reach.