APRX

By | 19 stycznia 2017

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.

APRX-dwa pasma

Schemat połączeń 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.

winscp

Okno programu WINSCP

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