Skip to main content

Building a Meshtastic Network Map

A network map shows you which nodes can hear each other, the quality of each link, and how messages actually route through your network. Building and maintaining an accurate map is essential for optimizing coverage and identifying problem areas.

What to Map

A useful network map shows:

  • Geographic position of all nodes (lat/lon from GPS or fixed position setting)
  • Link quality between neighboring nodes (RSSI/SNR)
  • Hop counts between all node pairs
  • Node types (CLIENT, ROUTER, REPEATER) and roles
  • Last-heard timestamps (to distinguish active vs. stale nodes)

Using meshmap.net

meshmap.net aggregates position data from Meshtastic nodes that have position reporting and MQTT gateway enabled. It provides a global view of the Meshtastic community:

  • Zoom to your region to see local node density
  • Click a node for details: ID, last heard, firmware version, battery level (if reporting telemetry)
  • Use the time filter to see nodes active in the last 24 hours vs. all time

Limitation: Only shows nodes with GPS enabled and MQTT gateway reachable. Many private community networks don't use the public MQTT server.

Building a Private Community Map

For a private community network not connected to the public MQTT, build your own map:

# Option 1: Self-hosted Meshtastic Map
# Run a local MQTT broker + custom map application
# See github.com/charleswvn/meshing-around for a self-hosted map

# Option 2: Grafana Geomap panel with InfluxDB
# Telemetry data (positions) → InfluxDB → Grafana Geomap panel
# Shows all nodes with position and telemetry data

# Option 3: Simple Python script to generate KML
import json, paho.mqtt.client as mqtt

nodes = {}
def on_message(client, userdata, msg):
 # Parse position packets and build nodes dict
 # Export to KML for Google Earth or KMZ for Google Maps
 pass

Meshtastic's Neighbor Info module provides per-link RSSI/SNR data. Enable it on key backbone nodes:

# Enable Neighbor Info module:
meshtastic --set neighbor_info.enabled true
meshtastic --set neighbor_info.update_interval 900 # 15 min updates

With Neighbor Info data flowing through MQTT, you can build a heat map of link quality across your network. Weak links (SNR below -10 dB) are candidates for repeater insertion or antenna improvement.

Topology Visualization Tools

  • Gephi - Open-source network visualization. Export node list and edge list from your MQTT data; import into Gephi for force-directed layout visualization of your mesh topology.
  • NetworkX (Python) - Build a graph of your mesh programmatically; use matplotlib for visualization; calculate graph properties (diameter, clustering coefficient, cut vertices).
  • meshview - Community tool that parses Meshtastic position and neighbor data to produce a topology map. Check GitHub for current maintained versions.