Настройка SVXLINK

май 2020

[ установка из репозитория | установка из исходников | настройка | возможности ]

В этой статье, максимально просто (без лишних подробностей) описана настройка радиолюбительского голосового сервера.

Любая плата Raspberry_Pi, работает с SvxLink. Встроенная в плату звуковая карта имеет только выход, поэтому нам требуется внешняя (типа CM-108).

ВерсияДатаПроцессорЧастотаЯдерОЗУGPIOUSBEthernetWiFiBluetooth
B2012ARM1176JZ-F700 МГц1512 Мб26 пинов2 портаесть
 B+2014ARM1176JZ-F700 МГц1512 Мб40 пинов4 портаесть
2B2015ARM Cortex-A7900 МГц41 Гб40 пинов4 портаесть
3B2016ARM Cortex-A53 x641,2 ГГц41 Гб40 пинов4 портаесть802.11n4.1
3B+2018ARM Cortex-A53 x641,4 ГГц41 Гб40 пинов4 портаесть802.11ac4.2
4B2019Cortex-A72 (ARM v8)1,5 ГГц41-4 Гб40 пинов4 портаесть802.11ac5.0


Интерфейс

Плата сопряжения радиостанции с Raspberry_Pi очень простая, собирается на любой макетной плате размером 40x40мм. Детали не критичны. Ниже, фотография линка с радиостанцией Hytera MD-785G.

Для сборки интерфейса, нам понадобятся:

1. Raspberry_Pi + блок питания + SD-карта 4Гб.
2. USB звуковая карта СМ108
3. Транзистор КТ503, резисторы и конденсаторы любого типа
4. Радиостанция любая (на схеме подключение к Hytera MD-785G)
5. Блок питания 13В, 15А
6. Антенна, кабель, разьёмы

Есть два варианта интерфейса для радиостанции.
Для первого варианта подойдёт любая usb звуковая карта. Схему соединения с использованием gpio, вы видите на картинке. Всё детали размещаем в корпусе подходящего размера.

По умолчанию, svxlink будет наcтроен так, что управление PTT берётся с gpio9. Сигнал об открытии шумоподавителя (COS) поступает на gpio18 (можно изменить).

Второй вариант схемы (без использования gpio), в котором PTT и COS подключаются к контактам звуковой карты. Здесь можно использовать только звуковую карту на чипе CM108 (другие не будут работать).

Эта схема, также подойдёт для svxlink с несколькими интерфейсами. На схеме приведён пример подключения к радиостанции Yaesu FT-817, для работы в FM, на диапазонах 28/50/144/430 МГц.

Yaesu FT-817 нужно обязательно перевести в режим PKT, в меню 40 поставить 1200, в пункте меню 39 поставить значение 10-20 и отрегулировать шумоподавитель, нужно включить CTCSS/DSC.

Номиналы деталей интерфейса, не критичны. Подстроичные резисторы здесь не нужны, так как уровни можно легулировать как в трансивере, так и в Raspberry_Pi.

Конфигурация звуковой карты CM-108 (в файле svxlink.conf) отличается от показанной ниже для gpio, поэтому смотрите часть файла svxlink.conf с нужными настройками (когда ptt/cos берутся из звуковой карты).

Оба интерфейса работают одинаково, хорошо с аналоговыми и цифровыми радиостанциями. Какой из них использовать, зависит от конструкции линка, ваших возможностей и предпочтений.

Если у вас есть звуковая карта со стерео входом (стерео выход есть у всех), SvxLink позволяет подключить левый и правый канал к отдельным радиостанциям и настроить два независимых радиоканала на одной звуковой карте!

Фотография работающего линка с CM-108 интерфейсом.
В трансивере FT-817, нужно включить режим PKT, а в меню установить PKT RATE 1200 и PKT MIC 10.


VOX

При подключении к svxlink портативных радиостанций, сигнал COS отсутствует, в этом случае используем VOX. Конфигурация выглядит так:

[Rx1]
TYPE=Local
AUDIO_DEV=alsa:plughw:1
AUDIO_CHANNEL=0
SQL_DET=VOX
SQL_START_DELAY=100   (отсекает шлепок, после перехода на приём)
SQL_DELAY=10
SQL_HANGTIME=2000     (задержка закрытия шумодава в мсек, обычно не менее 1000)
.....
VOX_FILTER_DEPTH=20
VOX_THRESH=1000	      (чувствительность VOX, ставить на минимум)
.....
SIGLEV_OPEN_THRESH=15	(детектор открытия vox, обычно менять не требуется)
SIGLEV_CLOSE_THRESH=4	(детектор закрытия vox, обычно менять не требуется)

Настройка сводится к подбору уровня срабатывания (по умолчанию стоит 1000, у меня получилось 300) и времени отпускания VOX, обычно около 1000-2000мсек. При правильной настройке, работает VOX хорошо, срабатывания чёткие. Задержка SQL_START_DELAY также важна, для портативных радиостанций может потребоваться её увеличение до 500мсек.

На картинке выше, интерфейс для любой портативной радиостанции. В качестве примера, приведена распайка для Baofeng UV-3R. Передачей управляет ключ на транзисторе, для определения приёма используем VOX.

Если на входе звуковой карты нет напряжения (для электретного микрофона), разделительный конденсатор можно не ставить.


CTCSS/DCS

Обязательно, закройте частоту линка CTCSS/DCS подтоном на радиостанции, чтобы случайные помехи не мешали работе других линков в сети.

Подтоном по умолчанию (для радиолюбительских линков) считается CTCSS 88.5 или DCS 073N. Подтоны DCS более надёжные, у них исключены ложные срабатывания и "пшики" в коце передачи.


Порты

Если svxlink находится в домашней сети, за файрволом (роутером), возможно потребуется открыть наружу следующие порты:

UDP 5198 и 5199 - echolink звук
TCP 5200 - echolink управление
TCP 5300 - svxReflector
TCP/UDP 10024 - frn
TCP 14580 - aprs

Внимание!
Дальнейшая настройка и конфигурация Raspberry PI требует подключённого интернета, радиостанции и интерфейса звуковой картой.

SvxLink может подключаться к радиостанциям и управлять ими, несколькими способами:
  - через звуковую карту,
  - через сеть tcp/ip (к удалённой радиостанции),
  - по радиоканалу (к удалённой радиостанции).

К одной плате Raspberry_Pi, можно подключить несколько звуковых карт и соответственно радиостанций, в любой комбинации.

и


Пины для PTT/COS

Останавливаем сервисы svxlink и gpio командами

sudo systemctl stop svxlink
sudo systemctl stop svxlink_gpio_setup

Настраиваем пины для управления ptt и cos, для этого открываем файл конфигурации командой sudo nano /etc/svxlink/gpio.conf

GPIO_IN_HIGH="gpio18"
GPIO_OUT_HIGH="gpio9"

для сохранения изменений и выхода из редактора, жмём Ctrl+X и далее Y. В некоторых версиях linux, gpio.conf не работает корректно. Поэтому оставляем его пустым, а gpio определяем в /etc/rc.local дописав строки для PTT:

echo 9 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio9/direction

Теперь, открываем основной конфигурационный файл, командой sudo nano /etc/svxlink/svxlink.conf
Установки отвечающие за включение на радиостанции передачи:

[Tx1]
TYPE=Local
AUDIO_DEV=alsa:plughw:1
AUDIO_CHANNEL=0
.....
PTT_TYPE=GPIO
PTT_PIN=gpio9
.....
TIMEOUT=180
TX_DELAY=500

Установки отвечающие за приём сигнала из эфира:

[Rx1]
TYPE=Local
AUDIO_DEV=alsa:plughw:1
AUDIO_CHANNEL=0
.....
SQL_DET=GPIO
SQL_START_DELAY=10
SQL_DELAY=10
SQL_HANGTIME=500
.....
GPIO_SQL_PIN=gpio18

Для настройки уровней передачи и приёма, воспользуйтесь модулем эхо-репитера (команда 1#), должно быть чёткое срабатывание на сигналы разного уровня и громкости. Проверьте модули помощи (0#) и голосовой почты (3#). Выход из модуля #. Добейтесь устойчивой работы!

Регулировать девиацию передатчика, можно подстроечным резистором на плате или в программе alsamixer как показано картинке.

После настройки передатчика, настраиваем уровень входного сигнала из эфира. Для этого отключаем АРУ звуковой карты, переходим в режим эхо-репитера и прослушивая свой голос из эфира, настраиваем уровень регулятором на плате и в меню звуковой карты (Mic) как на картинке.

Важно, чтобы на Raspberry_Pi не было наводок от радиостанции, иначе возможны сбои в работе и зависания. Звук должен быть чистым, девиация не более 5кГц. После окончания настройки звука, приступаем к подключению модулей расширяющих возможности svxlink.

Внимание!
Без тщательной настройки звука и предыдущих пунктов, не следует идти дальше!


Автозапуск/Перезапуск

Остановить сервисы
sudo systemctl stop svxlink
sudo systemctl stop svxlink_gpio_setup
Запустить svxlink в консоли
sudo systemctl start svxlink_gpio_setup
sudo -u svxlink svxlink
для выхода из консоли нажимаем Ctrl+C
Запускаем сервисы. После перезагрузки svxlink запустится автоматически.
sudo systemctl start svxlink_gpio_setup
sudo systemctl start svxlink
Если вы делали изменения в конфигурационных файлах, нужно перезапустить svxlink командой
sudo systemctl restart svxlink
Когда svxlink работает в фоновом режиме, посмотреть что в нём происходит, можно командой
tail -f /var/log/svxlink


Конфигурация модулей

Не нужно подключать и настраивать все модули одновременно. Активируйте только те которые нужны. Добейтесь правильной работы каждого модуля, по отдельности.


Настройка FRN
Открываем редактор sudo nano /etc/svxlink/svxlink.d/ModuleFrn.conf и меняем строки, в которых указываем свои данные. В данном примере, вы подключитесь к реальному FRN-серверу.

[ModuleFrn]
.........
TIMEOUT=3600
.........
SERVER=kavkaz.qrz.ru
PORT=10024
.........
EMAIL_ADDRESS=yrr@ple.com
DYN_PASSWORD=12345
CLIENT_TYPE=1
CALLSIGN_AND_USER="RZ6HDH, Club"
BAND_AND_CHANNEL="438.550 FM CTC88"
DESCRIPTION="SvxLink"
COUNTRY=Russia
CITY_CITY_PART="Pyatigorsk"
NET=Kavkaz

Добавьте название модуля в основной файл конфигурации svxlink.conf чтобы активировать его. После настройки модуля, чтобы проверить конфигурацию и подключиться к указанному серверу, наберите команду 7# из консоли или из эфира.

На примере, указан frn сервер kavkaz.qrz.ru к которому вы можете подключаться без регистрации. Другие сервера требуют дополнительной регистрации, каждого пользователя и линка.


Настройка EchoLink
Открываем редактор sudo nano /etc/svxlink/svxlink.d/ModuleEchoLink.conf меняем строки. Вписываем свои данные. Для работы модуля в сети Echolink, на ваш позывной должна быть регистрация -L или -R. Просто позывной, работать не будет, потому что это не клиент.

TIMEOUT=0
........
CALLSIGN=MYCALL-L
PASSWORD=MyPass
SYSOPNAME=MyName
LOCATION=[Svx] Fq, MyTown
........
DEFAULT_LANG=ru
........
DESCRIPTION="You have connected to a SvxLink node,\n"

Важно, чтобы в интернет смотрел белый IP и были открыты порты UDP 5198, 5199 и TCP 5200, это обязательное условие работы сети Echolink. Добавьте название модуля в основной файл конфигурации svxlink.conf чтобы активировать его.

После настройки модуля, чтобы проверить конфигурацию и подключиться к сети echolink, наберите команду 2# из консоли или из эфира. Теперь чтобы подключиться к комнате наберите её номер (например 196189#).


Настройка МЕТЕОсводки
Этот модуль берёт из сети сводку погоды аэропорта (который вы укажите) и зачитывает её голосом. Чтобы настроить модуль зайдите в его конфигурацию командой sudo nano /etc/svxlink/svxlink.d/ModuleMetarInfo.conf

Измените последнюю строку (AIRPORTS=), вписав в неё позывные ближайших к вам аэропортов. Сохраните результат (Ctrl+X и далее Y). Добавьте название модуля ModuleMetarInfo в основной файл конфигурации svxlink.conf чтобы активировать его.

Активируйте модуль командой 5# и выберите номер аэропорта 1#. Далее слушайте свежую метео-сводку.


Настройка голосовой почты
Этот модуль организует адресный обмен голосовыми сообщениями (голосовая почта) для радиолюбителей из эфира. Отправка голосовой почты на другие сервера не поддерживается.

Чтобы пользоваться этим модулем, администратор должен его активировать в svxlink.conf и завести персональный логин и пароль, для тех радиолюбителей, которые будут им пользоваться.

Открываем файл конфигурации:

sudo nano /etc/svxlink/TclVoiceMail.conf

добавляем пользователей голосовой почты

.........
set users(001) "call=UA6HJQ pass=1234 email=ua6hjq@mail.ru";
set users(002) "call=R7HJ pass=6789";

Остальные строки не меняем. Перезагружаем svxlink. Набираем в эфире 3# и следуем голосовым инструкциям. Чтобы выйти из любого модуля, нажимаем #


Другие Модули
Модули: ModuleDtmfRepeater, ModuleParrot, ModuleTrx, ModulePropagationMonitor, ModuleHelp, ModuleSelCallEnc, в конфигурировании не нуждаются и работают без настройки.

Для активации любого из указанных модулей, укажите его название в svxlink.conf и наберите его_номер# из консоли или из эфира.


Разбираем svxlink.conf

Рассмотрим отдельные разделы и настройки в файле конфигурации /etc/svxlink.conf которые влияют на работу вашего линка/репитера.


раздел [GLOBAL]

CARD_SAMPLE_RATE=48000  режим работы звуковой карты, здесь возможны только два значения 16000Гц или 48000Гц. Некоторые звуковые карты могут плохо работать на частоте 16000Гц.

LOCATION_INFO=LocationInfo  включение aprs-маяка. Нужно заранее установить правильно его параметры.


раздел [SimplexLogic]

MODULES=ModuleHelp,ModuleParrot,ModuleEchoLink,ModuleMetarInfo,ModuleFrn  список активных модулей (к которым есть доступ из эфира). Как было указано выше, некоторые модули нужно заранее настроить. Некоторые будут работать по умолчанию и не требуют настройки.

CALLSIGN=UA6HJQ  позывной вашего линка, может совпадать в вашим, а может быть позывным репитера или коллективной радиостанции.

SHORT_IDENT_INTERVAL=10
LONG_IDENT_INTERVAL=60
  идентификаторы (интервал в минутах), которые проговариваются в эфир. Короткий идентификатор должен передаваться чаще (обычно 10-30 минут), он говорит только позывной линка. Длинный идентификатор говорит и другие параметры, его ставят раз в час или отключают.

DEFAULT_LANG=ru  язык на котором будут передаваться сообщения линка в эфир. Ставим тот который вы установили.

RGR_SOUND_DELAY=100
RGR_SOUND_ALWAYS=1
  сигнал БИП, подтверждения перехода на приём. Он приглушен и не мешает работе с линком. Может быть полезен для понимания слышит вас линк или нет. Задержка должна быть с учётом значения SQL_HANGTIME в разделе [Rx1]. Чтобы отключить, поставьте -1 и 0.

DTMF_CTRL_PTY=/dev/shm/simplex_dtmf_ctrl  разрешить управление линком из командной строки. Для управления используются dtmf-команды, как и в эфире. Важно установить права для svxlink на каталог shm и pty без этого команды не будут выполняться.

Пример команды:
echo "7#" > /dev/shm/simplex_dtmf_ctrl (подключиться к frn сети)
echo "#" > /dev/shm/simplex_dtmf_ctrl (выйти из активного модуля)
echo "D1#" > /dev/shm/simplex_dtmf_ctrl (выполнить первый макрос)
и тд.


раздел [Macros]
Макросы позволяют сократить команды передаваемые по эфиру и легче их запомнить. В примере ниже, на радиостанции нужно набрать D1# для подключения к конференции RUSSIA или D2# для подключения к ретранслятору города Изобильный. Команда D3# сообщит погоду по данным метеостанции Ставропольского аэропорта.

1=EchoLink:196189#
2=EchoLink:617231#
3=MetarInfo:1#
 

Формат макроса состоит из трёх полей <номер>=<модуль>:<команда>

Первым указываем номер, затем модуль который нужно активировать, третьим параметром - команду в этом модуле. Например, чтобы подключиться к конференции RUSSIA нужно активировать модуль Echolink командой 2# затем набрать номер конференции 196189# а в виде макроса набираем D1#

Обратите внимание, что не все радиостанции имеют полноценную DTMF клавиатуру! А на некоторых радиостанциях DTMF есть, но работает очень плохо и некоторые цифры не распознаются (например у retevis rt87).


раздел [Rx1]
Рассмотрим параметры на которые нужно обратить внимание в [Rx1], номер раздела может быть и другим, если у вас несколько радиостанций.

SQL_DET=GPIO  если радиостанция позволяет не используйте VOX, всегда лучше выводить сигнал COS/SQL, это позволяет линку точно определять наличие сигнала на входной частоте.

GPIO_SQL_PIN=gpio18  для Raspberry_Pi назначаем пин который будет определять появление сигнала на частоте радиостанции. Кроме GPIO18, часто используют GPIO23 и GPIO24 они равнозначны.

SQL_START_DELAY=10  задержка включения шумоподавителя, после выключений передатчика (в миллисекундах), этот параметр должен быть как можно меньше (обычно 0-50). Необходимость в нём возникает когда в конкретной рации, переход на приём происходит не мгновенно, а присутствуют переходные процессы (для модуля dra818 ставить 100).

SQL_DELAY=10  задержка открытия шумоподавителя, после того как сигнал появился на частоте. Параметр полезен при использовании 'медленных' радиостанций или нескольких приёмников для устранения зацикливания (для модуля dra818 ставить не менее 200).

SQL_HANGTIME=400  как долго (в миллисекундах) шумоподавитель будет оставаться открытым после того, как сигнал пропал из эфира. Это важный параметр, особенно при работе с VOX, он должен быть 1500-2000мс. Если у вас COS, уменьшайте его до 300-700. Устанавливать 0 не нужно, в любом случае!

Дело в том, что если радиостанция находится в зоне неуверенного приёма, её сигнал может кратковременно пропасть и тут же появиться. Вот для этого и нужна задержка срабатывания шумоподавителя на линке. Чем слабее сигнал - тем больше задержка.


раздел [Tx1]
В этом разделе, важно правильно установить несколько параметров, влияющих на процесс передачи линка.

PTT_TYPE=GPIO  В случае установки svxlink на Raspberry_Pi удобно использовать контакты gpio.

PTT_PIN=gpio9  Для передатчика обычно назначают GPIO9, GPIO10, GPIO11. Схема подключения к радиостанции приведена выше.

TIMEOUT=180  время непрерывной передачи. Сколько секунд передатчик может быть включен (на примере 3 минуты = 180 сек). По истечении 3 минут, PTT отключится и радиостанция перейдёт на приём. Это защита радиостанции от перегрева и от болтунов в эфире. Обычно устанавливают 3-5 минут, если на линке портативная радиостанция, ставят 1-2 минуты.

TX_DELAY=500  задержка между включением передатчика и началом передачи звука (в миллисекундах). Важный параметр!

ЧМ радиостанции требуется время, чтобы открыть шумоподавитель, после того как сигнал появился на частоте. В портативных радиостанциях (как правило) включен экономайзер. Поэтому им нужно ещё больше времени на включение. Целесообразно на линке ставить 500-800мс. Чем больше расстояние и слабее сигнал - тем больше этот параметр.


раздел [LocationInfo]
В этом разделе определяются параметры интерактивного aprs-маяка, который будет передавать ваш линк на карту aprs.fi. Обратите внимание, что этот маяк в эфир не передаётся!

APRS_SERVER_LIST=russia.aprs2.net:14580  подключаемся к Российскому aprs-серверу, он ближе, у него короткие пинги. Цифра 14580 это номер порта, который не меняем.

LON_POSITION=41.55.04E
LAT_POSITION=45.00.00N
  координаты восточной долготы (E) и северной широты(N). В маяке присутствует ошибка, которая не позволяет поставить секунды больше 50. Если вы поставите большее значение - при запуске svxlink выдаст ошибку! Но даже такая точность, приемлема для радиолюбителей.

CALLSIGN=EL-UA6HJQ  позывной сигнал вашего линка. Для svxlink принято чтобы впереди стояли буквы EL- не убирайте их, просто измените позывной.

BEACON_INTERVAL=15  интервал передачи маяка вашего линка на карту aprs.fi (в минутах). Не ставьте меньше 10 и больше 30. Типовые значения 10, 15, 20, 30 минут.

FREQUENCY=438.500
TONE=88
COMMENT=My home SvxLink ua6hjq@stv.ru
  это информационная часть маяка. Указываем частоту линка, подтон и коментарий.

Поскольку позывной линка/репитера может не совпадать с позывным его администратора, у радиолюбителей считается хорошим тоном указать в комментарии какие-либо данные для связи с ним. Пример на картинке.


Возможности svxlink.conf

CW идентификатор
По умолчанию в svxlink.conf включен голосовой идентификатор. Чтобы его изменить на телеграфный, открываем файл /etc/svxlink.conf и в раздел SimplexLogic (для линка) добавляем команды:

[SimplexLogic]
.......
CW_AMP=-30
CW_PITCH=400
CW_WPM=25
SHORT_CW_ID_ENABLE=1
SHORT_VOICE_ID_ENABLE=0
SHORT_IDENT_INTERVAL=10

Что сделано?
Мы включили cw вместо голоса, установили тон 400гц, скорость 25групп, уровень на -30дб тише обычных звуков. Интервал передачи cw-идентификатора 10 минут.

При таких настройках, приглушенный звук телеграфа, не раздражает тех, кто долго находится на частоте вашего линка или репитера.


Отключение линка командой по эфиру
В разделах SimplexLogic и RepeaterLogic есть команда ONLINE_CMD, она позволяет отключить весь функционал линка прямо из эфира. Назначаем команду, например 44455566

[SimplexLogic]
.......
ONLINE_CMD=44455566

Команда активируется после перезагрузки svxlink. Теперь набрав в эфире 444555660# вы отключите линк, он не будет реагировать на любые другие команды и работать с модулями.

Чтобы восстановить работоспособность линка, набираем в эфире 444555661# Команда должна быть длинной (не менее 5-и цифр), чтобы её нельзя было подобрать или воспроизвести случайным образом.


Гибкая команда
В некоторых ситуациях использовать Macros не представляется возможным. Например, когда пользователь хочет попасть не в ту конференцию Echolink которая была запрограммирована в макросе или у него нет возможности набрать символ D.

Идея состоит в том что набрав любые комбинации цифр (более 4-х), пользователь попадёт в заранее установленное место. Если набрать менее 4-х, команда работать не будет.

[SimplexLogic]
.......
ACTIVATE_MODULE_ON_LONG_CMD=4:EchoLink

На примере, активируется модуль эхолинка и происходит подключение к выбранной конференции. Теперь пользователю из эфира достаточно набрать номер конференции, без активации модуля Echolink. Давайте сравним:

активируем echolink (2#) ждем ответ (18573#) набираем номер конференции
или
(18573#) сразу набираем номер конференции

Теперь, пользователь из эфира может сам выбирать любые конференции, линки, репитеры в сети Echolink. Ему нужно знать только номер. Этот режим похож на работу в цифровой сети YSF.


Статьи

Домашний сайт SvxLink
Установка SvxLink из репозитория
Установка SvxLink из исходников
Возможности SvxLink
SvxLink рефлектор с разговорными группами
Управление и команды SVXLINK (видео)

UA6HJQ