Любой проект на LoRa начинается с цифры дальности, и почти всегда эта цифра взята из идеальных условий. У MeshTRX в описании стоит пять километров — прямая видимость, чистый эфир, ничего между антеннами. Эта статья о том, что показали первые замеры в поле, когда рации попали к людям, которые ходят с ними по городу.
Что получилось на самом деле
Первый развёрнутый отчёт из сообщества выглядел так: устойчивая голосовая связь до двух километров, дальше двух — проходят текстовые сообщения. Голос при этом переставал доходить раньше — около километра в плотной застройке, при том что текст на том же маршруте ходил почти до двух.
Это не разочарование, это полезное знание. Пять километров остаются правдой для прямой видимости — но именно для неё. В городе, между домами, с рацией в кармане расклад другой, и честнее говорить о нём.
Почему голос сдаётся раньше текста
Разница не в мощности и не в антенне — в том, как устроена передача.
Текстовое сообщение это один пакет. Ему нужно одно удачное окно в эфире. Не дошло — приложение повторит через несколько секунд, потом ещё раз, и рано или поздно попадёт в момент, когда помеха отступила. Человек этого даже не замечает: сообщение приходит с задержкой в несколько секунд.
Голос так не умеет. Речь идёт потоком: двенадцать пакетов в секунду, и каждый должен успеть дойти вовремя. Повторить нельзя — пока повтор долетит, момент уже прошёл. Десяток пакетов подряд должен пройти через тот же эфир, в котором текст пробивался с третьей попытки.
Отсюда правило, которое стоит помнить: там, где голос уже не проходит, текст обычно ещё работает. И наоборот — если пропал и текст, дело не в голосе, а в связи как таковой.
Про сравнение с сетями для датчиков
В той же переписке прозвучало наблюдение: соседние узлы на другой прошивке, тоже на LoRa, добивают дальше. Это правда, и причина понятна.
Сети для датчиков по умолчанию работают на медленных режимах — большой коэффициент расширения, узкая полоса. Чем медленнее передача, тем дальше её слышно: это физика, а не качество прошивки. Плата за медленность — пропускная способность. На таком режиме в эфир пролезает короткое сообщение раз в несколько секунд, и никакой речи там быть не может.
MeshTRX работает на быстром режиме именно потому, что несёт голос. Голос требует канала, канал требует скорости, скорость отнимает дальность. Это не недоработка, а выбор, сделанный сознательно, и его стоит знать заранее.
Дальний режим для текста — отдельная передача, медленная и бьющая дальше, — в планах есть. Он не заменит основной, а дополнит его: текст уйдёт дальше там, где голос уже не живёт.
Что делает ретранслятор
Ретранслятор удваивает путь: рация добивает до него, он добивает дальше. На практике это подтвердилось — голос через ретранслятор начал доходить туда, куда напрямую не доходил.
Но у ретранслятора есть цена, и о ней говорят редко. Он работает в том же канале и в том же полудуплексе, что и все: пока он повторяет чужой пакет, он не слышит следующий. На стенде это видно в числах — из двадцати голосовых пакетов через ретранслятор проходит около половины. Для речи это терпимо: пропуск в восемьдесят миллисекунд слышен как щелчок, а не как дыра. Для файла было бы катастрофой, поэтому файлы через ретранслятор идут с подтверждением и дозапросом потерянных кусков.
Вывод простой: ретранслятор увеличивает охват, но не увеличивает ёмкость эфира. Он полезен там, где иначе связи нет вовсе.
Что дальше
Замеры продолжаются, и следующий шаг очевиден: направленные антенны и высокая точка. Ретранслятор на десятом этаже в центре города, в прямой видимости — это совсем другой расклад, чем ретранслятор на столе.
Дальше встаёт вопрос, который уже обсуждают в сообществе: как связать несколько ретрансляторов между собой так, чтобы каждый обслуживал своих и не мешал чужим. Это не решается одной настройкой — нужны зоны, привязка станций к своему ретранслятору и отдельный путь между ретрансляторами. Такая работа стоит в планах, и начинать её имеет смысл после того, как замеры с высокой точкой покажут реальные расстояния.
Замеры важнее предположений. Именно поэтому эта статья написана по числам из поля, а не по расчётам.
Как MeshTRX устроен целиком — в документации. Что сделано и что отложено — на странице проекта. Замеры, наблюдения и споры — в группе.