Hands-free voice control, entirely on the phone. new to the category
Say “send me to the nearest water source” — also: send the route to the head unit, start or stop live share, find my device. Commands are understood in English and German across 18 kinds of place; spoken replies are English only for now. Resolved by a keyword grammar first — instant and offline — then, only if that misses, an on-device LLM on hardware that has one. There is no cloud tier: nothing spoken ever leaves the phone.
Why it's rare: Neither the official app nor the firmware offers any voice control.
Confirm-or-act, decided by what it would cost you.
A cheap, unambiguous reroute just happens and is pushed to the device; an ambiguous match or a detour past your threshold is read back for a spoken or tapped yes, and ten seconds of silence cancels it and says so, route unchanged.
Siri and Gemini can run the same four commands. unverified on hardware
They are exposed as typed OS-assistant intents, so a command can run without opening the app; on iOS Siri asks for confirmation in its own dialog, and on Android — which has no equivalent round-trip — a command that needs confirming opens the app and asks there. Not yet verified on hardware: the Dart side is covered by tests, but Siri phrase matching, the confirmation round-trip and Android’s invocation path have not been confirmed on a real device.
Three more ways in on Android. unverified on hardware
A Quick Settings tile and a Bluetooth earbud long-press each open the same listening session the mic button does, and a deep link — which also works on iOS — runs one of five named commands immediately, for a Gemini Routine or any automation app that can open a link. Turning on the earbud trigger means making BikeScout the phone’s digital assistant, which is exclusive system-wide: it replaces Gemini everywhere, not just on the earbud button. Not yet verified on hardware: code-complete and tested in Dart, but the tile’s appearance, a real earbud long-press arriving, and the locked-screen paths are all unconfirmed.
Your head unit is already connected when you open the app.
BikeScout remembers the unit you last rode with and connects on launch, without ever raising a permission dialog to do it, only ever reaching for the most recent head unit, and giving up after twenty seconds rather than leaving the radio hunting for a device that’s switched off. Hit Disconnect and it stays disconnected.
A head unit that goes quiet is noticed and revived. new to the category
A Bluetooth link that stays up while the device stops sending data raises no disconnect, so nothing used to notice — the map froze and the ride stopped recording while the app still said “Connected”. A watchdog now watches the telemetry clock itself: after 30 seconds of silence it works out which fault it’s looking at and applies only the remedy that fits, and if telemetry is still gone at 75 seconds the link is dropped and rebuilt, with your recording and live session kept intact.
Why it's rare: A silent-but-connected link is invisible to every implementation that only listens for disconnects.
One driver per head unit, enforced.
The device answers one requester at a time, so a leftover connection attempt polling it alongside the live one is enough to stop telemetry outright while the link still looks healthy. Bringing a unit up now claims it: the previous driver is retired before the new one touches the radio.
Let go of the head unit.
One “Disconnect everything” releases every device, stops auto-reconnect and stops the background service, so the unit is free for the official app — a Bluetooth peripheral takes one phone at a time. It’s on the Devices screen and on the ride notification, so you can release it from the lock screen.
Structured workouts, built on the phone. unverified on hardware
A library plus an interval builder — per-step duration by time, distance or left open, target by power, heart rate or cadence as an absolute range or a zone — encoded to a FIT workout and pushed to the head unit. Not yet verified on hardware: the builder and encoder are code-complete, but a pushed workout’s on-device behaviour hasn’t been confirmed on a real unit.
Saved places that ride along. unverified on hardware
Standalone points of interest — home, a café, a water source — picked from a type grid and a map or GPS picker, and synced to the head unit as inline course-config rows. Not yet verified on hardware: the sync path is code-complete but unconfirmed on a real device.
A diagnostic log, because the test fleet is one ELEMNT and one Edge 540.
Opt-in, off by default: records the session, every head-unit connect, all BLE frames in and out, driver and protocol events, and uncaught errors to a rolling 4 MB file, bounded at two files so it never grows without limit. Readable in the app before it goes anywhere, and mailable to support with the session header in the body. Nothing is redacted — the toggle’s copy says so plainly, because a partially-scrubbed log would leak through the hex while looking safe.
A second head-unit family, in active progress: Garmin. unverified on hardware
A full Garmin driver — protocol spine, a GFDI file-transfer engine, and the same head-unit driver contract the ELEMNT uses — is wired into the app: the Devices scan recognizes a Garmin by its GFDI service and marks the card Experimental, and Send, Sync from device and Find my device all run over it. Connect, device info, route push and find-device are confirmed working on a real Edge 540 — route push genuinely works on hardware, today. Sync from device (which also queues newly pulled rides for Strava), workout push and notifications are byte-tested against a decompile of Garmin Connect, not yet verified on hardware. Live telemetry streams heart rate, power, cadence and ride start/stop off the Edge’s own event-sharing service, but carries no position — a Garmin’s own GPS fix isn’t exposed there, so live sharing on a Garmin would need the phone’s GPS instead. The family stays experimental while ride pull, workout push and notifications get their turn on real hardware.
Two things deliberately left out.
No live telemetry dashboard on the phone — the head unit is the instrument, and duplicating speed or heart rate on a phone screen is what a phone is worst at. No segments: investigated and removed, because a phone-to-device segment push isn’t a reimplementable operation — segments carry no announce opcode, and the generic table-sync framing they would need lives inside the vendor’s own native library, not on a wire that can be captured and replayed.