Meshtastic Protocol Overview
Meshtastic is an open-source mesh networking project built on LoRa radio hardware. It has a large, active global community and is one of the most widely deployed LoRa mesh platforms available.
How Meshtastic routes messages
Meshtastic uses a flooding approach to message delivery. When a node sends a message, nearby nodes rebroadcast it, and those nodes rebroadcast to others, until the message has propagated through the reachable network. A hop limit controls how many times a message can be relayed.
This approach is simple and reliableeffective for small networks.networks, but it is best-effort - there is no guaranteed delivery. Confirm critical messages with an explicit ACK or acknowledgement. On larger, denser networks, the rebroadcast traffic can create congestion. Meshtastic has introduced optimizations over time (such as managed flooding) to reduce unnecessary retransmissions.
Node roles
Meshtastic devices can be assigned different roles that control how they participate in the network:
- Client - standard personal device paired with a phone via Bluetooth
- Client Mute - receives but does not retransmit (reduces traffic in dense areas)
- Router -
optimizedinfrastructurefornoderelaying;thatreducesalwayssleeprebroadcaststime,eachprioritizespacketforwarding
Note: the older Router Client (ROUTER_CLIENT) role was deprecated in firmware 2.3.15 and is no longer a current role. For infrastructure, use ROUTER or ROUTER_LATE; for ordinary nodes, use CLIENT.
Channels and encryption
Meshtastic uses a channel-based system. Each channel has a name and a pre-shared key.key (PSK). Devices on the same channel with the same key can communicate. Channels are encrypted with AES-CTR; the PSK may be 16 bytes (AES-128) or 32 bytes (AES-256). The default public channel uses a well-known key,1-byte key (AQ==), which is effectively AES-128, making messages readable by any Meshtastic node - it is not private. Private channels use custom keys shared only among trusted users.
Technical specifications
| Parameter | Value |
|---|---|
| Frequency (US/Canada) | |
| Modulation | LoRa (Long Range) |
| AES-CTR; default public channel uses a 128-bit key (the public AQ== key, so it provides no confidentiality). AES-256 | |
| Routing | Managed flooding with hop limit |
| GPS support | Optional (device-dependent) |
| Protocol | Open source, Protobuf-based |