MeshCore-Firmwares im Überblick: Offizielle Version vs. Evo-Fork

MeshCore entwickelt sich rasant zur bevorzugten LoRa-Mesh-Plattform für Bastler und Infrastruktur-Betreiber. Neben der offiziellen Firmware von meshcore-dev hat sich mit MeshCore-Evo ein spezialisierter Fork etabliert, der gezielt Probleme großer und dichter Mesh-Netze adressiert — etwa Flood-Advert-Traffic und TX-Duty-Cycle-Management. Dieser Beitrag vergleicht beide Firmwares, beleuchtet Airtime-Mechanismen und Hardware-Abhängigkeiten und zeigt Alternativen im Ökosystem.

Die offizielle MeshCore-Firmware (meshcore-dev/MeshCore)

MeshCore ist eine schlanke, portable C++-Bibliothek für Multi-Hop-Paketrouting über LoRa und andere Paketradios, entwickelt für dezentrale, internetunabhängige Kommunikationsnetze. Das Projekt positioniert sich bewusst zwischen Meshtastic (eher auf Plauder-Verkehr ausgelegt) und Reticulum (umfangreiches Networking-Framework) und legt den Fokus auf leichtgewichtiges Multi-Hop-Routing für Embedded-Anwendungen.

Die Firmware wird in mehreren Rollen ausgeliefert, die sich im Verhalten deutlich unterscheiden:

  • Companion Radio — Client-Gerät, das sich per BLE, USB oder WiFi mit einer Chat-App verbindet. Companion-Knoten leiten bewusst keine Pakete weiter, um ungünstige Routing-Pfade zu vermeiden.
  • Repeater — verlängert die Netzreichweite durch Weiterleitung von Nachrichten.
  • Room Server — eine Art BBS-Server für geteilte Posts.
  • Sensor — Telemetrie-Knoten mit ACL-Unterstützung.
  • KISS Modem — Serial-KISS-Bridge für Host-Anwendungen.

Fertige Binaries lassen sich über den Web-Flasher unter flasher.meshcore.dev bzw. flasher.meshcore.co.uk auf eine breite Palette von LoRa-Hardware (Heltec, RAK Wireless, Ebyte, Seeed, u.a.) schreiben, ohne selbst kompilieren zu müssen. Die Konfiguration von Repeater- und Room-Server-Firmwares erfolgt über config.meshcore.io (USB) oder remote per LoRa aus den Mobile-Apps heraus. Die Roadmap nennt unter anderem ACLs für Repeater, standardisierten Bridge-Mode, erweiterte Zero-Hop-Nachbarerkennung, LZW-Nachrichtenkompression, dynamische Coding Rate und langfristig eine V2-Protokollspezifikation.

Airtime-Management in der offiziellen Firmware stützt sich auf klassische Duty-Cycle-Prüfungen pro Sendung, eine feste Hop-Begrenzung sowie rollenbasiertes Routing (Companion-Knoten repeaten nicht). Ein rollierendes Duty-Cycle-Fenster und adaptive Flood-Advert-Begrenzung sind als Pull Requests offen (PR #1297, #1338), aber noch nicht im Main-Branch enthalten.

MeshCore-Evo (mattzzw/MeshCore-Evo)

MeshCore-Evo versteht sich ausdrücklich als friendly fork der offiziellen Codebasis. Ziel ist es nicht, eine alternative Mesh-Plattform aufzubauen, sondern Repeater-Firmwares mit ausgewählten, noch nicht gemergten Upstream-PRs und zusätzlichen Patches bereitzustellen — insbesondere für Betreiber großer oder dichter Netze. Der Fork bezieht sich regelmäßig frisch auf den offiziellen dev- oder main-Branch und legt pro Release transparent offen, welche Änderungen eingeflossen sind.

Die wiederkehrenden Kernänderungen gegenüber dem offiziellen Build sind:

  1. Token-Bucket Duty-Cycle Enforcement (Upstream-PR #1297). Damit wird der TX-Airtime-Budget nicht mehr pro Sendung, sondern in einem rollierenden Zeitfenster gemanagt. Das erlaubt zentralen, stark frequentierten Repeatern einen robusteren Sendebetrieb, ohne die regulatorischen 1 %- bzw. 10 %-Duty-Cycle-Grenzen (ETSI 868 MHz) zu verletzen.
  2. Limit Flood Advert Packet Forwarding (PR #1338). Ein neuer Parameter flood.advert.base (Float zwischen 0 und 1, Default ~0,308) entscheidet probabilistisch, welcher Anteil der empfangenen Flood-Adverts überhaupt weitergeleitet wird. 0 schaltet Flood-Advert-Forwarding komplett ab, 1 leitet alles weiter. Hintergrund ist das Problem, dass in dichten Meshes Flood-Adverts einen erheblichen Anteil der Airtime auffressen.
  3. Längere Advert-Intervalle: flood.advert.interval und advert.interval lassen sich deutlich höher setzen als im Upstream — bis zu 168 h (wöchentliche Flood-Adverts). Empfohlen werden in den Release-Notes z. B. flood.advert.interval=168 und advert.interval=240 (alle 4 h).
  4. EU/Narrow LoRa-Defaults bei frisch geflashten Boards, was Fehlkonfigurationen in europäischen Deployments vorbeugt.
  5. Hardware-spezifische Patches: Für das RAK4631-Variant wurde die Boot-Lockout-Spannung gesenkt (z. B. von 3,3 V auf 3,1 V bzw. 0 V), damit Boards mit LiFePo4- oder LTO-Zellen (etwa die uart.cz-Boards) überhaupt booten. Außerdem enthielten frühere Builds einen undokumentierten Register-Patch zur Verbesserung der RX-Empfindlichkeit des Heltec V4 (PR #1398, inzwischen upstream gemergt).

Die aktuellen Evo-Releases basieren auf MeshCore 1.13/1.14 und liefern ausschließlich Repeater-Firmwares — keine Companion- oder Room-Server-Builds. Der unterstützte Hardware-Satz (Ebyte EoRa-S3, Heltec CT62, Heltec Mesh Solar, RAK4631, generische E22 SX1262/SX1268 etc.) entspricht einer Teilmenge der offiziellen Hardware-Liste, fokussiert auf gängige Repeater-Plattformen.

Direktvergleich

Aspektmeshcore-dev/MeshCore (offiziell)mattzzw/MeshCore-Evo
Rolle des ProjektsKomplette Plattform mit allen Node-RollenRepeater-Spezial-Build mit Pre-Merge-Patches
Node-TypenCompanion, Repeater, Room Server, Sensor, KISS ModemNur Repeater
Airtime-ManagementKlassisches Duty-Cycle pro SendungToken-Bucket / rolling window (PR #1297)
Flood-Advert-KontrolleUpstream-PR offenAktiv, konfigurierbar via flood.advert.base
Max. Advert-IntervallNiedriger (default 48 h)Bis 168 h (wöchentlich)
LoRa-DefaultsRegionsunabhängigEU/Narrow vorkonfiguriert
Hardware-FixesUpstream-StandRAK4631-Lockout-Patch, frühere Heltec-V4-Patches
Flasher-IntegrationJa (flasher.meshcore.dev)Nein — Binaries aus GitHub Releases, aber uploadbar über flasher.meshcore.dev
Remote-ManagementVollständig unterstütztKompatibel (erbt Upstream-Funktionen)
ZielgruppeAlle AnwenderBetreiber großer/dichter Meshes
Release-TaktRegelmäßig, versioniert (aktuell v1.14.x)Folgt dev/main zeitnah nach

Wichtig zu betonen: MeshCore-Evo ist protokollkompatibel zur offiziellen Firmware. Ein Evo-Repeater spricht mit Companion-Knoten und Room-Servern des Upstream-Builds ohne Anpassungen. Der Fork ersetzt also nicht das Ökosystem, sondern optimiert einen spezifischen Knoten-Typ für Netze, in denen Airtime und Advert-Flut sonst zum Problem werden.

Hardware-Abhängigkeiten

Beide Firmwares unterstützen im Wesentlichen die gleiche Hardware-Basis: nRF52840-basierte Boards (RAK4631, Heltec Mesh Node T114, Heltec Mesh Solar), ESP32/ESP32-S3-Boards (Heltec V3/V4, Ebyte EoRa-S3, LilyGo T-Beam, T3-S3) sowie generische SX1262/SX1268-Module. Da Evo auf den offiziellen Boards-Definitionen aufsetzt, sind neu hinzugefügte Geräte im Upstream automatisch auch für Evo baubar — die veröffentlichten Binaries decken allerdings nur eine kuratierte Teilmenge ab. Wer exotische oder sehr neue Hardware fährt, ist mit dem offiziellen Flasher besser bedient; wer zentrale Repeater auf Standard-Hardware betreibt, profitiert vom Evo-Feature-Set.

Alternativen im MeshCore-Umfeld und darüber hinaus

Rund um MeshCore selbst existieren mehrere relevante Projekte:

  • liamcottle/meshcore.js — Node.js-Bibliothek und Web-Client (app.meshcore.nz) für Companion-Firmware.
  • fdlamotte/meshcore-cli — Python-Kommandozeilen-Client.
  • config.meshcore.dev / config.meshcore.io — Web-basierte Konfigurations-Tools für Repeater und Room Server.

Als alternative Mesh-Protokolle/-Firmwares außerhalb von MeshCore sind vor allem zu nennen:

  • Meshtastic (meshtastic.org) — der Platzhirsch im LoRa-Mesh-Bereich, breitere App-Landschaft und größere Community, aber mit anderem Routing-Ansatz und höherem Overhead, was in dichten Netzen schneller zu Airtime-Problemen führt.
  • Reticulum / RNS (reticulum.network) — universelles, kryptografisch abgesichertes Networking-Stack, das nicht auf LoRa beschränkt ist. Deutlich umfangreicher als MeshCore, dafür ressourcenhungriger.
  • disaster.radio — älteres Open-Source-Projekt für Krisenkommunikation per LoRa, inzwischen weniger aktiv.
  • LoRa APRS / OE5BPA-Firmware — für Amateurfunker im APRS-Kontext, kein klassisches Mesh, aber im gleichen Hardware-Ökosystem.

Für reinen Repeater-Betrieb in großen MeshCore-Netzen ist Evo derzeit die naheliegendste Alternative zur Upstream-Firmware. Wer hingegen Companion- oder Room-Server-Knoten betreibt oder aktuelle Flasher-Integration braucht, fährt mit meshcore-dev/MeshCore am besten — und kann Evo gezielt dort einsetzen, wo es weh tut: auf den zentralen, stark frequentierten Repeatern.

Quellen

Weitere News

Rund um das offene LoRa-Mesh-Protokoll MeshCore ist binnen eines Jahres ein erstaunlich lebendiges Ökosystem an Smartphone-Clients entstanden. Drei…

Weiterlesen

Mit einem kleinen Tool wird aus dem klassischen Bluetooth- oder USB-Client ein vollwertiger WiFi-Zugangspunkt: MeshCore-Companions lassen sich über…

Weiterlesen

Mit einem neuen MeshCore Repeater entsteht am Funkturm Wilsdruff ein autarkes Funknetz. Das Dresdner Netzwerk MeshDD hat bereits erste Fortschritte…

Weiterlesen