Meshtastic ist ein Open-Source, Off-Grid, dezentrales Mesh-Netzwerk, das auf LoRa basiert. Das UI auf dem T-Deck ist funktional aber meh. Für Meshtastic gibt es ein noch etwas wackliges neues schickes UI unter anderem für das Lilygo T-Deck.
Hier habe ich aufgeschrieben, wie ich das neue UI auf mein T-Deck gebracht habe.
Das Lilygo T-Deck wird von Meshtastic unterstützt. Das normale UI ist nicht sehr ansprechend, funktioniert aber.
Im Internet findet man in einigen Ecken versteckt, wie man Meshtastic mit dem neuen UI installiert. Mein Startpunkt war Jeff Gerlings Blog. Allerdings gab es die verlinkte Version nicht und der aktuelle CI-build schien nicht zu laufen…
… Nix Schweres - Meshtastic habe ich auch schon selbst einmal vor langer Zeit aus den Quellen gebaut. Also das alte Repository aktualisieren und los. Upps, zu alt, also neu geclont. Gut so jetzt habe ich auch eine saubere Basis.
Bauen von Meshtastic mit altem UI
Es ist empfehlenswert erst einmal den Build mit dem offiziellen UI zu bauen und zu testen.
Ich habe schon ewig Visual Studio Code mit der Extension “PlatformIO IDE” auf meinem Rechner installiert. Wer meine Schritte nachvollziehen will, muss das nachholen. Ich empfehle Linux dafür. Es sollte aber auch die Windows- oder MacOS-Version funktionieren. Der Bau der Meshtastic-Firmware ist gut auf der Meshtastic-Seite beschrieben. Wir können vor dem Abschnitt “Adding Custom Hardware” aufhören. Das T-Deck ist schon fertig eingebunden.
Upload
Für den Upload über PlatformIO muss das T-Deck in den BOOT-Modus versetzt werden. Das erreicht man indem man den Trackball drückt und das T-Deck einschaltet (oder mit der RST-Taste resettet) und danach die Trackball-Taste loslässt.
Leider hat dies in vielen Versuchen nur einmal funktioniert. Auch der Web-Flasher von Meshtastic (unter Chromium) konnte auch nicht die Firmware erneut auf das Gerät bringen. Lanmge Rede, kurzer Sinn. Meine T-Decks haben wohl einen Fehler. Wwie in issue 62 beschrieben, verhindert ein Pull-Up-Widerstand (R12) am GPIO 46 (C3 INT) den Upload. Also Lötkolben anwerfen und den Widerstand R12 entfernen (siehe Abbildung).
Seit dem Entfernen des Pull-Up-Widerstands lässt sich mein T-Deck sauber flashen!
Bauen von Meshtastic mit neuem UI
Aktuell wird das neue Device-UI von Manuel (mverch67) entwickelt. Damit es in die Meshtastic Firmware eingebaut wird, muss man den Branch tft-gui-work
im Meshtastic Firmware Repository auschecken und die Submodule neu initialisieren.
cd firmware
git checkout tft-gui-work
git submodule update --init --recursive
Jetzt steht ein neues “Project Environment” namens t-deck-tft
in PlatformIO zur Verfügung. Das neue “Project Environment” muss man auswählen, damit eine Firmware mit dem neuen Device-UI für das T-Deck gebaut wird:
- Die Command Palette öffnen und
PlatformIO: Pick Project Environment
ausführen undenv:t-deck-tft
auswählen. - In der Command Palette
PlatformIO: Build
ausführen1. Nach dem Build liegt die Firmware-Datei im Verzeichnis.pio/build/t-deck-tft/firmware.bin
. - Das T-Deck bei gedrückten Trackball einschalten oder resetten.
- In der Command Palette
PlatformIO: Upload
ausführen.
Ich muss danach immer durch drücken des RST-Tasters das T-Deck neu starten, damit die neue Firmware gestartet wird.
Nachdem ich diese Schritte mir aus diversen Videos zusammengesucht hatte habe ich diese Vorgehensweise auch als Kommentar von “Ace_Archer” im Blog-Post von Jeff Gerling. Man sollte auch Kommentare lesen. (Auch wenn oft Blödsinn kommentiert wird, ist das nicht immer so.)
Konfiguration des T-Deck
Am einfachsten ist die Grundkonfiguration mit meshtastic-cli
. Ich habe es mit pipx install pytap2 meshtastic
installiert. Jetzt kann man das T-Deck mit den folgenden Anweisungen konfigurieren.
meshtastic --set lora.region EN_868
meshtastic --set-owner <longname>
meshtastic --set-owner-short <shortname>
Mit der Web-App in Chromium kann man auch leicht das T-Deck konfigurieren. Damit lassen sich auch Nachrichten verschicken und empfangen…
Zwei Dinge muss man beim Einsatz der Web-App bedenken:
-
Meshtastic kann sich nicht über Bluetooth mit dem T-Deck verbinden. Das goilt für alle Meshtastic-Clients.
-
In der Web-App kann man nicht den Amateurfunk-Modus einschalten. Das geht nur mit
meshtastic-cli
und den iOS- uns Android-Apps.
Meshtastic für Funkamateure
Inhaber einer Amateurfunk-Lizenz können Meshtastic im 70cm-Band (433 MHz) nutzen. Das hat den Vorteil, dass Meshtastic mit mehr Sendeleistung verwendet werden kann. Voraussetzung ist allerdings dass man eine Amateurfunk-Lizenz haben muss. Die zweite Voraussetzung ist, dass die Kommunikation mit Meshtastic nicht verschlüsselt ist (Grundvoraussetzung im Amateurfunk). Die dritte Voraussetzung ist, dass die Kommunikation mit dem Rufzeichen des Funkamateurs erfolgt.
Die Einstellungen in Meshtastic sind einfach:
- Rufzeichen als “Long name” eintragen.
- Licensed Operator einschalten
Wie das genau geht findet man auf der Meshtastic-Seite.
Wie man lizenzierter Funkamateur erfährt man am besten von einem Funkamateur. Wer keinen kennt, kann in Deutschland einem Ortsverband des DARC Kontakte knüpfen. Leider ist nicht leicht auf der Webseite eine Liste mit den Ortsverbänden gefunden. Hier ist Google dein Freund. Über die Distrikt-Seite findet man eine Landkarte, über die man einen Ortsverband in der Nähe finden kann.
Quellen
-
Jeff Gerling: Realizing Meshtastic’s Promise with the T-Deck (abgerufen am 2024-12-24)
-
Lilygo: Documentation - Can’t Enter Download Mode #62 (abgerufen 2024-12-25)
-
Meshtastic: Lilygo(R) T-Deck (abgerufen am 2024-12-24)
-
Meshtastic: Building Meshtastic Firmware (abgerufen am 2024-12-26)
-
Meshtastic: Meshtastic Flasher (abgerufen am 2024-12-16)
-
Meshtastic: Meshtastic Web (abgerufen am 2024-12-25)
-
Meshtastic: FAQ - Amateur Radio (ham) (abgerufen 2014-12-26)
-
DARC: Webseite (abgerufen 2024-12-26)
-
DARC: DARC Dstrikte (abgerufen 2024-12-26)
-
Leider läuft der Build in Schritt 2 wegen eines Fehlers nicht durch. In Meshtastic wurde die Protobuf-Definition verändert.
lib/device-ui/source/ViewController.cpp
muss entsprechend angepasst werden. Ich habe in Zeil 493byte[233]
und folgende gelöscht und damit lief mein Build durch. ↩︎