MeshMapper visualizes real-world MeshCore coverage using data collected by local mesh operators.
Built with contributions from the community of
The Greater Ottawa Mesh Radio Enthusiasts
1. Initiation: Users start a Wardriving session on their mobile device to map connectivity. Once connected via Bluetooth to a MeshCore companion, the session is geolocated and authorized against known companions (active within the last 60 days). Sessions are regulated by "slot" availability to minimize mesh traffic.
2. The Drive: The app sends messages over the mesh at timed intervals containing GPS coordinates. These messages are ingested by letsmesh.net observers and forwarded via MQTT to MeshMapper servers.
3. Listening: Simultaneously, the wardriving companion listens for repeaters rebroadcasting the message. It packages this data (location, power, noise floor, repeater IDs, raw packets) and sends it to the MeshMapper backend API.
4. Processing & Status: The engine correlates the MQTT ingestion with the companion's local data to determine coverage status:
5. Passive RX: Independently, if the companion hears unrelated mesh traffic (RX), this is also mapped, indicating at least inbound connectivity.
6. Visualization: Data is layered on the map (BIDIR on top, DROP on bottom). Users can toggle layers for repeaters, coverage, and topographic/dark modes. A Noise Heatmap is generated using delta comparisons against a user's baseline noise floor to identify interference sources.
This data helps focus infrastructure improvements and monitor network health. Happy mapping!
| MeshMapper Developers | |
|---|---|
This region is part of a larger multi-region group.