Jonathan Naylor (g4klx) разработал замечательные программы для развития цифровых радиолюбительских сетей! Собрав MMDVM из исходников, вы получаете самый свежий (авторский) софт для вашего линка (репитера), который можно добавить к уже работающей системе.
Состав программ зависит от того, что в хотите получить. Подключение плат mmdvm_hs, mmdvm_pog, dv-mega, arduino+шилд и некоторых других, не имеют отличий в конфигурации.
Рассмотрим по порядку все необходимые шаги на примере микрокомпьютера Raspberry_Pi 3, с образом Raspberry Pi OS Lite на SD-карте 4Gb.
Блок-схема линка (который мы соберём и настроим), будет выглядеть так:
MMDVMHost запущен постоянно,
MMDVMCal нужен только для калибровки уровня девиации передатчика в режиме DMR.
Обновим 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 для выхода)
Если в вашем hotspot-е используется экран, нужно обновлять файл DMRIds.dat, для этого в исходниках есть скрипт MMDVMHost/linux/DMRIDUpdateBM.sh, используйте его.
Файл RSSI.dat позволяет передавать на BrandMeister данные об уровне принимаемого из эфира сигнала. Готовые примеры находятся в папке RSSI. Его настройка желательна, но не обязательна.
После настройки и калибровки, сделаем автозапуск. В файле MMDVM.ini устанавливаем Daemon=0. Есть несколько способов сделать автозапуск программы, рассмотрим через файл rc.local. Открываем этот файл:
sudo nano /etc/rc.local
Вставляем следующие команды, перед строчкой exit:
sleep 20 cd /opt/MMDVMHost ./MMDVMHost MMDVM.ini
Сохраняем и перезагружаем Raspberry_Pi командой sudo reboot
Чтобы была возможность откалибровать уровень девиации (а в 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 радиостанций, это критичный параметр!
Для расширения возможностей MMDVMHost, к нему можно добавить DMRGateway, который позволит вашей DMR радиостанции находиться в разных сетях одновременно.
Это полезная возможность, которая подробно описана в статье 'DMRGateway это просто'. Так вы получите максимальный DMR функционал.
Разработка и совершенствование MMDVM идёт постоянно, добавляются новые возможности, исправляются ошибки и тд. Чтобы поддерживать ваш линк в актуальном состоянии, нужно периодически обновлять исходные коды. Для этого выполним следующие команды:
cd /opt/MMDVMHost git pull make
Перед обновлением, нужно сделать резервную копию файла MMDVM.ini
R7HJ