MeshCore vs Meshtastic

Both are fantastic open source projects that allow mesh communications; however, the two handle the network differently. They are inherently incompatible with eachother.

Our Take

Delaware Valley Mesh advocates for MeshCore. We find the reliability and scalability of the network to be superior to Meshtastic. While we promote MeshCore, we also strive to support the Meshtastic network where possible. We do this by deploying dual nodes, in this case one radio will run a MeshCore repeater while the other will generally run a Meshtastic Client Role.

Hardware

Generally, there is no difference in hardware between the two systems. Both will run on the same LoRa radios, and have iOS and Android companion applications.

Roles

MeshCore splits the network into end-user nodes and infrastructure nodes. The common default is a Companion device. Companions will send and receive messages and do not rebroadcast other people's messages. Forwarding is concentrated into dedicated infrastructure nodes instead. To extend coverage, MeshCore uses a Repeater, which is a headless, always-on range extender you configure and then deploy in a good location (height and line-of-sight matter). MeshCore also supports a Room Server, which is effectively a lightweight bulletin-board/chatroom concept. Clients connect, read recent history, and post messages. It's intended as a shared "room" rather than a one-to-one DM tool. Only the Companion intended for phone/Bluetooth use, while repeaters/room servers are treated as infrastructure and are configured through admin tooling.

Meshtastic defines a "role" as the device's primary function in the mesh. The standard role is CLIENT. Meshtastic clients do participate in repeating/routing. If you want a node to not contribute to relaying traffic, CLIENT_MUTE is explicitly "send/receive my own traffic only" to reduce congestion. For a well-placed home/attic/roof node that helps your personal devices, CLIENT_BASE is like CLIENT but gives priority to traffic from/to your favorited nodes. If you have to ask if your location is good enough, use CLIENT for your roof top node, and CLIENT_MUTE for the device you send and receive messages on. Meshtastic also has true infrastructure roles: ROUTER and REPEATER are intended for stationary, strategically placed nodes; they're preferred for rebroadcasting, and overuse or poor placement can harm the mesh. For larger/obstructed networks, roles like ROUTER_LATE exist as mandatory-rebroadcast infrastructure for specific topology problems—but are explicitly discouraged for casual “rooftop extender” use because of airtime impact. Finally, Meshtastic includes workload-specific roles like SENSOR and TRACKER, which prioritize telemetry or position reporting and can combine with power-saving behaviors.

We find the gross mis-use of Meshtastic roles degrade the network beyond usability, which is why we prioritize MeshCore.