MeshCore Protocol Overview
MeshCore is a LoRa mesh networking platform developed by Scott at Ripple Radios. This overview is based on verified information from the official MeshCore documentation, FAQ, and source code.
What Makes MeshCore Different
Most LoRa mesh platforms use pure flooding — every node re-broadcasts every message. MeshCore instead uses a flood-first, direct-route-after approach:
- The first message to any destination is flood-routed (all repeaters in range re-broadcast)
- The destination returns the path it received the flood through (
PAYLOAD_TYPE_PATHpacket) - All subsequent messages to that destination use direct routing, embedded with the specific repeater path — only those repeaters forward it
This dramatically reduces channel utilization in busy networks once paths are established.
Encryption
- Symmetric encryption: AES-128 (ECB mode)
- Message authentication: HMAC-SHA256 (2-byte truncated, encrypt-then-MAC)
- Key exchange: ECDH via X25519 (Ed25519 identity keys transposed)
- Identity signing: Ed25519 — advertisements signed to prevent spoofing
Firmware Types
- Companion — your personal node; connects to the MeshCore app via BLE, USB, or WiFi
- Repeater — infrastructure node; forwards messages, no user interface
- Room Server — stores and delivers missed messages; hosts community "rooms"
Frequency
- USA/Canada: 910.525 MHz, SF7, BW 62.5 kHz (as of October 2025)
- EU/UK: 868 MHz band
- Australia/NZ: 915 MHz band
Key Capabilities
- Room Servers provide message store-and-forward (last
32messagesunreadinmessagesRAM (capacity firmware-dependent) per client) - Path hash modes allow tuning for mobile vs. fixed repeater networks
- Regional scoping via ISO country codes prevents cross-region interference
- 50+ supported devices across the RAK WisBlock, Heltec, LilyGo, and Seeed ecosystems
App and Tools
- Android/iOS app by Liam Cottle: Google Play (
com.liamcottle.meshcore.android) / App Store (id6742354151) - Web app: app.meshcore.nz
- Flasher: flasher.meshcore.io
- Config tool: config.meshcore.io
- Python CLI: github.com/fdlamotte/meshcore-cli
Source: Official MeshCore repository (meshcore-dev/MeshCore), FAQ, source code, and meshcore.co.uk. Verified 2026-05-03.