Cобираем линк из исходников
Jonathan Naylor (g4klx) разработал замечательные программы для развития цифровых радиолюбительских сетей! Собрав MMDVM из исходников, вы получаете самый свежий (авторский) софт для вашего линка (репитера), который можно добавить к уже работающей системе.
Состав программ зависит от того, что в хотите получить. Подключение плат mmdvm_hs, mmdvm_pog, dv-mega, arduino+шилд и некоторых других, не имеют отличий в конфигурации.
Рассмотрим по порядку все необходимые шаги на примере микрокомпьютера Raspberry_Pi 3, с образом Raspberry Pi OS Lite на SD-карте 4Gb.
Блок-схема линка (который мы соберём и настроим), будет выглядеть так:
MMDVMHost запущен постоянно,
MMDVMCal нужен только для калибровки уровня девиации передатчика в режиме DMR.
Собираем MMDVMHost
Обновим Raspberry_Pi до актуальной версии и установим необходимые программы:
sudo apt-get update sudo apt-get upgrade sudo apt-get install -y git nano build-essential cmake automake libsamplerate-dev
Соберём исполняемый файл из исходного кода:
sudo chmod ugo+w /opt/ cd /opt/ git clone https://github.com/g4klx/MMDVMHost.git cd MMDVMHost make
Смотрите внимательно, чтобы не было ошибок при компиляции! Если ошибки есть, добавляем недостающие библиотеки на которые ссылается компилятор.
Для запуска DMR линка, нужно подключить к плату с радиостанцией и отредактировать единственный конфигурационный файл:
nano MMDVM.ini
Делаем следующие настройки в файле MMDVM.ini, для запуска DMR симплексного линка (обратите внимание что здесь указаны только те строки которые нужно редактировать!):
[General] Callsign=G9BF <-- ваш позывной Id=123456 <-- ваш DMR_ID + SSID Timeout=180 Duplex=1 <-- ставим 0 для линка ....... Daemon=0 <-- после настройки ставим 1 [Info] RXFrequency=438080000 <-- частота линка TXFrequency=438080000 <-- частота линка Power=5 <-- мощность передатчика Latitude=0.0 <-- координаты Longitude=0.0 <-- координаты Height=0 <-- высота антенны ....... [Modem] Port=/dev/ttyUSB0 <-- порт к которому подключена плата ....... TXInvert=0 <-- зависит от конкретной радиостанции RXInvert=0 <-- зависит от конкретной радиостанции PTTInvert=0 TXDelay=100 RXOffset=-200 <-- корректировка ошибки частоты TXOffset=-200 <-- корректировка ошибки частоты ....... RXLevel=100 <-- всегда ставим 100 TXLevel=50 ....... [D-Star] Enable=0 <-- отключаем (ставим 0) ....... [DMR] Enable=1 <-- включаем ....... [System Fusion] Enable=0 <-- отключаем ....... [P25] Enable=0 <-- отключаем ....... [NXDN] Enable=0 <-- отключаем ....... [POCSAG] Enable=0 <-- отключаем ....... [FM] Enable=0 <-- отключаем ....... [D-Star Network] Enable=0 <-- отключаем ....... [DMR Network] Enable=1 <-- включаем Type=Gateway <-- меняем на Direct (строки Local... коментируем) RemoteAddress=127.0.0.1 <-- bm сервер ....... Password=p@ssw0r4 <-- ваш пароль для доступа к серверу ....... [System Fusion Network] Enable=0 <-- отключаем ....... [P25 Network] Enable=0 <-- отключаем ....... [NXDN Network] Enable=0 <-- отключаем ....... [POCSAG Network] Enable=0 <-- отключаем .......
Если плата mmdvm подключается не к usb-порту, а к встроенному uart, нужно его включить и отключить консоль через этот порт, стандартным способом, утилитой raspi-config.
Для запуска mmdvmhost набираем в командной строке и смотрим на ошибки в консоли. После настройки, ставим Daemon=1
./MMDVMHost MMDVM.ini (ctrl+c для выхода)
Для полноценной работы MMDVMHost, требуется обновлять файл DMRIds.dat с базой позывных.
cd /opt/MMDVMHost wget -O DMRIds.dat http://kavkaz.qrz.ru/DMRIds.dat
Файл RSSI.dat позволяет передавать на BrandMeister данные об уровне принимаемого из эфира сигнала. Готовые примеры находятся в папке RSSI. Его настройка желательна, но не обязательна.
Автозапуск MMDVMHost
После настройки и калибровки, сделаем автозапуск. В файле MMDVM.ini устанавливаем Daemon=0. Есть несколько способов сделать автозапуск программы, рассмотрим через файл rc.local. Открываем этот файл:
sudo nano /etc/rc.local
Вставляем следующие команды, перед строчкой exit:
sleep 20 cd /opt/MMDVMHost ./MMDVMHost MMDVM.ini
Сохраняем и перезагружаем Raspberry_Pi командой sudo reboot
Собираем MMDVMCal
Чтобы была возможность откалибровать уровень девиации (а в DMR это особенно важно) нужно установить утилиту MMDVMCal. Делаем это так:
cd /opt/ git clone https://github.com/g4klx/MMDVMCal.git cd MMDVMCal make
Важно правильно определить, на каком порту находится ваша MMDVM плата. Для этого набираем команду ниже и смотрим какие порты чем заняты. Обычно, USB-платы занимают порты ttyACM0 или ttyUSB0, а GPIO-платы могут использовать ttyAMA0 и тд.
dmesg | grep tty
Перед запуском калибровки нужно остановить MMDVM линк, а затем выполнить команду ниже, где ttyUSB0 это порт к которому подключена плата MMDVM_POG или другая.
sudo killall MMDVMHost ./MMDVMCal 115200 /dev/ttyUSB0
Для настройки девиации передатчика, после запуска MMDVMCal, нажимаем D, и пробел для включения передачи. Крутим подстроечный резистор на плате, и смотрим на сервис-монитор, до получения девиации 2749Гц. Для DMR радиостанций, это критичный параметр!
Добавляем DMRGateway
Для расширения возможностей MMDVMHost, к нему можно добавить DMRGateway, который позволит вашей DMR радиостанции находиться в разных сетях одновременно.
Это полезная возможность, которая подробно описана в статье 'DMRGateway это просто'. Так вы получите максимальный DMR функционал.
Обновляем исходники
Разработка и совершенствование MMDVM идёт постоянно, добавляются новые возможности, исправляются ошибки и тд. Чтобы поддерживать ваш линк в актуальном состоянии, нужно периодически обновлять исходные коды. Для этого выполним следующие команды:
cd /opt/MMDVMHost git pull make
Перед обновлением, нужно сделать резервную копию файла MMDVM.ini
P.S.
Описанную сборку можно расширить и для других видов радиолюбительской цифровой связи (YSF, D-Star). В этой статье мы не затрагиваем вопросы с выбором и подключением радиостанции, а также с особенностями конструктива и соединения mmdvm плат.