MMDVMHost для YSF

декабрь 2023

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

Такая конфигурация поддерживает DG-ID коды (c pYSFReflector3), но не поддерживает Х-команды! Если конечное устройство (например рефлектор) поддерживает DG-ID или X-команды, то и на вашей радиостанции их можно использовать.

Блок-схема описанной конфигурации:

Для того чтобы подключиться к рефлектору (или другому сервису в стандарте YSF), достаточно MMDVMHost, другие модули (YSFGateway, DGIdGateway) не нужны. Поэтому конфигурация получается очень простой.

Итак, начнём сборку из свежих исходников, обновляем систему и устанавливаем необходимый софт:

sudo apt update && sudo apt upgrade -y
sudo apt install mc git curl libsamplerate0-dev -y

Особенность моего примера в том, что все файлы будут находится в папке ~/test/... в домашней директории пользователя pi. Таким образом, удалив эту папку, мы удалим всё что было установлено и настроено.

Это удобно для экспериментов, но не рекомендуется для постоянного использования.

cd ~ && mkdir test && cd test

git clone https://github.com/g4klx/MMDVMHost.git
cd MMDVMHost
make

cd ..
git clone https://github.com/g4klx/YSFClients.git
cd YSFClients
make

Теперь настроим то что установили. Открываем файл конфигурации и обращаем внимание на следующие строки:

mcedit ~/test/MMDVMHost/MMDVM.ini

[General]
Callsign=ваш_позывной
Id=ваш_dmr-id
Duplex=0
....
Daemon=0

[Log]
....
FilePath=/tmp
FileRoot=MMDVM
....

[CW Id]
Enable=0
....

[Modem]
Protocol=uart
UARTPort=/dev/ttyUSB0
....
TXInvert=0
RXInvert=0
....
RXOffset=0
TXOffset=0
....
RXLevel=100
....

[Transparent Data]
Enable=0
....

[D-Star]
Enable=0
....

[DMR]
Enable=0
....

[System Fusion]
Enable=1
....

[P25]
Enable=0
....

[NXDN]
Enable=0
....

[M17]
Enable=0
....

[POCSAG]
Enable=0
....

[FM]
Enable=0
....

[AX.25]
Enable=0
....

[D-Star Network]
Enable=0
....

[DMR Network]
Enable=0
....

[System Fusion Network]
Enable=1
#LocalAddress=
#LocalPort=
GatewayAddress=127.0.0.1
GatewayPort=4200
....

[P25 Network]
Enable=0
....

[NXDN Network]
Enable=0
....

[M17 Network]
Enable=0
....

[POCSAG Network]
Enable=0
....

[FM Network]
Enable=0
....

[AX.25 Network]
Enable=0
....

Найти порт к которому подключен радиомодуль (в моём примере это DV-MEGA) можно командой

dmesg | grep tty

Возможно что в разделе [Modem] потребуется поменять и другие установки. Это зависит от конкретной платы MMDVM и радиостанции.

Проверим что связка "радиостанция + модем + mmdvm" работает правильно, для этого запускаем mmdvmhost и смотрим на ошибки:

cd ~
./test/MMDVMHost/MMDVMHost test/MMDVMHost/MMDVM.ini

Нажимает передачу на YSF-радиостанции и видим в консоли бегущие строки, это значит что MMDVMHost + DV-MEGA настроенны правильно и осталось только подключиться к сервису. Пусть это будет попугай. Открываем (для наглядности) вторую консоль и вводим команду:

./test/YSFClients/YSFParrot/YSFParrot 4200

С помощью YSF-радиостанции проверяем, что попугай нас слышит и отвечает в эфире. В обоих консолях видим что происходит. Переводим MMDVMHost и YSFParrot в режим демона и добавляем в автозапуск ....


 dg-id

Если нужно сделать переключение между комнатами без YSFGateway/DGIdGateway, для этого есть pYSFReflector3 (многопотоковый рефлектор со встроенным DG-ID менеджером), который понимает DG-ID коды и позволяет менять комнаты в зависимости от кода, установленного в вашей радиостанции. Смотрите блок-схему в начале статьи.

Если вы подключили MMDVMHost к YSFParrot, то DG-ID и Х-команды поддерживаться не будут!


 Cсылки

YSF - модульная радиосеть
Собираем hotspot с управлением X-командами
Собираем YSF hotspot с управлением DG-ID кодами

R7HJ