DOCS / сеть и радио

Радио в quite.space

Радио — это способ разговаривать, когда интернета нет вообще: две платы LoRa, несколько километров между ними и ни одного сервера посередине.

Этот раздел — четыре документа, и у каждого факта здесь ровно один дом. Если что-то сказано в одном месте, в остальных на него ссылка, а не копия.

Документ О чём Кому
Прошить плату в RNode прошить плату прошивкой RNode один раз на каждую плату
Подключить радио подключить радио в приложении и разговаривать через него всем
Радио из командной строки те же действия и измерения из командной строки тем, кто без интерфейса
этот документ какой носитель проверен, а какой нет, и словарь прочитать первым

Какой носитель работает

RNode — проверенный носитель. Это прошивка-модем: плата принимает байты по USB и излучает их, не решая ничего за нас. Всё, что quite.space умеет по радио, измерено на нём.

Meshtastic — экспериментальная функция, не проверенная в этой роли. Драйвер в сборке есть, узел к такой плате подключается, но продуктовый сценарий (встреча по радио, приглашение, переписка без интернета) на Meshtastic целиком никогда не прогонялся. Куда он пойдёт дальше — не решено. Если у вас плата с Meshtastic и вы хотите именно радио в quite.space, прошейте её в RNode: Прошить плату в RNode.

Как проверяли RNode — в двух словах

Две платы Heltec WiFi LoRa 32 V3 на столе, 868.95 МГц, SF11/250 кГц, 20 dBm. Три уровня, каждый со своим критерием «да или нет»:

проверка что мерили результат
одиночный кадр доходит ли пакет до приложения на второй плате 100% в обе стороны, p50 0.71 с, ни одного отказа модема
целое сообщение собирается ли сообщение из фрагментов байт-в-байт 10 из 10 на размерах до 6.6 КБ
живой продукт весь путь без реле и без интернета прошёл

Живой прогон стоит подробнее, потому что это и есть обещание продукта. Два узла, оба с --no-lan, ни одного реле:

увидели друг друга по радио          21 с
проба → линк → приглашение           25 с
линия установлена в обе стороны      42 с
текст прошёл туда и обратно         199 с

Вторая половина — про отказ интернета. Два узла уже знакомы через реле, интернет выключается, ничего не перезапускается: следующее сообщение прошло по радио за 85 секунд, а когда интернет вернулся, ни одно сообщение не задвоилось и никого не пришлось приглашать заново.

Сравнение с Meshtastic на том же железе и той же физике мы делали только на первом уровне — одиночные кадры: RNode 100%/100% и p50 0.71 с против 93.3%/100% и p50 1.40 с в одну сторону и 9.30 с в другую. Честная оговорка: платы в двух прогонах были не полностью одни и те же, прогоны разнесены на часы, и 30 кадров — это отсев, а не статистика. Что не двусмысленно — задержка RNode равна времени в эфире и симметрична до миллисекунды.

Воспроизвести любой из трёх уровней своими руками: Радио из командной строки.


Словарь

Сегмент — группа радио, которые слышат друг друга и считают друг друга своими. Технически сегмент задаётся одной вещью: фразой сегмента.

Фраза сегмента — слова, из которых каждое радио выводит один и тот же ключ. Совпали слова — вы в одном сегменте; разошлись на один символ — оба радио исправно передают, и ни одно ничего не слышит. Ошибки при этом нигде не будет: тишина неотличима от «рядом никого нет». Отсюда почти все правила в документе Подключить радио.

Ключ сегмента защищает механизм, а не переписку: он доказывает, что служебный кадр написал кто-то из сегмента. Содержимое сообщений зашифровано ключами пространства ещё до того, как попадает в радиослой, и радио ничего к этому не добавляет и ничего не ослабляет. Сам факт, что в эфире идёт обмен, виден всем в радиусе — это физика, и мы её не прячем.

Профиль — физические параметры эфира: частота, полоса, SF, мощность. Все радио сегмента обязаны быть на одном профиле. Сейчас в сборке один: long-fast-ru (868.95 МГц, 250 кГц, SF11, CR4/5, 20 dBm).

Линия — пространство на двоих, которое возникает, когда вы кого-то встретили по радио. Обычное пространство quite.space, просто рождённое без интернета.


Что радио не заменяет

Одно радио на узел, и оно — последний путь, а не единственный. Пока жив интернет или локальная сеть, узел пользуется ими: они шире и быстрее. Радио включается тогда, когда остальное закончилось, и делает это само, никого не спрашивая.

Скорость LoRa — единицы килобит в секунду на всех сразу. Текст ходит нормально; фотографии, звук и файлы ждут интернета — почему именно так и что при этом видит человек, написано в документе Подключить радио.


Соседние документы

  • Путь Meshtastic — прошивка, регион, канал сегмента, профиль. Отдельная история и другой носитель; всё про RNode — здесь.