Ой, логотип кудато делся

Собираем hotspot с управлением X-командами

Собираем hotspot с управлением X-командами
DV / YSF
01:14, 16 декабрь 2023
503
0

Наша задача собрать из исходников простую конфигурацию для работы (с цифровой радиостанцией Yaesu) в YSF сети. Также, нам нужна возможность расширения этой системы, будь то hotspot или городской линк. 

Что такое X-команды?



Для работы в радиосети WiRES-X, фирма Yaesu использует набор команд в рамках протокола C4FM. Радиолюбители написали программы, понимающие Х-команды и тем самым расширили возможности использования цифровых радиостанций C4FM.

Блок-схема hotspot выглядит так: 

Моя тестовая тестовая конфигурация домашнего hotspot: Raspberry_Pi (любой версии) с дистрибьютивом Raspbian и DV-MEGA подключенная к usb-порту, выполняющая функционал радиостанции с модемом. Для DV-MEGA не требуется делать калибровку утилитой MMDVMCal, значит эту часть опускаем.

Описанный ниже mmdvm+ysfgateway, это классический hotspot для режима YSF, предполагаю что 90% линков/hotspot/репитеров используют именно такую конфигурацию. 

Заходим в консоль, копируем и выполняем команды:

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

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

cd ~ && rm -fr test && 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

[Info]
RXFrequency=438080000
TXFrequency=438080000
....

[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
....

[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
....

Важно заметить!
Мы указываем DMR_ID, хотя для работы в YSF сети он не нужен. Делаем это для того чтобы станции других цифровых стандартов (которые возможно подключены к ysf/xlx рефлекторам) могли видеть ваш позывной. 


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

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

Включаем c4fm радиостанцию на установленной частоте, нажимаем ptt и наблюдаем как бегут строки: 

Нажимаем Ctrl+C чтобы остановить программу.
1. Если всё так, меняем параметр Daemon=0 на 1. Эту часть считаем настроенной и идём дальше.
2. Если что-то не работает. Дальше не продолжаем, пока не разберемся в чём дело!

Мы всегда можем видеть что делает этот модуль в режиме онлайн, командой (только дату в имени лога ставьте текущую):

tail -f /tmp/MMDVM-2023-02-16.log


 YSFGateway

Научим наш hotspot понимать X-команды и подключаться к YSF рефлекторам в интернете, для этого потребуется YSFGateway. Выполним его настройку:

mcedit ~/test/YSFClients/YSFGateway/YSFGateway.ini

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

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

[Network]
Startup=RU-KAVKAZ
....

[YSF Network]
Enable=1
Port=42000
#Hosts=./YSFHosts.txt
Hosts=/home/pi/test/YSFClients/YSFGateway/YSFHosts.txt
....

[FCS Network]
Enable=0
....

Теперь (согласно блок-схеме) запустим нашу конструкцию, выполним команды по очереди:

killall -q MMDVMCal MMDVMHost DGIdGateway YSFGateway YSFReflector YSFParrot

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

cd ~/test/YSFClients/YSFGateway
./YSFGateway YSFGateway.ini

Если мы видим что-то подобное как на картинке, значит всё получилось, наш hotspot понимает X-команды и мы можем путешествовать по YSF рефлекторам. 

Нажимаем кнопку X на радиостанции, смотрим куда подключен наш hotspot, получаем список сети, переходим в другой рефлектор и тд. 

Нажимаем Ctrl+C чтобы остановить программу.
Идём в конфигурационный файл YSFGateway.ini и меняем Daemon=0 на Daemon=1. 

Чтобы видеть что делает модуль в онлайне, вводим в консоли команду (дату в имени лога ставьте текущую):

tail -f /tmp/YSFGateway-2023-02-16.log


 файл YSFHosts.txt

В файле YSFHosts.txt хранятся данные по которым hotspot определяет параметры подключения к доступным YSF рефлекторам по всему миру.

При отсутствии этого файла, после подключения и запроса списка, на экране радиостанции вы увидите:
YSF2DMR
YSF2NXDN
YSF2P25
ZZ PARROT

Это внешние модули, с которыми шлюз работает напрямую, их адреса и порты указаны в YSFGateway.ini в разделе YSF Network. Эти модули добавляются к списку сети автоматически.

Важно, чтобы в конфиге был указан полный путь к файлу YSFHosts.txt, как в примере выше.

Файл можно значительно сократить оставив только русскоязычные рефлектора.  Делается это командой:

curl -s -N http://kavkaz.qrz.ru/YSF_Hosts.txt > ~/test/YSFClients/YSFGateway/YSFHosts.txt

Короткий YSFHosts.txt удобен пользователям радиостанций FT5DR, FTM-200, FTM-300, FTM-400, FT-991A, так как станция получает список, в котором легче найти нужный рефлектор и подключиться к нему.

Так будет выглядеть подключение к hotspot и вывод списка рефлекторов, на дисплее радиостанции Yaesu FTM-200.


 YSFParrot

Локальный эхо-репитер нам нужен для тестов, проверки качества модуляции и покрытия. Он  называется ZZ PARROT, его не нужно добавлять в список руками (появится автоматически).

Чтобы запустить эхо-репитер выполним команду:

cd ~
./test/YSFClients/YSFParrot/YSFParrot 42012 > /dev/null 2>&1 &

Запустите предыдущие модули. После этого, выбрав в списке ZZ PARROT и сказав что-то в микрофон радиостанции, вы услышите ответ эхо-репитера.


 Эпилог

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

Украшательства типа дашборда и экрана для hotspot, не является обязательным элементом, я их не использую.

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

За рамками статьи остались модули (YSF2DMR YSF2NXDN YSF2P25) которые могут быть добавлены к YSFGateway и ещё больше расширят возможности цифровых радиостанций Yaesu. При их настройке, обратите внимание на параметр WiresX Passthrough.

Ctrl
Enter
Заметили ошЫбку
Выделите текст и нажмите Ctrl+Enter
Комментарии (0)
Топ из этой категории
Виды модуляции при дальней связи на УКВ Виды модуляции при дальней связи на УКВ
Дальняя радиосвязь на УКВ перестает быть редкостью. Сейчас уже достаточно большое число радиолюбителей регулярно...
21.04.25
31
0
Радиолюбительской DMR сети ADN Systems сегодня исполнился год Радиолюбительской DMR сети ADN Systems сегодня исполнился год
Год назад, благодаря усилиям небольшой, но увлечённой группы радиолюбителей, объединённых общей мечтой сделать...
21.04.25
33
0