Wio Tracker L1 — Solo Firmware v1.15
Adds a full GPS navigation suite on top of Solo v1.14 — the L1 becomes a standalone off-grid navigator, no phone required.
Highlights
- Waypoints — mark your current spot or type coordinates, give it a short label, then get live bearing + distance back to it. Ideal for car / camp / water / a meeting point.
- GPS compass — Tools › Compass: a heads-up heading tape derived from GPS course-over-ground. No magnetometer needed.
- Navigate to anything — a saved waypoint, the start of your trail (backtrack), a node from Nearby Nodes, or a location someone texts you.
- Share & save locations over the mesh — send a waypoint in a message; on the other end, navigate to or save any shared location with one menu.
- Global Units setting — one Metric / Imperial switch (Settings › System) drives every distance and speed in the UI.
- Advert sound — an optional audible "in range" heartbeat: the device chirps when it receives an advert from another node — pair it with Auto-Advert to keep tabs on a buddy hands-free.
Changes
Navigation (new)
- Waypoints — Tools › Trail › Hold Enter: Mark here drops one at the current GPS fix; Waypoints opens the list, which carries a synthetic Trail start backtrack row, a usage counter (
WAYPOINTS 3/16), and a + Add by coords row to enter a point by lat/lon/label with no fix required (hemisphere chosen with LEFT/RIGHT since the keyboard has no minus key). Per-waypoint Rename / Delete / Send, plus Clear waypoints. Stored in their own/waypointsfile (16 max) — independent of the trail and not cleared by Reset trail. - Navigate-to-point view — distance plus two absolute bearings, To: (target) and Hdg: (your course over ground), compared by eye. Reused by waypoints, trail backtrack, Nearby-node navigation and message-shared locations.
- GPS compass — Tools › Compass: a scrolling N..E..S..W heading tape under a fixed travel-direction pointer, with a large degrees + cardinal readout. Works whether or not a trail is recording.
- Navigate to a node — Nearby Nodes detail → Hold Enter now opens an Options menu (Navigate / Ping); Navigate opens the bearing/distance view targeting the node's last-known position.
- Trail map as a live view — the Map draws your current position and all waypoints continuously, even with no trail recording. While a trail exists it frames the recorded route and clamps far-off waypoints to the nearest edge (a distant mark can't blow up the scale); with no trail it auto-fits to your waypoints and position. Markers show the first two label characters, placed edge-aware so labels stay on-map.
- Navigate / save a shared location — any message carrying a
lat,lon(what{loc}inserts) or a[WAY]lat,lon labelshare offers Navigate and Save waypoint from its Hold Enter menu — on the history row or in fullscreen, for DMs and channels. Send on a waypoint shares it to a contact or channel, pre-filling the message to confirm. - Waypoints in GPX — the GPX export now includes saved waypoints as
<wpt>elements (label →<name>, plus<time>) alongside the track, so they import as pins in OsmAnd / Garmin / GPX Studio.
Units
- Global Metric / Imperial (Settings › System) drives every distance and speed: Nearby Nodes, Trail (Summary, List deltas, waypoint distances), the navigate-to-point view, the trail min-distance gate (5/10/25/100 m ↔ 15/30/75/300 ft) and the map scale bar.
- Trail readout — the action menu's old four-way km/h·mph·min/km·min/mi cycle is now a Speed / Pace toggle; the unit follows the global setting.
Notifications
- Advert sound — Settings › Sound gains an AD sound entry (built-in / Melody 1 / Melody 2). The device plays it whenever it receives an advert from any node; combined with Auto-Advert on both ends it acts as a hands-free "still in range" heartbeat. It fires on every received advert (no off —
built-instill chirps), so silence it with the Buzzer setting in a busy mesh.
Fixes
- Long messages no longer clipped — message history and compose buffers were smaller than the over-the-air maximum, so long messages (and Polish text, where each accented character is two UTF-8 bytes) lost their tail; channel messages were worst because the sender is embedded as
Name: body. History, compose and keyboard buffers are now sized toMAX_TEXT_LEN(160 B), with per-field bounds kept on the smaller stores (custom messages, bot replies). - Ping popup — only populated result rows are shown (no blank scrollable lines); a failed send reports
RTT: send fail; the result rows now appear immediately and the selected row is preserved across refreshes.
Internal
- Shared
geo::helpers (haversine, bearing, cardinal, distance formatting,lat,lonparsing) inGeoUtils.hand 1-pxgfx::line/circle primitives inGfxUtils.h, replacing per-screen copies; a singleUITask::currentLocation()GPS accessor used by every nav / compass / map screen. - Course-over-ground heading ring in UITask, sampled ~1 s independently of trail logging, with gross-GPS-jump rejection, a minimum-movement gate, and a reset after a GPS gap so a reacquired fix can't imply a teleport heading.
- Prefs schema bumped to
0xC0DE0007(units_imperial,trail_show_pace, plus PR #14'snotif_melody_ad; the old combinedtrail_units_idxretired) — upgraders default to metric + speed + built-in advert sound.