DMR-роуминг: автопереключение между репитерами
Вы едете по трассе, ведёте разговор через городской репитер — и через двадцать километров сигнал тает. В аналоге вы бы вручную крутили ручку, ища следующий репитер. В DMR это умеет делать сама рация: функция роуминга отслеживает уровень сигнала и, когда текущий репитер «уходит», автоматически перескакивает на другой, который держит тот же talkgroup. Разговор продолжается почти без паузы. Звучит как магия, но настроена эта магия криво у большинства новичков — и тогда рация либо не перескакивает вовсе, либо скачет без повода. Разберёмся, как сделать правильно.
Сразу оговорка: роуминг есть далеко не у всех раций. Это «продвинутая» функция, и в полноценном виде она встречается прежде всего у AnyTone (D878/D578 и родственники). На бюджетных аппаратах (Baofeng, простые TYT) её обычно нет — там максимум обычное сканирование. Поэтому примеры ниже — на логике AnyTone.
Что такое роуминг в DMR и зачем он
Роуминг решает одну задачу: сохранить связь в одном и том же talkgroup при перемещении между зонами разных репитеров. Представьте сеть из нескольких репитеров вдоль маршрута, и все они линкуют ваш TG (статически или динамически). Пока вы стоите на месте, хватает одного канала. Но как только вы выезжаете из соты — нужен следующий репитер.
- Рация постоянно (или по таймеру) проверяет, «слышит» ли она текущий репитер на приемлемом уровне.
- Как только сигнал падает ниже порога — рация пробегает по списку заранее заданных репитеров и встаёт на тот, который принимается лучше и держит нужный TG.
- Для оператора это выглядит как непрерывный разговор, хотя физически рация сменила частоту и Color Code.
Ключевое слово — тот же talkgroup. Роуминг бессмыслен, если на новом репитере вашей группы нет. Поэтому он тесно завязан на то, как у вас устроены статические и динамические talkgroup: чтобы перескок имел смысл, целевой TG должен быть прилинкован на всех репитерах роуминг-списка.
Roaming Zone и список каналов роуминга
В терминологии AnyTone роуминг строится из двух сущностей:
- Roaming Channel — это, по сути, обычный цифровой канал (частоты, Color Code, таймслот), но помеченный как участник роуминга. Вы заводите по такому каналу на каждый репитер, между которыми хотите кочевать.
- Roaming Zone — список этих roaming-каналов, объединённых по принципу «здесь живёт мой TG». Например, зона роуминга «Трасса М-7: TG общего вызова» включает все репитеры вдоль маршрута, держащие эту группу.
Когда роуминг включён, рация работает не с одним каналом, а с зоной: текущий «домашний» канал плюс кандидаты на перескок из той же roaming zone. По сути это надстройка над обычным codeplug — логику базовой конфигурации стоит сначала освоить по статье что такое codeplug, а группировку каналов — по материалу про зоны в codeplug.
Чем роуминг отличается от сканирования
Новички часто путают эти две функции, и зря — задачи у них разные.
- Сканирование (Scan) ищет активность: рация бегает по списку каналов и останавливается там, где кто-то говорит. Цель — не пропустить разговор. Talkgroup при этом может быть любой.
- Роуминг ищет лучший репитер для вашего конкретного TG. Цель — удержать ваш разговор в одной группе при движении. Активность других каналов роумингу безразлична.
Грубо: сканирование — «дайте мне любой эфир», роуминг — «дайте мне мой эфир откуда угодно». Их можно использовать вместе, но настраиваются они отдельно и путать их параметры нельзя.
Настройка роуминга шаг за шагом (логика AnyTone)
- Заведите цифровые каналы на все нужные репитеры. Для каждого — корректные RX/TX-частоты, правильный Color Code, таймслот и контакт нужного TG. Это обычная работа с codeplug.
- Пометьте эти каналы как Roaming Channel (в CPS у канала есть соответствующий флаг/принадлежность к roaming).
- Создайте Roaming Zone и включите в неё все каналы, держащие один и тот же talkgroup.
- Назначьте зону роуминга «домашнему» каналу или включите роуминг глобально — зависит от модели.
- Задайте параметры срабатывания: порог сигнала и таймеры (об этом ниже).
- Активируйте роуминг с рации (обычно отдельный пункт меню или назначаемая кнопка) и проверьте в движении или имитируя ослабление сигнала.
Перед заливкой убедитесь, что во всех roaming-каналах действительно прописан один TG в RX/контакте — это самая частая причина «молчаливого» роуминга.
Пороги и таймеры: тонкая настройка
Поведение роуминга определяют несколько параметров. Названия у разных прошивок отличаются, но смысл общий:
- Порог сигнала (RSSI threshold) — уровень, ниже которого текущий репитер считается «потерянным» и запускается поиск. Слишком высокий порог = рация прыгает слишком рано, при ещё рабочем сигнале. Слишком низкий = вы успеваете полностью выпасть из связи прежде, чем начнётся перескок.
- Интервал/таймер роуминга — как часто рация проверяет обстановку или сколько ждёт после потери сигнала перед поиском. Короткий интервал реактивнее, но нагружает приём и батарею; длинный экономнее, но добавляет паузы.
- Режим запуска — роуминг по таймеру, по факту потери сигнала, или вручную по кнопке. Для трассы удобнее автоматический, для статичной работы хватит ручного.
Эти значения подбираются под конкретную сеть и рельеф эмпирически. Универсального «правильного» порога нет — начните с заводских и корректируйте по результатам поездок.
Грабли: что ломает роуминг чаще всего
- Одинаковый Color Code на соседних репитерах в зоне. Если рация не различает репитеры по CC/частоте корректно, она может «зацепиться» не за тот узел. В роуминг-зоне каждый канал должен однозначно соответствовать своему репитеру.
- Разный или отсутствующий TG. Если на каком-то репитере вашего talkgroup нет (не прилинкован), перескок туда оставит вас в тишине. Все каналы зоны обязаны держать одну группу.
- Ложные перескоки. Слишком чувствительный порог заставляет рацию метаться между репитерами на границе зон — связь дёргается. Лечится загрублением порога и увеличением таймера.
- Роуминг включён, но «домашний» канал не в зоне. Тогда рации не из чего выбирать кандидатов.
- Путаница со сканированием. Включили scan-лист вместо roaming zone и ждёте автопереключения по TG — не дождётесь.
Если что-то идёт не так, диагностику стоит начать с проверки базовой конфигурации каналов — типовые промахи собраны в материале про codeplug и в общей терминологии: значения терминов вроде RSSI, Color Code и таймслота — в словаре DMR.
Применимость в любительских сетях и через хотспоты
Роуминг раскрывается там, где есть несколько репитеров с пересекающимся покрытием и общим talkgroup. Насколько это реально в России — зависит от региона: где-то репитеров достаточно, где-то их единицы. Обзор обстановки — в статье DMR-репитеры России. Если репитеров по маршруту нет, роуминг просто нечем кормить.
С хотспотами ситуация особая. Один симплексный хотспот покрывает буквально комнату-двор, и роуминг между несколькими личными хотспотами на практике почти не нужен — вы либо в зоне домашнего хотспота, либо нет. Зато логика «один TG на нескольких точках входа» работает на уровне сети: в частной сети вроде DMRhub ваш talkgroup доступен и через хотспот RadioStar, и через приложение на телефоне, и (где есть) через репитер. Физического роуминга рации это не заменяет, но смысл — «оставаться в своей группе откуда угодно» — реализуется на стороне сервера: голос сводится через серверный AMBE-вокодер, а доставка в нужную группу не зависит от того, с какой точки вы вошли.
Один talkgroup — везде, где вы есть
В DMRhub ваша группа доступна через хотспот, приложение и репитеры одновременно, с приватными вызовами по DMR ID. Получите ID, поднимите хотспот RadioStar и оставайтесь в эфире откуда угодно.
Итог
DMR-роуминг — мощный инструмент для тех, кто реально перемещается между зонами нескольких репитеров с общим talkgroup. Его суть проста: рация сама находит лучший узел для вашей группы. Но настройка требует аккуратности — корректные roaming-каналы, единый TG во всей роуминг-зоне, разумные порог и таймер, и понимание, что роуминг это не сканирование и не интернет-линковка. Если репитеров по маршруту нет, а вы работаете через один хотспот в частной сети, то нужный вам эффект «оставаться в своей группе» даёт правильно прилинкованный talkgroup, а не роуминг рации. Оцените свой реальный сценарий — и не настраивайте функцию ради функции.