How Meshtastic works
Meshtastic turns a LoRa radio into a messenger that pairs with your phone. Radios on the same settings form a mesh automatically, and messages hop from radio to radio to reach people out of direct range.
How messages travel
Section titled “How messages travel”Meshtastic uses managed flooding. When a radio hears a message, it waits a moment, and if nobody else has already passed it on, it rebroadcasts it. Each message carries a hop limit that drops by one at every relay. The default is 3 hops, and the maximum is 7.
The waiting is clever. A radio that heard the message weakly (probably far away) waits less, so the farthest radios tend to relay first, which pushes the message outward faster.
Since firmware 2.6, direct messages get smarter: after the first exchange, the mesh learns which relay is the best “next hop” toward the other person, and only that relay forwards later messages. If that relay disappears, it falls back to flooding.
A role tells a radio how to behave. Most people should leave it on CLIENT or pick CLIENT_MUTE.
| Role | Use it for |
|---|---|
CLIENT |
Your everyday radio. Relays only if nobody else did. |
CLIENT_MUTE |
Radios in crowded places or on the move. Uses the mesh but never relays for others. |
CLIENT_BASE |
A home base that always relays for your own favorited radios. |
TRACKER |
GPS trackers that mainly report position. |
SENSOR |
Nodes that mainly report sensor readings. |
ROUTER / ROUTER_LATE |
Infrastructure on high, fixed sites with good line of sight. Always rebroadcasts. Don’t use at home. |
REPEATER was deprecated in firmware 2.7.11. Ask your local group before setting any router role, since a badly placed router can make the mesh worse.
Channels
Section titled “Channels”A radio can have up to 8 channels. Channel 0 (primary) decides which frequency slot you’re on, so its name must match your local mesh. Don’t rename it. Put private groups on secondary channels (1–7), so you stay on the public mesh while those conversations stay private. Groups share channels as a URL or QR code that also carries the radio settings.
Presets
Section titled “Presets”Radio settings come as named presets, from fast and short-range (Short Turbo) to slow and long-range (Long Moderate). LongFast is the default, but many local meshes choose another one. All radios on a mesh must use the same preset, so ask your local group.
MQTT: linking to the internet
Section titled “MQTT: linking to the internet”A radio with Wi-Fi or Ethernet can act as a gateway, copying mesh traffic to an MQTT server on the internet (uplink) and optionally back onto the radio side (downlink). That lets distant meshes see each other and feeds tools like maps and Home Assistant. The official public server only passes traffic to directly connected nodes (it doesn’t flood it back across your local mesh), filters to common message types, and only shares approximate positions.
Go deeper: chatter and big meshes
By default, radios send their position and telemetry hourly (every 12 hours for routers) and their node info every 3 hours. When a mesh has more than 40 online nodes, these intervals automatically stretch out to save airtime. Router, sensor and tracker roles are exempt.
- Android app and Apple app (pair over Bluetooth)
- Web client (runs in Chrome or Edge, over USB, Bluetooth or the network)
- Python command-line tool
- Site Planner, for predicting coverage
Next: How MeshCore works
Sources
Checked on October 18, 2026.
- meshtastic.org/docs/overview/mesh-algo
- meshtastic.org/docs/configuration/radio/device
- meshtastic.org/docs/configuration/radio/lora
- meshtastic.org/docs/overview/encryption
- meshtastic.org/docs/software/integrations/mqtt
- meshtastic.org/docs/software
- meshtastic.org/docs/getting-started/joining-your-local-mesh