github MarekZegare4/MeshCore-Solo v1.15
Solo v1.15

6 hours ago

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 compassTools › 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)

  • WaypointsTools › 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 /waypoints file (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 compassTools › 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 label share 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 offbuilt-in still 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 to MAX_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,lon parsing) in GeoUtils.h and 1-px gfx:: line/circle primitives in GfxUtils.h, replacing per-screen copies; a single UITask::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's notif_melody_ad; the old combined trail_units_idx retired) — upgraders default to metric + speed + built-in advert sound.

Don't miss a new MeshCore-Solo release

NewReleases is sending notifications on new releases.