RSSI-калибровка хотспота: верный уровень приёма
После того как хотспот настроен и работает, почти все останавливаются на этом. Но есть один параметр, который большинство игнорирует: RSSI — уровень принятого сигнала. Пока он не откалиброван, портал показывает либо нули, либо числа, которые ни о чём не говорят. Стоит один раз заполнить таблицу соответствия — и в last-heard DMRhub появляются настоящие децибелы. Видно, кто подходит уверенно, а кто висит на грани.
Что такое RSSI в контексте MMDVM
RSSI (Received Signal Strength Indicator) — приближённая оценка мощности принятого радиосигнала, обычно выражается в дБм (dBm). Чем ближе значение к нулю, тем сигнал сильнее; чем отрицательнее — тем слабее. Типичный диапазон для хотспота в комнате: от −50 дБм (рация рядом) до −110 дБм (на грани приёма).
Внутри модема MMDVM нет «готового» значения в дБм — есть сырое целочисленное значение с АЦП (аналого-цифрового преобразователя). Число зависит от конкретной схемотехники модема и ни в какой стандарт не вписывается. Задача калибровки — научить MMDVMHost переводить это сырое число в реальные децибелы.
Как MMDVMHost работает с RSSI
MMDVMHost читает файл-таблицу, путь к которому указан в параметре RSSIMappingFile секции [Modem] файла MMDVM.ini. Файл содержит пары «сырое значение — dBm». Когда модем присылает сырое число, хост находит ближайшие две точки в таблице и вычисляет результат по линейной интерполяции. Итоговое значение в dBm передаётся в сеть и отображается в логах, дашборде и на портале.
Если параметр RSSIMappingFile не задан или файл пустой — RSSI не передаётся вовсе. Большинство свежих образов (Pi-Star, WPSD, RadioStar) оставляют его пустым «из коробки».
Поддержка зависит от модема
Не все модемы выдают сырое значение RSSI. Полноценно поддерживают его MMDVM HS Hat (ZUMspot, NanoDMR и совместимые на базе STM32) и большинство профессиональных репитерных плат (STM32-DVM и др.). Простые DVMEGA-совместимые модемы на AVR могут не передавать RSSI совсем — тогда калибровка бессмысленна.
Формат файла RSSI.dat
Файл — простой текст. Каждая строка: сырое значение, пробел, значение в dBm. Строки-комментарии начинаются с #. Строки с третьим полем (напряжение в вольтах) тоже допустимы — MMDVMHost игнорирует третье поле.
# RSSI calibration for MMDVM HS Hat
# raw_value dBm
# (можно добавить #voltage как комментарий)
1461 -46
1446 -55
1381 -61
1300 -70
1200 -80
1100 -90
1020 -95
997 -100
Правила, которые нужно соблюдать:
- Никаких дублей в столбце сырых значений.
- Обязательно должны быть точка для очень сильного сигнала и точка для очень слабого. Значения вне диапазона таблицы «зажимаются» к крайним.
- Если реальная зависимость нелинейная — добавляйте больше точек, тогда кусочно-линейная аппроксимация даст меньшую погрешность.
- Порядок строк не важен: MMDVMHost сам сортирует.
Три способа получить опорные точки
Способ 1: MMDVMCal в режиме S (рекомендуемый)
MMDVMCal — штатная утилита калибровки MMDVM, входящая в состав Pi-Star, WPSD и образа RadioStar. В ней есть специальный S-режим (RSSI), в котором утилита непрерывно читает и выводит сырое значение RSSI с модема. Подаёте на антенный вход сигнал известной мощности — записываете пару «показание — dBm». Повторяете для нескольких уровней.
Для доступа к MMDVMCal нужно подключиться по SSH к Raspberry Pi и остановить MMDVMHost (он занимает порт модема):
sudo systemctl stop mmdvmhost
# на RadioStar/Pi-Star демон может называться иначе:
# sudo pistar-stop или sudo systemctl stop pistar-watchdog
# запуск калибровки:
sudo MMDVMCal /dev/ttyAMA0
# для USB-модема обычно:
sudo MMDVMCal /dev/ttyUSB0
Внутри утилиты нажмите S для перехода в режим RSSI. Утилита начнёт выводить сырые значения. Поднесите рацию с известной мощностью и запишите показания.
Способ 2: Готовые таблицы из репозитория MMDVMHost
В официальном репозитории g4klx/MMDVMHost папка RSSI/ содержит готовые файлы калибровки для нескольких радиостанций-доноров (Motorola GM340, FC-302 и др.). Если ваш модем построен на той же базе — можно взять подходящий файл как отправную точку. Точность будет ниже, чем при индивидуальной калибровке, но лучше, чем ничего.
Способ 3: Линейная заглушка (быстрый старт)
Если нет оборудования для точной калибровки, но хочется хотя бы что-то увидеть в портале — создайте упрощённую таблицу с двумя-тремя точками, грубо перекрывающими весь диапазон. Значения будут приблизительными, но RSSI начнёт отображаться. Позже можно уточнить.
# Упрощённая заглушка — только для проверки
# уточните по реальным замерам!
1500 -40
1200 -70
900 -100
Подключение файла в MMDVM.ini
Откройте MMDVM.ini (в Pi-Star/WPSD — через Expert Mode, в RadioStar — напрямую по SSH):
[Modem]
# ... другие параметры ...
RSSIMappingFile=/usr/local/etc/RSSI.dat
Путь может отличаться в зависимости от образа. В Pi-Star файл по умолчанию ищется в /usr/local/etc/RSSI.dat, в WPSD — там же. После правки перезапустите MMDVMHost:
sudo systemctl start mmdvmhost
# или для Pi-Star:
sudo pistar-start
Проверьте лог — в строках приёма должно появиться поле с RSSI в дБм.
Что меняется на портале DMRhub
Портал DMRhub получает значение RSSI от хотспота в составе метаданных каждого слота. После калибровки в разделе last-heard рядом с каждым сеансом отображается уровень сигнала в дБм. Это даёт практическую картину:
- Значения −50…−65 дБм — рация рядом, сигнал уверенный.
- Значения −80…−95 дБм — допустимо, но запас невелик.
- Значения хуже −100 дБм — на грани: вероятен повышенный BER, возможны потери пакетов.
Типичные проблемы
- RSSI не появляется в логах после добавления файла — проверьте правильность пути в MMDVM.ini и права доступа к файлу (chmod 644 /usr/local/etc/RSSI.dat).
- Значения явно неверные (например, −200 дБм) — таблица не перекрывает реальный диапазон сырых значений модема; добавьте крайние точки.
- MMDVMCal не запускается — «порт занят» — MMDVMHost не остановлен; убедитесь, что сервис действительно остановлен (systemctl status mmdvmhost).
- Модем не выдаёт RSSI вовсе — некоторые платы (старые DVMEGA) не реализуют RSSI. Проверьте документацию на конкретную плату.
Видите уровень сигнала в last-heard?
После калибровки RSSI бары в last-heard DMRhub становятся осмысленными: видно, кто работает уверенно, а кто висит на грани. Подключайтесь к сети — зарегистрируйтесь и получите свой приватный DMR ID, соберите образ хотспота и следите за качеством связи прямо с портала.
Источники
- RSSI configuration wiki (N4IRS/MMDVM-Install) — github.com/N4IRS/MMDVM-Install
- MMDVM HS Hat: Enable RSSI.dat — mmdvmhshat.blogspot.com
- MMDVMHost исходники, файл RSSI.dat и примеры в RSSI/ — github.com/g4klx/MMDVMHost
- STM32-DVM RSSI обсуждение — forum.pistar.uk