MeshCore is an independent off-grid LoRa mesh platform — a lean alternative to Meshtastic with lower protocol overhead, path-selective routing, and a deliberate node-role model. UK-originated. Website: meshcore.co.uk
🏗 Architecture
Philosophy

MeshCore uses path-selective forwarding — nodes don't flood-rebroadcast every packet. Routing is deliberate and path-aware, reducing airtime and collisions in dense networks.

Node Roles
COMPANION
Your personal radio. Connects to phone/laptop via USB/BLE. Sends and receives for the user.
REPEATER
Infrastructure relay. Forwards mesh traffic. No user device needed. Deploy at elevation or fixed sites.
ROOM SERVER
Persistent store-and-forward gateway. Can bridge to internet. Holds messages for offline nodes.
BBS NODE
Bulletin Board System mode. Async message store and forward. Good for sporadic links.
vs Meshtastic Routing

Unlike Meshtastic's managed flood, MeshCore repeaters learn routes and selectively relay — reducing duty cycle usage. Critical in EU 868MHz 1% regions. MeshCore defaults to 869MHz sub-band (10% DC allowance).

📦 Packet Structure

Compact binary frame optimised for LoRa's limited payload:

MeshCore Frame (typical layout)
Preamble1BSync / frame type identifier
Sender ID4BNode identifier (truncated hash)
Dest ID4BTarget node or broadcast (0xFFFF)
Seq / TTL2BSequence number + hop count limit
Msg Type1BTEXT / ROUTE_REQ / ROUTE_ACK / PING
PayloadVarMessage body or route data (UTF-8)
CRC2BFrame integrity check

Compact header vs Meshtastic's protobuf framing = less overhead per packet, important where airtime is the bottleneck.

📡 LoRa Parameters
ParameterDefaultNotes
Frequency869.525 MHzEU 869MHz SRD (10% DC)
Spreading FactorSF11Range/speed balance
Bandwidth250 kHzWider than Meshtastic default
Coding Rate4/5Minimal FEC overhead
TX PowerUp to 27 dBmHardware dependent
Sync Word0x2BDiffers from Meshtastic 0xF3

869.525MHz allows up to 10% duty cycle at ≤25mW ERP vs 1% on standard EU 868MHz — much more airtime budget.

🖥 Supported Hardware
DeviceMCUStatus
Heltec WiFi LoRa 32 V3ESP32-S3Supported
Heltec Wireless TrackerESP32-S3Supported
LilyGO T-Beam v1.xESP32Supported
LilyGO T-Beam S3ESP32-S3Supported
TTGO LoRa32 v2.1ESP32Supported
RAK WisBlock 4631nRF52840Community
Seeed Wio-E5STM32WLE5Experimental
↗ Full list at meshcore.co.uk
⚡ Flashing MeshCore
ESP32 — esptool
$ pip install esptool
$ esptool.py --chip esp32s3 --port COM5 \
  write_flash 0x0 meshcore-heltec-v3.bin
Web Flasher

meshcore.co.uk → Downloads → Flash Online. Chrome/Edge required.

nRF52 — UF2

Double-tap reset → BOOT drive appears. Drag .uf2 onto drive.

First Boot

Connect via MeshCore Web client or serial at 115200 baud. Set role, region, and call sign before transmitting.

⚖ vs Meshtastic
AspectMeshtasticMeshCore
RoutingManaged floodPath-selective
ProtocolProtobufCompact binary
EU frequency868.1MHz (1% DC)869.5MHz (10% DC)
Node modelAll nodes equalCompanion / Repeater
BLEFullLimited
TelemetryFull sensor suiteMinimal
EcosystemVery largeLean, focused
Interoperable?❌ Separate networks — not compatible
🌐 Resources
↗ meshcore.co.uk ↗ Web Client ↗ GitHub

Developed by ripplebiz. UK-originated, actively maintained. Community on Discord (linked at meshcore.co.uk) and GitHub Discussions.

→ Open Web Client Launcher