Skip to main content

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 effective for small 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 - infrastructure node that always rebroadcasts each packet once with prioritized routing; visible in the node list. Power Saving is enabled by default (ESP32)
  • Repeater - dedicated relay node, does not appear in node lists. Note: REPEATER was deprecated as of firmware 2.7.11; prefer ROUTER or ROUTER_LATE for new infrastructure
  • Tracker - broadcasts GPS position frequently
  • Sensor - designed for environmental sensor data reporting

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 (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 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

ParameterValue
Frequency (US/Canada)902-928 MHz ISM band (commonly called the "915 MHz" band); license-free under FCC Part 15 / ISED RSS-247. Meshtastic uses defined frequency slots within the band
ModulationLoRa (Long Range)
Channel encryptionAES-CTR; default public channel uses a 128-bit key (the public AQ== key, so it provides no confidentiality). AES-256 available when a 32-byte PSK is set
RoutingManaged flooding with hop limit
GPS supportOptional (device-dependent)
ProtocolOpen source, Protobuf-based