Собираем YSF точку доступа на MMDVMHost

март 2026

Наша цель, собрать точку доступа на базе MMDVMHost, работающую с радиостанциями Yaesu в цифровом режиме C4FM. Эта конфигурация понимает X-команды, имеет локальный попугай и показывает на aprs-карте где находится радиостанция пользователя. Подключаться наша точка доступа (hotspot) может к YSF-рефлекторам, XLX-серверам и другим аналогичным устройствам.

Для нормальной работы модулей требуются следующие файлы:

MMDVMHost:
MMDVMHost.ini - файл конфигурации
DMRIds.dat - база dmr_id
NXDN.csv - база nxdn_id
RSSI.dat - калиброванные данные уровней сигнала из эфире

YSFGateway/DGIdGateway:
YSFGateway.ini или DGIdGateway.ini - файл конфигурации
YSFHosts.json - база данных ysf рефлекторов
FCSRooms.txt - база данных fcs комнат

APRSGateway:
APRSGateway.ini - файл конфигурации



Каждый модуль должен иметь связь с MQTT-сервером, для передачи данных о своей работе. Cервер может быть как локальным так и удалённым. В старой версии, эту роль выполняли текстовые логи.


Сборка

Начнём сборку из исходников. Обновим систему и установим необходимый софт:

sudo apt update && sudo apt upgrade -y
sudo apt install mc git libmd-dev -y
sudo apt install mosquitto mosquitto-clients -y
sudo apt install libsamplerate0-dev libmosquitto-dev nlohmann-json3-dev -y

Собирать будем в домашней директории ~/test/ , затем скопируем конфиги в /etc/ , а бинарные файлы в /usr/local/bin/

cd ~ && mkdir test && cd test
git clone https://github.com/g4klx/MMDVMHost.git
cd MMDVMHost
make

Смотрим на ошибки, а после окончания сборки, убедимся что появился исполняемый файл MMDVMHost, командой ls -l MM*

Копируем файлы на свои места

sudo cp MMDVMHost /usr/local/bin/
sudo cp MMDVMHost.ini /etc/
sudo mkdir /var/lib/mmdvm
sudo cp DMRIds.dat NXDN.csv RSSI.dat /var/lib/mmdvm/

Настройка

Проверим запустился ли mqtt-сервер (ps ax | grep mosq) он должен работать, потому что все остальные модули будут к нему подключаться!

Находим порт, к которому подключен радиомодуль или плата: dmesg | grep tty

Открываем файл конфигурации (mcedit /etc/MMDVMHost.ini) и редактируем его.
Обращаем внимание на разделы [General], [Info], [Modem], [System Fusion], [System Fusion Network].
Все протоколы (кроме YSF) нужно отключить Enable=0.

Наступило время настроить девиацию передатчика вашего hotspot, она должна быть около 2.8кГц, для YSF точное значение не критично. Сделать это можно с помощью утилиты MMDVMCal или на слух. Полученное значение запишем в переменную YSFTXLevel=...

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

./MMDVMHost MMDVMHost.ini

Если ошибок нет, нажимает передачу на YSF-радиостанции и видим в консоли принимаемые данные, это значит что DV-MEGA + MMDVMHost настроенны правильно и нам осталось подключиться к любому сервису.

Подключиться мы можем напрямую (указав сервер в MMDVMHost.ini) или через YSFGateway. Прямое подключение к ysf-рефлектору kavkaz будет выглядеть так:

[System Fusion Network]
Enable=1
#LocalAddress=127.0.0.1
#LocalPort=3200
GatewayAddress=kavkaz.qrz.ru
GatewayPort=42000
# ModeHang=3
Debug=0

Проводим QSO или смотрим на дашборд, чтобы убедиться что нас слышно.

Эта конфигурация подключит вас к одному рефлектору, без возможности его смены. В случае с XLX и pYSFReflector3 вы сможете менять модули (с помощью DG-ID), но в пределах одного рефлектора.

На этом, минимальную настройку (точки доступа YSF/C4FM) можно считать законченной.


YSFClients

Этот набор включает в себя три модуля:

DGIdGateway - шлюз с поддержкой DG-ID кодов, из эфира.
YSFGateway - шлюз с поддержкой X-команды, из эфира.
YSFParrot - локальный попугай, который повторяет ваши сообщения.

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

Копируем YSFGateway, DGIdGateway, YSFParrot в /usr/local/bin/ а ini файлы в /etc/
Файл YSFHosts.json копируем в /var/lib/mmdvm/

Редактируем файлы YSFGateway.ini или DGIdGateway.ini.
Программам DGIdGateway и YSFGateway требуется файл YSFHosts.json, а не .txt как раньше!

Модуль YSFParrot в настройке не нуждается, его достаточно запустить с указание номера порта.

Для прямого подключения попугая к MMDVMHost, редактируем MMDVMHost.ini и запускаем локальный попугай так:

[System Fusion Network]
Enable=1
LocalAddress=127.0.0.1
LocalPort=3200
GatewayAddress=127.0.0.1
GatewayPort=4200
# ModeHang=3
Debug=0
cd ~/test/YSFClients/YSFParrot
./YSFParrot 4200

Для подключения локального попугая к YSFGateway, нужно запустить его с номером порта 42012.


APRSGateway

Чтобы ваша YSF точка доступа (и радиостанции которые через неё работают) отображались на aprs-карте, нужно добавить модуль APRSGateway. Подробности статье "Чем занимается APRSGateway?".

R7HJ