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

Прошить плату в RNode

Одна операция на каждую плату. Дальше плата просто работает, и сюда вы больше не возвращаетесь.

Что здесь: железо, прошивка, закон. Чего здесь нет: подключение к quite.space — это Подключить радио.


Что мы вообще делаем

RNode — это прошивка-модем. После неё плата перестаёт быть «узлом сети» и становится честным передатчиком: принимает байты по USB, излучает их, принимает из эфира, отдаёт обратно. Никаких своих маршрутов, каналов и решений.

quite.space  ──USB──▶  прошивка RNode  ──LoRa──▶  вторая плата

Это и есть причина, по которой у нас проверен именно RNode: всё, что касается доставки — фрагментация, починка потерь, дедупликация — живёт в quite.space, где мы можем это измерить и исправить. Модем не должен быть умным, он должен быть предсказуемым.

RNode — не Reticulum. Прошивка родом из проекта Reticulum, и ставится инструментом оттуда, но сам Reticulum как сеть quite.space не использует: свои личности, свои ключи, свой журнал. Мы берём модем и ничего больше.


Что понадобится

  • Плата LoRa на ESP32 с чипом SX1262 — мы работали на Heltec WiFi LoRa 32 V3. Поддержка Heltec v3 в RNode официально помечена как экспериментальная, и это честно: у нас она работает, но обещать её за авторов прошивки мы не можем.
  • Антенна, прикрученная до включения. Плата без антенны может выйти из строя при первой же передаче. Это единственное место в документации, где что-то ломается физически.
  • USB-кабель, который умеет данные, а не только зарядку. Половина «плата не определяется» — это он.
  • Python 3 и pip.

Шаг 1. Поставить rnodeconf

rnodeconf — официальный инсталлятор прошивки RNode. Он приезжает вместе с пакетом Reticulum:

pip install rns

Проверить, что встал:

rnodeconf --help

Прошивка RNode распространяется под GPLv3, и мы её у себя не храним и не пересобираем: rnodeconf скачивает официальные образы сам. Так у вас на плате оказывается то, что выпустили авторы, а не то, что мы решили положить в свой репозиторий.


Шаг 2. Найти плату

Подключите её по USB и посмотрите, какой путь появился:

ls /dev/cu.usb*          # macOS
ls /dev/ttyUSB* /dev/ttyACM*   # Linux

Типичное имя: /dev/cu.usbserial-0001 (плата с мостом CP2102) или /dev/cu.usbmodem… (плата с нативным USB).

Путь не постоянный. После сброса та же плата может появиться под другим именем. Запоминать его наизусть не нужно — в приложении quite.space путь находится сканированием, см. Подключить радио.


Шаг 3. Прошить

rnodeconf --autoinstall

Дальше — диалог. Он проведёт по трём вопросам:

  1. Что за устройство — выберите «плата, которую нужно превратить в RNode» (в разных версиях пункт называется по-разному).
  2. Какая модель платы — здесь ошибиться нельзя: у разных плат на одном и том же чипе разная разводка радио, и прошивка от чужой платы даёт молчащее радио без единой ошибки. Для нашего случая — Heltec LoRa32 v3.
  3. Диапазон — 868 МГц для Европы и России, 433 или 915 в других местах. Смотрите, на что рассчитана ваша плата: обычно это написано на антенне или в описании товара.

Нумерация пунктов меню меняется от версии к версии, поэтому здесь их нет: ориентируйтесь на текст пункта, а не на цифру. Если сомневаетесь — rnodeconf --help.

Плата стирается и перепрошивается. Meshtastic, если он там был, исчезнет вместе со всеми настроенными каналами. Вернуть его можно — это тот же процесс в обратную сторону, см. путь Meshtastic.

Мы прошивали RNode версии 1.86; она сама сообщает о себе, что управляется хостом, работает с SX1262 и держит 820–1020 МГц.


Шаг 4. Убедиться, что плата отвечает

У quite.space есть отдельный диагностический инструмент — он намеренно не делит ни строчки кода с драйвером. Когда носитель ничего не доставляет, драйвер — подозреваемый, а диагностика, построенная на подозреваемом, умеет только подтверждать собственные предположения.

rnode-probe -dev /dev/cu.usbserial-0001

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

terminal radio list здесь не поможет. Эта команда ищет узлы Meshtastic и про RNode ничего не знает — свежепрошитую плату она радиом не назовёт. Это не поломка. Модем узнаёт либо rnode-probe, либо сканирование в самом приложении.


Про закон, одним абзацем

Частота и мощность — это не настройка вкуса, а вопрос законодательства вашей страны. Сборка передаёт на профиле long-fast-ru: 868.95 МГц, до 20 dBm — это внутри диапазона, который таблица регионов Meshtastic определяет для RU (868.7–869.2 МГц, до 20 dBm).

И одно отличие RNode, которое стоит понимать до того, как вы куда-нибудь поедете: модем делает ровно то, что ему сказали. У него нет региональной таблицы, которая не даст выйти за рамки. Ответственность за то, что вы в этом диапазоне имеете право работать, — на вас.


Если не прошивается

Признак Скорее всего
платы нет в /dev кабель без данных, или не установлен драйвер USB-моста (CP2102 / CH340)
rnodeconf не видит порт порт держит другая программа: монитор порта, приложение Meshtastic, запущенный узел quite.space
прошилось, но rnode-probe молчит выбрана не та модель платы на шаге 3 — прошейте заново
плата не входит в режим загрузчика зажать BOOT, коротко нажать RST, отпустить BOOT и повторить

Одну и ту же плату может держать только одна программа за раз. Если у вас запущен узел с этим радио — остановите его на время прошивки.