RSSI-калибровка хотспота: верный уровень приёма

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

После того как хотспот настроен и работает, почти все останавливаются на этом. Но есть один параметр, который большинство игнорирует: RSSI — уровень принятого сигнала. Пока он не откалиброван, портал показывает либо нули, либо числа, которые ни о чём не говорят. Стоит один раз заполнить таблицу соответствия — и в last-heard DMRhub появляются настоящие децибелы. Видно, кто подходит уверенно, а кто висит на грани.

Что такое RSSI в контексте MMDVM

RSSI (Received Signal Strength Indicator) — приближённая оценка мощности принятого радиосигнала, обычно выражается в дБм (dBm). Чем ближе значение к нулю, тем сигнал сильнее; чем отрицательнее — тем слабее. Типичный диапазон для хотспота в комнате: от −50 дБм (рация рядом) до −110 дБм (на грани приёма).

Внутри модема MMDVM нет «готового» значения в дБм — есть сырое целочисленное значение с АЦП (аналого-цифрового преобразователя). Число зависит от конкретной схемотехники модема и ни в какой стандарт не вписывается. Задача калибровки — научить MMDVMHost переводить это сырое число в реальные децибелы.

RSSI vs BER RSSI — косвенный показатель: он характеризует мощность несущей, но не качество демодуляции. На качество связи напрямую влияет BER (частота битовых ошибок). Откалиброванный RSSI полезен для мониторинга и диагностики, но не заменяет настройку TXLevel/RXLevel.

Как 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 совсем — тогда калибровка бессмысленна.

Проверка поддержки Откройте лог MMDVMHost. Если в строках приёма присутствует поле вроде RSSI: -75dBm или цифра после «RSS» — модем данные передаёт. Если поля нет — вероятно, ваш модем не поддерживает 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

Правила, которые нужно соблюдать:

Три способа получить опорные точки

Способ 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. Утилита начнёт выводить сырые значения. Поднесите рацию с известной мощностью и запишите показания.

Источник сигнала Идеально — лабораторный генератор СВЧ с аттенюатором. На практике большинство операторов используют рацию с фиксированной мощностью (5 Вт, потом через аттенюатор), либо NanoVNA в режиме генератора. Чем точнее знаете подаваемую мощность — тем точнее таблица.

Способ 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 рядом с каждым сеансом отображается уровень сигнала в дБм. Это даёт практическую картину:

Абсолютная точность не требуется RSSI в MMDVM-хотспоте — это ориентир, а не измерительный прибор. Погрешность ±5…10 дБ вполне нормальна и не мешает практическому использованию для мониторинга. Главное — стабильность и относительная достоверность.
Важно Не путайте RSSI-калибровку с настройкой RXLevel/TXLevel. RXLevel влияет на реальное качество демодуляции и BER — его нужно подбирать первым. RSSI-файл — только дополнительная аналитика для портала и логов, он не влияет на то, как хотспот принимает и передаёт сигнал.

Типичные проблемы

Видите уровень сигнала в last-heard?

После калибровки RSSI бары в last-heard DMRhub становятся осмысленными: видно, кто работает уверенно, а кто висит на грани. Подключайтесь к сети — зарегистрируйтесь и получите свой приватный DMR ID, соберите образ хотспота и следите за качеством связи прямо с портала.

Источники

  1. RSSI configuration wiki (N4IRS/MMDVM-Install) — github.com/N4IRS/MMDVM-Install
  2. MMDVM HS Hat: Enable RSSI.dat — mmdvmhshat.blogspot.com
  3. MMDVMHost исходники, файл RSSI.dat и примеры в RSSI/ — github.com/g4klx/MMDVMHost
  4. STM32-DVM RSSI обсуждение — forum.pistar.uk