APRX to świetna aplikacja dzięki której możemy uruchomić swoją stację w sieci APRS. Rozsądna konfiguracja pozwoli nam wspomóc jednocześnie działanie sieci radiowej. Poniżej kilka słów na temat konfiguracji tego oprogramowania.
Założenia czyli jak ma pracować moja stacja w sieci APRS:
– Chcę pokazać się w sieci radiowej odpowiednia ikonka pozycja na mapie.
– Mój bikon ma nieść informację o lokalnej częstotliwości na której słucham.
– Będę wysyłał obiekty tymczasowe podczas wydarzeń lokalnych (spotkania, zloty).
– Chcę przekazywać ramki innych kolegów tak by nie duplikować pakietów.
– Chcę uruchomić się na częstotliwości podstawowej w paśmie 2m oraz na 70cm
By osiągnąć ten cel musimy zgromadzić niezbędny sprzęt i rozpocząć instalację i konfigurację APRX-a.
Będą nam potrzebne następujące rzeczy:
– Antena dwupasmowa
– Przewód antenowy z końcówkami i diplekser 2m/70cm
– Dwa radia, na pasmo 2m i 70cm
– Dwa TNC polecam opisywany wcześniej ATNC+
– Raspberypi z kartą SD min 8GB
– Zasilacz do TRX oraz do raspberry
– Drobiazgi w postaci kabli połączeniowych, złączek beczek itd.
Poniżej na rysunku schemat połączeń mojej stacji APRS.
Tak połączone elementy tworzą moją stację domową APRS.
Teraz opiszę instalację pakietu APRX.
Zaczynamy od ściągnięcia obrazu Raspbiana ze strony https://www.raspberrypi.org/downloads/raspbian/
Polecam obraz „Raspbian Jessie Lite”. Ściągnięty obraz wgrywamy na kartę SD. Opis procedury wgrywania znajduje się na stronie raspberrypi pod tym linkiem: https://www.raspberrypi.org/documentation/installation/installing-images/README.md
Następna czynność to wgranie gotowej paczki instalacyjnej z APRX-em do raspberrypi. Zakładam że raspberrypi jest już uruchomione i znamy jego adres IP w naszej sieci (domyślnie korzysta z DHCP).
Plik instalacyjny w formacie *.deb znajdziemy na stronie autora oprogramowania: http://thelifeofkenneth.com/aprx/debs/ Skąd ściągamy najświeższą wersję opisaną jaki *raspi.deb.
Gdy już mamy na swoim komputerze plik instalacyjny musimy go przenieść na raspberrypi do tego celu użyłem programu WINSCP który można ściągnąć ze strony: https://winscp.net/eng/docs/lang:pl.
Program ten umożliwia bardzo łatwe przeniesienie plików z systemu windows do raspberrypi. W konfiguracji podajemy adres ip jaki używa raspberrypi, port domyślnie 22 oraz login i hasło czyli jeśli nie zostało zmienione to domyślnie loginem jest „pi” a hasłem „raspberry”. Po zalogowaniu okno programu przypomina windows commander i możemy łatwo przenieść plik instalacyjny do raspberrypi.
Gdy już plik instalacyjny znajdzie się na raspberrypi możemy przystąpić do instalacji. W tym celu musimy zalogować się do naszego raspberrypi. Możemy to zrobić tradycyjnie jesli mamy podłączony monitor i klawiaturę lub zdalnie za pomocą protokołu SSH. Służy do tego program o nazwie putty który ściągamy ze strony: http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
W oknie konfiguracji wypełniamy pola adres ip oraz port a następnie klikamy open. Po zalogowaniu loginem i hasłem do systemu domyślnie znajdziemy się w katalogu /home/pi do którego wgraliśmy naszą paczkę instalacyjną.
Możemy to sprawdzić poleceniem ls -l a następnie uruchamiamy komendę instalacji.
W moim przypadku:
sudo dpkg -i aprx_2.9.0_raspi.deb
Po pomyślnej instalacji w katalogu /etc znajdziemy plik konfiguracyjny który powinniśmy edytować.
Na początek wykonamy jego kopię (będzie do czego wracać w razie problemów)
sudo cp /etc/aprx.conf /etc/aprx.conf.oryg
A następnie uzywając prostego i przyjaznego edytora „pico” rozpoczynamy edycję pliku konfiguracyjnego.
W oknie putty wpisujemy:
sudo pico /etc/aprx.conf
By uzyskać przejrzystość pliku wykasowałem z niego wszystkie informacje i skonfigurowałem wszystko pokolei.
Na początek mój znak podstawowy i koordynaty. Znak podstawowy można później używać jak zmiennej w innych miejscach w pliku a koordynaty podane w konfiguracji służą podczas używania fitrów odległości.
mycall SQ9MDD-1 myloc lat 5215.02N lon 02055.59E
Następnie konfiguruję interface do sieci APRSIS tak by przekazywać automatycznie do niej wszystkie usłyszane ramki. Interfejsu tego będę mógł także użyć jako źródła danych w sekcji digi, ale o tym później.
<aprsis> login $mycall passcode 29666 server sp.aprs2.net 14580 filter m/5 </aprsis>
Następna sekcja dotyczy logowania, w moim przypadku normalnie podczas pracy używam tylko pliku aprx-rf.log
w którym mogę na bieżąco podglądać stan pracy stacji.
<logging> pidfile /var/run/aprx.pid rflog /var/log/aprx/aprx-rf.log #aprxlog /var/log/aprx/aprx.log </logging>
Kolejne sekcje dotyczą interfejsów komunikacyjnych. Konfigurujemy podłączone TNC z osobna dla każdego pasma, używając dla każdego z nich odrębnego SSID. W moim przypadku będzie to SQ9MDD-1 dla pasma 2m oraz SQ9MDD-2 dla pasma 70cm.
Należy zwrócić uwagę na pozycję serial-device gdzie wpisujemy parametry dla arduino TNC, callsign gdzie wpisujemy odpowiedni znak, tx-ok czyli zezwolenie na nadawanie dla tego interfejsu, oraz na alias czyli obsługiwane ścieżki.
Ja skonfigurowałem ogólną ścieżkę, a także lokalny alias dla Warszawy oraz lokalny dla Polski. O tym napiszę szerzej podczas konfiguracji digipitera. Blokujemy także wysyłanie telemetrii na port radiowy by nie zapychać niepotrzebnie kanału radiowego.
Konfiguracja interfejsu dla pasma 2m
<interface> serial-device /dev/ttyUSB0 19200 8n1 KISS callsign SQ9MDD-1 tx-ok true telem-to-is false alias WIDE,WM,SP </interface>
Konfiguracja interfejsu dla pasma 70cm
<interface> serial-device /dev/ttyUSB1 19200 8n1 KISS callsign SQ9MDD-2 tx-ok true telem-to-is false alias WIDE,WM,SP </interface>
Skonfigurowałem interfejsy radiowe i APRSIS mogę teraz nadawać swój bikon ze znakiem i odpowiednim komentarzem.
Bikon wysyłany jest tylko radiowo i tylko na odpowiedni interfejs. Tak by stacje korzystające z 2m lub 70cm otrzymywały poprawną informację. Odpowiada za to wpis „beacon interface”. Oczywiście bikon ten ma także zdefiniowaną odpowiednią ścieżkę pakietową. Zwracam też uwagę na parametr PHG w komentarzu a także wpisaną częstotliwość lokalna na której słucham. Jest to bardzo istotna informacja, jeśli uświadomimy sobie że moja aktywność na APRS ma służyć do czegoś więcej niż tylko wskazania miejsca mojego pobytu na mapie. Dzięki temu stacje mobilne będą mogły łatwo nawiązać łączność ze mną lub innymi kolegami na lokalnej częstotliwości.
Konfiguracja dla pasma 2m:
<beacon> beaconmode radio cycle-size 30m beacon interface SQ9MDD-1 via WIDE2-1 symbol "/-" lat "5215.02N" lon "02055.59E" comment "PHG1004 145.575MHz Rysiek" </beacon>
Konfiguracja dla pasma 70cm
<beacon> beaconmode radio cycle-size 30m beacon interface SQ9MDD-2 via WIDE2-1 symbol "/-" lat "5215.02N" lon "02055.59E" comment "PHG1004 145.575MHz Rysiek" </beacon>
Oczywiście możemy także wysyłać obiekty jeśli zajdzie taka potrzeba. Następna bardzo ważna sekcja to konfiguracja digipitera oczywiście możemy zrobić takie sekcje z osobna dla każdego interfejsu dzięki czemu w sposób elastyczny możemy zarządzać ruchem z wszystkich interfejsów.
Sekcja digipitera składa się z kilku głównych pod-sekcji.
Na początku musimy zdefiniowac który interfejs będziemy używać jako nadajnik:
<digipeater> transmitter SQ9MDD-1
Następnie ustawiamy sposób przekazywania ramek w zależności od użytej ścieżki. Najpierw konfigurujemy opcje dla scieżek nie trasowanych. Parametr „maxreq” to maksymalna ilość skoków w scieżce jaką obsłuży digi, a max done to maksymalna ilość już zrealizowanych skoków w ścieżce. Jeśli ramka nie pasuje do parametrów zostanie powtórzona jednakże ścieżka zostanie obcięta. Parametr keys oznacza aliasy jakie są obsługiwane w tej opcji.
<wide> maxreq 3 maxdone 3 keys WM,SP </wide>
Kolejny krok to konfiguracja opcji dla ścieżek trasowanych. Opcje konfigurujemy jak powyżej jednakże w parametrze keys wpisujemy alias dla ścieżek trasowanych w naszym przypadku jest to „WIDE”.
<trace> maxreq 3 maxdone 3 keys WIDE </trace>
Następnie przechodzimy do konfiguracji źródeł w sekcji digipitera. W tym miejscu możemu ustawić sposób przekazywania ramek a także filtry dodatkowe. W definicji źródła określamy interfejs źródłowy. Typ digipitera ustawiłem na directonly, co oznacza że powtarzamy tylko ramki usłyszane bezpośrednio.
Viscous-delay określa że powtarzamy ramki jeśli nikt inny ich nie powtórzył. Kombinacja tych dwóch filtrów powoduje że nasze digi powtórzy tylko takie ramki których żadne inne digi nie w pobliżu nie obsłużyło i są to ramki usłyszane bezpośrednio. Jako dodatkowe filtry użyłem „m/5” to wbrew pozorom bardzo waży filtr który uodparnia moją stację na powtarzanie ramek spoza obszaru pracy podczas podniesionych warunków propagacyjnych. Ostatnia opcja to filtr ignorujący stacje powodujące permanentne spamowanie sieci.
<source> source SQ9MDD-1 relay-type directonly viscous-delay 7 ratelimit 60 120 filter m/5 filter -B/SQ5XXX-2 </source>
W moim digi na 2m dodaję także jako źródło interface 70cm i odfiltowuję wszystkie stacje poza stacjami z ikonką balonu, oraz joggera (trackery zrobione z sond RS-41 oraz ręczne radia).
<source> source SQ9MDD-2 relay-type directonly ratelimit 60 120 filter s/O[ </source>
Ostanie źródło to sieć APRSIS, tutaj też ustawiam mocny filtr i zezwalam tylko na przekazywanie wiadomości z sieci TCP/IP. Wiadomości będą przepuszczane tylko jeśli są skierowane do stacji słyszanej radiowo.
<source> source aprsis relay-type third-party filter t/m msg-path WIDE2-1 </source> </digipeater>
Dla interfejsu 70cm skonfigurowałem proste digi pomocnicze tylko dla tego pasma. Sądzę że konfiguracja jest przejrzysta.
<digipeater> transmitter SQ9MDD-2 <wide> maxreq 3 maxdone 3 keys WM,SP </wide> <trace> maxreq 3 maxdone 3 keys WIDE </trace> <source> source SQ9MDD-2 relay-type directonly viscous-delay 7 ratelimit 60 120 </source> <source> source SQ9MDD-1 relay-type directonly ratelimit 60 120 filter t/m </source> <source> source aprsis relay-type third-party filter t/m # tylko wiadomosci msg-path WIDE2-1 </source> </digipeater>
Efekt działania mojej stacji domowej jako digi pomocnicze można sprawdzić na stronie aprs.fi. Poniżej fragment logu podczas przekazywania ramki z ręczniaka z ustawioną ścieżką WIDE1-1,WIDE2-1 oraz SP1-1,SP2-1. Gdzie dla aliasu „SP” jak widać w konfiguracji powyżej ścieżka nie jest trasowana:
bez trasowania alias SP SQ9MDD-7>URQU03,SP1-1,SP2-1:`0SWl [/`145.575MHz Rysiek_( SQ9MDD-7>URQU03,SP1*,SP2-1:`0SWl [/`145.575MHz Rysiek_( z trasowanie alias WIDE SQ9MDD-7>URQU03,WIDE1-1,WIDE2-1:`0SWl [/`145.575MHz Rysiek_( SQ9MDD-7>URQU03,SQ9MDD-1*,WIDE1*,WIDE2-1:`0SWl [/`145.575MHz Rysiek_(
Przy tej okazji mała dygresja, dawno temu planowano że alias WIDE jako podstawowy „produkcyjny” będzie aliasem nie trasowalnym celem oszczędzania zajętości kanału gdyż brak trasowania skraca ramki pakietowe. Natomiast alias narodowy w naszym przypadku SP miał być używany w celach diagnostycznych. Niestety wyszło jak zwykle i gorszy sposób przyjął się jako obowiazująca reguła. Z moich obserwacji wynika także że mało która stacja wogóle ma skonfigurowany alias SP.
Jak widać APRX jest bardzo elastycznym programem dzięki któremu można skonfigurować bardzo ciekawą stację APRS. Bardziej zaawansowane konfiguracje i inne liczne opcje są opisane w manualu do programu na stronie: http://ham.zmailer.org/oh2mqk/aprx/aprx-manual.pdf
Rysiek Labus