In den letzten Monaten habe ich mich sehr viel mit LoRa und LoRaWAN beschäftigt. Bei den zahlreichen Treffen hat mir die Amateurfunk-Community erzählt, dass LoRa auch ein guter Ersatz für das FSK/AFSK basierte APRS sein könnte und an einer Implementierung arbeiten.
Das halte ich für eine tolle Idee! APRS hat mich – wie ihr an anderen Beiträgen meines Blogs erkennen könnt – schon immer sehr interessiert!
Es handelt sich also nur um den Ersatz der Modulation durch LoRa und nicht um eine vollwertige LoRaWAN-Implementierung, die ja auch das ganze Umfeld der Datenverarbeitung mit einschließen würde. Daher ist man auch hinsichtlich QRG (Frequenz) flexibel. Die Hardware für LoRa ist ja für 868 MHz, 433 MHz und 912 MHz erhältlich. Der Bereich um 912 MHz ist in der EU nicht frei nutzbar. Im „kommerziellen“ Einsatz (LoRaWAN) ist 868 MHz die Wahl für Europa.
Funkamateure sind sowieso im Bereich um 433 MHz „zu Hause“, das ja für viele Anwendungen als 70cm-Band bekannt ist und dort seitens Amateurfunk als Primärdienst genutzt werden kann.
Damit ist für mich die Trennung der Anwendungen und Frequenzen auch schlüssig umsetzbar:
- LoRaWAN nutzen wir (kommerziell) auf 868 MHz und
- LoRa für APRS im 430-439 MHz Bereich als Amateurfunkdienst!
APRS Tracker
Das Ziel ist also, einen APRS-Tracker zB. für’s Auto mit LoRa-Modulation im70cm-Band zu schaffen. Die Daten sollen dann wie andere APRS-Anwendungen über zB. aprs.fi zur Verfügung stehen.
Auf der Webseite von DJ7OO (http://www.kh-gps.de/lora.htm) wird sehr viel zu dem Thema erklärt. Die Software basiert auf Codeteilen, die von Stuart Robinson (ua. auf dieser Website https://www.rcgroups.com/forums/showthread.php?2454546-Arduino-LoRa-Long-Range-Lost-Model-Tracker) veröffentlicht wurden. Bitte beachtet die Lizenz, die hier kommerzielle Nutzung auch von Codeteilen ohne ausdrücklicher Zustimmung von Stuart untersagt.
Die meisten OMs haben ihre Sender auf Basis von Arduino Pro Mini erstellt. Dazu benötigt man noch ein paar Kleinteile, ua. ein GPS-Modul und den RFM98W LoRa-Chip. Ich gestehe, das Löten vermeide ich, wenn es leicht möglich ist – daher habe ich nach einer andere Hardware-Lösung gesucht.
ohne löten: Dragino LoRa/GPS shield
Mit den LoRa/GPS-Shields von Dragino habe ich ja bereits in anderen Projekten gute Erfolge erzielt. Diese Shields sind natürlich auch für 433 MHz erhältlich. Ich kaufe übrigens meistens über Tindie. Es funktioniert zuverlässig, die Lieferung dauert ca. 3 Wochen:
https://www.tindie.com/products/edwin/loragps-shield-for-arduino/
Das Tolle ist, dass man dazu nur noch einen Arduino Uno benötigt, zusammensteckt und für viele Anwendungen eine fertige Lösung hat!
Als Basis für meinen Code habe ich die Version von Sascha (iot4pi.com) und Karl OE1KEB gewählt, die für den Arduino Pro Mini geschrieben ist:
https://github.com/IoT4pi/LoRa-APRS-Sender
(Den Link zu meinem Fork für’s Dragino LoRa/GPS findet ihr unten.)
Die Software benutzt SoftSerial, um auf die GPS-Daten zuzugreifen. Dazu benötigt man zwei Jumper Wire Kabel (M-F). Am Dragino LoRa/GPS Shield werden die Jumper bei TX_GPS und RX_GPS entfernt und mit den digitalen Eingängen 3 und 4 verbunden werden.
Bitte beachtet, dass nur lizenzierte Funkamateure diesen Funkdienst benutzen dürfen, es wird auch ein Funkrufzeichen (Call) benötigt, das eingestellt werden muss!
Die von mir für das Dragino LoRa/GPS Shield abgeänderte Software findet ihr hier:
https://github.com/schulti/LoRa-APRS-Sender
Bitte ändert euren Call und ggf. die SSID („-12“) in dieser Variable:
String Tcall="OE1SCS-12"; //your Call Sign
Die Software muss nun nur noch auf den Arduino raufgeladen werden und schon kann man testen. Der erste GPS-Fix dauert leider ein bißerl – da muss man etwas Geduld haben. An einer blinkenden LED sieht man, dass ein GPS-Fix vorhanden ist.
Ein Blick auf die Webseite https://aprs.fi hat den Tracker sofort gezeigt:
Auch die Rohdaten sehen vernünftig aus. Meine Pakete wurden von OE1XBR-10 empfangen:
Nun bin ich also zusätzlich zur 2m APRS Antenne über 70cm LoRa APRS unterwegs. Zusätzlich habe ich einen GPS Mapper für LoRaWAN (868 MHz):
Für’s Autodach habe ich eine Magnetfußantenne für 433 MHz und einen aktiven GPS-Empfänger bestellt. Das Shield hat eine GPS-Antenne eingebaut. Es schaltet von selbst um, sobald es erkennt, dass eine externe Antenne angesteckt wird.
Damit lassen sich ganz einfach Vergleichsfahrten zwischen den Technologien durchführen, zB: unten links LoRa-APRS-70cm mit APRS-2m im Vergleich (Argent Data OpenTracker+):
Einkaufsliste für den LoRa/GPS APRS Tracker
Die Bauteile sind um gesamt € 42,- erhältlich, um weitere € 15,- gibt’s die Antennen für’s Autodach dazu:
- https://www.tindie.com/products/edwin/loragps-shield-for-arduino/
- Arduino Uno
- Jumper Wire Kabel (M-F)
Optional:
Hallo Stefan,
ich stehe vor einem Problem. Ich habe mir zwei Uno´s, sowie zwei Boards bestellt, beides aus deinen empfohlenen Quellen.
Bei der Kompilierung der Software in „sketch“ gibt es allerdings Probleme. Es kommt zu folgendem Fehler:
stray ‚\302‘ in program
Die Langversion kann ich auch gerne posten, aber das würde hier einige Seiten kreieren…
Hast Du einen Tipp für mich?
Grüße aus Wuppertal
Sebastian, DM1SW
Hallo Sebastian,
diesen Fehler kenne ich nicht. Lt. Google kann das darauf hinweisen, dass irgendwo ein Sonderzeichen (Umlaut?) drinnen ist, wo’s nicht sein darf – oder irgendwo ein Anführungszeichen aufgeht, wo es nicht mehr zugemacht wird.
Schreibt er eine Zeilennummer, bei der das Problem auftritt?
Schick‘ mir die Langversion als .txt Datei auf meine Email-Adresse?
LgS
Hallo Stefan,
du schreibst:
„Zusätzlich habe ich einen GPS Mapper für LoRaWAN (868 MHz):“
So etwas habe ich vor. Ich habe einen Adafruit feather M0 mit LoRa an bord, ein GPS Wing draufgeschnalt und so ein sehr kompakten Arduino mit GPS-Fähigkeiten.
Meine Idee war die GPS Position direkt zu APRS.fi per LoRaWAN zu senden. Hast du etwas ähnliches gebaut?
Ich bin zwar ein OM, aber der Zweck dieser Anwendung wäre auch für Personen außerhalb des Amateurfunk.
Grüße,
Gunnar
Servus,
LoRaWAN 868 MHz und APRS-LoRa sind zwei verschiedene Sachen.
Unseren GPS-Tracker für LoRaWAN 868 MHz von https://openiot.network findest du hier: https://github.com/OpenIotNetwork/LoRa-gpstrack – allerdings ist er auf Basis Arduino Uno mit LoRa/GPS Shield von Dragino.
In OE gibt es ein erfolgreiches Projekt mit LoRa für APRS im 70cm Band. Die Meldungen sind wir im 2m-APRS genauso in aprs.fi sichtbar. Weitere Infos gibt es ua. hier: http://www.iot4pi.com/de/hardware/lora-gateway/, und https://aprs.at. Das lässt sich einfach nachbauen und die Platinen sind günstig zu haben.
LgS
Hallo Stefan,
danke für deine fixe Antwort.
Dann müsste ich wohl für APRS die Platinenversion mit 2m bestellen. Gerade habe ich es geschafft, das meine GPS-Daten im the things network auftauchen. Aber das ist ja nicht das, was wir wollen 🙂
Grüße,
Gunnar
Hallo,
gibt es bei dir ein Netz, das LoRa APRS auf 2m empfängt? Prüf‘ das noch nach – ich kenne überhaupt kein 2m-APRS-LoRa-Netz.
Die gängigen iGates & Co. verstehen auf 2m (144.8 MHz) nur FSK. Beim Umstellen auf LoRa müssen also auch die Gateways umgerüstet werden bzw. haben wir > 10 neue Gateways, aber eben auf 70cm APRS-LoRa errichtet.
73, LgS
Hallo , ich habe mir einen solchen Tracker zusammen gebaut . Nach den ersten Tests musste ich feststellen das ich ca. Doppel so viele Pakete aussende als auf der Karte von aprs.fi angezeigt werden. In den Rohdaten sind alle Pakete zu finden.
Wo liegt der Fehler?
Gruß René
Hallo
Ich habe mir nach ihrer Anleitung einen Dragino LoRa/GPS Shield Tracker aufgebaut.
Leider funktioniert er nicht richtig.
Es wird nur jeder zweite GPS Position aktualisiert , sprich es wird immer zweimal hintereinander die gleiche Position hintereinander ausgesendet.
Auch die Höhe wird nicht aktualisiert.
Wie kann ich das anpassen?
Gruß René
Hallo,
danke für die Rückmeldung!
An der Hardware, die ich im Blog beschreibe kann es vmtl. nicht liegen.
Hast du einen Link zu den Rohdaten, es wäre interessant, da mal reinzuschauen, dort könnte ein Hinweis versteckt sein.
Es kann auch helfen, den Entwickler der Software (siehe Link zur Homepage im Beitrag) zu kontaktieren. Schauen wir uns aber vorher gemeinsam die Rohpakete an?
LgS
Hallo Stefan
Die Rohdaten sind ja in aprs.fi zu finden.
https://aprs.fi/?c=raw&call=DK1KT-12
Ich hoffe das du das meinst…
Oder möchtest du ein Log der seriellen Ausgabe vom Arduino?
Bei meinen Fahrten habe ich meistens die 433,775 auf meinem Funkgerät mitlaufen. Es werden nur sehr wenige Pakete ausgesendet. Wenn ich die Stromversorgung verbinde wird kurz ein Träger gesendet und auf dem shield leuchtet , während dem Senden ,eine blaue LED. Wenn dann nach einer Weile das GPS fix hergestellt ist und die grüne LED anfängt zu blinken passiert sendedeitig nichts. Beim Auslesen der seriellen Daten dauert es ewig bis die Positionsdaten aktualisiert werden, es kommen zwar regelmäßig neuen Pakete aber mit „alten“ GPS Daten.