В этой статье, максимально просто (без лишних подробностей) описана настройка радиолюбительского голосового сервера. Любая плата Raspberry_Pi, работает с SvxLink. Встроенная звуковая карта имеет только выход, поэтому нам требуется внешняя (CM-108). Версия Дата Процессор Частота Ядер ОЗУ GPIO USB Ethernet WiFi Bluetooth B 2012 ARM1176JZ-F 700 МГц 1 512 Мб 26 пинов 2 порта есть B+ 2014 ARM1176JZ-F 700 МГц 1 512 Мб 40 пинов 4 порта есть 2B 2015 ARM Cortex-A7 900 МГц 4 1 Гб 40 пинов 4 порта есть 3B 2016 ARM Cortex-A53 x64 1,2 ГГц 4 1 Гб 40 пинов 4 порта есть 802.11n 4.1 3B+ 2018 ARM Cortex-A53 x64 1,4 ГГц 4 1 Гб 40 пинов 4 порта есть 802.11ac 4.2 4B 2019 Cortex-A72 (ARM v8) 1,5 ГГц 4 1-4 Гб 40 пинов 4 порта есть 802.11ac 5.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. Номиналы деталей интерфейса, не критичны. Конфигурация звуковой карты 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#). Выход из модуля #. Добейтесь устойчивой работы! После настройки передатчика, настраиваем уровень входного сигнала из эфира. Для этого отключаем АРУ звуковой карты, переходим в режим эхо-репитера и прослушивая свой голос из эфира, настраиваем уровень регулятором на плате и в меню звуковой карты (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#). Другие Модули Модули: 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] 1=EchoLink:196189# 2=EchoLink:617231# 3=MetarInfo:1# макросы позволяют сократить команды передаваемые по эфиру, их легче запомнить. На радиостанции нужно набрать D1# для подключения к конференции RUSSIA или D2# для подключения к ретранслятору города Изобильный. Команда D3# сообщит погоду по данным метеостанции Ставропольского аэропорта. Формат макроса состоит из трёх полей <номер>=<модуль>:<команда> Первым указываем номер, затем модуль который нужно активировать, третьим параметром - команду в этом модуле. Например, чтобы подключиться к конференции RUSSIA нужно активировать модуль Echolink командой 2# затем набрать номер конференции 196189# а в виде макроса набираем D1# Обратите внимание, что не все радиостанции имеют полноценную DTMF клавиатуру! раздел [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 задержка между включением передатчика и началом передачи звука (в миллисекундах). Важный параметр! Дело в том, что ЧМ радиостанции требуется время, чтобы открыть шумоподавитель, когда сигнал появился на частоте, обычно 100-200мс. В портативных радиостанциях (как правило) включен экономайзер. Поэтому им нужно ещё больше времени на включение. Обычно на линке ставят 300-600мс. Чем больше расстояние и слабее сигнал - тем больше этот параметр. раздел [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=-10 CW_PITCH=500 CW_WPM=25 SHORT_CW_ID_ENABLE=1 SHORT_IDENT_INTERVAL=10 Что сделано? Мы включили cw вместо голоса, установили тон 500гц, скорость 25групп, уровень на -10дб тише обычных звуков. Интервал передачи 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.