1. Einführung
1.1 Projektbeschreibung
Ziel dieses Projekts war das Experimentieren mit Meshtastic auf LoRa-fähigen Geräten.
Meshtastic ist ein Open-Source-Projekt, das es ermöglicht, ein Mesh-Netzwerk aufzubauen, das auf der LoRa-Technologie basiert. Es ist eine kostengünstige und energieeffiziente Möglichkeit, ein Netzwerk aufzubauen, das unabhängig von Internet und Mobilfunknetzen funktionieren kann.
Fragestellung
Ist Meshtastic als unabhängiges Kommunikations-Netzwerk für den Krisenfall im Raum Dresden geeignet?
1.2 Technologie
Was ist LoRa?
LoRa (von Long Range) ist eine proprietäre Funktechnologie im Besitz von Semtech. Sie ist für die Langstreckenübertragung (z.B. 10 km), schmalbandige Übertragung (gemessen in Kbps) und energiesparende Kommunikation konzipiert, hauptsächlich für Internet of Things (IoT)-Netzwerke. Dafür wird eine drahtlose Modulationstechnik, die aus der Chirp Spread Spectrum (CSS)-Technologie abgeleitet ist verwendet. Sie codiert Informationen auf Radiowellen mithilfe von Chirp-Impulsen! Die modulierte Übertragung von LoRa ist robust gegen Störungen und kann über große Entfernungen empfangen werden.
Es eignet sich ideal für Anwendungen, die kleine Datenmengen mit niedrigen Bitraten übertragen. Daten können über eine längere Reichweite übertragen werden im Vergleich zu Technologien wie Wlan, Bluetooth oder ZigBee. Diese Eigenschaften machen LoRa besonders geeignet für Sensoren und Aktoren, die im Niedrigenergiemodus arbeiten.
Außerdem arbeitet LoRa in einem lizenzfreien Sub-Gigahertz-Frequenzband (d.h. unter 1 GHz), aber die zu verwendenden Frequenzen variieren von Region zu Region aufgrund regulatorischer Anforderungen. Wenn Sie ein LoRa-Gerät kaufen, muss sichergestellt sein, dass das richtige Frequenzband unterstützt wird.
In Europa - 863–870MHz (normalerweise 868MHz).
Warum LoRa?
LoRa versucht die Lücke zwischen zwischen Kommunikationstechnologien wie WiFi, Bluetooth und LTE zu schließen.
https://www.semtech.com/uploads/images/LoRa_Why_Range.png Semtech
Es ist für große Reichweite, kleine Bandbreite und Niedrigenergiekommunikation gemacht. Alles in allem also extrem nützlich für IoT Geräte. Einige Beispiele sind:
- Wassersensoren in einer entfernten Umgebung (Grundwasser)
- Rauchwarnmelder
- Tierbeobachtung
- Verbrauchsmessungen bei Endkunden (Gas, Strom)
- Wetterstationen die nur ab und zu Informationen übertragen
LoRa and LoRaWAN
LoRaWAN ist über LoRa angesiedelt und definiert das Kommunikationsprotokoll und die Systemarchitektur.
Es ist wichtig zu verstehen, dass es möglich ist LoRa ohne LoRaWAN zu benutzen. Andere LoRa basierte Netzwerke sind Helium, The Things Network Disaster.radio und, was wir weiter betrachten werden, Meshtastic.
Meshtastic
Wie im vorherigen Absatz erwähnt, baut Meshtastic auf LoRa auf und schafft ein dezentralisiertes Mesh-Netzwerk.
Es bringt folgende Eigenschaften mit sich:
- Verschlüsselte und Textbasierte Kommunikation
- Plattformunabhängig
- Computer (unabhänging vom Betriebssystem)
- Android (dedizierte Chat-App)
- iOS (dedizierte Chat-App)
- Dezentralisiert
- Geringer Stromverbrauch
- Optionales Standort teilen
- Open-source
Anders als traditionelle Mobilfunknetzwerke, verbindet sich jedes Endnutzergerät mit einem LoRa Radio und alle LoRa Radios, welche Meshtastic nutzen, können Nachrichten, selbst wenn die Radios nicht im gleichen Mesh sind, weiterleiten. Das passiert so lange, bis die Nachricht Ihr Ziel erreicht oder die voreingestellten “Hops” ausgeschöpft werden.
https://loganmarchione.com/2023/05/lora-and-meshtastic/20230510_003.png
1.3 Geräte
Folgende Geräte haben wir für das Projekt genutzt:
Heltec LoRa32 v3
- max TX power: +21dBm
LILYGO T-Echo
- max TX power: +21dBm
LILYGO T-Deck
- max TX power: +21dBm
1.4 Flashen der Firmware
Hardware identifizieren oder auswählen
Meshtastic wird offiziell nur von bestimmten Geräten welche ein LoRa Modul innehaben supportet.
Es ist darauf zu achten, dass jedes Gerät welches im Meshnetz betrieben werden soll auf der gleichen Frequenz arbeitet. Hier gibt es unterschiede!
In deutschland können die freien Frequenzbänder 433 MHz und 868MHz, auf welchen Lora operiert, ohne Lizenzkosten oder Amateurfunklizenz genutzt werden.
Solange WLAN Verbindung zu einem Device nicht notw. ist und Bluetooth ausreicht, sollte ein nRF52 Chip gewählt werden, da diese energieffizienter als ESP32 Chips und einfacher zu flashen sind. Es gibt auch noch Geräte auf Basis des RP2040, diese haben wir allerdings nicht getestet.
Eine Liste mit unterstützer Hardware findet sich hier:
https://meshtastic.org/docs/hardware/devices/
Serial Treiber
ESP32
Einen für das eigene Betriebssystem passenden Treiber auf folgender Seite identifizieren, herunterladen und Installieren:
https://meshtastic.org/docs/getting-started/serial-drivers
nRF52
nRF52 Chips benötigen normalerweise keinen Serial Treiber. Sie benutzen einen UF2 bootloader, welche das Gerät als USB-Stick vom Betriebssystem erkennen lassen.
Auf keinen Fall folgenden USB geräte treiber herunterladen, es sei denn es wird UF2 support benötigt
https://meshtastic.org/docs/getting-started/serial-drivers/nrf52
Firmware Flashen
ESP32
https://meshtastic.org/docs/getting-started/flashing-firmware/esp32/ Da es bei uns auf verschieden PCs probleme gab haben wir zum Flashen unter Linux eine Nix-Flake erstellt, die Python mit den richtigen Paketen installiert und eine kleine Anleitung (auch zum selber Compilieren der Firmware) für esp32 und nRF52 Geräte enthät.
nRF52
https://meshtastic.org/docs/getting-started/flashing-firmware/nrf52/ Beim diesen Geräten ist es bei uns manchmal vorgekommen, dass das Flashen von Firmware zwar bis zu dem “Drag und Drop”-Schritt funktioniert und dann aber nicht wirklich mit der neuen Version neu startet. Falls das passiert muss man sich mit einer seriellen Konsole mit dem Gerät verbinden und einfach nur einmal Enter drücken, besonders nachdem Factory-Erase. Das steht unter dem Punkt Factory-Erase auch dokumentiert, aber man benötigt nicht zwingend die Meshtastic CLI, sondern lediglich ein Programm wie z. B. minicom unter Linux.
2. Anwendung
2.1 Software
Zum aktuellen Zeitpunkt gibts es jeweils eine App für iOS und Android. Außerdem gibt es einen Web Client, der sich per Bluetooth, Wi-Fi und Serial verbinden kann.
App | Link | Quellcode |
---|---|---|
Android | https://play.google.com/store/apps/details?id=com.geeksville.mesh | GitHub |
iOS | https://apps.apple.com/us/app/meshtastic/id1586432531 | GitHub |
Web | https://client.meshtastic.org/ | GitHub |
Die Apps werden regelmäßig geupdated und sind modern aufgebaut.
Ursprünglich sollte hier ein Vergleich der Funktionalitäten erfolgen, es gibt aber keine erkennbaren Unterschiede, außer kleinere in der Bennennung und Bedienung.
UI
iOS
Web
3. FAQ
3.1 Häufige Probleme
Kommunikation zum Device funktioniert nicht (Linux)
-
Die Gerät-Datei
/dev/ttyUSB0
gehört der Nutzergruppedialout
. Damit der Nutzer Schreibrechte erhalten kann, muss er zur Gruppe hinzugefügt werden:Der Nutzer muss sich ausloggen und wieder einloggen, damit er in der Gruppe enthalten ist.
-
Prüfen, ob das Kabel zwischen Computer und Gerät auch wirklich Daten übertragen kann.
-
USB-C → USB-C funktioniert manchmal nicht. Dies könnte an einem Fehler bei USB-C Power Delivery liegen. Adapter USB-C → USB-A (findet man meist als OTG-Adapter) schafft Abhilfe.
4. Reichweite
4.1 Theorie
Link-Budget
Die Reichweite einer Funkverbindung lässt sich mittel des Link-Budgets (Leistungsübertragungsbilanz) darstellen und gibt die Qualität eines Funk-Übertragungskanals an. Eines der einfachsten Modelle um ein Linkbudget zu errechnen ist mittels Addition der Sendeleistung (Transmitter Power, Tx), der Empfängerempfindlichkeit (Receiver Power, Rx), des Antennengewinns und der Freiraumdämpfung (Free Space Path Loss, FSPL).
Kenngrößen
Der Spreading Faktor und somit die Reichweite eines Senders sind von den Ausbreitungsbedingungen abhängig. Die Empfängerempfindlichkeit hängt von Signal-Rausch-Verhältnis (SNR), Rauschfaktor (NF) und Bandbreite (BW) ab.
Die Freiraumdämpfung beeinträchtigt die Reichweite. Durch die Verdopplung der Entfernung nimmt die Freiraumdämpfung um 6 dB zu. Reflektionen und Brechungen der Funkwellen an Hindernissen und Boden beeinflussen Signalpegel und Reichweite. Im LoRaWAN-Netzwerk befindet sich eine Seite der Funkverbindung in der Regel in Bodennähe. Hindernisse in der ersten Fresnelzone beeinflussen den Signalpegel auf der Rx-Seite und verkürzen die Reichweite. SF-Werte und somit die Reichweite eines Senders hängen von den Ausbreitungsbedingungen ab. LoRaWAN erlaubt mittels ADR ein automatisches Netzmanagement und regelt damit die Reichweiten der Sender.
dB
Die Einheit dB (Dezibel) wird im Zusammenhang mit Funkverbindungen verwendet, um die Signalstärke, Dämpfung oder Verstärkung von elektromagnetischen Signalen zu messen. dB ist eine logarithmische Einheit, die das Verhältnis zwischen zwei Größen ausdrückt. In Bezug auf Funkverbindungen sind die beiden häufigsten Anwendungen die Messung der Signalstärke und die Angabe von Dämpfung oder Verstärkung.
-
Signalstärke in dBm (Dezibel Milliwatt):
- dBm misst die absolute Leistung eines Signals im Vergleich zu einem Referenzwert von 1 Milliwatt.
- Ein positives dBm-Wert zeigt an, dass das Signal stärker ist als 1 Milliwatt, während ein negativer Wert darauf hinweist, dass es schwächer ist.
- Beispiel: Ein Signal mit -50 dBm ist stärker als ein Signal mit -60 dBm.
-
Dämpfung und Verstärkung in dB:
- dB wird auch verwendet, um die Dämpfung oder Verstärkung von Signalen in einer Leitung oder einem System auszudrücken.
- Eine positive dB-Angabe deutet auf Verstärkung hin, während eine negative dB-Angabe auf Dämpfung hinweist.
- Beispiel: Ein Verstärker, der das Signal um 20 dB verstärkt, erhöht die Signalstärke um das 100-fache.
Bei Funkverbindungen wird die Signalstärke oft in dBm gemessen, während Dämpfung oder Verstärkung von Antennen, Kabeln oder Verstärkern in einfachen dB-Angaben ausgedrückt werden. Dies ermöglicht eine präzise und effektive Kommunikation über die Leistung von Funksignalen und die Leistung von Komponenten in drahtlosen Netzwerken.
Channelsettings
Channelsetting | Long Range / Fast |
Alt Channelname | Long Fast |
Data Rate | 1.07 kbps (default) |
Spreading Factor/ Symbols | 11 / 2048 |
Coding Rate | 4/5 |
Bandwith | 250 |
Transceiverwerte
transmit Power | 21dBm |
Antenna gain | 0dBi |
RX sensitivity | -131dBm |
RX antenna | 0dBi |
Link Budget | 152dB |
WiFi LoRa 32 v3 (SX1262 Lora Chip) P(dBm) = 21dBm Max Receiving sensitivity = -136dBm@SF12 BW=125KHz
(1)https://www.semtech.com/design-support/lora-calculator
Maximal mögliche Übertragunsstärke
(2) https://www.bundesnetzagentur.de/DE/Fachthemen/Telekommunikation/Frequenzen/Grundlagen/Frequenzplan/frequenzplan-node.html (Stand März 2022) Eintrag 251004 (Frequenznutzungsbedingungen) (3) https://www.thethingsnetwork.org/forum/t/max-allowed-antenna-gain-for-lora/37182
Überlegungen
Mit einem Link Budget von 152dBm (Einstellung = long fast, mit 21dBm transmit Power und 0dBi Antenne) lässt sich unter optimalen Bedingungen(nur Freiraumdämpfung(Vakuum)) eine Distanz von mehr als 800km Überwinden. Da dies nur unter optimalen Bedingungen möglich ist werden solche Werte natürlich nicht erreicht.
Im Weltraum können Funksignale tatsächlich viel weiter reisen. Unter Normalbedingungen, auf unserem Planeten spielt die Sichtlinie eine bedeutende Rolle. Aufgrund der Tatsache, dass die Welt eine Kugel ist, ist es möglich mit 1,7m Höhe 4,7km weit zu sehen. Da im sub-GHz Bereich eine quasioptische Ausbreitung für Radiowellen gilt, ist der Horizont auch gleichzeitig eine Begrenzung für Funksignale.
Im nächsten Schritt betrachten wir die Wellenausbreitung mit dem Hata-Okumura-Modell (Hata-Modell).
Das Hata-Modell verwendet verschiedene Begriffe in der Dämpfungsformel, um zwischen verschiedenen Typen von Landoberflächen zu unterscheiden. Es werden ländliche bis zu dicht besiedelte Regionen unterschieden.
Hata-Ausbreitungsformel:
Urban: große Stadt mit großen Gebäuden welche zwei oder mehreren Stockwerken besitzen oder größere Dörfer mit sehr nahe stehenden Häusern.
Medium: Mittelgroße Stadt
Suburban: Vorort
freifläche: Keine großen Bäume oder Gebäude in Sichtlinie.
Die Grafik zeigt die Reichweite nach dem Okumura-Hata-Modell für ein Suburbanes Gebiet bei Nutzung einer 868MHz frequenz. Wie der Grafik zu entnehmen, wird bei unsererem Linkbudget von 152dBm maximal eine Reichweite von ungefähr 6km möglich
Die bereitgestellten Formeln decken nicht alle im Okumura-Modell vorgeschlagenen Bedingungen ab. Hatas Ansatz gilt nur mit folgende Einschränkungen:
Frequenz | 150-1500 MHz |
Distanz | 1-20km |
Höhe Senderantenne | 30-200m |
Höhe Empfängerantenne | 1-10m |
Freifläche(Max) | 64.640km (Begrenzung! Sichtlinie 24.6km) |
Suburban(Max) | 10.130km |
Urban(Max) | 9.975km |
Freifläche(152dB) | 37.943km (begrenzt auf Sichtlinie 24.6km) |
Suburban(152dB) | 5.946km |
Urban(152dB) | 5.855km |
Freifläche(Gebäude) | 12.612km |
Suburban(Gebäude) | 1.220km |
Urban(Gebäude) | 1.018km |
Sichtlinie | 24.6km |
Es darf nicht vergessen werden, dass das Hata-Modell nur eine annäherung im Bereich bei Entfernungen um die 1-20km ist. Alle Werte die darüber berechnet werden sollten mit anderen Werkzeugen überprüft werden. Wie in unserem Fall Freifläche(Max) und Freifläche(Gebäude).
Für (Gebäude) wird eine Dämpfung von 17dB für das Eindringen in Gebäude und ein Verlust von 8dB für das Fading angenommen. Das bedeutet, dass die Analyse an die Bedingungen für Sender innerhalb von Gebäuden angepasst wurde. Das Link-Budget wird daher um 25 dB auf 128dB reduziert.
Für (Max) wird das maximal mögliche legale Limit für Sendeleistung und Antennenverstärkung ausgereizt und liegt bei einem Linkbudget, wie anfänglich dargelegt, von 160.15dB.
(152dB) beschreibt die maximal mögliche ausbreitung des Signals bei der Sendeleistung der von uns verwendeten Geräte.
Die Höhe der Antenne des Senders wurde auf 30Meter festgelegt, da dass Hata Modell nur mit dieser minimalen Höhe arbeiten kann.
Die Empfängerantenne liegt auf 2Meter Höhe.
Fazit
Fazit: Das Hata-Modell kennt keine Erdkrümmung und ist nur eine erste Näherung. Als Kontrolle sollten bei Berechnungen immer die Sichtlinie beachtet werden und damit die plausabilität der Berechnung kontolliert und ggf. eingeschränkt werden. Die minimale Höhe der Senderantenne macht die Anwendung des Hata-Modells für unser Projekt weniger praktikabel gibt jedoch einen ersten Anhaltspunkt um mit unseren Messwerten zu vergleichen.
Notizen
Link-Budget Formel
Line of Sight tool
Beispielrechnung
Let’s consider a simplified example of a LoRa link budget for a point-to-point communication link. Please note that real-world scenarios are more complex and involve additional factors, but this example should provide a basic understanding:
-
Transmit Power (Tx Power): Let’s assume the transmitter has a power output of 20 dBm.
-
Frequency (f): Assume a frequency of 868 MHz.
-
Distance (d): Let’s consider a communication distance of 2 kilometers.
-
Antenna Gains (Gt and Gr): Assume both the transmitter and receiver antennas have a gain of 2 dBi.
-
Free Space Path Loss (Lp): Using the free space path loss formula:
Here, (c) is the speed of light. The result will be the path loss in dB.
-
Received Power (Rx Power): Plug the values into the link budget equation:
Substitute the values and calculate the received power.
The calculated received power should be compared with the receiver’s sensitivity specification. If the received power is higher than the sensitivity threshold, the link is expected to work under the specified conditions.
Keep in mind that this is a simplified example, and in a real-world scenario, additional factors such as atmospheric conditions, interference, and fading effects should be considered for a more accurate link budget analysis.
4.2 Praxistest
In unseren Praxistests am Elbufer in Dresden haben wir eine Reichweite von 4km Luftlinie erreicht.
Wir sind mit dem Fahrrad jeweils vom Blauen Wunder in beide Richtungen gefahren und haben unsere Meshtastic Geräte im Rucksack mitgenommen.
Für den kontinierlichen Sendetest, haben wir in den Moduleinstellungen den Range Test aktiviert und auf ein Interval von 1min gestellt.
Mithilfe eines Setup QR Codes, konnten wir unser Mesh aufbauen.
Node “Meshtastic 45b0” war noch von einem vorherigem Versuch im Mesh enthalten, aber nicht am Experiment
beteiligt.
Startpunkt: Blaues Wunder. Göran stand auf der Brücke und hat die Nachrichten empfangen.
Christian (Sventastic) ist nach Westen Richtung Stadt gefahren. Julian nach Osten Richtung Pillnitz.
Bei ~3km Gesamt-Distanz (Luftlinie) herrschte immer noch eine gute Verbindung von der Brücke zu beiden anderen Nodes.
Bei ~3.2km Distanz (Luftlinie), begann die Verbindung von Göran zu Christian schlechter zu werden.
Logfiles
Die Logfiles der Nodes wurden aufgezeichnet und können hier eingesehen werden:
Node | Typ | Link |
---|---|---|
Göran | Metrics | Download |
Position | Download | |
Julian | Metrics | Download |
Position | Download | |
Sventastic | Metrics | Download |
Position | Download |
Fazit
Dieser Test konnte zeigen, dass Meshtastic mit batteriebetriebenen Geräten ohne besondere Ausrichtung der Antennen eine gute Distanz auf Luftlinie zurücklegen kann. Wegen der Weiterleitung von Nachrichten konnte die Verbindung zwischen Christian und Julian aufrechterhalten werden.
Die Werte ließen sich wahrscheinlich auch noch verbessern, wenn bessere Antennen verwendet würden und eine genauere Ausrichtung der Antennen erfolgen würde.
Innerhalb der Stadt, mit vielen Gebäuden und anderen Hindernissen, ist die Reichweite wesentlich geringer. Das Meshnetzwerk müsste dann enger aufgebaut werden, um eine gute Verbindung zu gewährleisten.
4.3 Simulation
Die Wartung vieler Meshtastic Nodes für den Zweck des Experimentierens mit der Software bzw. dem Protokoll kommt mit einem größeren Aufwand einher. Dafür kann sich eine Simulation besser eignen, um Resultate ohne Aufwand direkt beobachten zu können.
Mit der Software Meshtasticator ist es möglich, ein Meshtastic Netzwerk zu simulieren. Diese basiert auf zwei vorherigen Simulatoren (lora-network-simulator und LoRaSim) und nutzt unterliegend die Meshtastic Linux Anwendung, weswegen die Verwendung eines Linux Betriebsystems Voraussetzung ist.
Wir haben den Simulator in einer Ubuntu-VM installiert. Einige Pakete mussten installiert werden.
Danach musste man das Meshtasticator und Meshtastic-Firmware Repository herunterladen.
Um die Firmware zu compilieren, benötigt man PlatformIO
. Das Tool lässt sich mit dem System Paketmanager wie z.B. apt
installieren, häufig bekommt man eine veraltete Version, da die Paketquellen der meisten Betriebsysteme nur langsam aktualisiert werden.
Deshalb empfehlen wir, den Paketmanager von Python zu nutzen:
Der Installationspfad liegt in ~/.local/bin
, welcher nicht standardmäßig in der Systemvariable PATH
enthalten sein kann. Falls der Befehl pio
beim Aufruf nicht gefunden wird, reicht es aus, den Installiationspfad zum System-PATH
hinzuzufügen:
Die Meshtastic Firmware, welche normalerweise für IoT Hardware kompiliert wird, kann auch nativ auf einem Linux Betriebsystem mithilfe von Portduino ausgeführt werden.
Mit Environment-Parameter native
baut PlatformIO die Firmware für ein Linux Betriebsystem.
Das kompilierte Binary befindet sich dann im Ordner firmware/.pio/build/native
.
Damit der Meshtasticator die gewünschten Anordnungen simulieren kann, muss die Binary in den Ordner von Meshtasticator kopiert werden. Bevor die Abhängigkeiten von Meshtasticator installiert werden können, sollte in dem Ordner eine Python-Umgebung aktiviert werden:
5. Fazit
Meshtastic ist ein gut voranschreitendes Projekt, dass eine solide Software-Plattform für die Kommunikation zwischen LoRa-fähigen Geräten ermöglicht.
Damit aber Meshtastic als Katastrophennetz eingesetzt werden könnte, sind aktuell noch einige Hürden im Weg.
Für den Einsatz als Katastrophennetz müssten erstmal genug solcher Meshtastic- und LoRa-fähigen Geräte angeschafft werden, sodass ein zuverlässiges Mesh-Netzwerk innerhalb der Stadt aufgebaut werden könnte. Dies müsste am Besten mit einer Großbestellung geschehen, da sonst der Markt überlastet werden und die Preise steigen könnten.
Es müssten genug Geräte innerhalb der Stadt hoch positioniert werden, da die Reichweite von LoRa durch Gebäude wesentlich begrenzt ist. Nur bei freier Luftlinie sind Verbindungen über mehrere Kilometer möglich. Andere Funktechnologien mit mehr Sendeleistung, sind durch Gebäude weniger beeinträchtigt. Aber im Katastrophenfall mit zusammengebrochener Infrastruktur (Black-Out), ist LoRa mit geringem Energieverbrauch besser geeignet.
Aktuell ist Meshtastic noch softwareseitig auf Netzwerke mit bis zu 80 Nodes limitiert. Das reicht bei Weitem nicht, um den Raum Dresden vollständig abzudecken. Das Protokoll scheint auch nicht für solche Mega-Meshes ausgelegt zu sein, was man am maximalen Hop Count von 7 erkennen kann. Ein limitierter Hop Count könnte eine weitreichende Zustellung verhindern.
Die Software ist für ein Open Source Projekt ohne große Finanzierung auf einem guten Niveau, aber noch nicht für allgemeine Nutzung ausgereift. Dafür würde es einen Feinschliff in User Experience und Stabilität benötigen.