Comparisons
Meshtastic vs MeshCore
Meshtastic versus MeshCore
How the two big LoRa text meshes differ in routing, roles, apps and UK use, and how to pick between them.
Updated 29 Oct 2026
At a glance
| Meshtastic | MeshCore | |
|---|---|---|
| Routing | "Managed flooding": nodes rebroadcast unless they hear another relay first | Group channels flood; direct messages flood once, then follow a learned repeater path |
| Who relays | Client nodes rebroadcast by default; role settings change this | Only repeaters and room servers with repeating switched on; companions do not repeat |
| Device roles | 12 (including CLIENT, ROUTER, REPEATER, TRACKER, SENSOR, TAK) | Three firmware roles: Companion, Repeater, Room Server |
| Hop limit | User setting, default 3, maximum 7 | Up to 64 hops with 1-byte path hashes (32 with 2-byte, 21 with 3-byte) |
| Message payload | "Roughly 200 bytes" within a 239-byte ceiling | 184 bytes maximum |
| Encryption | AES-CTR channels (default key is public); public-key direct messages; header never encrypted | AES-128 in ECB mode with a 2-byte truncated HMAC-SHA256 tag (from the source code); header never encrypted; weaker than modern authenticated encryption |
| Phone and web apps | Android, iOS, web client, Python CLI | Android and iOS (freemium per the FAQ), web app, desktop versions |
| Firmware licence | GPL-3.0 | MIT |
| GitHub stars (29 Oct 2026) | 8,495 | 3,941 |
| UK radio setting | Region EU_868 |
App preset "EU/UK (Narrow)": 869.618 MHz, SF8, BW 62.5 kHz, CR 4/8; repeater duty-cycle default 50%, UK users set dutycycle 10 |
| Battery life | No figures in the docs | No figures in the docs |
Stars measure interest on GitHub, not nodes in use. For dated node counts and why they cannot be compared, see find a local mesh.
Key differences
Flooding versus learned paths
Meshtastic uses managed flooding. A node listens briefly, then rebroadcasts unless it heard someone else do so; nodes that heard the packet with a lower signal-to-noise ratio (generally further away) get shorter contention windows and rebroadcast first. From firmware 2.6, direct messages use next-hop routing after a successful flood, falling back to managed flooding if that fails. Broadcasts still flood.
MeshCore restricts repeating to repeaters and room servers. Its FAQ describes the first direct message flooding, the reply carrying the repeater path, and later messages using that path. Group channels use flood routing only. Wikipedia describes MeshCore as using "structured routing roles and store-and-forward mechanisms to reduce bandwidth utilization".
The design intent differs. Whether MeshCore actually scales better is not shown by anything we read, so treat "designed to reduce airtime use" as a design claim. See how mesh routing works for the general mechanics.
Roles: capability versus default behaviour
Meshtastic can emulate fixed infrastructure: ROUTER and REPEATER roles rebroadcast, CLIENT_MUTE does not forward, and CLIENT rebroadcasts when no other node has. MeshCore bakes the split into firmware: you flash companion, repeater or room-server firmware. A room server is a bulletin-board style node that stores history. The difference is mostly default behaviour and protocol design, not what each can be made to do.
Reliability and hops
Meshtastic documents reliable broadcasts of up to three transmissions in total and reliable direct messages of up to five. We did not read equivalent retry or acknowledgement details for MeshCore, so we make no comparison. MeshCore repeaters can cap how far a flood spreads with a flood.max setting, according to the FAQ. See the glossary entry on hop limit.
Encryption
Meshtastic's documentation is explicit about its limits: the default public channel key is readable by anyone, the packet header is never encrypted, there is no forward secrecy, and the scheme is not equivalent to Signal or TLS 1.3. MeshCore says it provides end-to-end encrypted messaging and that public keys are signed to prevent spoofing. Its cipher is in the source code rather than the FAQ: AES-128 in ECB mode with a 2-byte truncated HMAC-SHA256 tag (we read the main branch on 29 October 2026; older firmware may differ). MeshCore's crypto is weaker than modern authenticated encryption: ECB mode reveals repeated plaintext blocks, a 2-byte tag is a weak integrity check, and direct-message keys are static with no forward secrecy. Do not use MeshCore for sensitive messages. See privacy and encryption.
Apps and compatibility
The two protocols are incompatible: a Meshtastic app cannot talk to a MeshCore node and the reverse. Many boards are supported by both, so check each project's flasher for your exact board. See clients and apps.
Power
Meshtastic's power docs describe a power-saving mode that disables Bluetooth, serial, Wi-Fi and the screen, and an ESP32 light-sleep default of 5 minutes. We found no battery-life figures for either project, so we compare none.
In the UK
Both use the 868 MHz band, so buy an 868 MHz board. Meshtastic's EU_868 region defaults to a slot in 869.40 to 869.65 MHz, with default LongFast on slot 1 at 869.525 MHz and a 10% duty cycle; its Turbo presets are not available in EU_868.
For MeshCore, the app's preset list offers "EU/UK (Narrow)": 869.618 MHz, spreading factor 8, bandwidth 62.5 kHz, coding rate 4/8, which sits inside the 869.40 to 869.65 MHz slot. Presets are suggestions that can change, so check the app. MeshCore repeater firmware has a duty-cycle limit that defaults to 50%, above the UK 10% limit for that slot: on a UK repeater run set dutycycle 10. A retailer site at meshcore.co.uk exists, but its relationship to the MeshCore project is unconfirmed. Hardware advice is in the hardware buyer's guide.
Which should you choose?
- You want to start with the least planning and the widest hardware choice: Meshtastic. Setup: flash Meshtastic.
- You are building or joining a network of fixed hilltop and rooftop repeaters: MeshCore. Setup: flash MeshCore.
- Your local group already runs one: use that one. A mesh is only as useful as the number of nodes near you.
- Not sure: which mesh is right for you or the which-mesh tool.
Network pages: Meshtastic, MeshCore.
FAQ
Can Meshtastic and MeshCore talk to each other?
No. They use different protocols, and a Meshtastic app cannot talk to a MeshCore node or the reverse. Many boards are supported by both projects, so the same board can often be flashed with either firmware; check the flasher.
Which is better for the UK, Meshtastic or MeshCore?
Both work on the UK 868 MHz band. The deciding factor is usually who is near you. Check the maps in find a local mesh and ask in the local Discords before buying.
Does MeshCore use better encryption than Meshtastic?
Not on the evidence we read. Meshtastic publishes its scheme and its limits (AES-CTR channels, public-key direct messages, an unencrypted header). MeshCore uses AES-128 in ECB mode with a 2-byte truncated HMAC-SHA256 tag, which is weaker than modern authenticated encryption. Do not use MeshCore for sensitive messages. See privacy and encryption.
Do I need a licence to run either in the UK?
Not within the Ofcom IR 2030 limits for licence-exempt short-range devices. No amateur radio licence is needed for these meshes; amateur rules (as for AREDN) are separate.
Sources
- Meshtastic: mesh broadcast algorithm
- Meshtastic: LoRa configuration
- Meshtastic: radio settings
- Meshtastic: device roles
- Meshtastic: encryption
- Meshtastic: overview
- Meshtastic: power configuration
- Meshtastic: region by country
- Meshtastic firmware on GitHub (licence, stars)
- MeshCore FAQ
- MeshCore packet format
- MeshCore on GitHub (licence, roles, stars)
- MeshCore (Wikipedia)
- MeshCore project site
- MeshCore source: src/Utils.cpp (AES-128 ECB, 2-byte HMAC-SHA256)
- MeshCore CLI commands (set dutycycle)
- MeshCore app configuration API (radio presets)
- Ofcom IR 2030 v1.16 (UK licence-exempt short-range devices)