Skip to main content

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:

  1. The first message to any destination is flood-routed (all repeaters in range re-broadcast)
  2. The destination returns the path it received the flood through (PAYLOAD_TYPE_PATH packet)
  3. 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 32 unread messages 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.