Vor längerem hatte ich mir etwas Zeit genommen, eine kleine Satelliten-Grundstation aufzubauen. Mit dem TinyGS-System kann man einige der heute aktiven CubeSats empfangen. Das System ist einfach und preisgünstig und lässt sich für eigene Zwecke einsetzen. Dazu später mehr. Zuerst einmal die Station im Einsatz und dann ein paar Worte zu Aufbau und Konfiguration.
Inhalt
So funktioniert sie
Auf der Webseite des TinyGS-Projekts sieht man viele aktive Empfangsstationen. Sichtbar sind auch einige der empfangbaren Satelliten an ihrem aktuellen Ort am Himmel (fast hätte ich „Standort“ geschrieben).
Meine Station ist immer online, kann aber wegen ihrer schlechten Sicht an den Himmel nur einen Teil der Aussendungen empfangen. Der Empfänger steht in einer Kiste in einer Ecke auf dem Balkon. Zwei Richtungen sind komplett durch Hauswände verdeckt.
Norby ist häufig zu entdecken. Viele Daten haben einen CRC-Fehler (Prüfsumme). Mir ist nicht ganz klar, ob dies auf schlechten Emfang bei mir zurückzuführen ist, oder ob es unbekannte Satelliten sind, die mit deaktivierter CRC senden.
Die Inhalte sind (mehr oder weniger) im Klartext und verständlich.
Das Gesamtsystem hat folgenden Aufbau:
TinyGS weiss auf Grund der Position und Zeit, welche überfliegenden Satelliten empfangen werden klönnen. Die entsprechenden Informationen (u.a. die Frequenz) erhält das Modul via Internet mit dem MQTT-Protokoll von der zentralen TinyGS-Plattform.
So sieht sie aus
Die mechanischen Komponenten sind:
- ein TTGO2 Modul, ein Mikrocontrollermodul auf Basis ESP32
- eine ca. 30cm grosse Turnstile Antenne für das 70cm Amateurfunk-Band
Als Software-Bestandteile:
- die Firmware
- ein Telegram-Kanal, worin der TinyGS Personal Bot auf Anweisungen wartet (für die MQTT-Passwörter und einen passwortlosen Fernzugang).
Flashen des Moduls
Mein Board ist TTGO2 LoRa32 V2 433 MHz. Die Liste der kompatiblen Hardware (Github):
Die Installation des TinyGS ist mit den Schritten aus dem Quickstart Wiki schnell erfolgt und in der Regel problemlos:
- Download des TinyGS Uploaders von Github (siehe Link vom Wiki)
- Anschluss und Start des TTGO2 Moduls mit USB Kabel, sich dabei den USB Port merken
- Code mit dem Uploader hochladen
Bei meinen Experimenten ist es vorgekommen, dass das Board nicht mehr wie erwartet reagierte. Als Lösung half ein erneutes Hochladen der Firmware. Dabei ist zu beachten, dass zum Flashen ein Draht zwischen IO0 und GND gesteckt werden muss.
Nach dem Flashen startet das Board neu. Es dauert realtive lange (40s) bis auf dem OLED etwas zu sehen sein wird.
Man kann natürlich jede andere Entwicklungsumgebung benutzen, insbesondere Platformio. Mehr dazu an anderen Stelle.
Initiale Konfiguration
Das Modul erzeugt beim Start einen WiFi Access Point mit dem Namen My TinyGS. Nach dem Verbinden mit diesem AP erreicht man eine Webseite zur Grundkonfiguration (die Webseite hat die IP-Adresse 192.168.4.1). Jetzt wird man natürlich die WiFi-Zugangsdaten des eigenen Netzes angeben. Sollte das Modul irgendwann keinen Zugang mehr zum WLAN haben, wird es sich wieder mit diesem eigenen standard AP erreichen lassen.
Tip: die IP-Adresse des Moduls findet man mit dem Login-Link des Roboters heraus (s. unten).
Die einzelnen Einstellungen sind in dieser Liste hier erklärt. Meine Konfiguration ist:
Die MQTT Credentials erhält man von einem Telegram-Roboter, das Vorgehen ist:
- Installieren der Telegram Messenger App
- beitreten zur Gruppe TinyGS Personal Bot
- starten des Chats mit /start
- erfragen der MQTT Credentials mit /mqtt
- optional Anfordern eines Fernzugriff-Links mit /weblogin:
Weitere Einstellungen: Board type ist selbstredend; mit Allow Automatic Tuning wird die aktuell sinnvolle Frequenz vom Internet geholt. Wenn man in der Zeile Modem startup eine eigene Frequenz angibt, sollte Allow Automatic Tuning deaktiviert werden. Die Parameter im Modem startup sind die üblichen LoRa-Parameter wie Bandbreite (bw), spread factor (sf); zum Beispiel:
- NORBY: {„mode“:“LoRa“,“freq“:436.703,“bw“:250.0,“sf“:10,“cr“:5,“sw“:18,“pwr“:5,“cl“:120,“pl“:8,“gain“:0,“crc“:true,“fldro“:1,“sat“:“Norbi“,“NORAD“:46494}
- Pi-in-the-Sky LoRa: {„mode“:“LoRa“,“freq“:434.450,“bw“:20.8,“sf“:6,“cr“:5,“sw“:18,“pwr“:5,“cl“:120,“pl“:8,“gain“:0,“crc“:true,“fldro“:1,“sat“:“Norbi“,“NORAD“:46494} (man ignoriere die letzten Felder)
Den aktuellen Zustand sieht man im Station Dashboard. Hier sollte nach kurzer Zeit ein grünes CONNECT die erfolgreiche Verbindung zur zentralen TinyGS-Plattform anzeigen. Fehler deuten auf ein falsches Passwort oder fehlende Internet-Verbindung hin. Interessant sind (bei erfolgreicher Installation) die nach und nach empfangenen Pakete von wechselnden Satelliten.
Daten umbiegen
Demnächst: Das MQTT Ziel lässt sich auf einen eigenen Broker abändern. So kann man eigene Daten in eigene Datenbanken speichern.
MQTT-Broker auf NAS
Der erste Schritt zum eigenen Datenverteilzentrum ist nun Installation eines MQTT-Brokers in meinem Heimnetz. Da ich ein sparsames NAS-System von Synology besitze, habe ich dieses als Sitz eines Brokers auserkoren. Die Installation wird hier und hier beschrieben.
Eigene Daten empfangen
Demnächst: Empfangen von Daten von unseren Wetterballons (Py-in-the-Sky System).
Links
- Quickstart Wiki https://github.com/G4lile0/tinyGS/wiki/Quick-Start
- Einstellungen https://github.com/G4lile0/tinyGS/wiki/Ground-Station-configuration
- MQTT auf Synology NAS https://primalcortex.wordpress.com/2015/06/11/mosquitto-broker-with-websockets-enabled-on-the-synology-nas/
- Einführung in MQTT https://www.msxfaq.de/sonst/iot/mqtt.htm
- Tracking and receiving messages from satellites with LoRa
- Andreas Spiess the Swiss Guy: How to receive and track LoRa Satellites (TinyGS). Incl. innovative ideas for your projects: https://www.youtube.com/watch?v=ltJQjqm5bKA
- #305 Transfer a LoRa message through space to my PC before 2020?
- #302 We build a 20 Dollars LoRa Satellite Ground Station and we follow the FossaSat-1 launch https://www.youtube.com/watch?v=5k0aM-PJzo8
- Öffentliche MQTT Broker mit Details