Portables Multi-APRS iGate

Der Versuch ein kleines portables Multi-APRS iGate nach Wunsch zu bauen, ist nicht vollständig nach Wunsch geglückt. Es ist somit für mich ein Projekterfolg „mit Mängeln“, die allerdings akzeptabel sind. „Luft nach oben“ gibt es jedoch noch.

Das Vorhaben

Für unsere nächste Stratosphärenballon-Mission wollte ich ein kleines APRS-iGate für den reinen Empfang aufbauen. Beim letzten Ballonflug gab es immer mal wieder Probleme durch die „fliegende Verdrahtung“ der SDR-Sticks mit dem Notebook. Das ist mitunter problematisch, da der SDR-Stick schnell mal die Verbindung verliert und die Software dadurch nicht mehr arbeitet. Wenn man nicht akribisch drauf schaut, bekommt man das nicht mit und es wird nichts empfangen. Sehr suboptimal! Es musste was kleines, kompaktes und vorallen „festes“ her.

Die Anforderungen:

  • Kompakt und portabel.
  • Alles fest verbaut, nichts wackelt.
  • Zwei SDR-Sticks zum Empfang von 2m und 70cm APRS Signalen (Senden wird nicht benötigt).
  • LoRa APRS Empfang auf 70cm.
  • Nur ein laufendes Gerät (RaspberryPi).
  • Betrieb durch den Anschluss nur einer Antenne möglich.
  • Es muss alles Wichtige von außen angesteckt werden können.
  • 5 Volt Stromversorgung, Antenne und Internet per Netzwerkkabel oder WLAN sollten reichen.
  • Sollte auch nutzbar sein als portabler Empfänger um einen potenziellen Standort für APRS testen zu können. Schnell anschließen und fertig. Auch für Wettersonden soll man das Teil nach kurzem Umstecken der Antennenkabel verwenden können.

Das Konzept

Beschaffung der Teile

Das war gar nicht so einfach. Es musste ein passendes Gehäuse her in dem möglichst alles Platz hat. Dazu mussten noch die meisten Anschlüsse nach außen geführt werden. Es wurden kurze passende Kabel benötigt die am Gehäuse befestigt werden konnten und nicht zu lang waren. Das gelang leider nicht immer. Es waren viele Bestellungen, vor Allem bei Amazon, notwendig, um die passenden Kabel zu bekommen. Im stationären Handel bekommt man das jedenfalls nicht passend. Als Prime-Mitglied kann man aus dem Vollen schöpfen und auch Kabel für wenige Euro versandkostenfrei bestellen. Die Lieferung dauert als Brief dann zwar minimal länger, aber das nimmt man in Kauf.

Verwendete Bauteile:

  • Gehäuse: Silver Stone VT01 Compact Mini-STX Chassis => War leider etwas zu eng im Nachhinein!
  • Raspberry Pi 3B+ (Empfohlen Raspberry Pi 2B oder höher. WLAN gibts ab 3B aufwärts)
  • 2x Nooelec NESDR Smart RTL-Empänger mit TCXO (Amazon)
  • LoRa APRS Gateway V von OE1ACM (www.lora-aprs.at)
  • 2x N-Flanschbuchse N-Buchse/SMA-Buchse DELOCK 88835 (Reichelt)
  • SMA-Pigtail 15cm (eBay)
  • SMA-Y-Pigtail 20cm (AliExpress)
  • LAN-Verlängerung für Gehäuseeinbau mit abgewinkeltem LAN-Stecker (Amazon)
  • 2x USB-Verlängerung mit Abgewinkeltem USB-A Stecker (Amazon)
  • USB-Verlängerung für Gehäuseeinbau DELOCK 85462 (Reichelt) => Anschluss von Tastatur, Maus etc. möglich
  • Micro-USB Verlängerung für Gehäuseeinbau DELOCK 85245 (Reichelt) => Hat Spannungsverlust!

Die Halterungen für die SDR-Sticks, den LoRa-APRS Antennenanschluss und das rückwärtige Anschlussblech wurde aus vorhandenem Aluminum-Blech selbst gefertigt.

Weiteres optionales Zubehör:

  • RaspberryPi Micro-USB Netzteil mit 2,5 Ampere
  • Diamond MX72N Diplexer zur Aufteilung von 2m/70cm an einer Antenne

Die passende Software

Als großer Fan der dxlAPRS Toolchain von Chris OE5DXL kam nichts anderes in Frage. Damit konnten problemlos alle Ansprüche angedeckt werden. Folgendes war mir wichtig, vor allem für den Einsatz am Ballonflug:

  • Zentrale Sammlung aller empfangenen Daten, egal auf welcher Frequenz und in welchem Modus sie gesendet werden.
  • Die Möglichkeit der lokalen Darstellung auf einer Karte (APRSMAP).
  • Ein iGate für alles (udpgate4).

Die Konfiguration der Software

Da man auch sehen will, was das Gerät macht, wurde das Betriebssystem Raspbian bzw. RaspberryPi OS mit Desktop gewählt. Weiterhin wird neben den dxlAPRS Programmen (Installationsanleitung) die Software RPi-LoRa-KISS-TNC von Tom OE9TKH benötigt (Installationsanleitung). Die Einrichtung der Software für die Nutzung mit SDR-Sticks ist hier genau beschrieben. Die vorhandenen Startskripte für 2m und 70cm können verwendet werden, es müssen lediglich zwei Zeilen für den Start des LoRa APRS Teils hinzugefügt werden und Anpassungen bei udpbox und udpgate4 gemacht werden, damit die LoRa APRS Daten angenommen werden. Die fertigen Skripte und Dateien für das Multi-APRS Gateway stelle ich auch seperat zur Verfügung. Download und weitere Informationen sind am Ende der Beschreibung.

Übersicht der Verkettung und Funktionsweise der dxlAPRS Tools:

Startskript für das Multi-APRS iGate:

<pre class="wp-block-syntaxhighlighter-code"># Startverzögerung um das Hochfahren des RPi zu kompensieren bei Autostart. Bei manuellem Start nicht notwendig.<br />sleep 5<br /># Vorsorglich beenden wir erstmal alle eventuell laufenden Prozesse.<br />killall -9 rtl_tcp sdrtst udpgate4 udpbox afskmodem udpflex python3<br /># Hier fügen wir den Programmpfad, wo die dxlAPRS Tools zu finden sind, zum Systempfad hinzu, damit wir sie direkt starten können. Bitte den Pfad ggf. anpassen!<br />PATH=/home/pi/dxlAPRS/aprs:$PATH<br /># Wir starten den SDR Server für die zwei SDR-Sticks.<br />xfce4-terminal --minimize --title RTL_TCP2 --minimize -e 'bash -c "rtl_tcp -a 127.0.0.1 -d0 -p 18100 -n 1"' &<br />sleep 3<br />xfce4-terminal --minimize --title RTL_TCP70 --minimize -e 'bash -c "rtl_tcp -a 127.0.0.1 -d1 -p 18101 -n 1"' &<br />sleep 3<br /># Soundpipes anlegen. Falls bereits vorhanden, werden die Fehlermeldungen dazu "entsorgt".<br />mknod /home/pi/dxlAPRS/aprs/aprspipe2 p 2> /dev/null<br />mknod /home/pi/dxlAPRS/aprs/aprspipe70 p 2> /dev/null<br /># Wir initialisieren die SDR-Empfänger - bei abweichenden Frequenzen bitte qrg.txt anpassen.<br />xfce4-terminal --minimize --title SDRTST2 --minimize -e 'bash -c "sdrtst -t 127.0.0.1:18100 -r 16000 -s /home/pi/dxlAPRS/aprs/aprspipe2 -c /home/pi/dxlAPRS/aprs/qrg2.txt -e -v -k"' &<br />sleep 3<br />xfce4-terminal --minimize --title SDRTST70 --minimize -e 'bash -c "sdrtst -t 127.0.0.1:18101 -r 16000 -s /home/pi/dxlAPRS/aprs/aprspipe70 -c /home/pi/dxlAPRS/aprs/qrg70.txt -e -v -k"' &<br />sleep 3<br /># Wir starten das AFSK-Modem für beide SDR-Empfänger.<br />xfce4-terminal --title AFSKMODEM2 -e 'bash -c "afskmodem -f 16000 -o /home/pi/dxlAPRS/aprs/aprspipe2 -c 2 -M 0 -c 0 -L 127.0.0.1:9001:0 -M 1 -c 1 -L 127.0.0.1:9002:0"' &<br />sleep 3<br />xfce4-terminal --title AFSKMODEM70 -e 'bash -c "afskmodem -f 16000 -o /home/pi/dxlAPRS/aprs/aprspipe70 -c 1 -M 0 -c 0 -L 127.0.0.1:9003:0"' &<br />sleep 3<br /># LoRa APRS Teil.<br /># Das Python Skript startet die KISS/AXUDP Schnittstelle zum LoRa Gateway.<br />xfce4-terminal --minimize --title KISSTNC -e 'bash -c "python3 /home/pi/RPi-LoRa-KISS-TNC/Start_lora-tnc.py"' &<br />sleep 3<br /># Hier werden die AXUDP Pakete einzeln verfielfältigt damit diese nicht nur weitergeleitet, sondern auch in APRSMAP (Port 9105) angezeigt werden können.<br />xfce4-terminal --minimize --title UDPBOX --minimize -e 'bash -c "udpbox -R 127.0.0.1:9001 -l 127.0.0.1:9101 -l 127.0.0.1:9105 -R 127.0.0.1:9002 -l 127.0.0.1:9102 -l 127.0.0.1:9105 -R 127.0.0.1:9003 -l 127.0.0.1:9103 -l 127.0.0.1:9105 -R 127.0.0.1:9004 -l 127.0.0.1:9104 -l 127.0.0.1:9105 -v"' &<br />sleep 3<br /># udpgate4 ist das eigentliche iGate, welches die Daten an APRS-IS weiterleitet.<br />xfce4-terminal --minimize --title UDPGATE4aprs --minimize -e 'bash -c "udpgate4 -s MYCALL-10 -R 127.0.0.1:0:9101#144800 -R 127.0.0.1:0:9102#145825 -R 127.0.0.1:0:9103#432500 -R 127.0.0.1:0:9104#LoRa -B 1440 -u 50 -n 30:/home/pi/dxlAPRS/aprs/netbeacon.txt -g rotate.aprs2.net:14580#m/1,-t/t -p PASSCODE -t 14580 -w 14501 -v -D /home/pi/dxlAPRS/aprs/www/"' &<br />sleep 3</pre>

Darstellung in APRSMAP

Um die empfangenen Pakete in APRSMAP auf dem Rechner darzustellen, muss in APRSMAP noch der ensprechende Port 9105 für den Empfang der APRS Pakete konfiguriert werden.

CONFIG => Rf-Ports => RF-Port 1
Eintrag: :0:9105

Erklärung: Ohne Angabe einer IP-Adresse wird alles „eingesammelt“ was an diesen Port gesendet wird. Der erste Port „0“ wäre ein Sendeport (destination port). Der wird aber nicht benötigt, da wir Daten nur empfangen wollen. Der zweite Port ist der Empfangsport (listen port) und muss mit den Angaben bei udpbox übereinstimmen. Zur Wiederholung: udpbox vervielfältigt die AXUDP Streams und sendet alle einmal an das iGate (udpgate4) und zusätzlich an Port 9105, welches für APRSMAP bestimmt ist.

Was mir nicht gelungen ist oder nicht gut funktioniert

  • Durch den beengten Platz war es mir nicht mehr möglich, den HDMI Anschluss nach Außen zu führen. Zum einen fand ich kein passendes kurzes Kabel dafür (HDMI Verlängerung mit Gehäusemontage). Zum anderen war auf der Rückseite einfach kein Platz mehr um solch eine Buchse anzubringen, da innen der RaspberryPi mit den bereits angeschlossenen USB Kabeln im Weg war. Hier wäre ein etwas größeres Gehäuse notwendig um das besser zu machen.
  • Micro-USB Verlängerung ist mangelhaft und verursacht einen Spannungsabfall. Der RPi benötigt eine stabile Spannungsversorgung, ansonsten meckert er bei Stromspitzen, dass die Versorgungsspannung zu niedrig ist. Bei Standard-Netzteilen (sogar dem RaspberryPi Original-Netzteil) gibt es einen Spannungsabfall bis auf etwa 4,7 Volt, gemessen am GPIO, sofern die Micro-USB Verlängerung zwischengeschalten ist. Bei Direktanschluss an der Platine besteht das Problem nicht. Ich habe allerdings in der Schublade ein passendes Netzteil gefunden, welches etwas mehr Spannung macht und den Spannungsabfall dadurch ausgleicht. Der RPi meckert zwar nicht mehr, aber optimal ist das auch nicht. Zumindest kann ich behaupten dass trotz Warnung der RaspberryPi normal weiterarbeitet. Das muss ich noch beobachten.
  • Auch war kein Platz mehr für einen eingebauten Diplexer 2m/70cm. Das hat aber den Vorteil, dass man so entscheiden kann ob man mit eienr oder zwei Antennen arbeiten möchte. Den Diplexer kann man so auch extern problemlos anschließen.
  • Kein eingebautes Display! Es wäre der Hammer wenn man das Teil mit einem eingbauten Touch-Display benutzen könnte. Das ist eine Kostenfrage, ordentliche Displays sind teuer und benötigen wieder etxtra Strom. Auch das Gehäuse müsste größer ausfallen. Vielleicht bei einem anderen Projekt!

Bilder vom Aufbau

 

Zweites Multi-APRS Gateway:

Ende 2020 habe ich ein zweites Multi-APRS Gateway aufgebaut, aber leicht abgewandelt. Der Rechner ist ein OrangePi PC Plus mit EMMC Speicher, es wird also keine SD-Karte mehr benötigt. Ich habe auch andere SDR-Sticks verwendet, die grünen mit TCXO. Für diese habe ich eine zweiteilige Halterung aus Alublech gebogen. Diese halten nicht nur die Sticks fest, sondern sorgen auch für eine gute Wärmeabfuhr, da die Sticks sehr heiß werden können.

Des Weiteren habe ich einen alten Wimo 2m/70cm Diplexer direkt mit ins Gehäuse gebaut. Als Gehäuse habe ich ein altes MikroTik Outdoorgehäuse für ein Routerboard RB433 verwendet, von dem ich noch drei Stück rumliegen habe. Dadurch das es größer ist, passt mehr rein.

Von außen kann man die Antenne und ein LAN Kabel direkt anschließen, das OrangePi Board hat aber auch WLAN mit dabei. Nur das Stromkabel hängt noch durch eine Öffnung durch, weswegen es noch nicht 100% Wetterfest ist.

 

Download der fertigen Dateien:

Die fertigen Skript- und Textdateien können über Github heruntergeladen werden:

git clone https://github.com/dl1nux/dxlAPRS-Multi-APRS-iGate.git ~/dxlAPRS/aprs

Falls die Dateien am falschen Ort landen diese bitte nach ~/dxlAPRS/aprs/ verschieben. Bitte unbedingt die REAMDE.md lesen für weitere Anweisungen!

Es muss mindestens das eigene Call inklusive Passcode für das iGate hinzugefügt werden und die netbeacon.txt angepasst werden.

 


Disclaimer:
Diese Anleitung wurde mit bestem Wissen und Gewissen und mit Hilfe des
Entwicklers Christian OE5DXL erstellt. Aber auch hier kann sich natürlich der
Fehlerteufel verstecken. Deshalb sind alle Angaben ohne Gewähr! Auch geht die
Entwicklung der dxlAPRS Tools immer weiter, was auch Veränderungen mit sich
bringen kann. Wenn ihr einen Fehler findet oder Fragen habt, zögert nicht mich
zu kontaktieren. Gerne auch als Kommentar auf der Webseite.

Kontaktmöglichkeiten:

* per E-Mail attila [at] dl1nux . de
* per IRC Chat im Hamnet (HamIRCNet) im Kanal #hamnet-oberfranken
* per Packet-Radio im DL/EU Converse Kanal 501

Support:
dxl-Wiki: http://dxlwiki.dl1nux.de
Telegram-Gruppe: https://t.me/joinchat/CRNMIBpKRcfQEBTPKLS0zg

5 Gedanken zu „Portables Multi-APRS iGate

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.