Aktualizacja 13-12-2024 - SVXreflector Panel kontrolny v.2024
DVPi + ( Analog & Digital Voice over Pi )
Koncept DVPi+ bazuje na oryginalnym DVPi by KD8CEC.
Założenie jest takie aby wycisnąć z tej konstrukcji jak najwięcej dla siebie i posiadać najwięcej możliwych opcji jakie umiem dodać.
DVPi+ to kontynuacja którą opisywałem krok po kroku w kilku artykułach - teraz postanowiłem połączyć wszystko co robiłem w jeden artykół.
Recepta na DVPi+ jest prosta i polega na dogrywaniu nowych opcji nie ingerując w sam program DVPi i co najważniejsze zachowując w pełni schemat oryginalnego urzadzenia DVPi.
Mając do dyspozycji ekran dotykowy, przyciski funkcyjne oraz rotary encoder, można postarać się zaadaptować te urządzenia do oprogramowania jakie chcemy wgrać.
DVPi to projekt kolegi KD8CEC opisany na stronie http://www.hamskey.com/ i z założenia jest to Network Radio bazujący na DVSwitch Server. Wstępnie projekt pozwalał na prace w sieci DMR i Dstar.
DVPi można było uruchomić w wersji z Single VFO-A lub DUAL VFO VFO-A i VFO-B.
DVPi można obsługiwać dzięki ekranowi dotykowemu lub za pośrednictwem dedykowanych przycisków funkcyjnych i obrotowego encodera.
Oczywiście można ograniczyć się tylko do obsługi przycisku PTT
Ponieważ nie byliśmy zainteresowani używaniem modułu RF to zastąpiliśmy optoizolator diodą zieloną sygnalizującą stan RX.
Przedni panel posiada potencjometr głośności, gniazdo RJ45 dla mikrofonu, ekran dotykowy, miejsce na przyciski funkcyjne i obrotowy encoder.
Tylny panel posiada złącze LAN, w przyszłości USB-C 5V zasilanie, wiatrak chłodzenia, 12V gniazdo zasilania oraz 2xUSB dla urządzeń zewnętrznych.
Mikrofon posiada dwa przyciski które Dawid MSR zaadaptował jako przyciski funkcyjne. - Dlatego ich nie ma na przednim panelu.
Tak wygląda BAZOWE urządzenie które stopniowo zostało poddane modyfikacji od strony programowej.
Proszę zapamiętać iż przedstawiowy schemat połączeń GPIO jest dla mnie standardem w/g DVPi i nie był zmieniany, a potencjalne "programy" zawsze musiały bazować na tym konkretnym przykładzie.
DVPi DSCAN
Kolega KD8CEC opublikował zwiastun na YT pokazujący możliwość użycia nakładki MMDVM jako odbiornika i przekonwertowanie odbieranego sygnału na dźwięk.
W oczekiwaniu na publikację dodaję to opcję do porządanej i z pewnością takie użycie MMDVM może być fajne.
https://www.youtube.com/watch?v=KTV-XD6yxUg
Aktualizacja 13-12-2024 - Po upływie kilku lat ten projekt nie pojawił się publicznie tak więc można to tylko potraktować jako ciekawostkę. Wydaje mi się że problemem jest jak zwykle DMR i chore podejście do użytkowania zamkniętego kodu szyfrowania.
DVPi+ YSF
Aby dodać do naszego DVPi obsługę sieci YSF należy uruchomić funkcję DUAL VFO
Generalnie należy rozpocząć od dodania do ustawień MMDVM_Bridge obsługi YSF Network
Taraz ja zrobiłem klona Analog_Bridge tak Aby pracował niezależnie i miał ustawienia dedykowane dla YSF tylko. Tak więc 2x Analog_Bridge 1x MMDVM_Bridge.
W uproszczeniu to chyba można wyjaśnić następująco:
VFO A czyli DMR i DSTAR działa dzięki wbudowanemu DVswitch
VFO B wymaga doinstalowania kolejnego DVSwitch z konfiguracją na stałe do np. YSF lub M17
DVPi+ M17
Aby dodać do naszego DVPi 1.0 by KD8CEC obsługę sieci M17 należy najpierw uruchomić funkcję DUAL VFO2 a następnie zainstalować program USRP2M17
Dzięki takiemu zabiegowi posiadamy sieci DMR i DSTAR na VFO A , natomiast VFO B będzie łączyć się z USRP mostem do M17 Network.
Przy pomocy programu DVPi Manager uruchamiamy DUAL VFO oraz dokonujemy zmian w ustawieniach TX/RX Port
Pokazane porty 34001/32001 są kompatybilne z programem USRP2M17 Bridge którego musimy zainstalować zgodnie z instrukcją https://wiki.m17.link/usrp2m17_bridge
sudo -s
mkdir git cd git
git clone https://github.com/nostar/MMDVM_CM.git
...
Po poprawnej instalacji i uruchomieniu USRP2M17 mamy VFO A z DMR i DSTAR oraz VFO B z M17 NETWORK.
Zapamietaj:
1. Instalacja i konfiguracja USRP2M17 na DVPi
2. DVPi Manager - aktywacja DUAL VFO
3. Dopasować porty USRP: 34001/32001 i miłego użytkowania
Może kiedyś DVPi dorobi się aktualizacji i będzie można wybierać więcej sieci z menu.
DVPi MMDVMHost
MMDVM Hotspot to nic innego jak program MMDVMHost autorstwa G4KLX zmieniający nasz modem MMDVM w hotspot.
Modem MMDVM został podłączony do RaspberryPi poprzez USB-TTL a jego uruchomienie jest możliwe poprzez skrót ekranowy lub poprzez SVXReflector - Panel Sterowania v.0.05
DVPi SDR-RX
RTL-SDR także jest możliwy skoro już jest ekran dotykowy to dlaczego nie użyć.
Ten koncept został tylko uruchomiony w celu sprawdzenia czy RaspberryPi 3B+ da sobie z tym radę. Dalsza konfiguracja dopiero po podłączeniu ekranu dotykowego.
Opis instalacji:
https://learn.adafruit.com/freq-show-raspberry-pi-rtl-sdr-scanner/installation
DVPi SVXReflector
Zachęcam do zapoznania się z moim zdaniem ciekawym i mającym potencjał projektem analogowej sieci krótkofalaskiej http://fm-poland.pl/. Opisy, schematy, linki do grup dyskusyjnych znajdziecie pod podanym adresem, wraz z kompletną informacją co do koncepcji tej sieci.
Koledzy z SVXReflector Polska opublikowali opis instalacji programu svxlink w wersji klient SVXReflector PL między innymi na RaspberryPi.
Uznałem że skoro w DVPi posiada RPI3B+ , gotowy tor audio, sterowanie PTT i wszystko inne co jest niezbędne do uruchomienia klienta bez RF to dlaczego nie.
Słowem wstępu pragnę wyjaśnić iż dla mnie DVPi to nie tylko program ale i schemat połączeń GPIO, tymsamym pewnego rodziaju "standard" połączeń i konfiguracji dla tego urządzenia.
Dla przykładu to schemat połaczenia do RaspberryPi
Poniższe zdjęcie przedstawia podzespoły które biorą udział w pracy programu SVXLink w podstawowej jego konfiguracji.
GPIO20 PTT Switch
GPIO12 RX LED
Jeśli instalacja przebiegnie prawidłowo naszym oczom pod adresem IP naszej maliny pojawi się podobny dashboard
Ponieważ DVPi dysponuje wyświetlaczem dotykowym to postanowiłem użyć funkcji dotyku aby móc zmieniać grupy TG.
Dlatego postanowiłem zmodyfikować (na własne potrzeby) dashboard, aby był w stanie na wyświetlaczu 3,5" o rozdzielczości 320x480px niezbędne informacje.
Tak powstała wersja 0.01 Panelu sterowania SVXReflector client.
Całość uruchamia sie z poziomu pulpitu za pomocą skryptu uruchamiającego na poczatku animację a nastepnie wszystkie niezbędne usługi jakie są wymagane przez SVXLink oraz wyświetlanie dashboard poprzez przegladarke www w trybie pełnoekranowym.
Panel Sterowania v.0.02
Główną bazą był dashboard opublikowany w ramach FM POLSKA, ja go jedynie adaptowałem do własnych potrzeb, skrypty w większości są znalezione w internecie. Mój wkład w ten projekt to jedynie 1% własnej tworczości i trochę czasu poświęconego na adaptację pod wyświetlacz 480x320px.
Dzięki aktualizacji ze strony kol. Waldka SP2ONG pojawiła się klawiatura DTMF co bardzo ułatwia pracę z poziomu dotykowego ekranu.
Dlatego główne okno posiada proste niezbędne informacje o statusie połaczenia z FM POLAND, następnie 5 klawiszy szybkiego wybierania i w dolnej części klawisze odnoszące się do innych funkcji.
Jeśli chodzi o 5 klawiszy szybkiego wybierania to można je zastąpić przyciskami i dzięki temu bez posiadania fizycznego przycisku PTT będzie można prowadzić rozmowy tylko posiadając zestaw słuchawkowy.
I tak pierwszy od lewej to DTMF i wyświetla nam się okno z numeryczną klawiaturą dzięki której można wygenerować DTMF.
Kolejnym oknem jest TG czyli klawisze szybkiego wybierania grup rozmownych w FM POLAND
Svxlink to głównie także EchoLink ale i nie tylko dlatego mamy także klawisze szybkiego wyboru innych funkcji oraz szybkiego wyboru połączeń do wybranych stacji echolinkowych
Svxlink posiada zintegrowany moduł sieci FreeRadioNetwork ( nie mylić z FRN 446MHz ) to znalazło się także miejsce na menu które pozwala na zpewsonalizowanie połaczenia do trzech kanałów/serwerów
Na koniec zakładka Config. Tutaj przycisk POWER OFF został zastąpiony funkcją SVXlink OFF i wynika to z potrzeby zamknięcia wszystkiego co jest wymagane do pracy SVXlink , wyjście do pulpitu i umożliwić uruchomienie programu DVPi
Krótki film na Youtube przedstawiający pracę na ekranie dotykowym
Panel Sterowania v.0.03 - dostępny do pobrania na GitHub FM POLAND.
Główną bazą był dashboard opublikowany w ramach FM POLSKA, ja go jedynie adaptowałem do własnych potrzeb, skrypty w większości są znalezione w internecie. Mój wkład w ten projekt to jedynie 1% własnej tworczości i trochę czasu poświęconego na adaptację pod wyświetlacz 480x320px.
Można także pobrać tylko Dashboard - https://github.com/FM-POLAND/hs_dashboard_dvpi
Panel Sterowania v.0.04 - dostępny w obrazie na RPI
Główną bazą był dashboard opublikowany w ramach FM POLSKA, ja go jedynie adaptowałem do własnych potrzeb, skrypty w większości są znalezione w internecie. Mój wkład w ten projekt to jedynie 1% własnej tworczości i trochę czasu poświęconego na adaptację pod wyświetlacz 480x320px.
Strona startowa
Po uruchomieniu pojawia nam się okno MAIN. Mamy na nim kilka podstawowych informacji o adresie IP naszego urządzenia, czasie uruchomienia czy temperaturze procesora. Mamy także informacje dotyczące samego SVXreflector w postaci informacji o monitorowanych grupach rozmownych TG Monitor oraz o aktywnej w tym momencie grupie TG Active.
Posiadamy także informacje o statusie połączenia z SVXReflector oraz informację o aktywności. Aktywność przejawia się w postaci znaku osoby którą odbieramy lub o ostatniej słyszanej TG.
Poniżej mamy 4 przyciski szybkiego wyboru grup TG, ( QUICK MEMO ) które są zdefiniowane w pliku /var/www/html/480x320/include/config.php
Zmieniając wartości możemu sobie dokonać personalizacji, KEY111 do KEY114 są przypisane do 4 przycisków Quick Menu. Dla przykładu linia define("KEY111", array('1','911#','green')); poprzez modyfikację do define("KEY111", array('W/W','9191#','green')); daje nam nam przycisk w kolorze zielonym z napisem W/W i gereruje DTMF o wartości 9191# co jest w wiekszości SVXReflectorów przypisane do grupy WorldWide
Sterowanie DTMF
Po wybraniu ikony tej uzyskujemy dostęp do panelu z klawiaturą numeryczną odpowiadającą kodom DTMF. Wystarczy przykładowo wybrać 91260# aby połączyć się z TG260 FM Polska. Dokładnie tak samo jakbyśmy używali wybierania DTMF w radiu, z tą różnicą że tu nie musimy wciskać PTT
Memory
Memory to predefiniowane przyciski umożliwiające szybki dostęp do TG bez konieczności używania klawiszy DTMF
Personalizacja odbywa się poprzez edycję pliku /var/www/html/480x320/include/config.php gdzie podobnie jak w opisanym przypadku QUICK MEMORY.
Patrząc na definicję od momentu array to wystarczy zmienic wartości według schematu 'nazwa','DTMF','color'
Last Heard
Ostatnio słyszane - to wewnętrzy wykaz stacji jakie były aktywne na TG monitorowanych. Jest to ważne aby zrozumieć iż nie jest to aktywność serwera a jedynie naszego noda.
Dashboard serwera
Dashboard serwera jest kompatybilny obecnie jedynie z SVX dashboard by https://github.com/SkyAndy
Na tym zdjęciu widać dashboard serwera testowego https://www.d4a.uk/svxrdb-server/ który został zmodyfikowany na potrzeby wyświetlania niezbędnych informacji na wyświetlaczu 3,5"
W trakcie testów i prac nad tym projektem zbudowaliśmy wraz z kolegami w pełni działający SVXReflector z cross do sieci DMR, M17, FreeRadioNetwork, YSF i Mumble oraz podłączonym RTL-SDR jako monitor lokalnego przemiennika.
Ale można bez problemu wyświetlić prawie każdy dashboard.
W tym celu trzeba edytować plik /var/www/html/480x320/dashboard.php
Wystarczy zmienić adres dashboard serwera i powinno działać. Oczywiście proszę pamietać iż nie każdy dashboard serwera zmieści się na tak małym wyświetlaczu.
SVXLink
SVXlink to zbiór przycisków do obsługi modułów takich jak MOTAR, PARROT, czy sam EchoLink.
Kolorem purpurowym oznaczone przyciski jakie możemy sobie sami zaprogramować. Mogą to być przykładowo przemienniki EchoLink.
Personalizacja odbywa się poprzez edycję pliku /var/www/html/480x320/include/config.php
i dokonanie tam stosownych zmian według klucza podanego przy okazji MEMORY czy QUICK MEMO - 'nazwa','DTMF','color'
Free Radio Network
Ten panel umożliwia podłączenie się do 3 zdefiniowanych serwerów FRN.
Mamy także dostęp do Dashboard serwera FRN jeśli on takowego posiada. Ten wyświetlany to dashboard serwera testowego z którym domyślnie ten obraz się łączy
Oczywiście adres wyświetlanego serwera można zmianić poprzez edycję pliku /var/www/html/480x320/frndash.php i zmianę w nim adresu
FRN składa się z 3 klientów które można dowolnie konfigurować zdecydować gdzie i do jakiego serwera FRN będziemy łączyć, z jakim znakiem itp.
FRN1 - plik konfiguracyjny /etc/svxlink/svxlink.d/ModuleFrn.conf
FRN2 - plik konfiguracyjny /etc/svxlink/svxlink.d/ModuleFrn2.conf
FRN3 - plik konfiguracyjny /etc/svxlink/svxlink.d/ModuleFrn3.conf
Konfiguracja
Konfiguracja to taki zestaw narzędzi pozwalający sterować całym tym wynalazkiem. Mamy tu do dyspozycji przyciski czerwone odpowiedzialne za wyłączanie/resetowanie albo samej aplikacji SVXLink albo samego RaspberryPi.
SVX Status - to strona wyświetlająca status programu SVXLink. ( dokładniej to jednego z nich, głównego - tego sterowalnego za pomocą ekranu dotykowego i omawianego do tej pory - więcej o tym na końcu )
HARDWARE - to zakładka pokazująca informacje o naszym sprzęcie - zajęcie procesora, pamięci , dysku itp.
AudioTest - to narzędzie do testowania poziomów audio z jakimi wchodzimy na SVXReflector. Pozwala na nagranie około 15 sekund naszego głosu a następnie odsłuchując się widzimy jaki jest poziom.
Audio Config - to graficzna nakładka na alsamixer pozwalająca na zmianę poziomów audio wejście i wyjście w celu znalezienia optymalnego poziomu audio.
RTL-SDR - Dzięki temu panelowi możemy opcjonalnie uruchomić "dodatkowy opcjonalny" klient SVXLink prekonfigurowany pod kątem użycia odbiornika RTL-SDR podłączonego za pośrednictwem portu USB.
Dodatkowy klient svxlinkrtl jest uruchamiany i konfigurowany równolegle do działającego głównego klienta SVXLink. Ten klient posiada własny plik konfiguracyjny.
Mamy do dyspozycji prosty dashboard informujący o STATUSie pracy modułu RTL-SDR.
Konfiguracja tego klienta możliwa jest poprzez edycję pliku /etc/svxlink/svxlink_rtl.conf
Program można uruchomić ręcznie svxlinkrtl --config=/etc/svxlink/svxlink_rtl.conf
AnyRadio - To kolejny niezależny klient SVXLink ( jest on w fazie TESTOWEJ i nie mogę potrwierdzić poprawności działania - generalnie chodzi o starowanie DTMF ) Klient ten pozwala uruchomić dodatkowego niezależnego klienta SVXLink w połączeniu kartą CM108 USB FOB - zmodyfikowana w/g projektu AllStarLink.
AnyRadio posiadać będzie kiedyś także Dashboard.
Konfiguracja tego klienta możliwa jest poprzez edycję pliku /etc/svxlink/svxlink2.conf
Program można uruchomić ręcznie svxlink2 --config=/etc/svxlink/svxlink2.conf
LICENCE - Próba przedstawienia informacji z jakich programów i materiałów korzystałem podczas tych modyfikacji - jakich praw licencyjnych należy przestrzegać podczas używania tego wsadu.
Rotary Encoder
Obsługa rotary encoder to temat marzenie którego nie udało mi się zrealizować.
Plan był taki aby encoder pozwalał "przeskakiwać" pomiędzy ikonami na dashboard a wciśnięcie encodera potwierdzenie wyboru.
Niestety nie umiałem tego wykonać i poprzestałem na tym co mi się udało zrobić. Mianowicie obecnie enkocoder robi za "kółko w myszce" i pozwala na przewijanie zawartości dashboard która nie zmieściła się w całości.
Materiały VIDEO
Postaram się wkleić tu albo linki do materiałów na YouTube albo moje robocze filmiki. Kiedyś zostanie to poukładane
Najnowsze video by MSR Project
Materiały źródłowe:
http://svxreflector.org/svxlink/index.html
Podziękowania dla Dawida z MSR Project za udostępnienie DVPi - bez tego nie byłoby mojego zainteresowania tym projektem DVPi i w konsekwencji tego także SVX.
Podziękowania dla Waldka SP2ONG i FM Polska za materiały jakie tam udostępnili, a także dla społeczności SVXReflector Polska na telegramie która była otwarta na mój niszowy projekt.
Podziękowania dla Daniela SP0DZ za cenne pomoce i rady
Aktualizacja: 13-12-2024
( wraz z postępami będzie większy opis ) - wiecej w artykule aDVPi - edycja 2024 - koncept
Panel Sterowania v.2024 - to modyfikacja panelu v.0.04
Pasek wyświetlania aktywnych stacji został zmodyfikowany i teraz wyświetla informacje pochodzące z API serwera i to klienci podłączeni do reflektora decydują co dokładnie jest wyświetlane.
Nastąpiło trochę zmian w module FRN - mianowicie wyposażony on został w okno wyświetlania korespondenta.
Dodatkowo zmieniony zostało okno DASHBOARD FRN, choć nazywanie tego zmianą to za dużo powiedziane. Zwyczajnie powstał "nowszy" FRN Dashboard 2024 i niejako zaimplementowane wyświetlanie zostało w aDVPi-2024. Oczywiście aby widzieć taki dashboard to sam serwer FRN musi go posiadać a nie klient.
Więcej o koncepcyjne wersji znajdziecie w aDVPi - edycja 2024 - koncept
Wygaszacz ekranu
Dawno wspominany i jak zawsze przypadek sprawił że postanowiłem się tym zająć ( no i odrobina wolnego czasu wieczorem )
Pomysł na realizację wygaszacza zaczerpnięty ze strony https://www.ketzler.de/2017/12/exit-screensaver-on-raspberry-pi-with-motion-sensor/ i został zaadaptowany do potrzeb DVPi.
Proces instalacyjny opisany jest na powyższej stronie i przebiega bezproblemowo.
Konfiguracja już się różni i częściowo wynika to z wersji GPIO-Watch oraz specyfiki DVPi.
Bez wskazywania różnic przedstawię własną wersję konfiguracji oraz wykonania autostartu.
Konfiguracja
Należy utworzyć katalog /etc/gpio-scripts/
w którym będziemy tworzyli pliki z instrukcją co ma się stać gdy GPIO-Watch wykryje aktywność na GPIO.
I tu ważna uwaga odnośnie różnic jak DVPi aplikacja widzi GPIO a jak to widzi GPIO-Watch.
DVPi schemat GPIO
GPIO-Watch
Neleży stosownie policzyć co mamy na którym pinie i jaki to jest numer dla GPIO-Watch. Moge podpowiedzieć iż w przypadku "standardowej" konfiguracji DVPi można utworzyć pliki o numerach 12 13 16 19 20 26 6.
Tak więc tworzymy plik 12 dla gpio numer 12 komendą sudo nano /etc/gpio-scripts/12
i umieszczamy w pliku
#!/bin/sh
#echo 'set on'
xset s reset
xset dpms force on
Zapisujemy plik i nadajemy mu uprawnienia do uruchamiania komendą chmod +x /etc/gpio/scripts/12
W taki sposób przygotowywujemy pliki dla każdego portu GPIO jaki chcemy monitorować.
PIERWSZE URUCHOMIENIE TESTOWE
Uruchomienie musi się odbywać na ekranie DVPi i nie może być zrealizowane poprzez połaczenie SSH
Wydając takie komendy w oknie terminala wykonacie konfigurację wygaszacza i ostatnia linijka to uruchomienie monitora GPIO.
xset dpms 120 120 120
xset s reset
xset dpms force on
gpio-watch -e rising 6 12 13 16 19 20 26
Wymieniona cyfra 120 to czas w sekundach - na potrzeby testu sugeryje zamienić na 20 lub 30 - te komendy nie zapisują się w systemie tak więc spokojnie.
Automatyczne uruchamianie
Jeśli testy z poziomu terminala przeszły pozytywnie można przejść do ostatniego elementu układanki AUTOSTARTU.
Tu należy wspomnieć o fakcie iż są dwa etapy. Pierwszy to samo włączenie wygaszacza ( komendy xset ) a drugi to wybudzenie czyli gpio-watch.
Zaczniemy od GPIO-Watch. Pierwsze co robimy to tworzymy scrypt uruchomienia monitora GPIO
sudo nano /home/pi/gpiowatch.sh
i wklejamy do niego
gpio-watch -e rising 6 12 13 16 19 20 26
Proszę pamietać iż u Was mogą to być inne porty.
Teraz czas uruchomić sam wygaszacz w systemie. W tym celu edytujemy plik sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Zmieniamy wpisy z frazą xset i dopisujemy ścieżkę do naszego skryptu uruchomienia GPIO-Warch tak aby wyglądało to jak na zdjęciu
Generalnie to komenda xset dpms 120 120 120
zawiera w sobie trzy czasy i w zależności od posiadanego wyświetlacza LCD to tyle moze być fukcji. Dla przykładu komenda wyglądająca tak xset dpms 100 200 300
pozwala na uruchomienie wygaszacza po 100sek, uspienie wyświetlacza po 200sek. i wyłączenie wyświetlacza po 300sek. Ja mogę jedynie mieć pierwszy paramert na wyświetlaczy Waveshare. Uzyskane efekty są uzależnione od posiadanej wersji wyświetlacza. Często na wyświetlaczach nie będzie można uzyskać efektu wyłączenia podświetlenia czy loga startowego.
DVPi logo startowe
W trakcie uruchamiania raspberry nie pokazuje już więcej informacji tekstowych a jedynie pojawi się na chwilę takie robocze logo.
UWAGA !!! Ta modyfikacja działa na ekranach HDMI.
Filmik pokazujący nowy sposób uruchamiania
LOGO startowe nie było możliwe do zrealizowania w przypadku wyświetlacza 3.5" na złączu GPIO. ( no nie udało mi się )
Kolega Dawid z MSR Project zaprojektował obudowę która bardzo podnosi walory estetyczne i użytkowe DVPi.
Miałem przyjemność używać tej obudowy przez kilka ładnych miesięcy i powiem że jest fajna, praktyczna i pozwala na ogrom modyfikacji wewnątrz.
Materiały źródłowe:
Zdjęcia dostarczone przez MSR Project
Linki do filmów na YouTube
Jeśli ktoś jest zainteresowany taką obudową lub uzyskaniem większej ilości informacji - Prosze kontaktować za pośrednictwem portalu YouTube - linki wyżej.
Galeria zdjęć - zdjęcia pochodzą z rozbiórki
ADVPi - obraz RaspberryPi
W poniższym materiale postaram się przedstawić opis tego co zamieściłem na TESTOWYM wsadzie na urządzenie RaspberryPi. To jedyny wsad jaki upubliczniłem i pomimo wielu błędów jakie tam można zobaczyć to finalnie to działa.
Mam świadomość iż jeśli tylko ktoś bardziej ogarnięty zabrał się za to to efekt będzie lepszy, niestety z powodu braku podobnych rozwiązań na rynku - postanowiłem coś sam ulepić na własne potrzeby.
ADVPi klient bazuje na obrazie DVPi kolegi KD8CEC. Nadal mamy do dyspozycji program DVPi pozwalający pracować w sieciach DMR/Dstar w oryginale a po delikatnych modyfikacjach także YSF/M17.
Ponieważ posiadam takie urządzenie wykonane w/g opisu DVPi to postanowiłem dodać do niego kolejną funkcjonalność w postaci obsługi sieci analogowych.
Wersja BETA obrazu systemu na RaspberryPi. Postaram się w tym artukule wyjaśnić jak taki wsad sobie ustawić pod siebie.
Aby nie było nieporozumień - główną bazą był dashboard opublikowany w ramach FM POLSKA, ja go jedynie adaptowałem do własnych potrzeb, skrypty w większości są znalezione w internecie. Mój wkład w ten projekt to jedynie 1% własnej tworczości i trochę czasu poświęconego na adaptację pod wyświetlacz 480x320px.
Jeśli chodzi o specyfikację techniczną to proszę zapoznać się z projektem http://www.hamskey.com/ , niemniej można wspomnieć iż jest to RaspberryPi 3B+ ( rpi4 także potrafi działać ) z podłączonym ekranem 3,5" gpio, karta dźwiękowa USB oraz prosty interface PTT
Pierwsze uruchomienie
Po uruchomieniu pojawi się nam na ekranie taki pulpit
W celu połączenia z własną siecią WiFi dodana została klawiatura która umożliwi wpisanie hasła.
Klawiatura może i nie jest optymalna dla tego ekranu ale na poczekaniu taką znalazłem.
Po połączeniu z naszą siecią lokalną możemu użyć także programu VNC do kontrolowania.
W tym celu trzeba wybrać połączenie z adresem IP naszego RaspberryPi a następnie wpisać hasło 595959. Dokładnie tak samo jak w DVPi.
SSH połączenie możliwe poprzez login pi i hasło dvpi.
Na pulpicie mamy dwie interesujące ikony - DVPi oraz SVXlink. Ponieważ to opis poświęcony temu ostatniemu to zajmijmy się tym co się pojawia po uruchomieniu SVXlink.
Możemy bez problemu uruchomić zarówno DVPi jak SVXLink bez konieczności wstępnej konfiguracji ponieważ w konfiguracji zostawiłem ustawienia łączące wszystkie klienty z moimi prywatnymi serwerami na których można testować sobie bez limitu.
DVPi - https://www.d4a.uk/hbl/
SVXlink - https://www.d4a.uk/svxrdb-server/
FreeRadioNetwork - https://www.d4a.uk/FRN/
Wstępna konfiguracja
SVXLink główny - /etc/svxlink/svxlink.conf
SVXLink RTL-SDR - /etc/svxlink/svxlink_rtl.conf
SVXLink AnyRadio - /etc/svxlink/svxlink2.conf
APRS-IS - /etc/svxlink/aprsnet-pi
FRN1 /etc/svxlink/svxlink.d/ModuleFrn.conf
FRN2 /etc/svxlink/svxlink.d/ModuleFrn2.conf
FRN3 /etc/svxlink/svxlink.d/ModuleFrn3.conf
Strona startowa
Po uruchomieniu pojawia nam się okno MAIN. Mamy na nim kilka podstawowych informacji o adresie IP naszego urządzenia, czasie uruchomienia czy temperaturze procesora. Mamy także informacje dotyczące samego SVXreflector w postaci informacji o monitorowanych grupach rozmownych TG Monitor oraz o aktywnej w tym momencie grupie TG Active.
Posiadamy także informacje o statusie połączenia z SVXReflector oraz informację o aktywności. Aktywność przejawia się w postaci znaku osoby którą odbieramy lub o ostatniej słyszanej TG.
Poniżej mamy 4 przyciski szybkiego wyboru grup TG, ( QUICK MEMO ) które są zdefiniowane w pliku /var/www/html/480x320/include/config.php
Zmieniając wartości możemu sobie dokonać personalizacji, KEY111 do KEY114 są przypisane do 4 przycisków Quick Menu. Dla przykładu linia define("KEY111", array('1','911#','green')); poprzez modyfikację do define("KEY111", array('W/W','9191#','green')); daje nam nam przycisk w kolorze zielonym z napisem W/W i gereruje DTMF o wartości 9191# co jest w wiekszości SVXReflectorów przypisane do grupy WorldWide
Sterowanie DTMF
Po wybraniu ikony tej uzyskujemy dostęp do panelu z klawiaturą numeryczną odpowiadającą kodom DTMF. Wystarczy przykładowo wybrać 91260# aby połączyć się z TG260 FM Polska. Dokładnie tak samo jakbyśmy używali wybierania DTMF w radiu, z tą różnicą że tu nie musimy wciskać PTT
Memory
Memory to predefiniowane przyciski umożliwiające szybki dostęp do TG bez konieczności używania klawiszy DTMF
Personalizacja odbywa się poprzez edycję pliku /var/www/html/480x320/include/config.php gdzie podobnie jak w opisanym przypadku QUICK MEMORY.
Patrząc na definicję od momentu array to wystarczy zmienic wartości według schematu 'nazwa','DTMF','color'
Last Heard
Ostatnio słyszane - to wewnętrzy wykaz stacji jakie były aktywne na TG monitorowanych. Jest to ważne aby zrozumieć iż nie jest to aktywność serwera a jedynie naszego noda.
Dashboard serwera
Dashboard serwera jest kompatybilny obecnie jedynie z SVX dashboard by https://github.com/SkyAndy
Na tym zdjęciu widać dashboard serwera testowego https://www.d4a.uk/svxrdb-server/ który został zmodyfikowany na potrzeby wyświetlania niezbędnych informacji na wyświetlaczu 3,5"
W trakcie testów i prac nad tym projektem zbudowaliśmy wraz z kolegami w pełni działający SVXReflector z cross do sieci DMR, M17, FreeRadioNetwork, YSF i Mumble oraz podłączonym RTL-SDR jako monitor lokalnego przemiennika.
Ale można bez problemu wyświetlić prawie każdy dashboard.
W tym celu trzeba edytować plik /var/www/html/480x320/dashboard.php
Wystarczy zmienić adres dashboard serwera i powinno działać. Oczywiście proszę pamietać iż nie każdy dashboard serwera zmieści się na tak małym wyświetlaczu.
SVXLink
SVXlink to zbiór przycisków do obsługi modułów takich jak MOTAR, PARROT, czy sam EchoLink.
Kolorem purpurowym oznaczone przyciski jakie możemy sobie sami zaprogramować. Mogą to być przykładowo przemienniki EchoLink.
Personalizacja odbywa się poprzez edycję pliku /var/www/html/480x320/include/config.php
i dokonanie tam stosownych zmian według klucza podanego przy okazji MEMORY czy QUICK MEMO - 'nazwa','DTMF','color'
Free Radio Network
Ten panel umożliwia podłączenie się do 3 zdefiniowanych serwerów FRN.
Mamy także dostęp do Dashboard serwera FRN jeśli on takowego posiada. Ten wyświetlany to dashboard serwera testowego z którym domyślnie ten obraz się łączy
Oczywiście adres wyświetlanego serwera można zmianić poprzez edycję pliku /var/www/html/480x320/frndash.php i zmianę w nim adresu
FRN składa się z 3 klientów które można dowolnie konfigurować zdecydować gdzie i do jakiego serwera FRN będziemy łączyć, z jakim znakiem itp.
FRN1 - plik konfiguracyjny /etc/svxlink/svxlink.d/ModuleFrn.conf
FRN2 - plik konfiguracyjny /etc/svxlink/svxlink.d/ModuleFrn2.conf
FRN3 - plik konfiguracyjny /etc/svxlink/svxlink.d/ModuleFrn3.conf
Konfiguracja
Konfiguracja to taki zestaw narzędzi pozwalający sterować całym tym wynalazkiem. Mamy tu do dyspozycji przyciski czerwone odpowiedzialne za wyłączanie/resetowanie albo samej aplikacji SVXLink albo samego RaspberryPi.
SVX Status - to strona wyświetlająca status programu SVXLink. ( dokładniej to jednego z nich, głównego - tego sterowalnego za pomocą ekranu dotykowego i omawianego do tej pory - więcej o tym na końcu )
HARDWARE - to zakładka pokazująca informacje o naszym sprzęcie - zajęcie procesora, pamięci , dysku itp.
AudioTest - to narzędzie do testowania poziomów audio z jakimi wchodzimy na SVXReflector. Pozwala na nagranie około 15 sekund naszego głosu a następnie odsłuchując się widzimy jaki jest poziom.
Audio Config - to graficzna nakładka na alsamixer pozwalająca na zmianę poziomów audio wejście i wyjście w celu znalezienia optymalnego poziomu audio.
RTL-SDR - Dzięki temu panelowi możemy opcjonalnie uruchomić "dodatkowy opcjonalny" klient SVXLink prekonfigurowany pod kątem użycia odbiornika RTL-SDR podłączonego za pośrednictwem portu USB.
Dodatkowy klient svxlinkrtl jest uruchamiany i konfigurowany równolegle do działającego głównego klienta SVXLink. Ten klient posiada własny plik konfiguracyjny.
Mamy do dyspozycji prosty dashboard informujący o STATUSie pracy modułu RTL-SDR.
Konfiguracja tego klienta możliwa jest poprzez edycję pliku /etc/svxlink/svxlink_rtl.conf
Program można uruchomić ręcznie svxlinkrtl --config=/etc/svxlink/svxlink_rtl.conf
AnyRadio - To kolejny niezależny klient SVXLink ( jest on w fazie TESTOWEJ i nie mogę potrwierdzić poprawności działania - generalnie chodzi o starowanie DTMF ) Klient ten pozwala uruchomić dodatkowego niezależnego klienta SVXLink w połączeniu kartą CM108 USB FOB - zmodyfikowana w/g projektu AllStarLink.
AnyRadio posiadać będzie kiedyś także Dashboard.
Konfiguracja tego klienta możliwa jest poprzez edycję pliku /etc/svxlink/svxlink2.conf
Program można uruchomić ręcznie svxlink2 --config=/etc/svxlink/svxlink2.conf
LICENCE - Próba przedstawienia informacji z jakich programów i materiałów korzystałem podczas tych modyfikacji - jakich praw licencyjnych należy przestrzegać podczas używania tego wsadu.
APRS
Obraz ma uruchomioną usługę wysyłania ramek do serwerów APRS-IS
Modyfikację danych wyświetlanych za pośrednictwem APRS-IS należy edytować plik /etc/svxlink/aprsnet-pi
Można oczywiście wyłączyć ten moduł poprzez edyscję pliku /etc/cron.d/svxlink i wstawienie znaku # przed linią */10 * * * * root /etc/svxlink/aprsnet-pi 2>&1 >/dev/null
SVXLink TX/RX LED
ADVPi został wyposażony w skrypt umożliwiający na sygnalizację LED TX bez konieczności fizycznego brania sygnału z przycisku PTT. Dzięki temu mamy pełną już sygnalizację TX/RX bez konieczności zmieniania schematu GPIO pinout DVPi
Napisanie dodatkowego skryptu było konieczne aby nie ingerować w domyślny schemat połączeń GPIO w/g schematu DVPi
Prosze zauważyć iż o ile GPIO ma diodę czerwoną TX ale nie jest ona połączona z przyciskiem PTT, jednocześnie SVXLink nie posiada opcji wytransportowania sygnału nadawania.
Skrypt mieści się w /home/pi/svxpttled.py
i jest dopisany do skryptu start jak i stop co powoduje że jedynie SVXLink gdy pracuje to ten skrypt jest aktywny.
Rotary Encoder
Obsługa rotary encoder to temat marzenie którego nie udało mi się zrealizować.
Plan był taki aby encoder pozwalał "przeskakiwać" pomiędzy ikonami na dashboard a wciśnięcie encodera potwierdzenie wyboru.
Niestety nie umiałem tego wykonać i poprzestałem na tym co mi się udało zrobić. Mianowicie obecnie enkocoder robi za "kółko w myszce" i pozwala na przewijanie zawartości dashboard która nie zmieściła się w całości.
POBIERANIE
Jeśli jakaś wersja będzie dostępna do pobrania to prosze szukać w dziale DOWNLOAD i RaspberryPi - Tam powinna być pod nazwą aDVPi
Nie opublikowane
W tej wersji nie znalazła się opcjonalna obsługa MMDVM , GPS lub komunikatów audio. Wynika to ze stopnia zawansowania prac na nimi. Sam moduł MMDVM-USB jest działący - brakuje mu dashboard, komunikaty audio także działają ( ale mam jeszcze kilka pomysłów, choćby obsługę RTL-SDR z poziomu ekranu i encodera ) Są to wynalazki z gatunku "Pimp My Radio" - i upychania do jednego RaspberryPi jak najwięcej tylko dlatego że koszty zakupu i dostępność na rynku powoduje że nie jest to tania zabawka i bedziemy ich dziesiątki stawiać na półce.
Materiały VIDEO
Postaram się wkleić tu albo linki do materiałów na YouTube albo moje robocze filmiki. Kiedyś zostanie to poukładane
Najnowsze video by MSR Project
Materiały źródłowe:
http://svxreflector.org/svxlink/index.html
Podziękowania dla Dawida z MSR Project za udostępnienie radia DVPi - bez tego nie byłoby mojego zainteresowania tym projektem DVPi i w konsekwencji tego także.
Podziękowania dla Waldka SP2ONG i FM Polska za materiały jakie tam udostępnili, a także dla społeczności SVXReflector Polska na telegramie która była otwarta na mój niszowy projekt.
Podziękowania dla Daniela SP0DZ za cenne pomoce i rady