[ установка из репозитория | установка из исходников | настройка | возможности ]
В этой статье, максимально просто (без лишних подробностей) описана настройка радиолюбительского голосового сервера.
Все платы Raspberry_Pi, работают с SvxLink. Встроенная в плату звуковая карта имеет только выход,
поэтому нам требуется внешняя.
Версия | Дата | Процессор | Частота | Ядер | ОЗУ | 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-карта 8Гб.
2. USB звуковая карта СМ108
3. Транзистор КТ503, резисторы и конденсаторы любого типа
4. Радиостанция (на схеме подключение к Hytera MD-785G)
5. Блок питания 13В, 15А
6. Антенна, кабель, разьёмы
Есть два варианта интерфейса для радиостанции!
Для первого варианта подойдёт любая usb звуковая карта. Схему соединения с использованием gpio, вы видите на картинке. Всё детали размещаем в корпусе подходящего размера.
Svxlink наcтроен на управление PTT через gpio9, а сигнал об открытии шумоподавителя (COS) через gpio18.
Второй вариант схемы, в котором 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.
Оба интерфейса работают одинаково, хорошо с аналоговыми и цифровыми радиостанциями. Какой из них использовать, зависит от конструкции линка, ваших возможностей и предпочтений.
Если у вас есть звуковая карта со стерео входом (стерео выход есть у всех карт по умолчанию), SvxLink позволяет подключить левый и правый канал к отдельным радиостанциям и настроить два независимых радиоканала, на одной звуковой карте!
Фотография работающего линка с CM-108 интерфейсом.
При подключении к 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 88.5 или DCS 073N. Подтоны DCS считаются более надёжными, у них исключены ложные срабатывания и "пшики" в конце передачи.
Если svxlink находится в домашней сети, за файрволом (роутером), возможно потребуется открыть наружу следующие порты:
UDP 5198 и 5199 - echolink звук
TCP 5200 - echolink управление
TCP 5300 - svxReflector
TCP/UDP 10024 - frn
TCP 14580 - aprs
SvxLink может подключаться к радиостанциям и управлять ими, несколькими способами:
- через звуковую карту,
- через сеть tcp/ip (к удалённой радиостанции),
- по радиоканалу (к удалённой радиостанции).
К одной плате Raspberry_Pi, можно подключить несколько звуковых карт и соответственно радиостанций, в любой комбинации. Если у звуковой карты стерео вход, тогда становится возможным подключить к одной звуковой карте две радиостанции.
Останавливаем сервисы svxlink и gpio командами
sudo systemctl stop svxlink sudo systemctl stop svxlink_gpio_setup
Настраиваем пины для управления ptt и cos, для этого открываем файл конфигурации командой
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 как показано картинке.
После настройки передатчика, настраиваем уровень входного сигнала из эфира. Для этого отключаем АРУ звуковой карты (Auto Gain Control), нажав М, переходим в режим эхо-репитера и прослушивая свой голос из эфира, настраиваем уровень регулятором на плате и в меню звуковой карты (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#).
Настройка МЕТЕОсводки
Этот модуль берёт из сети сводку погоды аэропорта (который вы укажите) и зачитывает её голосом.
Чтобы настроить модуль зайдите в его конфигурацию командой
Измените последнюю строку (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 и наберите его_номер# из консоли или из эфира.
Рассмотрим отдельные разделы и настройки в файле конфигурации /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
это информационная часть маяка. Указываем частоту линка, подтон и коментарий.
Поскольку позывной линка/репитера может не совпадать с позывным его администратора, у радиолюбителей считается хорошим тоном указать в комментарии какие-либо данные для связи с ним. Пример на картинке.
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 рефлектор с разговорными группами
Управление и команды SVXLINK (видео)
UA6HJQ