Современные версии MMDVM+MMDVMHost могут обрабатывать не только DV стандарты, но и AX.25 данные! Это позволяет создавать радиолюбительские сети передачи данных, на уже имеющемся оборудовании.
Рассмотрим создание APRS-DIGI с платой MMDVM-LJT, на базе микрокомпьютера Raspberry_Pi_3, с чистым образом Raspberry Pi OS Lite и SD-картой 8Gb.
Блок-схема AX.25/DV линка, показана на картинке ниже.
Важно!
Не все MMDVM-платы поддерживают AX.25. Например, платы DV-Mega, MMDVM-HS и аналогичные (некоторые платы ...-POG) не могут работать в этом режиме.
Мы используем чистый образ, поэтому начнём с обновления и установки необходимых программы:
sudo apt-get update sudo apt-get upgrade sudo apt-get install -y git build-essential mc cmake automake sudo apt-get install -y libsamplerate0-dev sudo apt-get install -y debhelper libssl-dev aprx
Соберём MMDVMHost из исходного кода:
sudo chmod ugo+w /opt/ cd /opt/ git clone https://github.com/g4klx/MMDVMHost.git cd MMDVMHost make
Смотрите внимательно на ошибки (если они будут), добавляем недостающие библиотеки, на которые указывает компилятор.
Далее, подключаем плату с радиостанцией и редактируем конфигурационный файл mmdvm:
mcedit /opt/MMDVMHost/MMDVM.ini
Обращаем внимание на следующие строки:
[General] Callsign=G9BF <-- ваш позывной Id=123456 <-- ваш DMR_ID + SSID Timeout=180 Duplex=1 <-- ставим 0 для линка Daemon=0 <-- после настройки ставим 1 .... [CW Id] Enable=1 Time=10 .... [Modem] Port=/dev/ttyUSB0 <-- порт к которому подключена плата MMDVM-LJT .... TXInvert=0 <-- зависит от конкретной радиостанции RXInvert=0 <-- зависит от конкретной радиостанции PTTInvert=0 <-- зависит от конкретной радиостанции .... RXLevel=100 TXLevel=50 .... [D-Star] [DMR] [System Fusion] [FM] Enable=0 <-- нужные DV/FM режимы могут быть включены и не мешают работе AX.25 !!! .... [AX.25] Enable=1 <-- включить модем TXDelay=350 <-- зависит от радиостанции RXTwist=6 SlotTime=30 PPersist=128 Trace=1 .... [D-Star Network] [DMR Network] [System Fusion Network] Enable=0 <-- нужные DV/FM сети могут быть включены и не мешают работе AX.25 !!! .... [AX.25 Network] Enable=1 <-- включить виртуальный порт Port=/dev/tty7 <-- виртуальный порт для программы APRX Speed=9600 Debug=0 ....
Если плата mmdvm подключается к встроенному uart, нужно его отключить от консоли, утилитой
Запускаем mmdvmhost и смотрим на ошибки в консоли.
sudo ./MMDVMHost MMDVM.ini (ctrl+c для выхода)
В консоли работающего mmdvmhost, будут видны пакеты ax.25 (не обязательно aprs) которые он услышит на своей частоте. Это значит что настройка mmdvm правильная и можно приступить к конфигурации программы aprx, которая и будет обрабатывать пакеты принятые пакеты с данными.
Программа APRХ создана Matti Aarnio, её отличает низкое потребление ресурсов (раньше эту программу устанавливали в wifi роутеры), она легко стыкуется с MMDVMHost и поддерживает весь функционал APRS/D-PRS (передача маяков, сообщения, дигипитер, шлюз, aprs-is, фильтры и т.д.)
Саму программу APRХ мы уже установили, осталось её настроить, для этого редактируем единственный конфигурационный файл:
sudo mcedit /etc/aprx.conf
Ниже (в выпадающем окне), несколько примеров конфигураций. Обратите внимание на строки со стрелочкой:
mycall N0CALL-1 <-- позывной aprs дигипитера myloc lat ddmm.mmN lon dddmm.mmE <-- координаты вашего линка на карте aprs.fi <logging> pidfile /var/run/aprx.pid rflog /var/log/aprx/aprx-rf.log aprxlog /var/log/aprx/aprx.log </logging> <interface> serial-device /dev/tty7 9600 8n1 KISS tx-ok true </interface> <beacon> beaconmode radio cycle-size 9m beacon symbol "D&" $myloc comment "Digi" </beacon> <digipeater> transmitter $mycall <source> source $mycall </source> </digipeater>
mycall N0CALL-1 <-- позывной aprs шлюза myloc lat ddmm.mmN lon dddmm.mmE <-- координаты вашего линка на карте aprs.fi <aprsis> passcode -1 <-- код доступа в aprs-is server aprs.dstar.su filter "m/60" </aprsis> <logging> pidfile /var/run/aprx.pid rflog /var/log/aprx/aprx-rf.log aprxlog /var/log/aprx/aprx.log </logging> <interface> serial-device /dev/tty7 9600 8n1 KISS tx-ok true </interface> <beacon> beaconmode both cycle-size 9m beacon symbol "I&" $myloc comment "Rx-iGate" </beacon> <digipeater> transmitter $mycall <source> source $mycall </source> </digipeater>
mycall N0CALL-1 <-- позывной aprs шлюза myloc lat ddmm.mmN lon dddmm.mmE <-- координаты вашего линка на карте aprs.fi <aprsis> passcode -1 <-- код доступа в aprs-is server aprs.dstar.su filter "m/60" </aprsis> <logging> pidfile /var/run/aprx.pid rflog /var/log/aprx/aprx-rf.log aprxlog /var/log/aprx/aprx.log </logging> <interface> serial-device /dev/tty7 9600 8n1 KISS tx-ok true </interface> <beacon> beaconmode both cycle-size 9m beacon symbol "I&" $myloc comment "Tx iGate" </beacon> <digipeater> transmitter $mycall <source> source APRSIS relay-type third-party via-path WIDE1-1 msg-path WIDE1-1 </source> </digipeater>
Для проверки работы и правильности настройки, запускаем mmdvm, затем aprx, из консоли:
cd /opt/MMDVMHost sudo ./MMDVMHost MMDVM.ini sudo aprx -d
Если mmdvmhost прекратит работу, нужно снова перезапустить сначала mmdvmhost, затем aprx.
Внимательно смотрим на строки в консоли. Программа должна найти указанный в конфиге tty-порт, открыть логи и начать принимать пакеты из эфира.
После проверки конфигурации и достижения полной работоспособности, создаём файлы mmdvmhost.service, aprx.service для systemd.
В режиме aprs-дигипитера, принятые маяки с WIDE... должны ретранслироваться обратно в эфир (aprs-digi). Программа APRX позволяет гибко настраивать сложные конфигурации с нужным функционалом.
Например, APRX может работать с несколькими платами MMDVM и TNC-контроллерами, на разных частотах и с разными скоростями.
В каждый интерфейс можно добавить фильтры с определёнными критериями. Возможности по передачи своих маяков и обозначения обьектов, также очень гибкие. Например, информацию для маяка можно брать из файла созданного другой программой и т.д.
APRX имеет подробную документацию, в которой описан её функционал.
Была протестирована связка MMDVM + MMDVMHost + (X)NET, в режиме настоящего packet radio и она показала очень хорошие результаты.
На базе уже существующих MMDVM-линков, не меняя 'железо', можно развернуть низкоскоростные (1200bps) радиолюбительские сети, не привязанные к интернету, для обмена любой информацией. В них могут входить узлы, новостные порталы, BBS для текстовых сообщений, а также возможности обмена небольшими файлами.
Режим AX.25 работает при низких уровнях сигнала, поэтому он интересен для приёма на больших расстояниях, во время укв-прохождения. Связка MMDVM+APRX работает устойчиво и не нагружает процессор.
Линк c AX.25/DV/FM режимами, позволит использовать весь функционал цифровых радиостанций типа Yaesu FT5DR, AnyTone AT-D878UVII+, Kenwood TH-D75A и других.
Платы MMDVM разработанные RN6LJT
MMDVMHost by G4KLX
APRX Digipeater Software by OH2MQK
APRX на github
Старые статьи:
APRX - aprs программа для TNC
dir-300 + aprx
dir-320 + aprx
TL-WR741 + aprx
Small-Meteo + aprx
Радиолюбительская пакетная связь (Packet Radio)
R7HJ