WHAT IS MESHTASTIC?
Meshtastic is an open-source, off-grid LoRa mesh networking system. Nodes form a self-healing network using a custom flooding-with-bloom-filter protocol. No internet or cellular required — messages route through intermediate nodes automatically. The protocol uses encrypted channels, GPS sharing, and telemetry over sub-GHz radio with ranges of 2–30 km per hop.
The meshnology ecosystem extends core Meshtastic with community clients (iOS, Android, Python CLI, Web), integrations (MQTT bridges, Home Assistant, ATAK), and custom firmware forks targeting specific hardware like the Heltec V3, T-Beam, and RAK WisBlock families.
PROTOCOL STACK
APPLICATIONMeshtastic Apps / Python API / CLI / MQTT bridgeAPP
CHANNEL LAYERAES-256 PSK encryption · named channels · port numsCRYPTO
MESH ROUTINGManaged flood · hop limit · SNR routing · DeDup (bloom)MESH
PACKET FRAMINGProtobuf · MeshPacket · portNum · routing · telemetryPROTO
LoRa PHYSICALSF7–SF12 · BW 125/250/500 kHz · CR 4/5 · CRCRF
HARDWARESX1276/SX1262/LR1110 · ESP32 / nRF52840 / RP2040HW
NODE ROLES
CLIENT
Standard end-user node. Sends/receives messages, shares GPS position. Minimal rebroadcast — only repeats messages it originates or hears well. Battery-friendly.
USER NODE
ROUTER
Dedicated mesh backbone node. Always-on, AC-powered recommended. Aggressively rebroadcasts packets to extend network reach. Skips sleep cycles.
BACKBONE
ROUTER_CLIENT
Hybrid role — routes traffic like a router while also supporting user interaction. Good for solar-powered fixed installs with occasional use.
HYBRID
REPEATER
Invisible relay — rebroadcasts everything but has no user-visible identity. Does not send position or telemetry. Purely extends coverage.
RELAY
GATEWAY / MQTT
Bridges the mesh to internet via MQTT. Forwards packets to/from a broker. Enables remote monitoring, map integrations, and cross-mesh linking.
BRIDGE
CLIENT_HIDDEN
Like CLIENT but does not broadcast its node info or position. Useful for covert nodes or sensor-only deployments.
SILENT
FREQUENCY BANDS
REGION EU_868 / UK
868 MHz
Channels: 868.1, 868.3, 868.5 MHz
Max TX: 25 mW ERP (ETSI)
Duty Cycle: 1% (some sub-bands 10%)
Default SF: SF11 / BW 125 kHz
Typical range: 5–20 km LOS
Max TX: 25 mW ERP (ETSI)
Duty Cycle: 1% (some sub-bands 10%)
Default SF: SF11 / BW 125 kHz
Typical range: 5–20 km LOS
REGION US / CA
915 MHz
Channels: 902–928 MHz (FCC Part 15)
Max TX: 30 dBm EIRP
Duty Cycle: None mandated (FHSS)
Default SF: SF11 / BW 125 kHz
Typical range: 5–25 km LOS
Max TX: 30 dBm EIRP
Duty Cycle: None mandated (FHSS)
Default SF: SF11 / BW 125 kHz
Typical range: 5–25 km LOS
REGION EU_433 / ASIA
433 MHz
Channels: 433.175–434.665 MHz
Max TX: 10 mW ERP (ETSI)
Duty Cycle: 10%
Default SF: SF12 / BW 125 kHz
Typical range: 8–30 km LOS (longer λ)
Max TX: 10 mW ERP (ETSI)
Duty Cycle: 10%
Default SF: SF12 / BW 125 kHz
Typical range: 8–30 km LOS (longer λ)
REGION ANZ / IN / JP
915 / 865 / 920
ANZ: 915–928 MHz (AS923)
IN: 865–867 MHz (IN865)
JP: 920–923 MHz (JP)
KR: 920–923 MHz (KR)
Check regional firmware for exact sub-channels.
IN: 865–867 MHz (IN865)
JP: 920–923 MHz (JP)
KR: 920–923 MHz (KR)
Check regional firmware for exact sub-channels.
MODEM PRESETS
| PRESET | SF | BW (kHz) | CR | RANGE | SPEED | LATENCY | USE CASE |
|---|---|---|---|---|---|---|---|
| SHORT_TURBO | 7 | 500 | 4/5 | Short | ~21 kbps | Fast | Dense urban, speed critical |
| SHORT_FAST | 7 | 250 | 4/5 | Short | ~10 kbps | Fast | Short range, dense |
| SHORT_SLOW | 8 | 250 | 4/5 | Medium | ~5 kbps | Med | Urban indoor |
| MEDIUM_FAST | 9 | 250 | 4/5 | Med-Long | ~2.5 kbps | Med | General use |
| MEDIUM_SLOW | 10 | 250 | 4/5 | Long | ~1.2 kbps | Med | Suburban / semi-rural |
| LONG_FAST ⭐ | 11 | 250 | 4/5 | Long | ~600 bps | Slow | Default — best all-round |
| LONG_MODERATE | 11 | 125 | 4/8 | Very Long | ~300 bps | Slow | Rural, obstacles |
| LONG_SLOW | 12 | 125 | 4/8 | Max | ~140 bps | Very Slow | Extreme range, telemetry only |
| VERY_LONG_SLOW | 12 | 62.5 | 4/8 | Max+ | ~70 bps | Very Slow | Absolute max range |
LONG_FAST (SF11/BW250) is the default and recommended preset for most deployments. It balances range (~10–15 km LOS), speed, and duty cycle compliance. All nodes on a channel must use the same preset.
POPULAR HARDWARE
| DEVICE | MCU | LoRa CHIP | GPS | DISPLAY | NOTES |
|---|---|---|---|---|---|
| Heltec LoRa 32 V3 | ESP32-S3 | SX1262 | No | 0.96" OLED | USB-C, WiFi, BT, compact |
| LILYGO T-Beam v1.2 | ESP32 | SX1276/SX1262 | Yes (u-blox) | Optional | 18650 battery, AXP192 |
| LILYGO T-Echo | nRF52840 | SX1262 | Yes | E-ink | Long battery, BLE only |
| RAK4631 WisBlock | nRF52840 | SX1262 | Optional | Optional | Modular, excellent build quality |
| Seeed SenseCAP T1000 | Nordic | LR1110 | Yes (GNSS) | None | IP67, production-grade tracker |
| Heltec Wireless Tracker | ESP32-S3 | SX1262 | Yes (UC6580) | 0.96" TFT | WiFi+BT+LoRa+GPS in compact form |
| Station G2 | ESP32 | SX1262 | Optional | None | Router/repeater focus, PoE |
| DIY / custom | ESP32/nRF | SX127x/SX126x | Optional | Any | See Meshtastic custom hardware docs |
ROUTING MODEL
Managed Flood: Meshtastic uses a modified flooding approach. Each packet has a hop limit (default 3). Nodes rebroadcast packets they haven't seen (identified by sender ID + packet ID). A bloom filter-based deduplication prevents infinite loops.
SNR-based rebroadcast: Routers evaluate the signal quality of the received packet. If SNR is very high (they're close to source), they may delay or skip rebroadcast to avoid collisions — letting weaker/more distant nodes rebroadcast first, effectively improving coverage topology.
Direct messages use source routing — the sender specifies the destination node ID, and the mesh routes it hop-by-hop. Broadcast messages flood with hop decrement. Max practical hops in real deployments: 5–7.
⬡ MESHCORE — ALTERNATIVE PROTOCOL
What is MeshCore? MeshCore is an independent LoRa mesh protocol with a fundamentally different routing philosophy. Where Meshtastic uses managed flooding, MeshCore uses addressed store-and-forward delivery — messages are routed to specific nodes and held at relay nodes until retrieved. Developed by Ripple and hosted at meshcore.co.uk.
CLIENT
End-user device. Connects via BLE/USB to a companion radio. Sends and receives messages. No routing or storage duties.
RELAY
Dedicated packet forwarder. Extends mesh range. Positioned high for coverage. Does not store messages.
ROOM SERVER
The core MeshCore innovation. Stores messages in an inbox. Clients poll and retrieve messages on connect — even if they were offline when the message arrived.
Protocol Differences vs Meshtastic:
MeshCore — Addressed delivery, ACK-confirmed, store-and-forward, AES-128
Meshtastic — Flood broadcast, optional ACK, no message storage, AES-256
MeshCore — Best for: reliable comms, field teams, off-grid inbox
Meshtastic — Best for: community mesh, GPS tracking, broad coverage
Interoperability: MeshCore and Meshtastic use incompatible packet formats and cannot decode each other's transmissions. They can coexist on the same frequency band but will treat each other's packets as noise. Running both requires separate radios. See the full MeshCore Reference for setup, architecture, and detailed comparison.