MeshCore vs Meshtastic
The two big LoRa mesh projects, compared on what each one documents. Many U.S. groups run both.
MeshCore and Meshtastic both send text messages over LoRa radios with no internet. They make different choices about which radios relay messages and how far messages can travel. The table compares only what each project documents.
| Topic | MeshCore | Meshtastic |
|---|---|---|
| Routing | Channel messages always flood through repeaters. A direct message floods the first time, then the reply records the path, and later messages follow that path. If the path breaks, the app falls back to flooding. | Broadcasts use managed flooding: a node waits briefly and skips its rebroadcast if it hears another node relay first. Since version 2.6, direct messages flood first, then use next-hop routing, with managed flooding as a fallback. |
| Who relays messages | Only repeaters relay (and room servers with repeat turned on). Companion radios do not relay. An optional Companion Repeat Mode exists, limited to special off-grid radio settings. | The default CLIENT role rebroadcasts packets when no other node has done so. The ROUTER role (and the older REPEATER role, deprecated since firmware 2.7.11) always rebroadcasts. CLIENT_MUTE does not forward. |
| Hop limit | Up to 64 hops with 1-byte path hashes, 32 with 2-byte, and 21 with 3-byte. Repeater owners can set a lower flood limit. | Default is 3 hops. The maximum is 7. |
| Routine broadcasts | Companions send an advert only when the user taps the button. Repeaters send flood adverts on a timer. | NodeInfo every 3 hours by default. Device telemetry is off by default. Position broadcasts are on by default when a position is available: every 15 minutes, more often when moving (smart broadcast). |
| US radio settings | The app's suggested USA preset is 910.525 MHz, 62.5 kHz bandwidth, SF7, CR5. | The US region covers 902.0 to 928.0 MHz. The default modem preset is LONG_FAST. Nodes must share a preset to hear each other. |
| Apps | MeshCore app for Android, iOS, Windows, Mac, Linux and web. Community clients include a Python CLI and a JavaScript library. Some LilyGO devices run standalone firmware with no phone. | Android app, Apple app, a web client that runs in the browser, and a Python CLI. |
| Hardware | Runs on many 433, 868 and 915 MHz LoRa boards. Examples include RAK4631, Heltec V3, Heltec T114, Station G2, Nano G2 Ultra, Seeed T1000-E, Wio Tracker L1 and LilyGO T-Deck. | Runs on a wide range of boards. Its listed favorites include RAK4631, Seeed T1000-E, Seeed Wio Tracker L1, Heltec T114, Nano G2 Ultra and Station G2. Many boards appear on both lists. |
| Can they talk to each other? | No interoperability with Meshtastic is documented. MeshCore uses its own packet format. | No interoperability with MeshCore is documented. Meshtastic packets use Protocol Buffers and their own header and sync word. |
| Licensing | Firmware is MIT licensed. The official app is freemium and, per the FAQ, not open source. | Describes itself as 100% community driven and open source. Software components use various licenses listed on GitHub. |
| Typical use | The project lists off-grid communication, emergency response, outdoor activities and sensor networks. Its design relies on fixed repeaters in high places. | The project describes off-grid communication where infrastructure is missing or unreliable. It lists decentralized communication with no dedicated router required. |
MeshCore fits best where fixed repeaters already exist, or where people want to build a network of them on rooftops and hills. Only repeaters relay, which keeps phones and handhelds from filling the airwaves as a network grows. The trade-off is that a companion radio on its own does not relay for others. With no repeaters nearby, you can reach only people in direct range, unless your group uses Companion Repeat Mode on an off-grid setting.
Meshtastic fits groups that move around together with no fixed infrastructure. Because client radios can relay by default, a handful of radios can form a mesh on their own. Its hop limit is lower, with a default of 3 and a maximum of 7. Community groups such as Austin Mesh report that this limit can be tight across a large metro area.
The most useful test is what people near you run. Neither project documents a way to exchange messages with the other, so you need the same firmware as your neighbors. Many U.S. groups, including Austin Mesh, NashMesh and PugetMesh, publish setup guides for both, and some now focus new deployments on MeshCore. Check your local group before you buy or flash a radio.
- MeshCore FAQ (routing, repeating, hop limit, hardware, open source)
- MeshCore CLI Commands (flood.max, path.hash.mode)
- MeshCore official site (apps, hardware)
- MeshCore README (clients, use cases, license)
- MeshCore Philosophy (MeshCore blog)
- Companion Repeat Mode with the Wio Tracker L1 Pro (MeshCore blog)
- MeshCore suggested radio presets (app API)
- Meshtastic: Introduction
- Meshtastic: Mesh Broadcast Algorithm
- Meshtastic: LoRa Configuration (Max Hops, US region, presets)
- Meshtastic: Device Configuration (roles)
- Meshtastic: Software
- Meshtastic: Supported Hardware
- Meshtastic: Licensing and Trademark
- Austin Mesh: MeshCore vs Meshtastic (community)
- PugetMesh home, 'Which network is right for me?' (community)
- NashMesh: What is MeshCore? (community)
- Meshtastic position configuration