MMDVMCal по шагам: калибровка MMDVM-модема

Категория: КалибровкаСложность: ★★★~11 мин

MMDVM-хотспоты на базе MMDVM_HS (ZUMspot, HS_Hat, SkyBridge и аналоги) содержат дешёвый TCXO, который легко уходит по частоте на сотни герц от номинала. Для голоса это почти незаметно, но для данных и SMS даже 100–300 Гц смещения могут дать ошибки декодирования и потери пакетов. MMDVMCal — официальная интерактивная утилита от автора MMDVM (G4KLX), которая позволяет найти точную рабочую частоту модема, измерить BER и задать уровни TX/RX — всё прямо из командной строки без правки конфигов вручную.

Что такое MMDVMCal и как она устроена

MMDVMCal — это отдельная программа (репозиторий g4klx/MMDVMCal), которая напрямую общается с модемом через последовательный порт. Во время работы утилиты MMDVMHost должен быть остановлен — они не могут работать с одним портом одновременно.

На Pi-Star и RadioStar это делается автоматически командой запуска. Управление — только клавиатурой: каждая клавиша мгновенно меняет параметр или переключает режим. После выхода (Q) программа печатает итоговые значения смещений.

Важно про MMDVMHost На время калибровки MMDVMHost останавливается. Хотспот не обслуживает эфир. После выхода из MMDVMCal служба поднимается обратно автоматически (на Pi-Star/RadioStar) или вручную.

Запуск утилиты

На Pi-Star и совместимых образах (включая RadioStar) используют обёртку:

sudo pistar-mmdvmcal

Она сама остановит MMDVMHost, запустит MMDVMCal с нужным портом и конфигом, а после выхода вернёт службу. На «голом» Raspberry Pi без Pi-Star запуск выглядит так:

sudo systemctl stop mmdvmhost
MMDVMCal /etc/MMDVM.ini

После запуска на экране появится приглашение вида:

MMDVMCal (20231015) by G4KLX
H/h=help, Q/q=quit ...

Таблица клавиш MMDVMCal

Программа управляется одиночными нажатиями. Основные клавиши:

Регистр имеет значение Заглавная F увеличивает частоту, строчная f — уменьшает. То же для T/t и R/r. Убедитесь, что Caps Lock выключен.

Шаг 1: задать рабочую частоту

Перед началом нужно сказать MMDVMCal, на какой частоте работает ваш хотспот. Нажмите E, утилита попросит ввести частоту в Гц. Введите частоту вашего хотспота целым числом без точек и пробелов:

E
Enter frequency (Hz): 434250000

Для диапазона 70 см (430–440 МГц) типичные значения хотспота лежат в диапазоне 430000000440000000. Для 2 м (144–146 МГц) — соответственно.

Частоты и закон в РФ В России любительский диапазон 70 см — 430–440 МГц, диапазон 2 м — 144–146 МГц. Полоса LPD (433,075–434,775 МГц) и PMR (446 МГц) — не любительские и технически непригодны для DMR-хотспота. Работайте в рамках выданной лицензии.

Шаг 2: BER-тест и подстройка частоты

Это главный этап. Цель — найти частоту, при которой модем декодирует ваш сигнал с минимальным BER.

  1. Нажмите b — войдёте в режим DMR Simplex BER Test (FEC).
  2. Передайте короткую фразу с рации (или просто нажмите PTT и подержите несколько секунд). Утилита покажет BER последней передачи.
  3. Нажмите Z и задайте шаг, например 25 (Гц) — удобно для точной подстройки.
  4. Нажимайте F (частота вверх) несколько раз, каждый раз передавая сигнал рацией и наблюдая BER. Продолжайте, пока BER не начнёт расти или пропадёт сигнал.
  5. Зафиксируйте крайнюю «живую» частоту. Вернитесь назад через f, пройдите в обратную сторону — найдите второй предел.
  6. Оптимальная рабочая точка — середина между двумя пределами. Там BER будет минимальным.

Ориентиры BER для DMR Simplex:

Реальный пример На хотспоте 434,250 МГц после калибровки оптимальная точка оказалась 434250275 Гц — смещение +275 Гц. BER упал с 3,5 % до 0,09 %. Для дешёвых MMDVM_HS смещения в 100–500 Гц — норма; иногда встречаются и ±1–2 кГц.

Шаг 3: записать итоговый RXOffset

После нахождения оптимальной частоты нажмите Q для выхода. Утилита напечатает строку вида:

Frequency: 434250275 Hz  Offset: +275 Hz
TXLevel: 50  RXLevel: 50

Значение Offset — это и есть ваш RXOffset (и обычно TXOffset). Его нужно внести в конфигурацию MMDVMHost.

На Pi-Star: «Admin» → «Expert» → «MMDVMHost» → раздел [Modem]:

[Modem]
RXOffset=275
TXOffset=275

На RadioStar (наш образ): смещение вносится прямо через веб-панель устройства — вкладка «Модем» → поля RX Offset / TX Offset. Перезапускать службу вручную не нужно, панель сделает это сама.

RXOffset и TXOffset — разные параметры RXOffset корректирует частоту приёма модемом (то, что вы только что измерили). TXOffset сдвигает частоту передачи. На дешёвых платах MMDVM_HS оба параметра чаще всего одинаковы, но это не обязательно — рация может иметь свой сдвиг передатчика.

Шаг 4: калибровка TXLevel и RXLevel

Уровни девиации влияют на качество сигнала. Правильная девиация для DMR — 2,75 кГц.

TXLevel (уровень передачи хотспота в эфир):

RXLevel (чувствительность приёма модема):

Без осциллографа Большинство радиолюбителей обходятся без него. Оставьте TXLevel = 50, откалибруйте частоту по BER — этого хватает для 95% случаев. Осциллограф нужен при постройке репитера или точной настройке многомодового узла.

Как калибровка работает в образе RadioStar

В готовом образе RadioStar для Raspberry Pi предусмотрен BER-свип прямо из веб-панели: устройство само прогоняет диапазон частот вокруг номинала и находит точку минимального BER без ручного перебора клавишами. Это удобно, если нет физического доступа к SSH или хочется сделать повторную калибровку после смены рации.

Результат свипа записывается в RXOffset автоматически. При необходимости значение можно скорректировать вручную на той же странице «Модем».

Частые ошибки и как их избежать

Калибровка — основа надёжной работы в сети

Точно откалиброванный хотспот означает стабильный приём SMS, данных и голоса в сети DMRhub. Если у вас ещё нет образа — соберите хотспот на Raspberry Pi за полчаса: образ RadioStar включает веб-панель с BER-свипом, и ручной перебор частоты через SSH не нужен.

Источники

  1. MMDVMCal — официальный репозиторий (G4KLX) — github.com/g4klx/MMDVMCal
  2. Getting the best BER from your Pi-Star MMDVM (M1GEO, George Smart) — george-smart.co.uk
  3. MMDVMCal DVM Calibration (VK4PK) — lyonscomputer.com.au
  4. Hotspot Offset Calibration (K9NPX) — k9npx.com