Skip to content

MeshMapper App v1.3.0

Latest

Choose a tag to compare

@MrAlders0n MrAlders0n released this 23 Jun 16:30
1a76259

This is a major release, it has been in beta since April. The map engine has been fully rewritten and a ton of new features and fixes are packed in. Please report any issues you run into.

New Features

  • Map Engine Migration: Replaced flutter_map (raster tiles) with maplibre_gl (vector tiles via OpenFreeMap). Liberty is the new default map layer, check it out, it's quite nice!
  • Offline Maps & Tile Caching: New "Offline Maps" screen in Settings lets you download map regions for offline wardriving. Multiple downloads can be queued and run back-to-back. Tiles are cached automatically between sessions. Thanks @dedskelly for all the work writing the code for this feature!
  • TCP, USB Serial: MeshMapper now supports connecting to your device over TCP (Wi-Fi/LAN), USB Serial (Android via OTG, based on MeshCore-Open). Connect screen now has tabs for each transport.
  • Broadcast My Coords Toggle: Off by default. The app uses a wiretag on the mesh for privacy instead of broadcasting GPS coordinates.
  • Anonymous Mode UX: Enabling anonymous mode now shows a progress popup instead of switching to the Connect tab.
  • Multi-Hop TX Echo Grouping: Multi-hop TX echoes (2+ hops) are now grouped under their parent TX ping instead of appearing as anonymous RX observations. TX markers use three outcome states: green (direct echo), RX-colored (multi-hop only), red (no response).
  • RX Hop Path: Tapping an RX marker now shows the full mesh path the packet travelled as a tappable chain of repeater chips. The same chain renders on every RX entry in the Log tab. CSV export gains a path_hops column.
  • Session History Tab: The "Graph" tab has been renamed to "History." View past sessions on the map with ping markers and camera fit-to-bounds, or open the Noise Floor graph. Tapping history markers opens the same detail sheets as live sessions.
  • Repeater Marker Clustering & Spiderfy: Stacked repeater markers now collapse into a cluster bubble with a count. Tapping a cluster at max zoom fans the members out in a ring with leader lines, each independently tappable.
  • Tap Repeaters & Tiles on Map: You can now tap repeaters and coverage tiles on the map to see details, just like the web UI. This is the beginning of more features being moved to the app.
  • Grid Mode Tap Details: In Detailed grid mode, tapping a cell now shows pings from the full 3x3 blob and outlines that block on the map, matching the web UI. Simplified mode focuses the single tapped cell.
  • Unified Focus Mode: Focus mode is now shared across ping markers, repeaters, and tile taps. All use a common themed minimized detail bar that can be expanded for more detail. The bottom sheet can be minimized to freely explore the map.
  • Flood Traffic Toggle in Settings → Modes (default OFF). When OFF, Send Ping, Active, and Hybrid controls are hidden. Passive and Trace stay visible. Auto-syncs with regional admin flood policy on connect and zone change.
  • Zone Transfer Auto-Registration: Crossing into a new zone no longer drops your session if the server hasn't seen your device before. The app auto-registers silently so wardriving resumes without a reconnect.
  • Stale Repeater Filtering: Repeaters not heard within the region's stale threshold are hidden from the map. The repeater picker and Log tab still show everything.
  • Duplicate Repeater ID Indicator: Ambiguous repeater IDs now show amber "DUPLICATE ID" lines on the map and amber (i) icons in the log tab. Tap the warning to see all possible matches with names, distances, and status.
  • Radio Settings Capture: The app now captures radio settings from your device and publishes them to the backend, enabling data filtering by radio preset.
  • Offline Session Download: Offline sessions can be downloaded on mobile through the system share sheet.
  • Landscape Minimize Button: Landscape control panel now has a minimize button with a compact collapsed bar.

🔄 Offline Uploads Reworked

  • Multi-region drives just work. Your trip can cross as many region borders as you like and the whole thing uploads in one go, with no more session errors partway through and no more manual retries.
  • Every ping lands where it was actually recorded. Each ping is individually placed into the correct region's map, so a Sheffield to Nottingham drive shows Sheffield coverage in Sheffield and Nottingham coverage in Nottingham.
  • You can see where your upload went. After a successful upload, the session in your list shows a summary like "Uploaded · DSA 88 · EMA 157", and you can tap it for the full per-region breakdown.
  • Pings far outside any region are handled gracefully. A stray ping more than 50 km outside every mapped region is reported back as "too far" rather than being dumped into the nearest region or silently lost.
  • Uploading from anywhere works. Even if you are outside all coverage when you hit upload, the session is created and your data is placed correctly by location.
  • Your uploaded sessions stick around. Nothing is auto-deleted, and download stays available after upload.

🔧 Improvements

  • Auto-Follow Zoom: Tap follow and the map zooms to street level once; after that it just pans. Pinch-zooming while following now sticks instead of fighting you.
  • Ping Button Responsiveness: Send Ping and auto-mode buttons now respond instantly on tap instead of occasionally needing multiple taps. Reduced unnecessary UI rebuilds for snappier controls during wardriving.

🐛 Bug Fixes

  • Phone Heat & Battery Drain: The coverage overlay refresh was running dual GPU layers on every cycle. Replaced with a lightweight refresh that eliminates the overhead.
  • (iOS) Launch & Resume Crashes: Fixed multiple crashes caused by MapLibre firing camera animations before the GL surface was ready on cold start and resume from background.
  • (Android) Background Resume Crash: Fixed the same MapLibre GL surface crash on Android. Also fixed flutter_local_notifications TypeToken errors on startup.
  • (iOS) BLE Reconnect: Fixed reconnect taking 4+ minutes with stale bond keys, now under 10 seconds.
  • (iOS) TCP Background: TCP connections now auto-reconnect on resume since iOS doesn't preserve TCP sockets in the background.
  • (Android) TCP Background: Added foreground service permission and tcpNoDelay to prevent TCP drops when backgrounded.
  • Anonymous Mode: Fixed Anonymous mode getting permanently stuck after an unexpected Bluetooth disconnect. Your real name is now persisted and automatically restored.
  • TX Pings Silently Dropped: Fixed TX pings being dropped when driving a new area or on a later day, leaving DEAD tiles. Only beta users were impacted.
  • Fixed focus mode jumping to (0, 0) off the coast of Africa when heard repeaters have no published location.
  • Fixed map label flicker at max zoom during follow mode.
  • Fixed GPS marker drifting toward the top of the map in heading mode.
  • Fixed spider fan-out pulling in markers from neighbouring clusters and rendering at 2x intended radius.
  • Fixed offline map cancel during setup orphaning the native download.
  • Fixed being unable to switch from offline back to online mode while connected.
  • Fixed auto-ping permanently stopping on zone transfers, reconnects, and grace period re-entry. Multiple related fixes for mode validation, setting persistence, and cooldown timer conflicts across zone boundaries.
  • Fixed path hash mode not reconfiguring correctly when moving between enforced and non-enforced zones.
  • Fixed zone admin overrides persisting after moving to a less restrictive zone.
  • Fixed Connect screen always defaulting to BLE instead of remembering last used transport.
  • Fixed misleading "No empty channel slots" error when BLE disconnects during connection.
  • Fixed generic "Timestamp is too old" registration failure now diagnosing a device clock stuck in the future with actionable instructions to power-cycle.
  • Fixed Hive preferences being wiped by transient open failures on startup.
  • Settings now flush to disk immediately after every write, preventing loss on crash.
  • Fixed RX ping popup showing wrong header badge colour.
  • Fixed performance freeze when entering focus mode.
  • Fixed coverage overlay disappearing after background/foreground transitions.
  • Corrected multi-byte path-mode warning text.
  • Fixed failed discovery markers being untappable in drop mode.