SVXLink do poprawnej pracy odbieranego sygnału przez radio wymaga wybrania metody kontroli otwarcia blokady szumy w odbiorniku podłączonym do svxlink.
Zanim zostaną przedstawione metody detekcji otwarcia blokady szumy musimy przyjąć jedna generalną zasadę przy budowie hotspota czy przemiennika. Na odbiorniku urządzenia radiowego musi być aktywny sub-ton CTCSS który nie pozwoli otworzyć odbiornika zakłóceniami, które mogą się pojawić w okolicy zainstalowanego urządzenia radiowego. Jest to bardzo ważna rzecz w sytuacji kiedy przemiennik czy hotspot jest podłączony do sieci FM.
Stosując różne urządzenia radiowe czy to w hotspocie czy w przemienniku mam ograniczone możliwości dostarczenia sygnału o otwartej blokadzie szumu. Radia przenośne typu Baofeng, Quansheng itp nie oferują nam takiej informacji sprzętowej. Istnieją opisy modyfikacji niektórych modeli gdzie można podlutować kabel na płycie radia i wyprowadzić taki sygnał (patrz np na stronę https://f5nlg.wordpress.com/2018/01/01/modification-des-tx-ctcss-et-det-squelch/ https://g6lbq.blogspot.com/2021/01/allstar-link-node-build-part-2.html ). Niektóre model urządzeń radiowych maja wyjścia typy DATA na których można spotkać dostępny sygnał SQL który można wykorzystać. Urządzenia radiowe Motorola z serii GMxxx pozwalają zaprogramować via CPS PIN na wyjściu gniazda w tym radiu sygnał o otwartej blokadzie szumu lub np po zdekodowaniu sygnału CTCSS.
W Svxlink mamy w części [Rx1] parametr SQL_DET, w którym podajemy metodę jak użyjemy do detekcji otwarcia blokady szumu. Poniżej opis najbardziej popularnych metod używanych.
GPIOD
Metoda bazuje na bibliotece gpiod (libgpiod2 i libgpiod-dev) którą należy mieć zainstalowaną przed kompilacją svxlink. Używana metoda na komputerach typu Raspberry PI, Orange PI Zero itp. Metoda ta monitoruje stan GPIO Raspberry Pi/ Orange PI do którego jest dostarcza informacja sprzętowa o stanie otwarcia odbiornika. Stan otwarcia blokady może być dostarczony z modyfikowanego radia ręcznego lub z złącza DATA radia, lub zaprogramowany PIN w złączu Motoroli GMxxx. Można też dostarczyć taką informację wykorzystując audio z wyjścia głośnikowego / słuchawkowego budując odpowiedni układ elektroniczny (patrz http://www.fm-poland.pl/uv5r-interfejs-do-svxlink/ ), ale należy mieć na uwadze, że ta metoda wymaga zablokowania potencjometru regulacji głośności, aby nie zmieniać raz ustawionego poziomu audio wyjściowego). Przykład:
SQL_DET=GPIOD
SQL_GPIOD_CHIP=gpiochip0
numer GPIO podajemy w linii:
SQL_GPIOD_LINE=10
SERIAL
Detektor blokady szumów SERIAL wykorzystuje pin w porcie szeregowym do wykrywania otwarcia blokady szumów. Idea jest taka sama jak w GPIO tylko w tym przypadku używa portu szeregowego do kontroli stanu. Musimy podać, do którego portu szeregowego z SERIAL_PORT i pinu SERIAL_PIN jest dostarczana informacja o statusie otwarcia blokady szumu. Stosowane rozwiązanie w Terminalach HP. Np. Przykład:
SQL_DET=SERIAL
SQL_PORT=/dev/ttyS0
SERIAL_PIN=CTS:SET
Warto skorzystać z rozwiązania: http://www.fm-poland.pl/svxlink-sql-ptt-z-usb-serial-konwerter/
CTCSS
Metoda ta polega na dekodowaniu sub-tonu dostarczanego razem z audio. W tym przypadku audio musi przenosić sub-tony. Urządzenia typu Motorola GMxx można zaprogramować, aby wyjściowe audio było tzw FLAT UNFILTERED które przekazuje sub-ton CTCSS razem z audio dzięki temu svxlink może dekodować sub-ton i używać go do informacji, że została otwarta blokada szumu. Musisz wiedzieć, czy Twoje radio pozwala dostarczyć takie audio do svxlinka. Takie audio też będzie wymagać ustawienia w [Rx1] DEEMPHASIS=1.
Częstotliwość tonu jest określana za pomocą zmiennej konfiguracyjnej CTCSS_FQ. Progi są określane przy użyciu CTCSS_OPEN_THRESH i CTCSS_CLOSE_THRESH zmienne konfiguracyjne. Inne zmienne konfiguracyjne mające wpływ na blokadę szumów CTCSS to: CTCSS_MODE, CTCSS_SNR_OFFSETS, CTCSS_BPF_LOW, CTCSS_BPF_HIGH, CTCSS_EMIT_TONE_DETECTED. Przykład:
SQL_DET=CTCSS
CTCSS_FQ=88.5
CTCSS_SNR_OFFSETS=88.5:0
CTCSS_MODE=4 lub 2 (patrz opis: svxlink.conf)
CTCSS_OPEN_THRESH=12
CTCSS_CLOSE_THRESH=5
CTCSS_BPF_LOW=60
CTCSS_BPF_HIGH=270
SIGLEV
Metoda ta wymaga wykonania kalibracji tzn pomiaru poziomu szumu przy otwartej blokadzie radia i poziomu kiedy odbiera sygnał. Różnica pomiędzy tymi poziomami pozwala nam określić przy jakim poziomie blokada jest otwarta i przy jakim poziomie jest zamknięta. Metoda ta wymaga aby audio użynane do kalibracji i pracy zawsze miał podobny poziom, ważne jest to kiedy taka metodę chcemy zastosować w radiu ręcznym i audio jest obierane z wyjścia głośnikowego lub słuchawkowego. Należy zadbać aby zablokować możliwość zmiany poziomu raz ustawionego poziomu audio. Dla tej metody ważne są parametry w svxlink.conf [Rx1]. Przykład:
SQL_DET=SIGLEV
SIGLEV_DET=NOISE
SQL_SIGLEV_RX_NAME=Rx1
SQL_SIGLEV_OPEN_THRESH=20
SQL_SIGLEV_CLOSE_THRESH=5
SIGLEV_SLOPE=1
SIGLEV_OFFSET=0
Wartości SIGLEV_SLOPE i SIGLEV_OFFSET muszą być wpisane po procedurze kalibracji – patrz opis na końcu tekstu. W tej metodzie zalecane jest aby blokada szumu w odbiorniku była otwarta na stałe ale metoda ta też powinna zadziałać z załączoną blokadą szumu.
VOX
Metoda nie zalecana, możemy użyć metody VOX czyli korzystamy tylko i wyłącznie z informacji że pojawiało się audio na karcie dźwiękowej i obliczenie średniej wartości próbek dźwięku służy nam jako informacja o otwartej blokadzie szumu.
SQL_DET=VOX
Ważnymi parametrami w [Rx1] jest ustawienie podtrzymania statusu otwartej blokad do 2.5 sek
SQL_HANGTIME=2500
oraz dobranie poziomów reakcji VOX
VOX_FILTER_DEPTH=20
VOX_THRESH=1000 (wartości od 800 do 1000 mogą być optymalne)
HIDRAW
Metoda HIDRAW obsługuje urządzenia interfejsu HID na przykład dla urządzenia USB takich jak karta dźwiękowa CM108, np. Patrz więcej na http://www.fm-poland.pl/modyfikacja-karty-dzwiekowej-usb-cm108/
Kalibracja siglevdetcal dla SQL_DET=SIGLEV
Stosując kontrole otwarcia blokady szumów na bazie poziomu sygnału należy zrobić kalibracje przy pomocy programu „siglevdetcal” dostępnego razem z svxlink. Pamiętaj, aby podczas pomiaru w svxlink.conf były ustawione parametry:
SIGLEV_DET=NOISE
SIGLEV_SLOPE=1
SIGLEV_OFFSET=0
sudo systemctl stop svxlink
siglevdetcal /etc/svxlink/svxlink.conf Rx1
Po uruchomieniu programu najpierw robimy pomiar sygnału w tym celu należy nacisną
PTT w radio tak aby radio kalibrowane obierało samą nośną (nie mówimy do mikrofonu).
Naciskamy klawisz ENTER i czekamy aż zakończy się pomiar sygnału.
Następie puszczamy PTT i zaczynamy pomiar szumu (kalibrowany odbiornik musi mieć otwartą blokadę szumu, choć możliwe jest zrobienie tego etapu przy zamkniętej blokadzie szumu) naciskamy klawisz ENTER i po zakończeniu pomiaru program wydrukuje nam linie, jakie powinny być wpisane do svxlink.conf. Poniżej przykład wyniku kalibracji:
— Results
Mean SNR for the CTCSS tones :
88.5 : +69.3dB
— Put the config variables below in the configuration file
— section for Rx1.
SIGLEV_SLOPE=25.98
SIGLEV_OFFSET=23.75
CTCSS_SNR_OFFSETS=88.5:-14.5
Podane wartości dla SIGLEV_SLOPE SIGLEV_OFFSET z kalibracji należy wpisać w [Rx1] zamiast:
SIGLEV_SLOPE=1
SIGLEV_OFFSET=0
Informacja o CTCSS_SNR_OFFSET pojawi się wtedy kiedy audio odbierane zawiera sub-ton CTCSS w przeciwnym razie nie będzie tej informacje w wydruku komunikatu programu siglevdetcal wpisać w svxlink.conf w [Rx1]
Pamiętaj jeśli będziesz robił ponownie kalibracje to musisz ustawić w [Rx1] SIGLEV_SLOPE=1 i SIGLEV_OFFSET=0
Patrz też opis: https://fm-poland.pl/parametry-svxlink-w-rx1-i-tx1/