Экспериментальная автономная прошивка узла Reticulum для LoRa-устройства на базе RNode Firmware и microReticulum. Узел может работать без постоянно подключённого компьютера, хранить конфигурацию во flash-памяти, участвовать в Reticulum-сети и использовать Wi-Fi/TCP uplink.
Проект основан на microReticulum_Firmware и RNode Firmware. Лицензия исходного кода приведена в файле LICENSE.
Warning
Прошивка экспериментальная и пока подготовлена только для LilyGO TTGO T-Beam с радиомодулем SX1276, диапазон 868 МГц. Среда сборки: ttgo-t-beam. Другие платы, ревизии T-Beam, SX1262 и другие диапазоны не поддерживаются и не проверялись. Прошивка может содержать ошибки, терять конфигурацию или требовать полного перепрошивания. Не используйте её в системах, от которых зависит безопасность.
- автономная работа стека microReticulum на ESP32;
- LoRa-интерфейс SX1276 и USB/KISS-подключение;
- сохранение настроек узла в энергонезависимой памяти;
- Wi-Fi STA и TCP uplink;
- встроенный транспорт Reticulum, discovery и статистика;
- резервное копирование transport identity в EEPROM;
- настройка, диагностика и обновление через
tools/micrornodeconf.py; - локальная диагностическая панель через USB/COM без внешнего веб-сервиса.
- LilyGO TTGO T-Beam с ESP32 и SX1276;
- вариант радиотракта 868 МГц;
- USB-кабель с передачей данных;
- подходящая LoRa-антенна, подключённая до включения передатчика.
- Python 3.12 или новее;
- PlatformIO Core 6.1.19;
- pyserial 3.5;
- Git.
Установка проверенных актуальных версий в PowerShell:
py -3.12 -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
python -m pip install platformio==6.1.19 pyserial==3.5Все C++-зависимости и платформа ESP32 имеют фиксированные версии в platformio.ini; PlatformIO загрузит их автоматически. Это делает сборку повторяемой и не требует ручной установки Arduino-библиотек.
Клонируйте репозиторий и откройте его каталог:
git clone <URL-ВАШЕГО-РЕПОЗИТОРИЯ>
cd microReticulum_NextСоберите прошивку:
python -m platformio runОсновной бинарник появится в:
.pio\build\ttgo-t-beam\rnode_firmware_tbeam.bin
Для создания ZIP-пакета и локального feed:
python -m platformio run -t packageРезультаты будут созданы в Release\ и не должны коммититься в Git.
Подключите T-Beam по USB, узнайте номер COM-порта в диспетчере устройств Windows и закройте программы, которые могут удерживать этот порт.
Сборка и загрузка одной командой:
python -m platformio run -t upload --upload-port COM7Замените COM7 на фактический порт устройства. После первой загрузки проверьте состояние:
python tools\micrornodeconf.py COM7 --showЕсли устройство требует повторной инициализации EEPROM/конфигурации:
python tools\micrornodeconf.py COM7 --firmware-hash auto
python tools\micrornodeconf.py COM7 --rom
python tools\micrornodeconf.py COM7 --showПример тестовой настройки LoRa для 868 МГц:
python tools\micrornodeconf.py COM7 --freq 868.825MHz --bw 125kHz --sf 10 --cr 7 --txp max --radio on --saveПокажите все сохранённые параметры:
python tools\micrornodeconf.py COM7 --showУправление встроенным транспортом:
python tools\micrornodeconf.py COM7 --transport auto
python tools\micrornodeconf.py COM7 --transport on
python tools\micrornodeconf.py COM7 --transport offДиагностика Wi-Fi и TCP uplink:
python tools\micrornodeconf.py COM7 --wifi-showЗначок Wi-Fi на экране подтверждает только соединение с точкой доступа. Состояние TCP uplink нужно проверять отдельно командой выше.
python tools\micrornode_dashboard.py COM7 --openПанель показывает состояние радио, счётчики RX/TX, RSSI/SNR, память, причины перезапуска, Wi-Fi, TCP uplink и основные параметры microReticulum. Она работает локально и не отправляет данные во внешний веб-сервис.
Для демонстрации без устройства:
python tools\micrornode_dashboard.py --demo --openCOM-порт одновременно может использовать только одна программа. Перед запуском micrornodeconf.py, Reticulum, PlatformIO upload или serial monitor остановите панель кнопкой Stop & Close.
Проверить активную identity и EEPROM-копию:
python tools\micrornodeconf.py COM7 --identity-showЭкспортировать локальную резервную копию:
python tools\micrornodeconf.py COM7 --identity-export "$env:USERPROFILE\.config\rnodeconf\tbeam_transport_identity.hex"Восстановить identity и перезагрузить узел:
python tools\micrornodeconf.py COM7 --identity-import "$env:USERPROFILE\.config\rnodeconf\tbeam_transport_identity.hex" --rebootНе публикуйте файл identity: он содержит приватный ключ узла.
python -m serial.tools.miniterm COM7 115200 --filter debugЗакройте miniterm сочетанием Ctrl+] перед запуском других инструментов.
RNode_Firmware.ino,*.h,*.cpp— исходный код прошивки;platformio.ini— единственная поддерживаемая конфигурация сборки;partitions/— таблица разделов flash-памяти для автономного T-Beam;tools/— конфигуратор, панель и средства диагностики;Release/esptool/— минимальные скрипты, необходимые для создания устанавливаемого пакета;extra_script.py— сборка пакета, подготовка зависимостей и служебные действия PlatformIO.
- соблюдайте разрешённые частоты, мощность и duty cycle для своей страны;
- не включайте передачу без подходящей антенны;
- перед обновлением сохраняйте transport identity и важные настройки;
- не считайте доступность узла на карте доказательством исправности Wi-Fi/TCP uplink;
- не публикуйте Wi-Fi-пароли, identity, дампы EEPROM и диагностические логи с секретами;
- поддержка других устройств появится только после отдельной адаптации и аппаратного тестирования.
python -m platformio run -t cleanКаталоги .pio/, Debug/, logs/ и сгенерированные файлы Release/ исключены из Git.