HB9EYZ - APRS (Smartbeaconing, ISS, APIR, Tools etc.)

V1.0

 


APRS - Eigenentwicklungen und Erfahrungsberichte über Software für Windows, Linux & Android Smartphones


APRS Smartbeaconing Simulation

APRS Packets werden normalerweise time-based ausgegeben (Status, WX, Telemetry etc). Für Position-Packets ist dieser Ansatz ungeeignet: entweder werden zu viele oder zu wenige Packets gesendet. Der Algorithmus Smartbeaconing™ löst dieses Problem: Packets werden abhängig von der Geschwindigkeit und dem Richtungswechsel generiert. Die Original-Beschreibung und der Pseudo-Code sind bei hamhud.net zu finden.

Smartbeaconing™ ermittelt den Zeitpunkt für das Position-Packet anhand von 7 fix eingestellten Parametern sowie der vom GPS gemessenen Geschwindigkeit (Speed) und Richtung (Heading). Es gibt keine one-fits-all Einstellung. Dieser Blogger empfiehlt verschiedene Einstellungen für 'car drive', bicycling', 'walking' und 'sailing'. Alle Angaben in 'knots' (Seemeilen, 1,852km).

Slow Speed (km/h)
Wenn 'GPS Speed' kleiner als 'Slow Speed' werden Position-Packets alle 'Slow Rate' Sekunden gesendet.
Richtungswechsel werden nicht berücksichtigt.
Slow Rate (seconds)
Abstand Position-Packets
Fast Speed (km/h)
Wenn 'GPS Speed' grösser als 'Fast Speed' werden Position-Packets alle 'Fast Rate' Sekunden gesendet.
List 'GPS Speed' zwischen 'Slow Speed' und 'Fast Speed' wird der Abstand der Position-Packets berechnet (höher bei kleinerer 'GPS Speed'.
Richtungswechsel werden berücksichtigt.
Fast Rate (seconds)
Abstand Position-Packets
Minimum Turn Angle (degrees)
Minimalwert für Richtungsänderung
Turn Slope (factor)
Läuft unter bem Begriff "CornerPegging". Dieser 'factor' wird durch 'GPS Speed' geteilt und zum 'Minimum Turn Angel' dazugezählt. Bei höheren 'GPS Speed' wird bei kleineren Richtungswechseln ein Position-Packet ausgelöst. Der Wert von 'factor' muss ausprobiert werden.
Minimum Turn Time Mindestabstand Position-Packets in Kurven

Um all die Parameter-Werte mit dem Browser testen zu können, habe ich 'APRS Smartbeaconing Simulation' entwickelt. Die notwendigen Test-Daten wurden auf einer Autofahrt Lausen - Liestal - Schönmatt - Liestal - Augst - Sissach - Lausen gesammelt. Jede Sekunde wurde die aktuelle Position aufgezeichnet.

ISS - Passes & Packets

APRS-Aktivitäten können mit aprs.fi monitored werden. Die Packets des Digipeaters RS0ISS können leider nicht vernünftig ausgewertet werden. findu.com bietet eine rudimentäre Aufbereitung der Daten an, scheint aber etwas in die Jahre gekommen zu sein.
Die ISS ist von meinem Home-Locator JN37VL ungefähr bei 5 täglichen Durchflügen zu erreichen (Radio Passes).

Projektziel: Interaktive Browserkarte mit Anzeige der vergangenen und zukünftigen Überflüge, Locations der Call-Signs und Packets.



Die Overview-Karte sowie die detaillierten Packet-Daten sind hier zu finden.

Als APRS-Client für die ISS verwendet ich UISS mit DireWolf als TNC. Die notwendige Konfiguration ist hier beschrieben.
UISS hat endlos viele Funktionen. Im Normalfall wird nur "TX APRS Position" und "TX APRS Message" mit den dazugehörenden Push-Buttons benötigt.

APIR

APIR steht für "APRS Pi Remote Control". Übliche APRS-Clients wie APRSIS32, UI-View, Xastir etc dienen dazu, APRS-Packets auf Karten darzustellen. APIR ist als Remote Control konzipiert und kann zum Ansteuern von Raspberry GPIO-Pins verwendet werden. Zusätzliche Funktionen sind TX von Wetter-Daten und Telemetrie. Die aktuelle Version 0.2 verwendet 'Soundmodem' als Sofware-TNC. 'Soundmodem' ist relativ unempfindlich und wird nicht mehr weiter entwickelt. Die folgende Version von APIR wird 'DireWolf' als Software-TNC verwenden. 'DireWolf' kann auch als Digipeater sowie als I-Gate konfiguriert werden.

Prototyp "HB9BL-1", verwendet im Clublokal vom HB9FS


Hardware
Raspberry Pi Model B
USB-Soundcard
Der Raspberry hat nur einen Audio-Ausgang. Für Audio IN/OUT wird eine USB-Soundcard benötigt.
Powering DC-DC Wandler 12V --> 5V USB
A/D Wandler MCP3008
Die GPIO Pins des Raspberry können nur digitale Werte verarbeiten. Mit dem MCP3008 können auf max. 8 Kanälen Input analoge Werte von 0V - 3.3V eingespiesen werden. Die Python-Library "MCP3008" wandelt die Input-Spannungen auf Werte von 0 - 1024 um. Der MCP3008 wird für die Überwachung der Akku-Spannung benötigt.
Clock DS3132
Der Raspberry hängt nicht am Internet und muss die Zeit ab einer externen Uhr lesen.
PTT Circuit Transformer 1:1, Opto-Koppler
PTT Watchdog Digispark ATtiny85
Der PTT Watchdog läuft unabhängig vom Raspberry auf dem Digispark.

Software
Software TNC Soundmodem (RX: axlisten, TX: beacon)
APIR Python
PTT Watchdog Arduino C++

Functionality APIR
tbe tbd
tbe tbd

Functionality PTT Watchdog
Das Aussenden einer APRS-Message dauert ein paar Sekunden. Das PTT-Signal wird vom Raspberry via den PTT Watchdog an den TRX geleitet. Die maximale PTT-Time wird durch den PTT Watchdog kontrolliert. Nach 10 Sekunden wird PTT auf OFF gesetzt und so ein Dauerträger auf 144.800 MHz vermieden. Der Wert ist hardcoded, könnte auch über einen externen Poti konfigurierbar gemacht werden.

DireWolf Sofware Soundcard

"Dire Wolf is a software "soundcard" AX.25 packet modem/TNC and APRS encoder/decoder. It can be used stand-alone to observe APRS traffic, as a tracker, digipeater, APRStt gateway, or Internet Gateway (IGate)."

DireWolf decodiert besser als Chip-basierte und ältere Sofware-basierte TNCs:


Technisch Interessierte finden hier eine Beschreibung des DireWolf-Approaches mit 9 Demodulatoren.

DireWolf läuft auf Windows & Linux. Nach diversen Tests ist dies mein bevorzugter "Virtual TNC und läuft auf Notebook, Netbook & Raspberry.

APRSISCE/32 - APRS Client

"APRSISCE/32 is an advanced Automatic Packet Reporting System (APRS) Client for Amateur Radio, written for Windows (x86 and x64)."

In diesem Screenshot werden nur Packets angezeigt, die vom TRX empfangen und via DireWolf geliefert werden. Die Schnittstelle zu APRS-IS wurde abgeschaltet.


APRSISCE/32 läuft (leider) nur auf Windows. Nach diversen Tests von allen möglichen APRS-Clients ist dies mein bevorzugter Client. Als passender TNC wird natürlich DireWolf eingesetzt.

APRS Gateway, Arduino

Idee: Arduino basierter APRS TX-Gateway. Die externen Sensordaten werden mit 433MHz an den Gateway gesendet, dort in APRS-Packets umgewandelt und ausgesendet.
coming soon

APRSdroid

APRSdroid ist ein APRS Client. Positionen können via Internet (APRS-IS) oder via TRX (AFSK) verteilt werden. Ein separater TNC ist nicht notwendig.

APRSdroid - Map   APRSdroid - Hub


 

APRSdroid - Log (TCP)   XPERIA & APRSdroid + UV-3R (Vox-Betrieb)


 

APRSdroid - Konfiguration AFSK   APRSdroid - Log (AFSK)   APRSdroid - Map aprs.fi


 

 

APRS Daten Empfang via UV-3R konnte mangels 4-Pol-Stecker für das XPERIA noch nicht ausprobiert werden.

APRSdroid ist eine mächtige Software. Mit der vorgestellten Konfiguration kann man mit einfachen Mitteln und ohne TNC APRS-QRV werden.

APRSbeacon

Mit der Windows-Software ARPSbeacon können bis zu 3 APRS Positions Beacons verwaltet werden. APRSbeacon kann nur senden! Die Positionsbeacons können mit einem Zeitintervall oder manuell abgesetzt werden. Ich verwende den Software TNC AGW Packer Engine (AGWPE.zip).

Definition APRSbeacon, % vor Home wird durch HHMM ersetzt
Anzeige in aprs.fi

Anzeige in openaprs.net, Zeitangabe falsch

Problem:
Positionen können nur mittels Click auf die Karte gesetzt werden. Die Felder Latitude, Longitude und Beacon Header können nicht editiert werden. Ein passender Kartenausschnitt kann gemäss Help in APRSbeacon selbst erstellt werden. Möglich ist auch diese Lösung:

Lösung:
Zu jeder Karte (z.B: BL.jpg) gehört eine File mit Koordinaten zu dieser Karte (BL.inf) sowie ein File mit den Daten der Positionsbeacons (BL.odb). Das File .odb kann editiert und die Koordinaten manuell eingegeben werden. Diese Koordinaten sind im LORAN Format.

Koordinaten bestimmen & in LORAN Format umrechnen und in .odb-File einfügen
LORAN-Format: ggmm.hhN/ggdmm.hhE (g=Grad, m=Minute, h=Hundertstel; Latitude: N=Nord, S=Süd / Longitude: W=West, E=Ost)

--> Programm APRSbeacon beenden
--> .odb-File editieren
--> Google Maps starten
--> Position auswählen, rechte Maustaste
--> 'Was ist hier?' auswählen
--> Koordinate wird im Google Suchfeld angezeigt
--> Converter starten
--> copy Lat(1. Zahl) aus Google Suchfeld
--> Lat im Feld 'Decimal Degrees' eingeben, 'Convert'
--> 'DM.m' copy
--> paste nach 'Latitude=' (.odb-File)
--> copy Lon (2. Zahl) aus Google Suchfeld
--> Lon im Feld 'Decimal Degrees' eingeben, 'Convert'
--> 'DM.m' copy --> paste nach 'Longitude=' (.odb-File)
--> Koordinaten gemäss LORAN Format editieren (siehe Beispiel)
--> .odb-File speichern
--> Programm APRSbeacon starten

Beispiel
Googlemaps, 'Belchenflue' suchen: 47.363508,7.81055;
nach Converter: Latitude=47 21.81048, Longitude=7 48.633;
editieren: 47 21.81048 -> 47.21.81N; 7 48.633 -> 007.48.63E (Achtung: Grad bei Longitude immer 3-stellig!)

Positionsbeacon HB9EYZ-2 'Lenk' wird irgendwo auf Map angezeigt. Lat/Lon sind massgebend.

Link Collection

Helge, SA7SKY, stellt die wichtigsten APRS PDFs inklusive der "Bibel" APRS101.pdf in seiner Sammlung. zur Verfügung (siehe "Documents").


24.11.2020 / 12:55