MeshCore vs Meshtastic: Which LoRa Mesh Should You Run?
MeshCore vs Meshtastic comes down to how your LoRa mesh will grow. If your town can put a few repeaters up high, MeshCore is the better fit, and it is what Brazos Valley Mesh runs. If your group roams with no fixed infrastructure, Meshtastic is still a fine pick.
Both run on the same affordable 915 MHz LoRa boards, both send off-grid text from a phone app, and both are free to flash. The real difference is who repeats traffic and how a message finds its way across town. That one design choice shapes everything else, from how busy the airwaves get to what you need on a roof before the map comes alive.
This is the honest version: what each project actually does (checked against the official docs and release notes on Oct 8, 2026), what has worked for us around Bryan–College Station, and the situations where we would hand someone a Meshtastic node without a second thought.
The short answer
Pick MeshCore if you are joining or building a community mesh with fixed repeaters on roofs, barns, and towers, and what you mostly want is dependable text between people across a town or county.
Pick Meshtastic if every radio in your group moves (a hiking party, a festival crew, a hunting lease with no high site). It is also the better pick if you want position sharing and sensor telemetry as everyday features, or if you need its ATAK or MQTT integrations.
Whichever you choose, match your neighbors. The two do not talk to each other on the air.
How each one moves a message
This is the heart of the comparison. Meshtastic is built around managed flooding. A node in the default CLIENT role rebroadcasts what it hears, up to a hop limit, but first it listens briefly and skips its rebroadcast if another node has already sent it. Nodes that hear a packet weakly wait less, so radios farther away tend to carry it outward. ROUTER-role nodes get priority and always rebroadcast.
The default hop limit is 3 and the maximum is 7. Since firmware 2.6, direct messages also learn a next-hop relay after the first successful delivery, so private messages flood less than they used to. Broadcasts still flood.
MeshCore splits the jobs up front. A companion is your pocket radio paired to the phone app, and companions never repeat anyone else's traffic. A repeater is a fixed node whose job is forwarding. A room server is a small store-and-forward message board.
The first direct message to a contact floods through the repeaters. The delivery report comes back with the list of repeaters the message passed through. After that, your messages carry that path, so only the repeaters on it retransmit. If a path breaks, the app retries and then falls back to a flood to find a new one.
Channel messages still flood, just like Meshtastic broadcasts, and repeater owners can cap how far floods travel. The firmware's internal ceiling is 64 hops with standard 1-byte paths, though the MeshCore docs themselves say real-world paths get nowhere near that.
In plain terms, Meshtastic lets every willing radio help, which is great when there is no infrastructure. MeshCore asks the infrastructure to do the relaying so pocket radios stay quiet, which is great when there is.
Airtime and what happens as a mesh grows
LoRa is slow and shared. Every packet a node repeats is airtime nobody else can use. Meshtastic accounts for this: since firmware 2.4, it automatically stretches telemetry and position intervals once a mesh passes about 40 online nodes, and it offers roles like CLIENT_MUTE for radios that should not forward. Large Meshtastic meshes do work, but they take tuning and local coordination.
MeshCore starts quieter by design. Companions do not repeat, and they only advertise themselves when you tap the advert button. Repeaters send a flooded advert every 12 hours by default, and direct messages ride a known path once one exists. The USA/Canada (Recommended) preset is also narrow (62.5 kHz at SF7). The MeshCore docs say narrower settings help signals fit between interference in the ISM band, with a lower noise floor and faster transmissions.
We have not run a side-by-side test of the two stacks in the Brazos Valley, so we are not going to invent numbers. What we can say is that the quiet-companion design matches the way our town mesh is actually shaped.
Why your Meshtastic mesh is mostly position packets
A question we keep seeing on Reddit goes something like this: "Why is my mesh mostly position packets, and what can I do about it?" The short answer is managed flooding. On Meshtastic, other nodes rebroadcast each broadcast until it runs out of hops. That means every routine position or telemetry update costs airtime across the whole mesh, not just at the sender. One node set to report its position very often can use more of the channel than everyone's text messages combined.
A good example turned up on r/meshtastic in October 2026. A user in the Columbia River Gorge, in the rural Pacific Northwest, logged two days of local Meshtastic traffic and posted a visualization. By the commenters' tally, those two days held 19 text messages versus 1,572 position packets. The poster said they had noticed at least one nearby node sending position data very frequently. They captured it all with lorakeet, a Meshtastic logger and dashboard they wrote. That is their mesh and their count, not ours. We run MeshCore here and have not logged Meshtastic traffic around Bryan–College Station.
Finding the chatty node
Start in the Meshtastic app. Each node's detail screen shows device metrics, including Channel Utilization (how busy the channel is around that node) and Air Utilization TX (how much airtime that node spends on its own transmissions). A node whose transmit share sits well above its neighbors' is the one to look at. For the full picture, a logger like lorakeet records every packet your radio hears and breaks traffic down by type and by node. That turns "the mesh feels busy" into a specific node you can point to.
Fixes that work on Meshtastic
For a node that never moves, such as a rooftop node or a base station, turn on fixed position and give it a long broadcast interval. With smart position off, the default is a position every 15 minutes, and a stationary node rarely needs to say where it is that often. For mobile nodes, leave smart position on with a sensible minimum interval and distance. By default, it waits for about 100 meters of movement. Meshtastic's docs suggest leaving the regular broadcast interval at its default when smart position is in use.
Then turn off what you are not using: device telemetry broadcasts (every 30 minutes by default), environment and other sensor modules with nothing attached, and even position itself if nobody needs to see where that radio is. Meshtastic's 2.8 pre-release firmware is already moving this way, making position and telemetry broadcasts opt-in rather than always on.
Roles matter too. Meshtastic's own guidance is to keep almost every node on CLIENT, CLIENT_MUTE, or CLIENT_BASE. CLIENT_MUTE is recommended for extra radios near a better-placed node and for indoor nodes, while ROUTER is meant only for stationary nodes in genuinely strategic spots, coordinated with the local community.
Since 2.4, the firmware also stretches telemetry and position intervals on its own once more than 40 nodes have been heard in the past two hours, but that only softens the problem. And if the chatty node is not yours, a friendly note to its owner, ideally with a screenshot of the numbers, fixes more meshes than any setting.
How MeshCore sidesteps it
MeshCore avoids most of this by design. Only repeaters relay traffic (and room servers, if an admin turns repeating on). Companions never rebroadcast, and they only advertise when you tap the advert button. Repeaters send a flooded advert every 12 hours by default. Background chatter stays low without anyone tuning intervals. The trade-offs: MeshCore is less plug-and-play, and it does not reach far until repeaters are in place (more on that below).
So which should your area run?
It's the same answer as at the top of this post, with one more reason. If your area has fixed repeaters, or people willing to build them, MeshCore keeps the channel quiet for text. If your group is mobile, or your neighbors already run Meshtastic, stay on Meshtastic and tune the chatty nodes rather than starting a second mesh that cannot talk to the first.
Presets, defaults, and the LongTurbo change
In both projects, a radio only hears other radios with matching radio settings. On Meshtastic in the US, the long-standing default modem preset is LongFast. In the 2.8 pre-release firmware (2.8.1 was posted Oct 1, 2026), new US nodes default to LongTurbo on first-time region setup, and the release notes are blunt: LongTurbo and LongFast can't hear each other. If you flash a pre-release Meshtastic node and your local mesh is still on LongFast, switch it back, or you will sit in silence.
MeshCore uses community presets rather than a single firmware default. Brazos Valley Mesh runs the USA/Canada (Recommended) preset: 910.525 MHz, SF7, BW 62.5 kHz, CR5. Newer MeshCore app builds may list it simply as "USA" with the same values. Our USA/Canada MeshCore preset guide walks through checking it on both a companion and a repeater.
Apps and ecosystem
Meshtastic has the bigger ecosystem. There are official apps for Android and Apple devices, a web client, a Python CLI, MQTT for bridging meshes over the internet, and an ATAK plugin for team-awareness users. Position, telemetry, and sensor roles are built in. If you want a map of everyone's location or weather sensors reporting over the mesh, Meshtastic is the more mature option.
MeshCore's main client is Liam Cottle's MeshCore app for Android and iOS, plus a web app at app.meshcore.nz and community tools such as a Python CLI. The firmware is MIT-licensed and free. The phone app is free to use; an optional in-app purchase removes a wait timer on remote repeater management over radio, a feature ordinary users never touch.
Repeaters and room servers are set up over USB with the web config tool or the flasher console, and after that they can be managed over LoRa from the app. Standalone devices like the LILYGO T-Deck can run MeshCore with no phone at all.
Hardware: mostly the same boards
Choosing usually does not mean buying different hardware. The Heltec V3 and V4, Heltec T114, RAK4631 WisBlock (or the smaller WisBlock mini starter kit), SenseCAP T1000-E, Wio Tracker L1, and LILYGO T-Beam family all appear in both projects' supported lists as of Oct 8, 2026. You flash MeshCore from flasher.meshcore.io and Meshtastic from flasher.meshtastic.org, and you can reflash later if your area changes direction. The radios we compare in our first MeshCore node under $70 guide can run either one. Check the flasher for your exact board before you buy.
What has worked for us in Bryan–College Station
We chose MeshCore because its roles match the mesh we were actually building. Our area is flat and tree-lined, with apartment canyons near campus and good horizons from barns and taller buildings toward Bryan and the rural edges. A radio on a kitchen table rarely sees far. What changes the map is a node somewhere high, and MeshCore lets us treat that node as infrastructure. We flash Repeater firmware, put it on a roof or a barn, and let everyone's pocket companions lean on it without each of them rebroadcasting the whole valley's traffic.
That split also keeps onboarding simple. A newcomer flashes Companion firmware, picks the USA/Canada preset, pairs the app, and is on the mesh. They do not have to choose among a dozen roles or wonder whether the radio in their backpack is adding to congestion.
When someone has a good high spot, we talk about a repeater. Our rooftop repeater write-up explains why one well-placed node has been worth more to us than several desk radios. Room servers give us a place where messages wait for people who were out of range when they were sent.
The trade-off is real. On MeshCore, a group of companions with no repeater nearby only reaches as far as direct radio range. Two companions can still message each other directly (that is how we suggest everyone starts), but reaching across town depends on having repeaters. That is exactly why we put so much effort into hosting them.
When Meshtastic is still the right pick
We would not talk anyone out of Meshtastic when the whole group is mobile and there is nowhere to mount a repeater. Every Meshtastic client can relay, so a line of hikers or trucks can extend each other's range with no fixed sites at all.
We would also tell you to join Meshtastic if that is what your neighbors already run. The best mesh is the one people near you are on, and if your town has an active LongFast network, that beats being the only MeshCore radio for fifty miles. And if you need ATAK, MQTT bridging, or position and sensor telemetry as core features, or simply the largest pool of tutorials and community answers, Meshtastic has the edge today.
If you are in the Brazos Valley and want to talk with us, though, Meshtastic will not get you there. The two protocols use different packet formats, so a Meshtastic radio and a MeshCore radio sitting side by side on 915 MHz simply do not understand each other.
FAQ
Is MeshCore better than Meshtastic?
Neither wins everywhere. MeshCore suits a community mesh with fixed repeaters, because pocket radios stay quiet and direct messages follow learned paths. Meshtastic suits groups where every radio moves and there is no infrastructure, or where you need its larger app and integration ecosystem. Around Bryan–College Station, we run MeshCore.
Can MeshCore and Meshtastic talk to each other?
No. They are separate protocols with different packet formats and different radio settings. A Meshtastic node will not join a MeshCore network (or vice versa), even on the same board in the same band.
Can I use the same board for both?
Usually, yes. Most popular 915 MHz boards are supported by both projects, and you reflash to switch. Check each flasher for your exact model first.
Why does my new Meshtastic node hear nobody?
On 2.8 pre-release firmware, new US nodes default to LongTurbo, which cannot hear LongFast. Match whatever preset your local mesh uses.
Why is my Meshtastic mesh mostly position packets?
Meshtastic floods broadcasts, so every node's position updates are repeated across the mesh. One or two nodes with short intervals can dominate the channel. Find the chatty node with Channel Utilization and Air Utilization TX in the app, or with a logger like lorakeet. Then set stationary nodes to fixed position with a long interval, give mobile nodes sensible smart position settings, and turn off telemetry you do not use. MeshCore avoids most of this because companions do not rebroadcast.
Do MeshCore companions repeat messages?
No. Only repeaters forward traffic (a room server can too, if its admin turns repeat on). That is a deliberate design choice to cut down on collisions.
What does Brazos Valley Mesh run?
MeshCore, on the USA/Canada (Recommended) preset. Start with our first MeshCore weekend guide or the get connected page.
Getting on the Brazos Valley mesh
If you would rather skip flashing, our Pocket Mesh Node is a RAK19003 WisBlock companion with a 2000 mAh battery and an external 915 MHz antenna, made to order and flashed with MeshCore or Meshtastic, your choice. If you're joining us around Bryan–College Station, we recommend MeshCore. That is what our repeaters run, and the two do not talk to each other on the air. The Pocket Node Duo Bundle gives you two. That is how we suggest everyone starts, because a mesh of one is just a radio.
Buying a node anywhere is fine. Buying from us funds the local mesh, since proceeds go into repeaters and rooftop work around the valley.