Color Code на пальцах: почему рация молчит
Рация настроена, хотспот светит зелёным, позывной в базе — а в эфире тишина. Одна из самых частых причин: Color Code не совпадает между каналом в рации и настройками хотспота. Разберём, что это вообще такое, почему это важно и как это поправить за одну минуту.
Что такое Color Code
Color Code (CC) — это числовой параметр от 0 до 15, встроенный в каждый DMR-фрейм. По смыслу — цифровой аналог субтона CTCSS в аналоговой FM-связи: он не несёт голос и не влияет на качество, его единственная функция — фильтр доступа. Если CC во входящем сигнале не совпадает с тем, что ждёт приёмник, сигнал молча отбрасывается.
Важное отличие от CTCSS: в аналоге субтон можно отключить и слушать «голым» сканером. В DMR Color Code обязателен — он встроен в структуру фрейма и не может отсутствовать. Рация всегда проверяет его, хотите вы того или нет.
Откуда берутся 16 значений и зачем они
Диапазон 0–15 даёт 16 вариантов. Это число выбрано не случайно: четыре бита CC укладываются в поле данных DMR-фрейма (стандарт ETSI TS 102 361). Смысл нескольких значений — возможность разделить несколько систем, работающих на одной частоте в одной местности, так чтобы рации одной сети не открывались от сигнала другой.
На практике в любительской связи чаще всего используют CC1. Значения CC0 иногда применяют для тестовых и симплексных каналов, но это нигде не стандартизировано — просто сложившаяся традиция.
Как CC проходит сквозь систему
Цепочка одна: рация → хотспот (MMDVM) → сервер. На входе хотспот проверяет CC RF-сигнала. Если не совпадает — сигнал отвергается ещё на радиочастотном уровне, до того как данные уйдут в сеть.
В логах MMDVM/Pi-Star/WPSD несовпадение выглядит примерно так:
DMR Slot 2, RF user 2500001 rejected
Строка rejected без дополнительных пояснений — почти всегда именно CC-мисматч или несовпадение частоты (высокий BER). Никакого дополнительного сообщения об ошибке CC хотспот обычно не пишет — просто тихо отказывает.
Где выставляется Color Code
В рации (CPS)
Открываете CPS, находите нужный канал и ищете поле с названием Color Code или CC. Оно обычно рядом с полем Slot/Timeslot. Ставите то значение, которое задан на хотспоте — для DMRhub это 1.
В хотспоте (RadioStar / Pi-Star / WPSD)
В веб-интерфейсе хотспота в разделе настроек DMR ищете поле Color Code. В образе RadioStar оно находится в основной вкладке конфигурации, прямо рядом с частотой. По умолчанию там уже стоит CC1 — именно то, что нужно для DMRhub.
Типичные сценарии несовпадения
- Готовый codeplug из интернета — там часто стоит CC для какого-то конкретного репитера, не CC1. Меняете поле в CPS для каждого канала хотспота.
- Перепрошили рацию (OpenGD77) — при первом запуске CPS OpenGD77 по умолчанию создаёт канал с CC0. Исправить там же в редакторе канала.
- Хотспот переконфигурировали — случайно выставили CC0 или CC2 в веб-интерфейсе. Возвращаете CC1, сохраняете, перезагружаете.
- Несколько хотспотов с разными CC — если у вас дома и на работе хотспоты с одинаковой частотой и разными CC, придётся делать два отдельных канала в codeplug для каждого хотспота.
Быстрая диагностика: чек-лист
- Смотрите логи хотспота — есть строки
rejected? Значит, сигнал доходит, но фильтруется. - Нет строк вообще — сигнал не доходит физически (частота, мощность, расстояние).
- Сверяете поле CC в канале рации с полем CC в настройках хотспота — должны быть равны.
- Для DMRhub оба значения должны быть 1.
- Если CC совпадают, а
rejectedвсё равно есть — проверяете частоту и уровень BER (см. статью про калибровку).
Образ RadioStar: CC1 уже выставлен
В готовом образе RadioStar для Raspberry Pi Color Code для сети DMRhub настроен правильно «из коробки» — CC1. Вам остаётся только прописать частоту хотспота в канале рации и убедиться, что она совпадает с той, что задана в образе. Кнопки ниже — быстрый старт.
Источники
- Understanding Color Codes on DMR Digital Two Way Radios — buytwowayradios.com
- ETSI TS 102 361-1: Digital Mobile Radio (DMR) Air Interface Protocol — etsi.org
- MMDVM hotspot troubleshooting (Pi-Star forum, тема о RF user rejected) — forum.pistar.uk
- DMR Color Code — Ailunce blog — ailunce.com