Serwer APRS – nowe wyzwanie

Minęło kilka dni od rozpoczęcia „zabawy” z Arduino i już następny pomysł się przyplątał. Wymyśliłem sobie, a może by tak postawić własny serwer APRS ?

Po co i dlaczego ?

Powody były w sumie dwa. Pierwszy to ciekawość po przeczytaniu opisu na http://he.fi/aprsc/INSTALLING.html natomiast drugi to prace związane z klientem APRS na Arduino. Nie chciałem po prostu „zaśmiecać” kolegom ich serwerów.

Sama instalacja okazuje się banalnie prosta. Serwer uruchomiłem na Debianie 9 „stretch”, który wg informacji na stronie projektu nie jest oficjalnie wspierany. Z wagi iż nie byłem pewien czy Raspberry, na którym pracuje HBlink poradzi sobie z dodatkowym „wynalazkiem” powróciłem na razie na terminal HP T510.

Postaram się poniżej opisać w kolejności wszystkie wg mnie najważniejsze aspekty instalacji gdyż może ktoś kto przez przypadek odwiedzi moją stronę będzie chciał również popróbować sił z tym tematem. Proszę mieć na uwadze iż nie jestem żadnym ekspertem w tym temacie , a wszystkie opisane poniżej kroki postępowania są moim subiektywnym spojrzeniem na temat związany z instalacją i uruchomieniem serwera APRS.

Pierwszym krokiem było dopisanie na końcu repozytorium pakietów, który znajduje się w lokalizacji /etc/apt/sources.list poniższej linii z lokalizacją pakietu instalacyjnego

deb http://aprsc-dist.he.fi/aprsc/apt DISTRIBUTION main

Oczywiście wpis „DISTRIBUTION” musi zostać zastąpiony nazwą kodową dystrybucji w moim przypadku stretch.  Należy pamiętać iż wszystkie prace, które będą wykonywane wymagają uprawnień roota.

Następnym krokiem jest dodanie klucza gpg używanego do podpisywania pakietów. Wykonujemy to poprzez uruchomienie w kolejności dwóch poleceń

gpg –keyserver keys.gnupg.net –recv 657A2B8D

oraz

gpg –export C51AA22389B5B74C3896EF3CA72A581E657A2B8D | sudo apt-key add –

W przypadku wystąpienia błędu:  gpg: keyserver receive failed: No dirmngr , który wystąpił podczas mojej instalacji należy doinstalować dirmngr używając poniższego polecenia:

apt-get install dirmngr –install-recommends

Następnie pobieramy indeksy pakietów:

apt-get update

oraz instalujemy nasz serwer APRSC:

apt-get install aprsc

Po zakończeniu instalacji przed uruchomieniem serwera edytujemy plik konfiguracyjny, który można znaleźć w /opt/aprsc/etc/aprsc.conf

Podstawowymi parametrami, które należy zmienić są:

  • ServerID – wpisujemy znak naszej stacji
  • PassCode – kod wygenerowany na stronie http://apps.magicbug.co.uk/passcode/
  • MyAdmin – imię sys operatora oraz znak
  • MyEmail – email sys operatora

Następnym ważnym polem do uzupełnienia jest Uplink. Pozwala on na połączenie z serwerami APRS-SI i przekazywanie informacji z klientów APRS podłączonych do naszego serwera w świat.

Przykładowym wartością może być:

Uplink „SEVENTH” full  tcp  129.15.108.113:10152

Na tym możemy zakończyć edycję aprsc.conf i przejść do następnego kroku, który pozwoli na automatyczny start serwera po ponownym uruchomieniu systemu.

W tym celu należy edytować plik aprsc znajdujący się w lokalizacji /etc/default/ i zmienić wartość STARTAPRSC na  „yes”.

Po tym możemy przystąpić do uruchomienia serwera za pomocą polecenia  service aprsc start

W moim przypadku niestety serwer się nie uruchomił, a problemem okazał się ostatni wpis w pliku aprsc.conf, który „zakomentowałem” #MagicBandess 42.7.

Należy pamiętać aby na adres naszego serwera przekierować porty 14501 oraz 14580.

Po wystartowaniu serwera możemy cieszyć się nowym doświadczeniem i satysfakcją z nabytego nowego doświadczenia.

Jeżeli chciałbyś podłączyć swoje urządzenie do mojego serwera APRS to jest on dostępny pod adresem  78.28.49.119:14580.

Klient APRS na Arduino

I znowu, zarzucić tylko temat i kilka dni z głowy 😊 Tak się stało podczas niedawnej wizyty u Piotra SP2LQP, który wyjął moduł sieciowy ethernet W5100 na Arduino i zaproponował aby w wolnej chwili zainteresować się tematem postawienia klienta APRS, który został opisany na łamach Świat Radio 1/2020. Wsparciem, było tez otrzymanie od Piotra pierwowzoru artykułu, który został opublikowany w CQ DL 7-2019, którego autorem jest Franz DL6FCD.

Czemu nie, znowu coś nowego jednak z góry zastrzegłem, że nie zajmę się wcześniej tematem niż za dwa tygodnie.

… i komu ja to chciałem powiedzieć. Na drugi dzień zamówiony był już cały zestaw czyli: Arduino Uno, moduł sieciowy ethernet W5100 oraz czujnik BME280.

W międzyczasie pościągałem już oprogramowanie do skomunikowania Arduiono ze strony www.arduino.cc oraz wszystkie potrzebne pliki, a zwłaszcza biblioteki, które umieszczone są na https://github.com/fgaletsee/ArduPRS. W bibliotekach przygotowanych przez Franza mamy do wyboru cztery wersje tzn:

  • nurCallTest (którego nie testowałem)
  • Call
  • Event
  • WX

Na początek wypróbowałem dwa moduły Call oraz Event. Z tym pierwszym udało mi się dojść do porozumienia i obecnie wysyła ramki oraz widać go na mapie jako SP2RTA-1 natomiast drugi na razie nie chce współpracować. Czwartym z modułów, który „daje” najwięcej na razie się nie zająłem na poważnie gdyż oczywiście chciałem być mądrzejszy i zamiast standardowego czujnika, który jest zaimplementowany w skrypcie czyli BMP180 kupiłem bardziej rozbudowany dla którego skrypt będzie trzeba zmodyfikować lub trzeba będzie kupić taki dla którego skrypt został napisany.

Oczywiście nie obyło się bez problemów, bo przecież po to się tym „bawimy’ aby się czegoś nauczyć. Pierwszym z problemów było brak uwierzytelnienia na serwerach APRS – informacja Verified – No. Nigdzie nie mogłem znaleźć miejsca na wpisanie kodu uwierzytelniającego nasz znak, który deFacto można wygenerować na stronie http://apps.magicbug.co.uk/passcode/.  

Napisałem w tej sprawie do Franza DL6FCD i w odpowiedzi otrzymałem informację iż kod powinien być generowany automatycznie przez skrypt. Niestety tak nie było ale i z tym sobie poradziłem poprzez wpisanie go „na stałe” w pliku APRSIS.cpp. W późniejszym czasie przy odrobinie wolnego czasu postaram się sprawdzić gdzie tkwi błąd.

Drugim może nie problemem ale mała uwaga co do wpisania współrzędnych. Nie sugerujmy się zapisem w formacie „4817.96N”, „01054.70E”. Nie są to współrzędne GPS lecz stopnie, minuty i sekundy (SMS) zapisane w nieco innym formacie. Zapis 4817.96N odpowiada N 48°17’96’’. Uważać trzeba przy drugim z zapisów gdzie przed wartością stopni należy wpisać „zero” 01054.70E =  E 10°54’70’’

Po kilku próbach (no może kilkunastu …) Arduino ruszyło tak jak to było zakładane i ostatecznie zaczęło wysyłać poprawną informację o pozycji SP2RTA-1.

Następnym etapem będzie uruchomienie wysyłania dodatkowych informacji meteorologicznych jakie panują na moim balkonie po zakupie odpowiedniego czujnika bądź po zmodyfikowaniu kodu.

Uruchomiony klient APRS
Uruchomiony klient APRS

Cdn ….

HBlink Chojnice II – reinstalacja

HBlink Chojnice II został przeniesiony na Raspberri Pi 3B+. Dotychczasowym miejscem instalacji był terminal HP 510 jednakże po dwóch tygodniach testowej instalacji na Raspberry zdecydowałem się przenieść instalację na ten mały minikomputer.

HBlink pracuje na systemie Raspberry Pi OS, który bazuje na Debian Buster i jak dotąd nie sprawiał żadnych problemów. Oczywiście awaryjnie instalacja na terminalu T510 została zachowana i pełni na obecną chwilę rolę serwera awaryjnego.

Wszystkie funkcjonalności pierwotnego serwera zostały zachowane i tak jak było to dotychczas lokalne komunikaty informacyjne i pogodowe są również retransmitowane na „siostrzany’ HBlink Chojnice oraz lokalny przemiennik SR2DCH.

Stacja biuletynowa SR2KFQ po testach

Stacja biuletynowa SR2KFQ po testach została czasowo wyłączona. Testy przebiegły pomyślnie i obecnie stacja oczekuje na ostateczne miejsce instalacji. O ponownym uruchomieniu oczywiście poinformuję.

Stacja biuletynowa SR2KFQ online !

Stało się ! Cyfrowa stacja biuletynowa SR2KFQ została uruchomiona. Głównym zamierzeniem, które przyświecało uruchomieniu stacji było nadawanie komunikatów klubowych mojego macierzystego klubu SP2KFQ na paśmie 70 cm. Projekt rozrósł się jednak trochę bardziej niż było to przewidziane w założeniach. W obecnej chwili stacja nadaje na częstotliwości 433.950 MHz wg poniższego harmonogramu:

  • 5 minuta – komunikaty klubowe
  • 15/45 minuta – informacje stacji pogodowej
  • 30 minuta – alerty meteorologiczne

W projekcie zastosowałem dwa moduły wykorzystywane w HBlinkach DMR opracowane przez Waldka SP2ONG oraz moduł stacji pogodowej SR0WX. Aby mogły one razem współistnieć dla potrzeb stacji biuletynowej zostały one jednak przeze mnie zmodyfikowane.

Komunikaty z SR2KFQ transmitowane są jednocześnie do sieci DMR na TG60 poprzez HBlink Chojnice II (http://www.sp2rta.pl/hblink).

Na obecną chwilę trwają jeszcze próby tak więc stacja może pracować z przerwami lecz mam nadzieję, że w niedługim czasie uda się zakończyć obecną fazę projektu i uruchomić stację na stałe.

Obecna konfiguracja sprzętowa SR2KFQ:

  • Yaesu VX-2000U (5W)
  • Antena Diamond X-200-N
  • Terminal HP T510
  • PC-Radio Interface wg SQ9MDD