Хотспот не выходит в сеть DMR: системная диагностика
Хотспот — штука капризная только на первый взгляд. Когда он «не выходит в сеть», за этим почти всегда стоит одна из десятка вполне конкретных причин, и почти каждую можно поймать за пять минут, если идти по порядку, а не дёргать всё подряд. Эта статья — системная диагностика: мы спускаемся от «железа» (питание, модем) через настройки (частота, Color Code) к сети (NAT, проброс портов) и заканчиваем эфиром (рация не слышит хотспот). Прошлись по списку сверху вниз — и проблема нашлась.
Сразу договоримся о словаре. Хотспот — это маленький мост: одноплатник (Raspberry Pi, Orange Pi) или ESP-плата плюс радиомодуль MMDVM, который слушает вашу рацию в эфире и тащит голос в интернет, на мастер-сервер сети. «Не выходит в сеть» может означать три разные беды: хотспот не видит модем, хотспот не залогинился на мастер, или хотспот залогинился, но рация его «не слышит». Это три разных диагноза — и лечатся они по-разному.
Шаг 0. Сначала локализуем: где именно обрыв
Прежде чем чинить, определите, на каком из трёх рубежей застрял сигнал. Это экономит час времени.
- Светодиоды на плате MMDVM. На большинстве плат есть PWR (питание) и индикатор активности модема. Если горит только питание, а «жизни» нет — проблема на уровне железа или прошивки модема.
- Статус в кабинете / Last Heard. Хотспот появился в списке устройств и «онлайн»? Значит, до мастера он достучался — ищем проблему уже в эфире (частота, CC, рассинхрон). Не появился — проблема между хотспотом и мастером (логин, NAT, порты).
- Рация молчит при приёме, но вы себя слышите на других. Классический рассинхрон TX/RX или неверный Color Code на стороне рации.
Запомните это разделение: «не вижу модем» → железо, «не онлайн в кабинете» → сеть, «онлайн, но эфир глухой» → частота/CC/калибровка. Дальше разбираем каждый блок.
1. Питание и просадка — причина №1, о которой думают в последнюю очередь
Девять из десяти «мистических» проблем с хотспотом — это питание. Одноплатник под нагрузкой плюс радиомодуль на передаче — это короткие, но злые пики тока. Дешёвый блок питания или тонкий microUSB-кабель не держат пик, напряжение проседает ниже 4.8–5.0 В, и начинается цирк: модем «отваливается», Wi-Fi рвётся, система перезагружается на ровном месте.
Как проверить и починить:
- Блок питания. Для Raspberry Pi берите честный 5 В / 3 А (а не «зарядку от старого телефона на 1 А»). Для Pi Zero хватит 2.5 А, но не меньше.
- Кабель — главный вредитель. Тонкий или длинный USB-кабель роняет напряжение на собственном сопротивлении. Поменяйте кабель на короткий и толстый раньше, чем будете грешить на софт.
- Симптом просадки в Pi-Star/Linux. На Raspberry Pi признак недокорма — «иконка молнии» и сообщения under-voltage detected в системном журнале. Увидели — меняйте БП, дальше можно не диагностировать.
- USB-хаб и периферия. Если в одноплатник воткнут ещё и USB-модем 4G или диск — питайте их отдельно, иначе они отъедают ток у MMDVM на передаче.
2. Модем не определился — хотспот не видит свою «радиочасть»
Хотспот — это две половины: компьютер (одноплатник) и радиомодем (MMDVM). Если компьютер не видит модем, в сеть выходить нечем. Симптомы: в логах MMDVM крутится бесконечное «Opening» / «Modem not responding», нет версии прошивки модема при старте.
Как проверить и починить:
- Тип подключения. HAT-платы садятся на GPIO и общаются через UART (порт вида /dev/ttyAMA0 или /dev/serial0). USB-донглы — через /dev/ttyUSB0 или /dev/ttyACM0. Указали не тот порт в настройках — модем «не определился», хотя физически работает.
- Конфликт UART с консолью. На Raspberry Pi serial-консоль и Bluetooth любят занимать тот самый UART, который нужен HAT. Если ставите систему руками — отключите serial-console и переназначьте Bluetooth, иначе модем будет «занят».
- Контакт и посадка. Плата плохо села на гребёнку GPIO, погнулась ножка — модем «то есть, то нет». Снимите и посадите заново до упора.
- Драйвер USB-чипа. Дешёвые донглы на CH340/CP2102 иногда требуют, чтобы чип опознался в системе. Проверьте, что устройство вообще появилось в списке USB-устройств.
3. Неверная частота — хотспот в сети, но в чужом «коридоре»
Хотспот залогинился, в кабинете «онлайн», а эфира нет. Первый подозреваемый — частота. Симплекс-хотспот работает на одной частоте и на приём, и на передачу, и рация должна стоять ровно на ней. Разъехались на десяток килогерц — и связь либо рвётся, либо её нет вовсе.
- Симплекс vs дуплекс. Большинство любительских хотспотов — симплексные: одна частота. В рации RX и TX этого канала должны совпадать с частотой хотспота. Если у вас дуплексная плата (две частоты, разнос), частоты RX/TX в рации зеркальны частотам хотспота.
- Сетка и диапазон. Убедитесь, что частота лежит в любительском диапазоне, который тянет ваша рация (UHF/VHF), и не пересекается с репитерами рядом.
- Реальная частота кварца. Дешёвые модемы «врут» на несколько кГц из-за разброса кварца — об этом отдельный пункт ниже про калибровку. Если всё настроено правильно, а связь на грани — почти наверняка дело в смещении частоты модема.
4. Color Code — «пароль таймслота», без которого рация молчит
Color Code (CC) в DMR — это идентификатор от 0 до 15, который должен совпасть у хотспота и у рации, иначе приёмник просто игнорирует чужой сигнал (по смыслу — как субтон у аналоговых раций: не совпало — не открылось). Частота верная, хотспот онлайн, а приёма нет — проверьте CC первым делом.
- Совпадение CC. Color Code в настройках хотспота и в канале рации (codeplug) должны быть идентичны. По умолчанию во многих хотспотах это CC1 — проверьте, что в рации стоит то же.
- Где смотреть в рации. CC задаётся в каждом цифровом канале отдельно. Скопировали канал, забыли поправить — будет «глухой» канал среди рабочих.
- Таймслот. На симплекс-хотспоте обычно используется один слот (часто TS2). Если в codeplug стоит другой — рация и хотспот разговаривают «в разные двери».
5. Рассинхрон TX/RX — слышу других, а меня нет (или наоборот)
Самый коварный случай: связь вроде есть, но односторонняя. Вы принимаете чужой голос, а ваш TX никто не слышит — или наоборот. Это рассинхрон TX/RX, и причин у него две большие группы.
- Смещение частоты на передаче и приёме. У дешёвых модемов TX и RX могут «уезжать» по-разному. Лечится раздельной подстройкой TX/RX offset — об этом ниже, в калибровке.
- Уровни модуляции (TX/RX level). Слишком высокий или низкий уровень DAC/ADC на модеме искажает сигнал: рация ловит «кашу» вместо данных. Это типовая правка уровней в настройках MMDVM.
- Инверсия / полярность. Некоторые платы требуют инверсии TX или RX. Если эфир «есть, но не декодируется» — попробуйте переключить инверсию.
- Перегрев и дрейф. Модем прогрелся за час работы — частота уехала. Если связь «работала и пропала через 20 минут», думайте про тепловой дрейф и компенсируйте калибровкой.
Ключевая мысль: рассинхрон почти всегда лечится не заменой железа, а аккуратной подстройкой смещения и уровней. Это и есть калибровка.
6. Нет логина в мастер — хотспот «не онлайн» в кабинете
Хотспот не появляется в списке устройств, в логах нет успешного «logged in». Это рубеж «хотспот ↔ мастер-сервер», и здесь набор причин чисто сетевой.
- Нет интернета у самого хотспота. Банально, но проверьте: Wi-Fi подключился, IP получен, DNS резолвится. Пинг до мастера проходит? Половина «не логинюсь» — это «нет сети вообще».
- Неверный адрес мастера или порт. Опечатка в имени сервера, лишний пробел, не тот порт. Сверьте параметры подключения с тем, что выдал кабинет DMRhub.
- Неверный пароль/ID. Хотспот логинится под вашим DMR ID. Не зарегистрирован ID или неверный пароль подключения — мастер вежливо отказывает. Если ID ещё нет — это первый шаг, см. регистрацию DMR ID.
- Время на устройстве. Сильно убежавшие часы на одноплатнике ломают TLS-рукопожатия и авторизацию. Проверьте, что NTP синхронизировал время.
- Файрвол со стороны провайдера. Некоторые мобильные операторы режут нестандартные порты. Если на домашнем Wi-Fi логинится, а с 4G — нет, причина в операторе.
7. NAT и проброс портов — когда мастер не может «дозвониться» обратно
Голосовой трафик DMR ходит по UDP, и тут вступает в дело NAT — то, как ваш домашний роутер прячет хотспот за одним внешним адресом. Симптом классический: хотспот залогинился (исходящее соединение прошло), но голос идёт только в одну сторону или рвётся — потому что обратные UDP-пакеты от мастера не находят дорогу к хотспоту за NAT.
- UDP keep-alive. Современные сети-мастера держат «дырку» в NAT регулярными пакетами. Если хотспот сидит тихо — NAT закрывает порт, и обратный трафик теряется. Обычно лечится тем, что хотспот сам шлёт keep-alive, но при агрессивном NAT помогает проброс.
- Проброс портов (port forwarding). На роутере пробросьте UDP-порт сети на внутренний IP хотспота. Внутренний IP лучше закрепить за устройством статикой (DHCP-резервация), иначе после перезагрузки роутера он «уедет» и проброс перестанет работать.
- Двойной NAT / CGNAT. Если провайдер выдаёт «серый» IP (CGNAT), проброс на вашем роутере бессилен — вы за чужим NAT. Признак: внешний IP в роутере не совпадает с тем, что показывают сайты «мой IP». Решения — заказать у провайдера белый IP или поднять туннель.
- UPnP. Иногда достаточно включить UPnP на роутере, и проброс настроится автоматически — но на это нельзя полагаться, ручной проброс надёжнее.
8. Watchdog — хотспот сам себя перезагружает по кругу
Watchdog («сторожевой таймер») — механизм, который перезапускает сервис или всю систему, если та «зависла». Полезная штука, но в сломанной конфигурации она превращается в качели: хотспот стартует, что-то идёт не так, watchdog его убивает, он стартует снова — и так по кругу, в сеть он толком не выходит.
- Симптом. Устройство то появляется, то пропадает в кабинете каждые 1–2 минуты; в логах — повторяющиеся старты сервиса MMDVM.
- Первопричина почти всегда ниже. Watchdog — не болезнь, а симптом. Чаще всего его «дёргают» питание (просадка, пункт 1) или отвалившийся модем (пункт 2). Лечите первопричину — качели прекратятся.
- Перегрев. На передаче плата греется; в закрытом корпусе без вентиляции одноплатник троттлит и зависает — watchdog снова в деле. Дайте проветривание или радиатор.
- Битая SD-карта. Дешёвые/изношенные microSD отдают ошибки чтения, система ловит сбой, watchdog перезагружает. Если перезагрузки хаотичные — перепишите образ на хорошую карту.
9. Рация не слышит хотспот — последний метр до эфира
Хотспот онлайн, в кабинете зелёный, голос соседей вы даже видите в Last Heard — а рация всё равно глухая. Значит, проблема на самом последнем метре, между антенной хотспота и антенной рации.
- Частота и CC ещё раз. 90% «глухих» раций — это пункты 3 и 4: разъехалась частота или не тот Color Code в канале. Перепроверьте конкретный канал, на котором стоите.
- Слишком слабый сигнал / далеко. Симплекс-хотспот — это милливатты. Уйдите в соседнюю комнату через две стены — приёма не будет. Поднесите рацию ближе для проверки.
- Антенна хотспота. Забыли прикрутить антенну или стоит «обрезок» не на тот диапазон — дальность падает до метра. Проверьте, что антенна на месте и под ваш диапазон.
- Калибровка частоты модема. Если рядом связь есть, а на пару метров уже рвётся — модем смещён по частоте. Это снова калибровка.
- Не тот таймслот / групповой вызов. Рация настроена слушать не ту группу или слот — она физически слышит хотспот, но «фильтрует» трафик. Проверьте RX-группу и talkgroup в codeplug.
Чек-лист на холодильник
Если коротко, прогоните хотспот по этому списку сверху вниз — и в 95% случаев найдёте причину:
- Питание — честный БП 5 В / 3 А, короткий толстый кабель, нет under-voltage.
- Модем — определился, виден в логах с версией прошивки, верный порт.
- Логин на мастер — есть интернет, верный адрес/порт/ID, синхронное время.
- NAT/порты — не CGNAT, проброс UDP на статический внутренний IP.
- Частота и Color Code — совпадают у хотспота и рации в конкретном канале.
- TX/RX — нет рассинхрона, уровни и offset откалиброваны.
- Watchdog — не перезагружается по кругу (а если да — ищите питание/модем/перегрев).
- Эфир — антенна на месте, рация рядом, верный слот и RX-группа.
Хотите, чтобы половину этой диагностики делали за вас?
DMRhub — частная DMR-сеть с приватными вызовами по DMR ID, DMR-SMS и Last Heard. Образ хотспота RadioStar сам находит модем, опознаёт плату и шлёт статус прямо в кабинет — вам остаётся только смотреть, а не гадать.
Источники
- Pi-Star — настройка и диагностика MMDVM-хотспота — pistar.uk
- MMDVMHost — параметры модема, уровни и инверсия — github.com/g4klx/MMDVMHost
- Raspberry Pi — диагностика под-вольтажа (under-voltage) и требования к питанию — raspberrypi.com