LoRa APRS Tracker und iGate

Ein Funkamateur ist auf mich zugekommen und wollte ein LoRa APRS Tracker und APRS iGate programmiert bekommen. Auf dieser Seite beschreibe ich die Konfiguration und Inbetriebnahme von einem LoRA APRS Tracker und APRS iGate im 70cm Band (433.775MHz). Zielgruppe ist der programmieraffine Amateuerfunker bzw. Programmierer die einem lizenzierten Amateuerfunker bei der Inbetriebnahme eines Lora APRS unterstützen möchten.

Das Thema gliedert sich in folgende Abschnitte:

Allgemeines zu APRS

APRS steht für Automatic Position Reporting System und ist eine spezielle Form von Packet Radio im Amateuerfunkdienst. Mit diesem System ist es möglich, die Position und zusätzliche Informationen von mobilen Amateuerfunkstationen auf einer digitalsierten Landkarte darzustellen. Die Funkübertragung kann im 2m Band, über Satellit oder wie hier im 70cm Band via LoRa auf 433.775MHz mit SF12 erfolgen. Im Nachfolgenden wird der Upload der über LoRa empfangenen Daten auf aprs.fi beschrieben.

Visual Studio Code und PlatformIO

Die Software von OE5PBA steht für Visual Studio Code (VSC) mit der Extension PlatformIO zur Verfügung. Die Programmdownloads sind ohne weitere Änderung nicht mit der Arduino IDE verwendbar.

  • Zunächst muss du Visual Studio Code downloaden und installieren.
  • Anschließend musst du noch PlatformIO ergänzen. Öffne dazu im Menu/View/Extensions und suche nach "PlatformIO IDE".
  • Die beiden Software Pakete für Tracker und iGate von OE5PBA kannst du von seinem Github Verzeichnis als ZIP downloaden. Entpacke beide ZIP Dateien auf deiner lokalen Platte.

APRS Tracker von OE5PBA (Version 22.19.0)

Für den APRS Tracker von OE5PBA eignet sich ein LilyGo T-Beam 1.1 für 433MHz da es bereits ein GPS Modul verbaut hat.

Software flash

In der Statuszeile von VSC wählst du das korrekte Board (für Board Revision 1.1 kann auch die Version 1 verwendet werden). Mit dem Icon "PlatformIO: Upload" wird das Programm kompiliert und auf den T-Beam geflasht.

Konfiguration des APRS Trackers

Die Konfiguration des APRS Trackers erfolgt in der Datei data\tracker.json. Die Datei muss mittels Platformio/Project Tasks/Platform/Upload Filesystem Image separat hochgeladen werden. Zunächst sollst du jedoch die Konfiguration überprüfen und anpassen.

Abschnitt Inhalt/Hinweise
beacons callsign: Das Rufzeichen, gefolgt von einer Nummer (SSID), z.B.
-12 für "APRStt, DTMF, RFID, devices, one-way trackers*" oder
-1 bis -4 "generic additional station, digi, mobile, wx, etc"
-9 für "Primary Mobile (usually message capable)" - wird häufig verwendet, die zuvor genannten scheinen mir aber besser geeignet zu sein.

Da auf einem kleinem OLED Display eine Nachricht nicht sinnvoll dargestellt werden kann und der OM auch keine Nachricht retour senden kann, soll meiner Meinung nach -12 verwendet werden. Für weitere Tracker bieten sich -1 bis -4 an. Siehe dazu auch der Link auf den APRS SSID Guide am Ende dieser Seite.

beacons message: Diese Nachricht wird auf APRS.fi dargestellt. Der default Wert ist "LoRa Tracker".Da das aber ohnehin nur ein Fixtext ist, sollte das besser leer gelassen werden oder zumindest auf "LoRa" gekürzt werden. Wenn eine Batterie angeschlossen ist, wird zusätzlich die Batteriespannung und Stromentnahme ergänzt. Auch dieser Text soll vernünftig gekürzt werden, dazu ist aber etwas C++ Kenntnis für die Änderung im Programm notwendig.
beacon path sollte man leer lassen (default: WIDE1-1)
beacons symbol bzw
beacons overlay
Diese Angaben sind für das Symbol auf APRS.fi zuständig.

Das Overlay schaltet zwischen Primary Symbols "/ und Alternate Symbols "\" um. Im JSON muss ein \ Backslash mit einem weiteren Backslash escaped werden, somit "overlay": "\\",
Einige Symbole:
[ / Fußgänger
> / Auto
k / Pickup
k \ SUV
j \ Offroad Fahrzzeug
< \ Motorrad
b / Fahrrad

button true aktiviert den Button - je nach genutztem Board (siehe src/pins.h)
lora Die Konfiguration für Deutschland und Österreich ist voreingestellt. Keine Änderung notwendig.
ptt_output

Der mittlere Button (GPIO 38 am V1.1) hat 3 Funktionen:

  • Click: Sendet eine Nachricht wenn ein GPS fix gegeben ist (handle_tx_click)
  • LongPress: Beacon weiterschalten (handle_next_beacon)
  • DoubleClick: Display umschalten/abschalten (toggle_display)

Optional kann ein I2C OLED angeschlossen werden. Im laufenden Betrieb wird das eigenen Rufzeichen sowie die GPS Emfpangsqualität angezeigt.

Symbole

Die Position auf APRS.fi wird mit einem Symbol angezeigt. Das Overlay schaltet zwischen Primary Symbols "/ und Alternate Symbols "\" um.

APRS iGate von OE5PBA (Version 23.06.0)

Wenn du nicht in Empfangsreichweite von einem bestehenden LoRa iGate bist, kannst du ein eigenes iGate in Betrieb nehmen. Das erste iGate habe ich auf Basis eines LilyGo T-Beam 1.1 erstellt. Ein LilyGo Lora32 reicht dafür aber auch.

Software flash

Bei der ARPS iGate Software wird das Board automatisch erkannt und ausgewählt. In der Statusleiste von VSC wird mit "PlatformIO: Upload" das Programm kompiliert und auf den T-Beam geflasht.

Konfiguration

Die Konfiguration der OE5PBA Software erfolgt in der Datei data\is-cfg.json.

Abschnitt Inhalt und Hinweise
callsign Rufzeichen-SSID. Es empfiehlt sich das Rufzeichen mit einer SSID -10 (für "internet, Igates, echolink, winlink, AVRS, APRN") zu ergänzen damit das Rufzeichen vom Tracker abweicht. Ansonsten wird der eigene Tracker nicht an APRS.fi übertragen.
network DHCP Die Netzwerkeinstellung für DHCP auf true setzen oder manuell  ip/subnet/gateway/dns1/dns2 vergeben
wifi AP SSID
wifi AP password
Hier musst du deine WIFI credentials eintragen
beacon message default: LoRa Tracker
beacon position Länge/Breite des Standorts vom iGate eingeben
aprs_is passcode Für das Rufzeichen (ohne -10) muss ein Passcode erstellt werden und hier eingetragen werden. Ohne einem korrektem Passcode werden iGate Nachrichten von APRS.fi nicht akzeptiert. Am Ende der Seite ist ein Passcode Generator verlinkt.
digi da aprs_is genutzt wird, soll digi auf false bleiben. Ein DigiPeater (= Digital-Repeater) empfängt Daten und sendet erneut. Wir wollen aber die empfangenen Daten sofort via Internet weiterleiten (= Gateway).
ftp aktiviert man FTP kann man die Datei is-cfg.json mittels FTP auf das iGATE aufbringen. Damit kann man die Einstellungen im laufenden Betrieb auch über das Netzwerk erneuern. Nach dem Schließen der FTP Verbindung führt das Board einen Reset aus damit die Einstellungen wirksam werden können.

Nach der Programmübertragung muss die Konfigurationsdatei muss mittels PlatformIO/Project Tasks/Platform/Upload Filesystem Image separat hochgeladen werden.

  1. Plattformio Erweiterung wählen (Ameise)
  2. PROJECT TASKS wählen
  3. Das entsprechende Board wählen
  4. Auf Plattform wechseln
  5. Option "Upload Fileysytem/Image" starten

Wird für das iGate ein LilyGo T-Beam verwendet, dann hat der mittlere Button am T-Beam (GPIO38 bei 1.1) nur eine Funktion:

  • click: Update senden (pushButton)

Allgemeines zum LilyGo T-Beam 1.1

Das LilyGo T-Beam 1.1 ist ein ESP32 Board mit GPS und LoRa Modul. Achte beim Kauf auf die richtige Frequenz. Für APRS wird die 433 MHz Variante benötigt.

Die wichtigstens Pins am T-Beam 1.1 sind wie folgt belegt

GPIO Verwendung
27 LORA MOSI
5 LORA SCLK
26 LORA IO0 (IO26)
23 LORA RST
18 LORA NSS/SEL
19 LORA MISO
32 LORA IO2 (HPDIO2)
33 LORA IO1 (HPDIO1)
34 GPS TX
12 GPS RX
38 Mittlerer Taster
21 OLED/Wire SDA
22 OLED/Wire SCL
16 OLED RST (tracker)
4 LED (red)

Als Charge IC ist ein AXP192 - oder ab 28.6.2023 ein AXP2101 verbaut.

AXP192 Verbunden mit Header
LDO2 LORA_VCC  
LDO3 GPS_VCC  
DCDC1 OLED (VDD_2.5V)  
DCDC3 VDD3V3  
VBUSEN VCC_RTC  
GPIO0 AXP_IO0 TP57
GPIO1 AXP_IO1 TP58
GPIO2 AXP_IO2 TP59
GPIO3 AXP_IO3 TP60
GPIO4 AXP_IO4 TP61
EXTEN EXTEN TP62

Optimal wäre ein SSD1306 Display mit der Belegung VCC GND SCL SDA welches dann direkt auf den T-Beam gelötet werden kann.

Reichweite - Nur eine Frage der Antenne

Die mit den Boards mitgelieferten Stummelantennen eignen sich nur für die ersten Tests (<2km). Mit guten Antennen für das 70cm Band sind trotz der nur 100mW Sendeleistung Übertragungen über viele Kilometer möglich. Ich sehe einzelne Ausreißer mit über 50km.

Zusammenfassung

...

Die mit Sternchen (*) gekennzeichneten Verweise sind sogenannte Affiliate/Provision-Links. Wenn du auf so einen Verweis klickst und über diesen Link einkaufst, bekomme ich von deinem Einkauf eine (kleine) Provision. Für dich verändert sich der Preis dadurch nicht. Ich empfehle nur Produkte die ich selber besitze und wenn ich überzeugt bin, dass sie für andere interesssant sind.

 

Protokoll

erstellt: 2023-05-31 | Stand: 2024-08-10