APRS Digi auf RaspberryPI oder Linux mit dxlAPRS und TNC

Im Folgenden wird erklärt, wie man mit den dxlAPRS Tools und einem TNC(2) einen leistungsfähigen APRS Digipeater mit iGate Funktion aufsetzt. Grundvoraussetzung ist die Grundinstallation der dxlAPRS Toolchain, wie HIER beschrieben. Aus dem Archiv tatsächlich benötigt werden aber nur folgende Anwendungen:

  • udpflex (Anbindung des TNC)
  • udpbox (Digipeater)
  • udpgate4 (iGate)

Ein fertiges Startskript und notwendige Textdateien, welche nur geringfügig angepasst werden müssen, findet man HIER ALS DOWNLOAD.

Die Skripte und Dateien bitte alle in den Ordner dxlAPRS/aprs euerer Installation kopieren, z.B. /home/pi/dxlAPRS/aprs.
Alle Skripte müssen auch noch ausführbar gemacht werden.

cd /home/pi/dxlAPRS/aprs
wget http://www.dl1nux.de/aprsdigi_tnc.zip
unzip -j aprsdigi_tnc.zip

chmod 755 *.sh

Das Archiv enthält folgende Dateien:

aprsdigi_tnc.sh Startskript für den APRS-Digi (standalone)
aprs_stop.sh Stoppe alle Prozesse des APRS Digis
digibeacon.txt Baken welche über HF ausgestrahlt werden (Weitere Infos im Bakenfile)
netbeacon.txt Baken welche über das iGate ins APRS-IS Netzwerk gesendet werden
frametypes.txt Enthält eine ausführliche Auflistung der APRS-Frametypes (nützlich beim Frametype-Filter im Digipeater)
readme.txt Weiterführende Informationen

Die folgende Beschreibung erklärt den Aufbau des Startskripts ausführlich. Es lohnt sich sehr, sich damit etwas genauer zu beschätigen. Man kann da noch sehr viel mehr individuell einstellen. Die genannten Paramater sind eine Empfehlung von mir und Chris OE5DXL für den Betrieb eines APRS Digis.

Warnung: Diese Konfiguration erzeugt einen sendenden APRS Digipeater. Dieser darf unbemannt nur mit einer gültigen Relais-Genehmigung erfolgen!

Wichtig: Bitte alle Programm- und Dateipfade nach Bedarf anpassen. Voreingestellt ist /home/pi/dxlAPRS/aprs

Mindestens zu ändernde Angaben:

  • Devicename und Baudrate für TNC (udpflex „-t“)
  • Rufzeichen des Digipeaters (udpbox „-d“) und des iGates (udpgate4 „-s“) sowie in der digibeacon.txt falls genutzt
  • Bakendateien (netbeacon.txt und digibeacon.txt) Koordinaten (sollten bei beiden identisch sein) und Bakentext. Falls nicht erwünscht, einfach entfernen.
  • Ziel-APRS-Gateway (udpgate4 „-g“). Im Hamnet kann z.B. aprsc.db0gw.ampr.org gewählt werden.
  • Aussenderadius in km für APRS-IS Aussendungen über HF (udpgate4 -R …#10:“20″… entspricht 20km Radius um die angegebenen Koordinaten in der netbeacon.txt (bitte diesen Wert so klein wie möglich halten!)
  • APRS Passcode passend zum Rufzeichen (udpgate4 „-p“)

Möchte man das Skript in einer grafischen Oberfläche starten und die Ausgaben der einzelnen Programme seperat beobachten, kann man dies mit xfce4-terminal tun:
xfce4-terminal –title FENSTERTITEL -e ‚bash -c „Befehlskette“‚ &

killall -9 udpgate4 udpbox udpflex
sleep 3

Erklärung:
Beendet sicherheitshalber bereits laufende Prozesse. Anschließend wird 3 Sekunden gewartet bis es weitergeht.

PATH=/home/pi/dxlAPRS/aprs:$PATH

Erklärung:
Setzte den Pfad der Anwendungen in den Systempfad, damit die Anwendungen direkt gefunden werden können

udpflex -t /dev/ttyS0:9600 -s -d 5000 -p 1:15 -p 2:255 -p 3:10 -p 128:0 -U 127.0.0.1:9001:9002 -u -v &

Erklärung:
Stellt die Verbindung zum TNC über das SMACK Protokoll her (wie KISS, nur mit CRC Fehlerkontrolle).

  • -t = Devicename:Baudrate an dem der TNC hängt (bitte anpassen!)
  • -s = Aktiviere SMACK Protokoll (in TF 2.7b etc.) enthalten . Nach TNC Reboot wird erst was empfangen, wenn was gesendet wurde, da erst dann die TNC Umschaltung auf SMACK erfolgt
  • -p = TNC Parameter TXDelay (x10 ms), Persistence, Slottime etc. (siehe udpflex -h)
  • -U = IP:dest:source = Verbindungen zu udpbox und udpgate4
  • -u = bei USB Verbindungen zum TNC wird ein reconnect zum TNC erzwungen bei Trennung (stört bei nicht-USB Verbindungen nicht)
  • -v = Zeigt AX25 Monitor und weitere Ausgaben an (nicht notwendig beim standalone Betrieb)
udpbox -R 127.0.0.1:9001 -l 127.0.0.1:9101 -d DB0XYZ-10 -p 0,1,2,5,8,17 -t 1740,28 -f p28,29,33,35-39,41-43,46,47,58,59,61,64,91,95,96,123 -k 0/0/20000 -b 600:/home/pi/dxlAPRS/aprs/digibeacon.txt -x APLWS*,NOCALL -l 127.0.0.1:9002 -v &

Erklärung:
Startet den APRS Digipeater

  • -R = Empfange Daten von udpflex …
  • -l = … und sende diese weiter an udpgate4 (iGate). Die empfangenen Daten landen dann im APRS-IS Netzwerk, also auch z.B. auf aprs.fi und aprsdirect.com
  • -d = Aktiviere den Digipeater unter dem Rufzeichen „DB0XYZ-10“
  • -p = Digipeating Optionen (siehe udpbox -h)
  • -t = Dupe Filter in Sekunden für alle APRS Pakete bzw. für unveränderliche Baken (nicht bewegend). Gilt übrigens auch für eigene Bakenaussendungen! Wenn man nur eine Bake alle 10 Minuten sendet laut -b, würde diese auch erst wieder nach 29 Minuten gesendet werden (29*60 = 174 Sekunden). Ab drei unterschiedlichen Baken und/oder Objekten (=30 Min) spielt das keine Rolle mehr.
  • -f = Frametype-Filter (positiv oder negativ) für APRS Aussendungen über HF (siehe beiliegende frametype.txt). Das angegebene Beispiel verhindert z.B. Digipeating von APRS-IS Aussendungen (dec 125 fehlt in der Positivliste [„Was bereits aus dem Internet kommt, muss nicht erneut digipeatet werden!“]).
  • -k = Filtert alles um eine bestimmte Position im angegebeben Radius (außer APRS Textnachrichten). Die genanten Parameter filtern quasi alle Pakete ohne Positionsangaben, welche dadurch für APRS keinen Mehrwert und nur lokale Bedeutung haben.
  • -b = Aussendung von HF Baken aus der angegebene Datei im Rhytmus von X Sekunden (600 = 10 Minuten). Es können mehrere Baken sowie Objekte hinterlegt werden. Mehr Infos siehe Bescheibung in digibeacon.txt
  • -x = Ignoriert Frames beim Digipeating welche die genannten Calls enthalten (egal an welcher Stelle), z.B. APLWS* = Wettersonden (Mehrere Calls sind kommagetrennt möglich). Hilfreich gegen lokale „Spammer“.
  • -l = (Schließt -d „Digi Funktion“ ab): Alle zu sendenden Daten weiterleiten ans TNC (udpflex)
  • -v = Zeigt erweitere Infos an im Betrieb (nicht notwendig beim standalone Betrieb)
udpgate4 -s DB0XYZ-10 -R 127.0.0.1:9002:9101+10:20#144800 -H 10080 -I 1440 -n 30:/home/pi/dxlAPRS/aprs/netbeacon.txt -g rotate.aprs2.net:14580#m/100,-t/t -p 12345 -t 14580 -w 14501 -v -D /home/pi/dxlAPRS/aprs/www/ -0 &

Erklärung:
Startet das APRS iGate.

  • -s = Rufzeichen des iGates. Sollte mit der Angabe bei udpbox übereinstimmen.
  • -R = Input/Output iGate zu HF inkl. Begrenzung der übertragenden Byte/s „+XY“, des Radius der APRS-IS Aussendungen in km „:20“ und Bezeichnung des HF Ports „#144800“. Der Radius kann auch weggelassen werden, dann werden nur APRS-Nachrichten aus dem APRS-IS Netzwerk eingespielt. Das bedeitet, dass APRS-Frames aus diesem Radius um das Gateway herum, welche direkt in das APRS-IS Netzwerk eingespielt wurden (z.B. über Handy-Apps wie aprsdroid), nochmals über HF ausgestrahlt werden als VPN Paket (dec 125).
  • -H und -I = Zeitraum für die MH-Listen auf dem Webinterface des iGates (direkt gehört und via Liste)
  • -n = Sende eine Bake in das APRS-IS Netzwerk im angegebenen Minutentakt aus der angegebenen Datei (Bitte genaue Formattierungund Koordinatenformat beachten!)
  • -g = Verbindung zum APRS Gateway adresse:port#Filter (Informationen zu APRS-IS Filtern z.B. hier: http://aprsisce.wikidot.com/aprs-is-filters). Mehrere Filter können mit einem Komma , getrennt werden. Es kann auch ein File mit mehreren Gateway-Zielen angegeben werden, z.B. „-g :igates.txt“. Die igates.txt enthält dann je Zeile die komplette Syntax von -g, also inkl. Port und Filterangaben. Es wird das erste funktionierende Gateway genutzt. Geht das nicht, springt es zum nächsten und prüft zwischendurch die Erreichbarkeit vom ersten Gateway.
  • -p = APRS Passcode passend zum Rufzeichen (https://apps.magicbug.co.uk/passcode/)
  • -t = Das eigenes Gateway kann selbst (auch per Telnet) auf diesem Port connected werden (z.B. für lokale Anwendungen wie SVXLink usw.)
  • -w = Port für das Webinterface des Gateways (Webinterface kann dann unter http://IP-Adresse:Port im Webbrowser aufgerufen werden.
  • -v = Zeige erweiterte Informationen an (nicht notwendig beim standalone Betrieb)
  • -D = Pfad zum Webinterface-Ordner (enthält unter anderem info.html und eine beliebig anpassbare CSS Datei fürs Webinterface)
  • -0 = Dies ist eine „Null“ und sorgt dafür, dass bei Telnet Connects auf Port 14580 (-t ) die Angabe von weiteren Filtern notwendig ist (spart Traffic)

Ein großer Vorteil der dxlAPRS Tools beim Digi ist das gute Webinterface des Gateways. Es ist sehr informativ sowohl für Sysops als auch für User. Wenn möglich, sollte man das Gateway im Hamnet verfügbar machen.

Autostart

Möchte man das Startskript bei jedem Start des Rechners automatisch starten gibt es mehrere Möglichkeiten:

Start über /etc/init.d: (funktioniert nicht mehr mit allen Distributionen)
https://tutorials-raspberrypi.de/raspberry-pi-autostart-programm-skript/

Start über CRONTAB: (geht wohl überall und zuverlässig)

sudo nano /etc/crontab

Ans Ende der CRON Tabelle setzt ihr folgende Zeile:

@reboot pi /home/pi/dxlAPRS/aprs/aprsdigi_tnc.sh

Erste Spalte  = Starte beim Reboot
Zweite Spalte = User unter dem der Befehl ausgeführt wird (möglichst als User und nicht als root ausführen)
Dritte Spalte = Kompletter Pfad zum Startskript

Das Skript sollte nun bei jedem Hochfahren des Pi/Linux Rechners automatisch als User „pi“ starten.


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

Update: 26.04.2020

Schreibe einen Kommentar

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