



One data field that answers the three questions that decide a long race: When do I reach the next aid station? Am I going to make the cutoff? When do I eat and drink?
CHECKPOINTS & AID STATIONS
- Enter your race plan once – the field guides you checkpoint by checkpoint
- Distance and live ETA to the next aid station, with water / food / drop-bag icons
- Progress bar with checkpoint dots, and remaining climb (D+) to the next one
CUTOFFS – THE HEART OF IT
- Live countdown of your reserve vs. the official cutoff
- REQUIRED PACE: the slowest pace that still makes the cutoff
- Green / amber / red at a glance, full-screen vibrating alert when time gets tight
PACING THAT DOESN’T LIE
- Press LAP at each aid station: it logs your split AND snaps the distance to the official course marker, so GPS drift stops corrupting your ETAs (pressed by accident? press again at the station – it self-corrects)
- Rolling 10-minute pace instead of a whole-race average
FUELING COACH
- Eat & drink reminders on your schedule, full-screen with vibration
- Custom messages at any kilometer („Only a marathon to go!“)
AFTER THE RACE
- Your LAP at each aid station shows up as a checkpoint split in Garmin Connect
BUILT TO BE READ AT A GLANCE
- Every value is bold and sized to read mid-stride, not shrunk to fit more in
- Distance and cutoff margin are the two big numbers; your pace and the pace you NEED sit side by side
- Tight on the cutoff? The margin fills amber, then red with inverted digits once you are past it – readable even if you are colour-blind
- Optional bottom row: heart rate in a pill coloured by your HR zone, plus a battery gauge – both race-length decisions on ultras
- Dark or light theme (light has its own palette). Works in any activity, in full / half / small layouts. Metric & statute. In 20 languages: English, Croatian, Czech, Dutch, Finnish, French, German, Hungarian, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Ukrainian.
SETUP
1. Add TrailRace+ to a data screen: hold MENU → Data Screens → a 1-field layout → Connect IQ → TrailRace+.
2. Alerts show on the TrailRace+ screen out of the box. To also get them over other screens (map): hold MENU → activity settings → Alerts → Add New → Connect IQ Data Fields → TrailRace+ → On.
3. Turn Auto Lap OFF (activity settings). The field uses the LAP button as a checkpoint signal; it also has an auto-lap guard as a backup. Laps in Garmin Connect then match your checkpoints; per-km pace stays in the charts.
4. Enter the race plan (app settings), one checkpoint per „;“ :
km|name|cutoff HH:MM|WFB|D+
e.g. 12.4|Rozdrozi|13:30|WF|420; 26.8|Chata|16:00|WFB|780; 42|Finish|20:00||1150
W=water F=food B=drop bag. Empty cutoff = no limit. Last entry = finish.
5. Optional: eat/drink reminder intervals, custom messages (21=Only a marathon to go!), theme, units.
Permissions: FIT recording, sensor history (temperature), user profile (HR zones), data field alerts.
1What TrailRace+ does
One data field that answers the three questions that decide a long race: When do I reach the next aid station? Am I going to make the cutoff? When do I eat and drink?
- Checkpoints — distance and a live ETA to the next aid station, with icons for the services waiting there.
- Cutoffs — a live countdown of your reserve against the official limit, and NEED: the slowest pace that still makes it.
- Fueling — reminders for eating, drinking and anything else (salt, caffeine, headlamp) on your schedule.
- Honest pacing — a rolling 10-minute pace instead of a whole-race average, and GPS drift snapped back to the official course markers with a press of LAP.
The field works in any activity (run, trail, ultra, hike, ride…) and adapts to full, half and small field layouts.
2Installation & first setup
- Install the field from the Connect IQ Store (via the Connect IQ phone app, or from the web).
- Add it to a data screen: in the activity, hold MENU → Data Screens → a 1-field layout → Connect IQ → TrailRace+. One big field is the sweet spot — but the field also renders in half and small layouts.
- Enable alerts over other screens (recommended): alerts on the TrailRace+ screen work out of the box. To have them reach you on the map or any other screen: hold MENU → activity settings → Alerts → Add New → Connect IQ Data Fields → TrailRace+ → On.
- Turn Auto Lap OFF in the activity settings. The field uses the LAP button as the „I’m at a checkpoint“ signal — an automatic lap every kilometer would interfere. The field has its own guard as a backup (see settings), but turning Auto Lap off is the reliable way. Keep the „Lap Key“ itself enabled — without it no lap is recorded and the field has no input at all.
- Enter the race plan — in Garmin Connect / Connect IQ app: your device → Activities & App Data → Data Fields → TrailRace+ → Settings. The plan format is covered in the next chapter.
3The race plan
The plan is one line of text. Checkpoints are separated by a semicolon, the fields of a checkpoint by a pipe:
km|name|cutoff HH:MM|services|D+ 12.4|Rozdrozi|13:30|WF|420; 26.8|Chata|16:00|WFB|780; 42|Finish|20:00||1150
| Field | Required | Meaning |
|---|---|---|
km | yes | The checkpoint’s official course kilometer (or mile). Decimal comma or dot („26,8“ = „26.8“). |
name | yes | Checkpoint name — shown in the header and in alerts. |
cutoff | no | The time limit as wall-clock time, e.g. 16:00. Race crossing midnight? Keep counting past 24 (25:30 = 1:30 am). Empty = no limit. |
services | no | Letters for the aid-station services — see the table below. |
D+ | no | Climb (m) since the previous checkpoint — the field then shows how much climbing remains to the next CP. |
Aid-station services
| Letter | Icon | Meaning |
|---|---|---|
W | drop | water |
I | cup with straw | iso drink |
C | bottle | cola |
G | sachet | gel |
F | fork & knife | food |
S | steaming bowl | soup |
B | bag | drop bag |
T | figure | toilets |
D | cross | first aid / doctor |
R | bed | resting / sleeping |
The last entry of the plan is the finish. Plan too long for one field? Continue seamlessly in Race plan (part 2) through (part 4) — the field joins them before parsing (4×250 characters in total).
4The start-line check
Until you start the timer, the field shows a plan summary — your last chance to verify on the start line that the watch knows the same race you do:
- 87 km · D+ 4450 — total distance and the sum of the climb you entered.
- 7x CP · 7x LIMIT — checkpoint count and how many carry a cutoff. If a cutoff shift is set, it shows right here (+15′) — a value forgotten from the last race can’t hide.
- CP1 14 km Ostravice — the first checkpoint; an ordering mistake is visible at a glance.
- Reminders: 3 — how many reminders are active.
- GPS — turns green once the watch has a good fix. A red ! N ignored appears here instead if the plan, messages or reminders contain a broken row.
5The main screen
- Header — number and name of the next checkpoint + its service icons. On the right, LIMIT 20:42: the cutoff as wall-clock time.
- Two big numbers — left: distance to the checkpoint; right: cutoff reserve in minutes. The reserve is green, fills amber as it shrinks, and turns red with inverted digits once you’re past the limit — readable even if you’re colour-blind.
- Progress bar — orange = covered, dots = checkpoints, the white dot = you.
- PACE — rolling pace over the last 10 minutes. It doesn’t lie: it recovers quickly after a climb, unlike a whole-race average.
- NEED — the slowest pace that still makes the cutoff. As long as NEED is slower than your PACE, you’re fine. When a later limit becomes the tight one, the column switches to it and shows >CP4.
- D+ CP — climbing left to the next checkpoint (if your plan has D+). FINISH — estimated finish-line arrival time.
- Bottom row — clock + race time, or heart rate in a pill coloured by your HR zone, or HR + battery (see the Bottom row setting).




6LAP at aid stations
One habit that straightens out your whole race: press LAP at every aid station. Every press answers right on the screen, so you always know what just happened.
- It logs a split — laps in Garmin Connect then match the legs between checkpoints.
- It snaps the distance to the official course marker. GPS drifts in mountains and forest — after 60 km it can be off by kilometers. Pressing LAP says „I am exactly at km 26.8 right now“ and every estimate (ETA, NEED, FINISH) straightens out.
- You see the confirmation instantly — a green CP3 OK alert with the checkpoint’s name and the applied correction (say −230 m). You know the press took, and you see how far GPS had drifted. The watch’s native lap banner (lap number, time, pace) covers it for ~10 s — the confirmation therefore holds for 20 s and waits for you once the banner clears.
- Pressed far from any checkpoint? The field shows NO CP NEARBY and changes nothing — a press beyond the „LAP window“ (default 400 m) doesn’t snap the distance. Fix a mis-press simply by pressing again at the real station.
- Did the confirmation name a different checkpoint than the one you’re standing at? Press LAP again while the confirmation is still up — the candidate steps one checkpoint back and the calibration recomputes immediately. Every press restarts the 20 s confirmation window (presses go through the watch’s native lap banner); over-pressing is fine, the cycle comes around and returns you to the original pick.



Passed a checkpoint without pressing?
The field advances by GPS on its own and announces it: CP2 PASSED — no LAP, distance from GPS. Nothing is lost. Large GPS drift is covered too: when that announcement comes before you physically reach the station (common on long trails), the checkpoint stays „open“ — a LAP press at the real aid station still snaps the course onto it, even when the offset is bigger than the window.
The LAP window
The LAP window setting says how far from a checkpoint a press still „takes“ and snaps the distance. The default 400 m is a sensible middle ground: the window must be bigger than the GPS drift it exists to fix — and smaller than something that would catch accidental presses in the middle of nowhere. On long courses with heavy drift, raise it freely; don’t lower it — a 50 m window effectively disables recalibration (drift is usually bigger).
Auto Lap
The watch’s automatic laps send the field the same signal as your thumb — that’s what the default-on Ignore Auto Lap protection is for: a lap arriving exactly one kilometre (or mile) after the previous one, away from any checkpoint, is discarded. Even so, turn Auto Lap off in the activity profile for a race — the protection is a safety net, not a replacement.
7Alerts
Alerts are full-screen, hold for ~12 s (LAP confirmations 20 s, to outlive the watch’s native lap banner) and then clear themselves. Each category has its own vibration pattern and tone, so the wrist can tell them apart — from each other and from the watch’s own alerts: reminders = one long pulse + the message tone, checkpoints = two pulses + the low tone, cutoffs = three pulses + the high tone. For each category you pick Off / Vibration only / Vibration + tone / Tone only / Silent (screen only) separately (three „Vibration & tone – …“ settings; vibration-only is the default). Reminders due at the same moment arrive as one combined alert („EAT! + DRINK!“).







Critical cutoff
The field doesn’t watch only the nearest cutoff. It continuously projects your pace onto every remaining limit — when the tight one turns out to be a checkpoint three stations ahead (typically after a long climb), a red CRITICAL CUTOFF alert names it and the NEED column switches to it (label >CP4). The alert doesn’t loop: the next one comes only after another 15 minutes of reserve are lost, and never sooner than 5 minutes apart.
8On the trail
A quick playbook: “this happens → you see → you do”. These are exactly the situations a long race throws at you. Underlined names are clickable — they show what it looks like on the watch.
An aid station is coming up
You see: with the station’s name, distance (“0.8 km”) and its service icons. You do: run on, and press LAP when you’re actually there. No rush — the alert is just the announcement; it’s your press on the spot that snaps the course.
You pressed LAP at the station
You see: a green with the correction (say −230 m). You do: nothing — done. The number just tells you how far GPS had drifted since the last checkpoint; a big number isn’t an error, it’s the very thing the press is for.
You pressed LAP and got “NO CP NEARBY”
It means: by the app’s reckoning you’re farther than 400 m (the LAP window) from every checkpoint — a mis-press, or heavy drift. You do: nothing broke (calibration is untouched); carry on and press again right at the station. And if you’re standing at an aid station right now (say, after getting lost): press LAP once more while is up — the app snaps onto the last passed checkpoint, and further presses let you switch to the right one. If this message greets you at every station, raise the LAP window setting.
“CP2 PASSED” came, but there’s no station in sight
It means: GPS drifted beyond the window — the app thinks the checkpoint is behind you while you’re still running towards it. Meanwhile the distance shows a blue negative number (“−230 m”) — how far past the checkpoint the app thinks you are, and exactly what your press will correct. You do: keep going and press LAP at the real station — the checkpoint stayed “open” and the press snaps onto it even across the bigger offset (you’ll see with a larger correction). From that moment everything lines up again.
You got lost and ran extra kilometres
It means: the field doesn’t know the course — it only sees the watch odometer, and the detour has pushed it ahead. The distance to CP3 crosses zero into blue negatives, 500 m past the plan mark fires, and a long detour can “pass” further checkpoints the same way. You do: get back on course and press LAP at the real aid station — and read the confirmation. A detour shorter than roughly half the leg to the next CP: the checkpoint is still “open” and one press straightens everything (). A longer detour: the press may latch onto a later checkpoint — the confirmation shows a different number and name than where you stand. Then press LAP again while the confirmation is up: each press steps one checkpoint back and recalibrates immediately (), the 20 s window restarts, and the cycle brings you back if you over-press. It works after too — a press during that message first snaps onto the last passed checkpoint, then you switch the same way.
You pressed LAP a bit early by mistake
You see: — a press inside the window took, even though you weren’t quite there. You do: press again at the real station — the second press snaps the calibration to the right spot and the plan doesn’t advance. Just wait for the confirmation to leave the screen: a press during it switches the candidate to another checkpoint (and if you over-press, further presses cycle you back).
The watch beeps and you don’t know why
Tell them apart by feel: one long pulse = (eat, drink, custom). Two pulses = . Three pulses = — look at the screen. One short buzz = a native Garmin alert (pace, HR), nothing to do with the app. The tones underline it: message / low / high.
NEED turned red / CRITICAL CUTOFF appeared
It means: at your current pace you’ll miss one of the limits — names which one, and past the limit the reserve slab . You do: hold the pace from the NEED column or faster; once the reserve recovers, the colours return. The alert won’t nag in a loop — the next one comes only when the projection gets meaningfully worse.
The start got delayed
You do: set Cutoff shift to the delay in minutes (e.g. +15). Every limit moves at once, no retyping. Set it back to 0 after the race — a non-zero value stays visible on the so it can’t hide.
You’ve reached the finish
You do: stop the timer past the finish line and enjoy the — it stays on screen through the save dialog. Save afterwards.
9Reminders & custom messages
Reminders (by time)
One text setting, format Name|interval|first, entries separated by semicolons:
Salt|45; Caffeine|120|75; Headlamp|0|300
Salt|45— every 45 minutes.Caffeine|120|75— first at minute 75, then every 120.Headlamp|0|300— interval 0 = one-shot at minute 300 (5 h after the start).- The names
eatanddrinktake over the built-in food/drink reminders — handy when you want to give them an offset too (e.g.eat|30|60: start eating only from minute 60).
Everything counts from the timer start (race time, not wall clock), and reminders written here fire even with fuel alerts toggled off — typing one means you want it.
Custom messages (by distance)
21=Halfway there!; 60=Only a marathon to go!
The text pops up as an alert the moment you pass that kilometer. Great for messages from your crew — or your own psychological anchors.
10Cutoff shift
The organizer delays the start by 15 minutes at the line? Don’t retype the plan.
The Cutoff shift (min) setting moves every limit at once: +15 = all cutoffs 15 minutes later. It works the other way too (-10 = 10 minutes stricter) and propagates everywhere — the reserve colours, the NEED pace, the critical cutoff and the alerts.
A non-zero shift is visible on the pre-race screen as „7x LIMIT +15′“ — so a value forgotten from the last race can’t surprise you. Set it back to 0 after the race.
11The finish & Garmin Connect
Stop the timer past the finish line and the field shows your race card — and keeps it on screen through the save dialog, exactly for that photo to the family group chat:
- total time and distance,
- average pace and climbed D+,
- AID — total time spent at aid stations,
- FUEL — how many times the field reminded you to eat and drink,
- the final reserve against the last limit.
Resuming the run cancels the recap — the race goes on.
What you’ll find in Garmin Connect
- Laps = checkpoints — thanks to pressing LAP at the stations, the splits match the legs of the race.
- The „Cutoff margin“ chart — the whole story of your fight with the cutoffs in one activity chart.
- Aid-station time and the fuel-alert count in the activity summary.
12All settings at a glance
| Setting | Default | What it does |
|---|---|---|
| Race plan (part 1–4) | empty | The race checkpoints — see chapter 3. Parts are joined. |
| Custom messages | empty | km=text; km=text — an alert at the given kilometer. |
| Reminders | empty | Name|interval|first — see chapter 9. |
| Cutoff shift (min) | 0 | Moves every limit, −300 to +600 min. See chapter 10. |
| Eat reminder (min) | 30 | Interval of the EAT! alert. Disabled by setting reminders to Off. |
| Drink reminder (min) | 15 | Interval of the DRINK! alert. |
| Highlight limit state | on | Amber/red fill of the reserve slab (off = coloured digits only). |
| Vibration & tone – reminders | Vibration only | Off / Vibration only / Vibration + tone / Tone only / Silent (screen only). Off = no reminder alerts at all. Signal: message tone + one long pulse. |
| Vibration & tone – checkpoints | Vibration only | Same choices for checkpoint and auto-advance announcements; LAP confirmations still show (silently) even when Off. Signal: low tone + two pulses. |
| Vibration & tone – cutoffs | Vibration only | Same choices for CUTOFF! and CRITICAL CUTOFF. Signal: high tone + three pulses. |
| Ignore Auto Lap | on | Guard: an automatic lap never snaps the distance, only a real LAP press near a checkpoint. Still, turn Auto Lap off in the profile. |
| LAP window (m) | 400 | How close to a checkpoint a LAP press snaps the distance. Raise it if GPS drift is large. |
| Bottom row | clock | Clock + race time / HR + race time / HR + battery. |
| Theme | dark | Dark, light, or follow the watch. Light uses noticeably more battery on AMOLED. |
| Units | auto | Kilometers / miles, or follow the watch setting. |
13Tips & FAQ
Can I change settings mid-race?
Yes. As long as the checkpoint distances stay the same, progress is preserved — the current checkpoint, the snapped distance and already-fired reminders all survive. A changed cutoff or cutoff shift applies immediately.
Why doesn’t the field show a pace right after the start?
The rolling pace needs a few dozen seconds of data. Until then it shows dashes — more honest than showing nonsense.
How much battery does the field use?
By itself, a negligible amount. On AMOLED watches the theme is what matters: dark is significantly more frugal than light.
What languages does it speak?
20: English, Croatian, Czech, Dutch, Finnish, French, German, Hungarian, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Ukrainian.
Does it run on my watch?
56 devices are supported — Fenix 7/8/E, Epix 2, Forerunner 165–970, Venu 3/4, vívoactive 5/6, Instinct 3 AMOLED, Enduro 3, MARQ 2, Descent and more. The full list is on the store page.
Found a bug, missing a feature?
Write via „Contact Developer“ on the store page — racers‘ feedback is what moves the app forward.
1.5.12 BETA 2026-08-30
- FIT diagnostics: the auto-pass event spike (cp_event 2) is no longer overwritten when the next checkpoint’s approach fires in the same tick (seen in the 2026-08-30 field FIT) – the rarer code wins the record
1.5.11 BETA 2026-08-28
- Fixed: the checkpoint approach alert no longer steals the screen from a cyclable LAP confirmation. After a mis-snap one checkpoint ahead, the next CP sits within approach range, and the blue announcement replaced the confirmation one second after the press – disarming candidate cycling exactly in the situation it exists for
1.5.10 BETA 2026-08-28
- LAP confirmations (and the no-match alert) hold for 20 s instead of 12 (field report): the watch’s native lap banner – lap number, time, pace, with no off switch on fenix 8 – covers the field for ~10 s after every recorded lap, leaving barely 2 s of visible confirmation. Presses go through the banner (cycling works even while it is up, each press restarts the window and buzzes per the checkpoint signal setting), and the answer now waits on screen once the banner clears
- Guide: keep the „Lap Key“ enabled – disabling it stops laps from recording and mutes the field’s only input (turning Auto Lap off does not remove the banner; they are separate settings)
1.5.9 BETA 2026-08-28
- Candidate cycling on the LAP confirmation (lost-runner recovery): a detour inflates the odometer, the app runs ahead of the runner, and a press at the real station can then match a later checkpoint. The confirmation is now answerable – another press while „CPx OK“ is up steps the candidate one checkpoint back and recalibrates immediately; below the last confirmed checkpoint the cycle wraps to the original pick, so an over-press can always get back. A second press during „NO CP NEARBY“ first snaps onto the last passed checkpoint – the long-detour dead end is gone. FIT diagnostics gains lap verdict 5 (cycled)
1.5.8 BETA 2026-08-28
- The distance to the next checkpoint goes negative past the plan mark („-230 m“ = the app thinks the checkpoint is 230 m behind you) instead of sitting on a dead „0“: you see the GPS drift live, and the number is exactly the correction a LAP press at the real station will apply. The value turns checkpoint-blue so the minus sign can’t be overlooked
1.5.7 BETA 2026-08-28
- One combo per category instead of a checkbox plus a type (field request): the three on/off toggles (Fuel alerts / Checkpoint alerts / Cutoff alerts) are folded into the signal settings, which now offer five choices – Off / Vibration only / Vibration + tone / Tone only / Silent (screen only). Off disables the category’s alerts entirely; LAP confirmations still show (silently) even with checkpoints off – a mute LAP button must never come back
1.5.6 BETA 2026-08-28
- Per-category alert signal replaces the 1.5.5 three-way sound setting: three list settings (reminders / checkpoints / cutoffs), each choosing Vibration only / Vibration + tone / Tone only. Every category has its own system tone and vibe pattern, so the wrist can tell them apart: reminders = message tone + one long pulse, checkpoints = low alert tone + double pulse, cutoffs = high alert tone + triple pulse. Settings reset with this update – pick your choices again
- Reminders due at the same moment fire as ONE combined alert („EAT! + DRINK!“): back-to-back alerts proved to lose their tone on the device (the second play request lands in the previous one’s quiet window), and one screen beats two 12-second interruptions anyway
- Alert view draws with anti-aliasing (where the device supports it): the nested-fill ring showed visible stair-stepping on AMOLED
1.5.5 BETA 2026-08-28
- Alert tones setting is now a three-way choice: Off / Safety alerts only / All alerts – „safety only“ keeps cutoff and critical-limit alerts audible while nutrition and checkpoint alerts stay vibration-only (new sndMode key, the old on/off value carries over until the first settings sync). Vibration itself is never gated – it is the one channel that reaches a sleeved wrist
- Tones are the plain system pair (low for info, high for safety) again: the 1.5 custom melody played SILENTLY on fenix 8 (no error, so the fallback never fired – proven in the field: native alerts beeped, ours did not). Telling the app apart from the watch’s own alerts is carried by the vibration pattern (double/triple pulse vs. Garmin’s single buzz)
- Alert ring drawn as nested filled circles instead of a thick-pen circle: thick-pen circles render with a visible seam/gap on real devices (field report: a light slit on the ring’s left side, glaring on the white theme)
1.5.4 BETA 2026-08-28
- Beta build shows as „TrailRace+ Beta“ in the watch’s data-field picker (beta-only app name via manifest-beta + resources-beta) – with production and beta installed side by side the two entries were indistinguishable
1.5.3 BETA 2026-08-28
- Auto Lap guard fixed for how Garmin Auto Lap actually counts (proven by a field-test FIT): it fires 1 km/1 mi AFTER THE LAST LAP, not on absolute km marks – so every manual LAP press shifted the phase and the following auto laps slipped past the guard (one popped a phantom „NO CP NEARBY“, and near a checkpoint they could recalibrate). The guard now tracks the distance of the previous lap event and swallows a lap arriving exactly one interval after it. This also explains part of the original tester chaos: his presses were shifting the auto-lap phase all along
- Alert tone fallback: if the device rejects the custom tone profile, the plain system tone plays instead of silence (field report: „vibration yes, sound no“); the diagnostics START line now also records whether alert tones are enabled (snd=on/off)
1.5.2 BETA 2026-08-27
- Diagnostics log: a START line at every timer start (plan size, distance state, LAP window, guard) and a line for a lap ignored for missing plan/distance – an empty CIQ_LOG now always means a capture problem, never a silent app (found testing indoors: no GPS = null distance = the only mute branch)
1.5.1 BETA 2026-08-27
- Diagnostics: every lap decision is recorded into the activity FIT (lap fields lap_verdict 0-4 / lap_cp / lap_snap in metres, plus a cp_event record spike: 1 approach, 2 auto-pass, 3 open-window expired) – a shared activity export now replays exactly what the field did with each press against the GPS ground truth. Not shown in Garmin Connect (intentionally: read from the file)
- The same events go to the on-device Connect IQ log: create GARMIN/APPS/LOGS/CIQ_LOG.YML on the watch and TR+ lines capture laps, auto-passes, approaches and window expiries with distances and offsets
1.5.0 BETA 2026-08-27
- LAP now always answers on screen (field report „the LAP button does nothing“): a matched checkpoint confirms itself – „CP2 OK“ with the applied correction („-230 m“) and the checkpoint’s name and services; a press with no checkpoint in range says „NO CP NEARBY“ instead of silently doing nothing
- Checkpoint passed without LAP stays „open“ until halfway to the next one: when GPS drift exceeds the match window, the app auto-passes the checkpoint BEFORE the runner physically reaches the station – a LAP press there used to be an unfixable no-op, now it snaps the course onto that checkpoint
- Auto Lap guard follows the match window: the „at an aid station“ radius grows from a fixed 150 m to the LAP window (capped at 400 m), so GPS drift no longer makes the guard swallow a legitimate press at the station; a lap while an alert is still on screen bypasses the guard entirely (Auto Lap cannot fire twice at the same distance)
- Alerts now sound and feel unlike the watch’s built-in threshold alerts (field report: a pace-zone beep and a race alert were indistinguishable without looking): a two-note rising chirp and a double vibration pulse, safety alerts a three-note falling tone and a triple pulse (on watches without custom tone support the old system tones remain)
- Lighter blue for ETA and distance-to-checkpoint values on the dark theme (0x40C4FF → 0x80D8FF): blue is the hue AMOLED panels render dimmest and the old shade washed out in direct sunlight
1.4.4 BETA 2026-08-19
- Fourth race-plan settings field: capacity grows from 3×250 to 4×250 characters – a 20+ checkpoint plan like the full UTMB chart no longer has to fight for every letter
1.4.3 BETA 2026-08-18
- Three new checkpoint service icons per the official UTMB Runner’s Guide legend: T toilets (grey restroom figure), D first aid (red medical cross), R resting/sleeping (amber bed). Plan letters are now W/I/C/G/F/S/B/T/D/R; the format hint says so in all 20 languages. Unknown letters were always skipped, so plans written for this version degrade gracefully on older ones.
1.4.2 BETA 2026-08-18
- Cutoff shift (new setting, -300..+600 min): start delayed at the line? One number moves every cutoff with it – no plan retyping. Applied right after parse so status colours, NEED pace, critical cutoff and alerts all see the shifted times; wraps correctly across midnight (0:10 shifted -60 min = 23:10). A non-zero shift stays visible on the pre-race screen (e.g. „5x LIMIT +15′“) so a leftover value can’t skew the next race unnoticed.
- Pre-race screen and finish recap now show D+ with its unit („D+ 4450 m“, feet in statute mode) – the raw number used to render unit-less and unconverted
- Fixed (code review): the NEED column now takes over even when the NEXT checkpoint has no cutoff of its own but a later one is critical – it used to keep showing AVG and hide the one pace that still decided the race
- Fixed (code review): the critical-cutoff projection is cleared once past the finish – a stale value could pop the red alert after the race was over
- Fixed (code review): rolling pace recovers from a timer that jumps backwards (missed reset); the pre-race counts row drops to the smaller font instead of overflowing the round edge on big plans
- Internal: scenario test suite – five automated race replays (screen flow, reminder timeline, LAP/auto-advance, cutoff alerts, critical projection) run in the release gate alongside the 24 unit tests
1.4.1 BETA 2026-08-17
- Critical-cutoff alert no longer loops: 5-minute cooldown between alerts for the same checkpoint, re-alert only after another 15 minutes of projected reserve lost (was 10), and no alert at all once the projection is more than 15 minutes past the cutoff (the race there is already decided – keep the screen readable)
1.4.0 BETA 2026-07-20
- Critical cutoff: pace is projected onto ALL remaining cutoffs; when a later checkpoint is the tight one, the NEED column switches to it (label gains „>CPn“) and a red alert names it (thresholds: takes over under 20 min projected reserve, 3 min hysteresis between candidates, re-alert on another 10 min lost)
- Auto-advance info alert: a checkpoint passed without LAP announces itself („CP2 PASSED – no LAP, distance from GPS“) instead of switching silently; waits for a free screen
- Finish recap: timer stopped past the finish shows the race card – elapsed time, avg pace, D+, total aid-station time, fuel alerts, final cutoff margin; cleared by resume or reset
- Alert tones (new setting, default off): safety alerts TONE_ALERT_HI, the rest TONE_ALERT_LO, on top of vibration
- Plan km fields: decimal comma normalized („26,8“ = 26.8), any other non-numeric tail rejected into the dropped-row warning (toFloat used to read „26.8x“ as 26.8 and silently move the checkpoint)
1.3.0 2026-07-20
- Reminder engine: one text setting „Reminders“ replaces ad-hoc alarm types — `Name|interval|first` per entry („Salt|45; Caffeine|120|75“), interval 0 = one-shot at the given minute („Headlamp|0|300“). Keywords `eat`/`drink` take over the built-in food/drink reminders (localized alert kept), giving them offsets too; the numeric eat/drink settings stay and just feed the same engine. Typed reminders fire even with the fuel-alerts toggle off (typing one is opting in); a mid-race settings edit never replays reminders that already fired, and a one-shot added with a time already behind does not fire retroactively
- Checkpoint services: 7 pictograms — W water, I iso drink (new, violet 0xB388FF/0x7C4DFF), C cola (new), G gel (the former F drawing), F food (new fork & knife, neutral ink), S soup (new), B drop bag. Unknown letters were already skipped, so old plans are untouched
- Header icon overflow now shrinks then trims from the right instead of dropping the whole group (a 5-service checkpoint used to lose ALL header icons); alert and half-layout groups auto-shrink via Icons.fitSize
- „Set race plan in settings“ hint word-wraps to the round chord (clipped in most languages as one line)
- Strings: 3 new (Reminders title/prompt, REMINDER alert) in all 20 languages; plan-format hint now lists W/I/C/G/F/S/B
1.2.0 2026-07-19
- Now in 20 languages: English, Croatian, Czech, Dutch, Finnish, French, German, Hungarian, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Slovak, Slovenian, Spanish, Swedish, Ukrainian (Japanese covers the phone settings; the field itself stays English there — the watch font has no CJK glyphs)
- HR zone colours fixed: the pill now keys the zones to the active activity profile’s sport (it could be one zone off before) and re-reads them when the timer starts, with a periodic retry while unknown
- Editing settings mid-race no longer resets progress: when checkpoint distances are unchanged, the current checkpoint and the climbed-metres baseline are preserved (changing a cutoff or target time no longer snaps remaining D+ back to the full route)
- Custom messages already fired no longer replay after a settings edit
- Checkpoint approach alert shows units (e.g. „400 m“, „0.8 km“)
- Setting hints folded into setting titles so they show in Garmin Connect Mobile (GCM never renders the separate hint text for numeric/toggle/list settings)
- HR pill corners gently rounded instead of a full capsule
1.1.0 2026-07-16
- Heart rate on the bottom row, in a pill coloured by your HR zone (grey/blue/green/orange/red), plus a battery gauge – configurable (Bottom row setting)
- Alerts now draw right in the field (12 s, with vibration and backlight), so eat/drink/checkpoint/cutoff pop-ups can’t be muted by the watch; enable the Connect IQ alert in the activity’s Alerts to also get them over the map
- Back-to-back reminders no longer overwrite each other – the second waits its turn
- Stronger Auto Lap guard: a lap on the km/mile grid away from an aid station is ignored from the very first one
- Distance to the checkpoint switches to metres under 1 km (feet under 1000 ft)
- Required pace keeps showing a number even with a huge time cushion (no more dashes)
- Eat/drink reminder intervals can go down to 1 minute
1.0.0 2026-07-15
Initial release: TrailRace+, a race-day command center data field for ultra & trail running. Race plan with checkpoints, cutoffs and aid-station services; live countdown of your reserve vs. the official cutoff with a required-pace readout; rolling pace; LAP-triggered checkpoint recalibration with an auto-lap guard; eat/drink reminders and custom messages; dark/light themes; metric & statute units. English + Czech.





