MeshCore Protocol Overview
MeshCore is a LoRa mesh networking platform created by Scott (Ripple Radios / ripplebiz), its lead firmware engineer; Liam Cottle builds the app and web tooling. This overview draws on the official MeshCore documentation, FAQ, and source code.
What Makes MeshCore Different
Many LoRa mesh platforms (for example Meshtastic) rely on managed/broadcast flooding, where nodes re-broadcast messages subject to hop limits and duplicate suppression rather than naive "every node repeats everything" flooding. 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
For repeated unicast traffic, this reduces channel utilization once paths are established; group and broadcast traffic still floods, and churn (such as moving nodes or stale paths) triggers re-floods.
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 or USB serial
- Repeater - infrastructure node; forwards messages, no user interface
- Room Server - stores and delivers missed messages; hosts community "rooms"
- Sensor - telemetry node for sensor data
Frequency
- USA/Canada: 910.525 MHz, SF7, BW 62.5 kHz, CR5 (a community-chosen "narrow" preset within the unlicensed 902-928 MHz band, as of October 2025 - not an FCC-assigned channel; other settings within the band are also permissible under FCC Part 15.247)
- EU/UK: 868 MHz band
- Australia/NZ: 915 MHz band
Key Capabilities
- Room Servers provide message store-and-forward (last messages in RAM (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/meshcore-dev/meshcore-cli (the
fdlamotte/meshcore-clirepo now redirects here)
Sources: the official MeshCore repository (meshcore-dev/MeshCore), its FAQ and source code, docs.meshcore.io, and meshcore.co.uk. Region presets and version-dependent details change over time; check the upstream docs for the current values.
No comments to display
No comments to display