Ich habe diesen Text zum Einstieg in Meshcore verfasst, so wie ich ihn als Meshcore-Neuling, der im Internet nach einer Einführung fahndet und dem die darunter liegende Funk-Technik, die wie Lora oder LoraWAN in den meisten Erst-Einführungen in den Vordergrund gestellt wird, dahinter erst einmal egal ist, gern gelesen hätte. Mail mir gern Verbesserungen dieses Textes zu. Ich möchte, dass mehr Menschen, die mit Funktechnik nichts am Hut haben, Meshcore entdecken. Der Umgang mit Meshcore ist noch immer einer Thema für Nerds, aber nur weil es neu, nicht weil der Umgang kompliziert ist. Meshcore ist einfach zu durchschauen, die Nerds werden das Interesse daran verlieren, sobald es im Mainstream angekommen ist.
Trotz der vielen Nebengeräusche können mit Meshcore Nachrichten über viele Kilometer ausgetauscht werden; in einem Stadteil, in einem Dorf, unter Verwandten und Freunden. Meshcore braucht nur geringste Mengen an Strom, weshalb es für den Betrieb grundsätzlich nur kleiner Batterien bedarf, auch wenn die Geräte typischerweise im Alltag natürlich an kleinen USB-Netzteilen laufen. Man kann Meshcore unabhängig von Stromversorgung, Handynetz und Internet nutzen. Meshcore funktioniert im regionalen Umfeld. Meshcore funktioniert genau dann, wenn es wirklich mal drauf ankommt, dass man sich kurz miteinander besprechen muss. Also bspw. im Katastrophenfall eines Blackout. Obendrein sind die Nachrichten verschlüsselt, niemand außer Sender und Empfänger kann Meshcore-Nachrichten lesen.
Auf der Karte den gewünschten Repeater in der Nähe antippen und anschließend die ersten beiden Zeichen des "Public Key" merken. Diese beiden Zeichen dienen als Namen der Repeater, sie lassen sich für die Pfadliste von trace nutzen. Jeden Abend mache ich einmal kurz den Test, ob "meine" Repeater in den drei Nachbarstädten erreichbar sind. Ich gebe dafür die ersten beiden Zeichen des "Public Keys" eines Repeaters für den Hin- und den Rückweg ein. Konkret: Von meinem Hausrepeater "b9" ausgehend gebe ich den für mich wichtigsten Repeater in Kiel an ("18"), die Kette lautet insgesamt "b918b9". Oder wenn ich einen Nutzer, vergraben zwischen den Häuserwänden in der Gartenstraße in Kiel, dessen Repeater dort ein "9b" hat, erreichen möchte, teste ich den Pfad bis zur Gartenstraße mit "b918569b5618b9". Man muss damit rechnen, dass ein solch langer Trace über hin und zurück 7 hops nicht heil durchkommt, mehrere trace-Versuche können nötig sein. Damit solch ein Versuch gelingt, muss jeder der beteiligten Repeater darauf warten, einzig und allein meinen Trace bedienen zu dürfen. Bei den wichtigen Repeatern einer Stadt ist das unwahrscheinlich, dass sie unterbeschäftigt sind. Wenn man weiss, wie gering die Sendeleistung ist, dass die Sendezeiten in diesem Funkstandard zeitlich beschränkt sind, dass ingesamt eine Luftlinie-Entfernung von 22km besteht und der Empfang zwischen Häuserschluchten funktechnisch sowieso immer ein Problem darstellt, und dass die Zahl an Meshcore-Nutzer*innen, die die wenigen lauten Repeater einer Stadt nutzen, zunimmt, dann ist diese leicht erratische Antwortverhalten zu verschmerzen. Es gilt aber auch: Eine Nachricht nur einmal zu einem Empfänger in die Gartenstraße hin zu transportieren bedeutet, dass nur die Hälfte der Kette für den Moment des Hintransports halten muss, was die Wahrscheinlichkeit der Ankunft einer Nachricht schon mal verbessert. Und zugleich lernt man bei ernsthafter Anwendung, dass eine gelingende Kommunkation, vom Sender initiiert, drauf angewiesen ist, dass ein Text wie "ok empfangen" vom Empfänger zurückgeschickt wird.
Abb. 15: Konfiguration von 4 Geräten Weihnachtsgeschenke für Freunde
Wenn man mit der Zeit die funktionierenden Standard-Pfade zu seinen Kommunikationspartnern kennt, dann sollte man sie in diesen 2-Buchstaben-Notationssequenzen in den Nutzer-Einträgen unter Contacts so auch eintragen. Man muss aber aufpassen: Wenn man an "Settings" unter "Messing Settings" die Option "Auto Reset Path" ein Häkchen setzt, dann werden die von Hand gesetzten Pfadangaben in den Fällen überschrieben, in denen die Zustellung einer Nachricht 5 Mal fehlschlug und durch Flooding ersetzt. Flooding ist flexibel, aber es werden dann nur 3 Versuche der Zustellung einer Nachricht gemacht. Ich habe das Häkchen hier nicht gesetzt, denn bei "heiklen Langstrecken" habe ich beobachtet, dass von Hand gesetzte Pfade und 5 Versuche zu besseren Erfolgen bei der Zustellung führen als Flooding. In einer unbekannten Umgebung ist flooding zu nutzen sinnvoller.
Unter "Settings/Notification Settings" kann man einstellen, ob man vom Handy im Falle neuer Meshcore-Nachrichten benachrichtigt werden möchte. Klar, beim Eintreffen von Nachrichten an mich will ich das, so wie bei anderen Messengern auf meinem Handy auch. Allerdings sollte man überlegen, ob man auch bei jeder Channel-Nachricht benachrichtigt werden möchte, was bei "Public"-Nachrichten im städtischen Umfeld meist nur am Beginn der Beschäftigung mit Meshcore interessant ist. Bei ernsthafter Nutzung von Meshcore tatsächlich anhaltend interessant können Nachrichten sein, die in "rooms" (Mailboxen) hinterlegt werden, in denen man selbst eine Nachricht hinterlegt hat.
Ich gucke auch gern mal in die Logdaten, in denen mitgeschrieben wird, was in meinem Funkgerät alles passiert, was einem aber nicht angezeigt wird. Mit dem Verlassen der App werden diese Logdaten gelöscht. Man kann in diesen Logdaten bspw. erkennen, über welche Repeater Nachrichten weitergeleitet wurden (Logdaten: Drei Punkte rechts oben antippen, dann "Tools", dann "Rx Log"). Meshcore-Nachrichten verlieren mit jedem Weiterreichen an Qualität, die wesentliche Qualität eines Funksignals ist der Signal-Rauschabstand, SNR, wobei ein SNR von 0 bedeutet, dass das Signal und das Rauschen etwa gleich deutlich sind. Signale dürfen so zwischen -13dB und +13dB liegen, bei den traces werden diese Messwerte ausgegeben. Die maximale Hop-Zahl ist auf 64 limitiert. Selbst wenn jede einzelne Hop-Verbindung sehr gut ist (z.B. 10 dB oder besser), steigen mit jedem Hop Verzögerung und Kollisionswahrscheinlichkeit im Funkkanal. Dazu kommen typischerweise Beschränkungen, die die Sendezeit der Repeater begrenzen und lange Ketten unattraktiv machen. Ziel ist es, den Frequenzkanal für alle Nutzer freizuhalten und Kollisionen zu vermeiden. Wenn man dieses Hintergrundwissen hat, versteht man, dass man sich in den Chats möglichst kurz fassen sollte.
Wie schon gesagt, es darf sich jede/r berufen fühlen, einen Repeater zu betreiben. Ein weitgehend autonomer Repeaterbetrieb verlangt geringen Stromverbrauch. Und das bedeutet auf Hardware-Ebene bspw. einen "SX126x" als energieeffizienten LoRa-Transceiver, der LoRa- und FSK-Modulation mit bis zu 22 dBm Sende(TX)-Leistung und niedrigem Empfangs(RX)-Stromverbrauch von ca. 4,2 mA bietet, zu nutzen. Und als Prozessor sollte ein "nRF52xxx" verbaut sein, der über GPIO, Timer und Radio und eine ARM-CPU mit integriertem Bluetooth (extrem stromsparend, im Sleepmodus kleiner als 1 µA!) verfügt. Genau diese Komponenten sind im "Seeed Studio SenseCAP Solar Node P1-Pro" verbaut, den ich als Repeater aufzubauen empfehle. Der P1 ist, inzwischen getestermaßen, wasserdicht und funktioniert, Dank eines kleinen Photovoltaik-Panel und 4 Akkus vom Typ 18650 (mit Polspitze!), autark. Ab und an etwas Fernwartung, das war es an Versorgung und Pflege. Oder man vergisst ihn einfach; dezent montiert auf einem Hochstand für Jäger*innen am Feldesrand in funkstrategisch hervorragender Lage einer Anhöhe mit weitem Blick übers Land. Man kann generell durchaus die Billigversion des P1 ohne GPS nehmen; bei lokalem Betrieb trägt man die obligatorischen Positionsdaten des Repeaters halt von Hand ein. Bis zu dieser Ausbaustufe bekommt man das gesamte Ensemble inkl. Akkus für unter 100€, mit einer kleinen Antenne. Wenn man eine stabilere Antenne montieren möchte, kämen noch mal rund 50 Euro dazu. Die Entwicklerszene von Meshcore ist allerdings agil. Aktuell sieht es deshalb so aus, dass man vielleicht zwei Mal im Jahr dann doch an den Repeater ranmöchte, um über die USB-Schnittstelle ein Update aufzuspielen. Ich mache das mit einem Laptop, auf das ich zuvor die Formware kopiert habe und mit dem ich zum Repeater aufs Dach gehe. Beim USB-Connect zwischen Laptop und Repeater öffnet sich ein Dateifenster, in dem die alte Firmware des Repeater angezeigt wird. Dann kann man schlicht die neue Firmware-Version auf das Gerät kopieren. Der Repeater resettet anschließend und läuft danach auf der neuen Firmware, mit der alten Config. Über die Fernwartungsoption für den Repeater, die ich auf meinem Compagnion starte, lassen sich dann ggfs. neue Optionen des Repeaters einstellen.
Es gäbe noch einiges mehr anzusprechen. Stattdessen noch ein knappes Wort zu dem "Konkurrenzprojekt" Meshtastic: Ich war mit Meshtastic, nach einem Artikel in der Septemberausgabe der CT 2025, in diesen Thema gestartet. Die Anfänge von Meshtastic waren vielversprechend, Nutzergeräte die zugleich Repeater sind fand ich außerdem konzeptionell pfiffig. Allerdings war es bei Meshtastic über einige Wochen nicht möglich, einen mir wichtigen Nachrichtentransport über 25km umzusetzen, was nach dem Umstieg auf Meshcore fast auf Anhieb gelang. Ich bin von Meshcore überzeugt, denn inzwischen denke ich, dass im Zweifel Ruhe (= nur begrenzte Zahl von Repeatern wie bei Meshcore) mehr Resilienz verspricht als Lautstärke (möglichst viele Repeater wie bei Meshtastic). Das ist letztlich keine Glaubenssache, sondern lässt sich beforschen, nur habe ich dazu noch keine Studie gefunden. Vielleicht irre ich mich auch und Meshtastic ist leistunsgfähiger und resilienter. Im Moment sieht es so aus: Es können beide Netze gut nebeneinander bestehen, was wiederum die Resilienz der von Bürger*innen selbst organisierten Netzinfrastrukturen insgesamt steigert: Funktioniert ein Netz nicht, gibt es das andere.
Fazit: Es handelt sich bei Meshcore, den Funkgeräten und der App, nicht um ein Consumer-Produkt; man muss sich damit, wenn es verlässlich funktionieren soll, schon ein wenig beschäftigen. Erfahrungsgemäß haben Viele keine Lust dazu; der Überhang an Funkamateuren in der noch immer anhaltenden Pionierphase ist auffällig. Aber ein (Lora-)Nerd muss man dafür nicht mehr sein.