Zum Inhalt springen

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.

Terminal window
sudo apt install git python3-tk python3-pip python3-venv \
gpiod libgpiod gpiod libgpiod-dev \
libgpiod2 libyaml-cpp-dev libbluetooth-dev

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:

Terminal window
pip install platformio

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:

Terminal window
export PATH="$HOME/.local/bin:$PATH"

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.

Terminal window
pio run --environment native

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:

Terminal window
python3 -m venv venv
source venv/bin/activate
Installieren der Abhängigkeiten
pip3 install -r requirements.txt