Odwiedza nas 167 gości oraz 0 użytkowników.

SVXpi

SVXpi to wsad na RaspberryPi 0/2/3/4 którego założeniem jest bycie uniwersalnym jeśli chodzi o budowę urządzeń SVXreflector. Posiada możliwośc pracy w trybie terminalowym i bycie prostym gateway sterowanym poprzez www, ale jednoczesnie daje możliwość obsługi wyświetlacza OLED i klawiatury DTMF co czyni go potencjalnym materiałem na "ręczniaka". Dla bardziej wymagających jest możliwość podłączenia ekranu dotykowego na wzór aDVPi - 2024 finalna wersja i zbudowanie urządzenia typu Network Radio lub network radio + gateway. Wsad przygotowywany jest do pracy na minimalnym sprzecie jakim jest RaspberryPi 0W ( czego nie potrafił aDVPi ), ale przy RaspberryPi 3B+ lub wyżej daje możliwość zbudowania takiego samogo "kombajnu" jak aDVPi gdyż zachowa wszystkie udogodnienia z niego.  Dla mnie najważniejszy jest fakt że posiada możliwość szybkiego przełączania się pomiedzy 3 SVXreflektorami dzieki przyciskom w menu. 

Discord tego projektu https://discord.gg/bWYtT8c5

 Na wstępie muszę mocno zaznaczyć że SVXpi to nie jest aDVPi, a jedynie posiada funkcjonalność jaką miało aDVPi w postaci obsługi ekranu 3,5". Jest to inna konstrukcja, inna instalacja i inne zastosowanie. aDVPi bazował w dużej mierze na svxlink instalowanym wraz z modyfikacjami pochodzącymi z FM Poland. W SVXpi starałem się trzymać się oryginalnej dystrybucji svxlink. Wsad ten posiada wgranych kilka wersji językowych SVXlink. en_US - Angielski, pl_PL - Polski, ro_RO - Rumiński, es_ES - Hiszpanski, fr_FR - Francuski, de_DE - Niemiecki.

 

ZAŁOŻENIA

Założenie podstawowe

 

Z założenia SVXpi został stworzony do pracy w trybie konsolowym i miał pracować na RaspberryPi 0W. W moim przypadku miało to być RPI0W z kartą dźwiękową nakładkową HAT, i przy takiej konfiguracji był to punkt wyjściowy dla mnie do budowy bramki/gateway w oparciu o sterowanie GPIO, ale także w tej samej konfiguracji do budowy "ręczniaka" SVX.

 

Koncept "ręczniaka" spowodował iż były zabawy z wyświetlaczem OLED oraz Klawiaturą DTMF.

 

 

Oczywiście klawiatura i wyświetlacz OLED nie jest obowiązkowy i mozna spokojnie sterować taką bramką/gateway poprzez "Main Dashboard"  

Prezentacja menu

 

Zakładka MEMO - posiada predefinowane klawisze pamięci TG, ale także 3 klawisze przełączania pomiedzy 3 serwerami SVXreflector.

 

Wirtualna klawiatura DTMF

 

Zakładka FRN - Free Radio Network - mamy możliwość połaczenia z jednym z 3 serwerów FRN oraz obserwować okno aktywności "kto nadaje" na wybranym serwerze.

 

MMDVM Hotspot sterujący nakładką MMDVM połączoną z RPI za pośrednictwem GPIO lub USB. Mamy podgląd na podstawowe informacje o konfiguracji oraz okno aktywności "kto mówi" i na jakim TG.

 

 Config - pozwala na podstawowe sterowanie naszym SVXlink. W finalnej wersji tu pojawią się linki do edycji plików konfiguracyjnych.

 

Zakładka EXTRA - daje nam dostęp do extra opcji. Możemy ręcznie uruchomić wyświetlacz OLED, klawiaturę DTMF.

Dodatkowo mamy możliwość sprawdzić info o HARDWARE

 lub sprawdzić poziom wysterowania audio 

 

 

Jako już totalny wodotrysk dodałem możliwość używania wirtualnego 3,5" wyświetlacza.

 

Tak generalnie prezentuje się sterowanie SVXlink który jest uruchomiony w podstawowej konfiguracji. Podstawowej oznacza dla mnie RaspberryPi jakiekolwiek z jakąś kartą dźwiękową i wysterowaniem GPIO. Można opcjonalnie dodać sobie OLED lub klawiaturę DTMF, ale jest to "terminalowa" wersja w najprostrzej konfiguracji jak jest możliwa i potrzebnej do uruchomienia bramki/gateway.

SVXlink został zainstalowany z najnowszej dystrybucji ( na dzień instalacji ) i posiada w sobie wbudowaną obsługę VOX, CTCSS, SERIAL, EVDEV, SIGLEV, PTY, GPIO, GPIOD czy HIDRAW, dlatego prosze zapoznać się z manual dla svxlink. Starałem się zachować na tyle ile się dało "neutralność serwerową" i budować coś co może potencjalnie pracować w różnych wersjach językowych audio, na różnych serwerach, ale więcej o tym w dalszej cześci.

 

 

 

Założenie rozszeżone

W tej konfiguracji zakładałem uruchomienie interfejsu GUI i tym samym obsługi dotykowego wyświetlacza 3,5" i używanie 

 

 

W początkowej wersji miałem zamiar przenieść cały dashboard  projektu aDVPi - 2024 finalna wersja lecz po drodze przyszło kilka maili i zwrotnych komentarzy odnośnie użytkowania aDVPi i tego co potencjalnie może boleć, lub czego brakuje.

Dlatego przyszło trochę zmian kosmetycznych choćby zasugerowana przez SQ2MTX podniesienie przycisków menu wyżej w celu ułatwienia ich dotknięcia palcem gdyż nie każdy ekran dotykowy reaguje w taki sam sposób. Dlatego pasek z adresem IP oraz temperaturą powędrował na sam dół ekranu. W ramach szpanerskiej auto-reklamy pozwoliłem sobie zamienić dotychczasowy uptime na informacje o wersji SVXpi i własnym znaku :) 

Ponadto w pasku Reflector pojawiła się nazwa SVXreflektora z którym jesteśmy połączeni. Wynikało to z sugestii YO3ABD aby dodać możliwość przełacza się pomiedzy różnymi serwerami SVXreflector. Wynika to niejako ze specyfiki budowy sieci RoLink. 

Wraz ze zmianą danych logowania zmieniany był automatycznie adres API z którego pobierane są dane do wyświetlania DASH reflectora.

 

Samej zmiany serwera SVXreflector można dokonać dzięki jednemu z 3 przycisków w zakładce SVXlink

 

 

Życie zweryfikowało trochę moje zapędy nad oparciem wszystkiego o API, dlatego że wiele reflectorów nie udostępnia tej funkcjonalności, a to powoduje dysfunkcyjność lokalnego dashboard reflectora, ale co gorsza także okno aktywności na stronie głównej. 

Dlatego nastąpił powrót do pozyskiwania danych z pliku log svxlink. Czerwony pasek obecnie pokazuje tylko aktywność w ramach monitorowanych przez nas grup TG, a nie jak do tej pory za pośrednictwem API całej aktywności z reflectora.

 

Odejście od API jest niejako opcjonalne ponieważ pozostawię "starą" możliwość używania API a nie pliku log do pozyskiwania danych, ale niejako jestem skłonny zgodzić się ze zdaniem że takie obciążanie reflectora setkami tysięcy zapytań "co słychać" może mieć negatywne skutki dla pracy samego reflectora ale także i gateway będzie niepotrzebnie zapychał sobie łacze hotspota.  

 

Dodatkowo doszedł niebieski pasek w celu wyróżnienia ruchu z EchoLink.

 

 ( docelowo kiedyś jeszcze dojdzie inny kolor w celu sygnalizacji ruchu z sieci FRN )

 

 

Kolejnymi zmianami jakie zasugerowano to było dodanie do dashboard Free Radio Network paska modułów pozwalającego zorientować się który z FRN'ów jest obecnie aktywny.

 

MMDVM Hotspot pozostał w niezmienionej formie jako opcja dla tych co tego potrzebują ( głównie myslałem tu o sobie )

 

 

Menu konfiguracji zostało odchudzone i pozostały tylko niezbędne funkcje. Część pozostałych zostało przeniesione do "Main Dashboard"

 

PODSUMOWANIE

 

Chciałem aby jeden wsad na RaspberryPi posiadał możliwie wszechstronne zastosowanie, a głównie zalezało mi na elastyczności w uruchamianej platformie. 

Dlatego SVXpi w tym wydaniu będzie moim przenośnym "ręczniakiem" lub hotspotem ( RaspberryPi 0W )

 

W innym będzie stacjonarnym Network Radio + MMDVM hotspot  ( RaspberryPi 3B+ )

 

W innym ( jeszcze testowym ) gateway ( RaspberryPi 4 1GB )

 

Jak tylko dokończę ten projekt to pojawi się materiał odnośnie KONFIGURACJI i tam będzie dostępny obraz karty wersji 0.93_BETA do pobrania.

 

 

 

 

 

 

 

 

 

KONFIGURACJA

Konfigurację  rozpoczynamy od zalogowania sie do naszej "maliny" poprzez SSH.  Login: pi  | hasło: raspberry

Przygotowałem bardzo proste "menu" z komendami które wydaje mi się że będą pomocne na początku. Pomysł zaczerpnięty ze wsadu DJSpot. W skrócie zamiast wpisywać przykładowo sudo nano /etc/svxlink/svxlink.conf można wpisać tylko svxlink-config i efekt bedzie taki sam.

Ten dział "menu" bedzie pewnie często modyfikowany a więcej komend jest dostepnych po wpisaniu svxpi-help

 

 

Wsad jest na początkowym etapie ustawiony jako uruchamiający się  w "trybie terminalowym" i można spokojnie go uruchomić na RaspberryPi 0W, dodać kartę dźwiekową USB lub GPIO HAT i podstawowa konfiguracja do Hotspot lub Network Radio jest gotowa. 

 

Moim początkowym sprzętem będzie RaspberryPi 0W z kartą dźwiękową HAT Raspiaudio oraz wyświetlacz OLED równolegle z RaspberryPi 3B+ z kartą dźwiękową USB. Dlatego możecie czasami zobaczyć screen'y raz z rpi0w raz rpi3b+. Oczywiście rodzaj użytej karty dźwiękowej nie ma tu znaczenia ponieważ sama konfiguracja SVXlink jest taka sama a proces instalacji poprawnie sterowników do posiadanego modelu karty HAT leży po stronie użytkownika. W przypadku użycia karty USB praktycznie nie ma potrzeby robienia niczego.

 

Wsad domyślnie uruchamia się na testowym SVXreflector tak więc możecie sobie tam być i testować tak długo jak to potrzebne. Lepiej dokonać TESTY na neutralnym serwerze niż potem drażnić innych ludzi na reflectorze docelowym.

Proszę pamietać jedynie o zmianie znaku. Poczatkowo wsad posiada znak SVXpi-1, i wystarczy że zmianicie cyfrę na dowolną inną w przedziale od 2 do 10 ( Testowy serwer posiada dopisane testowe znaki od SVXpi-1 do SVXpi-10 ) Zwracam na to uwagę ponieważ kolejna osoba chcąca wejść z nowym wsadem będzie także logować się jako SVXpi-1 tak jak Wy. Spis wszystkich znaków dopuszczonych do SVXreflector-Test jest podany na stronie https://www.d4a.uk/cbnet/

Aby dokonać wstępnej konfiguracji sprawdzamy najpierw numer jaki w systemie posiada nasz karta dźwiękowa komedą aplay -l

W przypadku karty USB zobaczycie prawdopodobnie 

 

a w przypadku karty HAT GPIO

 

interesujące dla nas jest informacja card: 0 lub card: 1

 

Teraz edytujemy plik konfiguracyjny svxlink.conf komendą svxlink-config i dokonujemy w nim niezbędnych zmian w ustawieniach [Tx1][Rx1] karty audio, gpio PTT/COS oraz  [ReflectorLogic] dane logowania na reflector

Po zapisaniu sugeruję wszystkim wyłaczyć svxlink i uruchomić go w terminalu, pozwoli to na sprawdzenie czy nasze ustawienia PTT/COS i inne działają poprawnie. W tym celu wpisujemy svxlink-stop oraz tylko svxlink

 

Naszym oczom pojawi się albo okno informujące o zaistniałych błędach ( w tym przypadku wybór złej karty dźwiękowej w w części [Rx1] oraz zły / nieznany adres reflectora w [ReflectorLogic]

 

Jeśli wszystko uda nam się poprawnie ustawić to zobaczymy czyste uruchamianie się svxlink bez raportowanych błedów.

Nawet będzie widać aktywność naszego PTT/COS

 

Jeśli wszystko poszło pomyślnie  to możemy spokojnie uruchomić svxlink na stałe (svxlink-start) i zająć się konfiguracją kolejnych modułów.

 

Jeśli ktoś jest użytkownikiem EchoLink lub FRN to dzięki komendom svxlink-echolink oraz svxlink-frn1, svxlink-frn2, svxlink-frn3 może sobie dokonać edycji i konfiguracji tych modułów. Warto zapamietać te komendy z poczatku logowania lub wywołać tą listę komendą svxlink-help

 

 

 

Efekty możemy obserwować na naszym lokalnym panelu kontrolnym który znajduje się pod adresem IP naszego raspberrypi. 

 

 Dashboard ten jest w prawie nienaruszonym stanie w jakim wydał go Waldek SP2ONG w ramach projektu FM Poland, czysty wsad bez modyfikacji był opublikowany tu SVXreflector client RaspberryPi on także nadaje się pod RPI0W i inne.. 

Dodałem w dolnej części takie nazwijmy to "menu" konfiguracyjne, które pozwala na sterowanie samym gateway jak i zarzadzanie dodatkowymi funkcjami.

 

 

MEMO

Zakładka MEMO ma głównie być komórkami pamieci grup rozmownych ( TG ) i zarządzanie reflektorami do jakich jesteśmy podłaczeni. Można poprzez edycję pliku dokonać personalizacji NIEBIESKICH przycisków pamieci oraz ZIELONYCH przycisków przełączających pomiedzy prędzej zdefiniowanymi reflektorami.

 

 

Aby dokonać personalizacji przycisków Reflector należy w terminalu wpisać komendę svxlink-ref1

Skrypt ten ma za zadanie NADPISANIE w pliku svxlink.conf linijek odpowiedzialnych za połaczenie z reflectorem. Odpowiedznio uzupełniamy pole #Nowe wartości  i dzięki temu przycisk Reflector1 będzie nas kierował do tego tu zdefiniowanego reflektora.  Przykładowo przy takim wypełnieniu tego skryptu plik svxlink.conf  wygląda tak:

 

Tak więc wypełniając poprawnie 3 skrypty svxlink-ref1 , svxlink-ref2 i svxlink-ref3 robimy sobie taki przełącznik pomiedzy 3 reflectorami. Skrypt nadpisuje dane w svxlink.conf i restartuje svxlink.

Informacja o tym z jakim jesteśmy połaczeni reflektorem wyświetla nam się na dashboard w postaci

a dane te są pobierane z pliku svxlink.conf z linijki FMNET=

Nowym elementem w pliku svxlink.conf oraz svxlink-ref1 jest pozycja FMNET oraz API. 

 

Opis konfiguracji svxlink-ref1/-ref2/-ref3

 

new_host="d4a.uk"  - adres reflektora SVX
new_port="5300"     - port reflektora
new_callsign="SVXpi-1"    - znak
new_auth_key="passw0rd"    - hasło do reflektora
new_default_tg="1"    - domyślna grupa TG
new_monitor_tgs="1"   - monitorowane grupy TG

new_fmnet="D4A-Test"     - tu można napisać własną nazwę dla serwera w celu odróżnienia od innych
new_api="d4a.uk:8091/status" - tu wpisujemy adres API / status dzięki któremu wyświetlają się takie okna jak 

 

Dzięki poprawnej konfiguracji 3 skryptów nasze przyciski

 zaczynają nam działac i przełączać pomiedzy serwerami.

 

 

 

Konfiguracja niebieskich klawiszy MEMO

 

 

Aby dokonać personalizacji tych klawiszy należy w terminalu wydać komendę dash-memo i dzięki edycji pliku php możemy zmienić wartości. Strona ta pochodzi z oryginalnego dashboard by SP2ONG dlatego starając się zachować najwięcej jak się da w oryginale to nie zmieniałem jej. Jak to się mówi "jak coś jest i działa to nie ma co tego psuć" 

 

 

 zmieniamy zawartość zaznaczoną na niebiesko. Ta wartość to kod DTMF, przykładowo dla grupy 260 kod będzie *91260# lub 91260#

// Button 1
if (isset($_POST['button1']))
{
shell_exec('echo "*911#" > /tmp/dtmf_svx');
}
 

  <button class="blue" style="height: 60px; width: 130px;font-size:16px;" button name="button1">TG<br>1</button>

i nadajemy nazwę jaką chcemy mieć na przycisku. 

Tak postępujemy z kolejnymi przyciskami  

 

 

 

DTMF 

Strona DTMF  daje nam tak zwaną wirtualną klawiaturę DTMF. Dzięki niej możemy wybierać dowolną konfigurację DTMF niezbędną do sterowania naszym gateway.

 

 

 

 FRN

Na tej stronie możemy sterować modułami FRN które pozwalają na połączenie z jednym z 3 serwerów. Serwery te musimy sobie sami zaprogramować. W oknie tym także widzimy aktywność na serwerze w postaci znaku i imienia nadawcy.

 

Edycję serwerów z jakimi się łączymy dokonujemy komendą svxlink-frn, svxlink-frn2 lub svxlink-frn3. Każdy z tych przycisków i skryptów wymaga osobnej konfiguracji co może być utrudnieniem ale pozwala na konfigurację albo 3 kanały w ramach jednego serwera, lub 3 różnych serwerów, ponieważ są 3 niezależne klienty FRN.

w pliku tym wypełniamy wszystkie niezbedne pola wymagane do połaczenia z serwerem FRN. Nalezy być jak zawsze bardzo starannym i zachować ostrożność w pozostawianiu wolnych miejsc, spacji itp. Serwery FRN z uwierzytelnianiem w SysManager są bardzo wrażliwe to takie sprawy. Wystarczy o jedną cyfrę lub spację się pomylić przykładowo w podawaniu czestotliwości i z połaczenia nic nie będzie. 

Po zapisaniu należy nakazać svxlink załadować się ponownie , można to zrobic poprzez komende svxlink-start

 

 

 

 

MMDVM

MMDVM to opcjonalna funkcja pozwalająca na podłaczenie modemu MMDVM czy to poprzez GPIO czy USB.

Całość opiera się na edycji pliku MMDVM.ini komendą mmdvm-config

Funkcjonalność MMDVM została dodana w sumie dla mnie ponieważ tego potrzebowałem. Mam 4 modemy MMDVM i nie zawsze chce aby pracowały, a ponadto jest to marnotrawienie 4x RaspberryPi w celu utrzymania hotspotów w pracy.

a dzięki temu mam możliwość uruchamiać na rządanie i prosty pogląd czy i kto pracuje.

 

 

 

Config

 Strona ta pozwala na wyłaczenie raspberrypi lub go zrestartowanie. Można także wyłaczyć i włączyć SVXlink.

 

 Dodatkową funkcją jest możliwość podgłaszania i przyciszania zarówno wyjscia głośnikowego jak i wejścia mikrofonowego. Przyciski te powinny działać bezproblemowo przy karcie USB CM108 lub innych, lecz w przypadku problemów lub użycia karty HAT GPIO konieczne beda tu zmiany.

Konfigurację tą opisze za jakiś czas.

 

 

 

EXTRA

 

Ta strona została stworzona uruchamiania dodatkowych narzedzi OLED, KeyPad czy LED które prędzej przeszły proces konfiguracji. Przykładowo po podłączeniu wyświetlacza OLED 0.96" o rozdzielczości 128x64px sprawdzamy czy jest on widoczny przez system komendą i2cdetect -y 1

 

Jeśli mamy 3c to możemy uruchomić ten skrypt klawiszem OLED 128x64 i naszym oczom powinien pojawić się taki widok

 a w przypadku nadawania 

Program ten został pobrany z https://github.com/ea5gvk/oled2svx?search=1

Z czasem pojawi się tu opcja wyświetlacza na którym prace są rozpoczęte a dedykowany on będzie do mojego "reczniaka"

 Dlatego bedzie pokazywał realny stan baterii i zasięgu WiFi.

 

 

Przycisk HARDWARE pozwala na wyswietlenie informacji o statusie RaspberryPi

 

 

 

 

Virtual LCD

Wirtualny LCD to nic innego jak penel sterowania dedykowany dla wyświetlacza 3,5" uruchomiony w okienku.

 

To taki trochę wodotrysk, ale pozwoli także na sterowanie naszym SVXlink poprzez takie wirtualne okienko, symulujace wyświetlacz. Można to potraktować jako TESTOWE okienko zanim ktoś podejmie decyzję o zakupie wyświetlacza

 

 

NA TYM ETAPIE MOŻNA POWIEDZIEĆ ŻE ZAKOŃCZYMY KONFIGURACJĘ DLA RASPBERRY PI 0W I PODSTAWOWEJ KONFIGURACJI DLA GATEWAY. 

 

 

Uruchomienie GUI i wyświetlacza LCD 3,5"

Uruchomienie wyświetlacza musimy zacząć od włączenia środowiska graficznego. Aby to uczynić wpisujemy w terminalu sudo raspi-config, i trzeba mieć na uwadze że nie jest dobrym pomysłem robienie tego na RPI0W.

Po wykonaniu tych poleceń nasze RaspberryPi powinno uruchomić się z obsługą LCD 3,5". Wsad posiada "standardowe" sterowniki i jeśli okaże sie że nie macie obrazu to konieczne bedzie postępowanie z instrukcją instalacji sterowników do Waszego LCD.

Po uruchomieniu GUI, audomatycznie powinniście zobaczyć taki panel.

 

Jeśli po uruchomieniu nie widzimy panelu sterowania a jedynie pulpit, może to oznaczać problem z uruchomieniem przeglądarki chromium.

Niestety Chromium lubi czasami pokazać użytkownikowi środkowy palec, szczególnie gdy w sieci lokalnej znajduje się wiecej niż jedno urządzenie o tej samej nazwie hosta. Aby naprawić ten bład wystarczy że w terminalu wpiszecie chromium-repair i zrestartujecie RPI.

 

Jeśli wszystko poszło ok to mamy działający ekran i dotyk. Możemy dokonać personalizacji przycisków w zakładkach 

Aby tego dokonać wystarczy w terminalu wpisać  dash35-config i zmienić wartości DTMF przypisane do przycisków.

Dokładniejszy opis tego był zamieszczony na stronie aDVPi - 2024 finalna wersja 

 

 

 

 

 

 

Projekt nie jest kontynuowany

 

 

 

© est. 2006 Digit4all_GROUP. Designed By WebKomp

Logowanie