MeshCore vs Meshtastic: Technical Comparison

Protocol Comparison Reference

This page provides a technical comparison between MeshCore and Meshtastic - the two most widely deployed open-source LoRa mesh networking platforms. Both run on similar hardware and serve similar goals, but make very different design choices.

Feature Comparison Table

FeatureMeshCoreMeshtastic
RoutingFlood-first to unknown destinations; subsequent unicast messages use direct path routing (ROUTE_TYPE_DIRECT) after path discovery via PAYLOAD_TYPE_PATH packetsControlled flooding with hop limit and duplicate suppression (always floods)
EncryptionAES-128 ECB + HMAC-SHA256 (2-byte truncated, encrypt-then-MAC) for message payloads; ECDH per-pair key agreement via X25519AES-256-CTR with shared PSK per channel
Key ExchangeECDH via X25519 (using Ed25519 identity keys); each node pair derives a unique shared secretStatic pre-shared key (PSK) distributed out-of-band; no per-pair key agreement for channels
Direct messagesEnd-to-end encrypted using per-pair ECDH keysEnd-to-end encrypted via X25519 ECDH + AES-CCM (available since firmware v2.5)
Infrastructure roleExplicit Companion/Repeater/Room Server separationRouter/Repeater/Client/Tracker roles; 13 device roles total
Node discoveryAdvertisement packets (flood or zero-hop)NodeInfo broadcast flood
Position sharingIn advertisements (optional)Continuous broadcast to channel (configurable interval)
ScalabilityBetter at high node counts due to path-based unicast reducing channel utilizationBest under ~100 nodes; flooding overhead grows with network size
Network mappingApp shows routing topologymeshmap.net aggregates public data
Message storageRoom servers (store-and-forward)Store and Forward module (node-based)
App ecosystemMeshCore app (iOS/Android)Meshtastic app (iOS/Android/web)
Web interfaceconfig.meshcore.dev, app.meshcore.nzclient.meshtastic.org
Firmware updateWeb flasher at flasher.meshcore.io (USB, no OTA)Web flasher + OTA via app
Primary hardwareT114, RAK4631, T-Beam v1.2+ (SX1262 required)All of the above + many more (supports SX1276, SX1262, and others)
LicenseOpen source (github.com/meshcore-dev)Open source (github.com/meshtastic)

When to Choose MeshCore

When to Choose Meshtastic

Sources: MeshCore packet format documentation (github.com/meshcore-dev/MeshCore), Meshtastic documentation (meshtastic.org), Meshtastic protobufs (github.com/meshtastic/protobufs)