March 17, 2026
π MeshMapper v1.2.0 is here!
This is a big one. Three headline features, a redesigned UI, and a mountain of fixes.
π‘ Highlights
π’ Multi-Byte Path Hash Support
MeshMapper now fully supports MeshCore firmware v1.14.0+, expanding repeater IDs from 256 (1-byte) up to 65K (2-byte) or 16M (3-byte). A long time coming! Hex badges with dynamic sizing, square repeater markers on the map, admin-enforced byte modes per region, passive multi-byte detection, and automatic conflict remediation for duplicate IDs.
π― Trace Mode
TX pings can now target a specific repeater using MeshCore's trace path command instead of broadcasting to all repeaters. Designed for testing a single repeater's reach and coverage. Failed pings are not recorded as no-coverage since other repeaters may still serve that area.
πΊοΈ Discovery Drop Reporting
Failed discovery requests can now be reported as failed pings to help map dead zones and noise floor gaps. Enable it in Settings (off by default). Failed discoveries show up as red markers on the map and noise floor chart. Regional admins can enforce this for their whole region once nodes are updated.
β¨ More New Features
- Repeater Marker Rotation β Markers now rotate with the map and stay upright
- Auto-Stop After Idle β Auto-ping stops after 30 min of no movement, saving battery and radio (default: ON)
- Repeater Picker for Trace Mode β Browse nearby repeaters by name, hex ID, distance, and active status
- Live Repeater Snapshot β Top 3 responded repeaters from your last ping, updating live as a map overlay
π§ Changes
- Redesigned the Connection tab for clarity
- Sound moved from control panel to Settings
- Offline data session management always visible under Settings
- TX/RX and Trace now have independent byte settings (TX: 1/2/3, Trace: 1/2/4)
- Trace bytes auto-sync from TX on connect (3-byte TX maps to 4-byte Trace)
- "Path Bytes" renamed to "TX Bytes," new "Trace Bytes" dropdown with info button
- Trace target hex input adapts to Trace Bytes (2, 4, or 8 hex characters)
β¬οΈ Improvements
- Auto-ping shows "Skipped Xs" instead of generic countdown when movement is insufficient
- Hybrid mode defaults to enabled for new and existing users
- Minimum ping distance now configurable for TX and discovery pings
- Option to keep #wardriving channel after exiting a session (#149, @skye)
- CARpeater ID filter supports multi-byte regions with full 6-char hex and backward compatibility
- Failed traces show as grey discs on the map
- Redesigned Log and Settings tabs
- Online/offline toggle redesigned as a clearer button
- Landscape controls updated with Trace mode support
- Updated top heard repeaters UI
- Text scale clamping for accessibility settings
π Bug Fixes
- Fixed GPS subscription leak doubling every GPS event on startup
- Fixed Hive corruption silently dropping entire wardrive sessions, now falls back to in-memory queue
- Fixed online mode auth only doing Stage 1, causing
unknown_devicefailures - Fixed offline session auth giving up instead of attempting Stage 2 registration
- Subscription leak fixes (PRs #6, #7, #8, thanks @robekl)
- Heartbeat retry with exponential backoff on network failure
- Local session deadline tracking and offline queue preservation on session expiry
- Discovery pings now extract repeater IDs using the correct hop byte count
- Location permission flow no longer skips enforcement after first denial (#11, @robekl)
- Stale auto-ping restore timers cancelled on disconnect (#10, @robekl)
- GPS zone check errors no longer hammer retries every 5 seconds while stationary
- Fixed firmware version parsing regression
- Fixed offline wardrive pings lost on app kill, background, or disconnect (auto-saves every ~60s now)
- Fixed debug log upload when only one log file exists
- Trace mode now correctly supports multi-byte repeater IDs (was hardcoding 1-byte flags)
- Fixed zone capacity showing stale data, now syncs from auth and refreshes every 60s
- Trace mode clears target ID when trace bytes change
- Connection screen shows "Server Unreachable" with offline mode suggestion instead of generic error
- Fixed zone check flooding when driving with no network
- Subscription leak fixes (PRs #6, #7, #8, thanks @robekl)
- Online mode auth fix, now runs the full two-stage auth flow (thanks @dinki)
- GPS subscription leak fix, no more doubled GPS events on startup
- Hive corruption no longer silently drops ping data, falls back to in-memory queue
β οΈ Heads Up
If your session ends uncleanly while in multi-byte mode, your radio will stay in multi-byte mode until you manually change it back.
Thanks for using MeshMapper! π‘