| Meshtastic: компиляция прошивки для ESP32-C3 Super-Mini |
|
| Добавил(а) microsin | ||||||||||||
|
Сначала надо выполнить шаги "Этап 1" и "Этап 2" из [1]. На этих шагах устанавливается PlatformIO и закачивается репозиторий Git проекта Meshtastic. [Этап 3: Адаптация конфигурации для E22-900M22] 1. Выберите основу для конфигурации. В папке variants/esp32c3/diy/esp32c3_super_mini находится готовая конфигурация, которая лучше всего подойдет для подключения к платке ESP32-S3 Super Mini. Она идеально работает в качестве стартовой точки, так как уже содержит настройки для работы с модулями Ebyte. В этой конфигурации надо будет сделать настройку выводов портов для подключения модуля LoRa-радио на чипе SX1262 (модуль E22-900M22S). 2. Сделайте копию папки variants/esp32c3/diy/esp32c3_super_mini и всего содержимого, что в ней находится, в папку variants/esp32c3/diy/myvariant. 3. Отредактируйте файл myvariant/variant.h, где задаются номера портов ввода/вывода и другие опции. Для платы 260321mechtastic, в разделе настроек LoRa оставьте только определение USE_SX1262, остальные закомментируйте. Исправьте также назначение ножек портов, макросы LORA_xxx. Для модуля ESP32-C3 Super Mini, модуля E22-900M22S на плате 260321mechtastic: #ifndef _VARIANT_ESP32C3_SUPER_MINI_ 4. Установите правильные параметры мощности. Для модуля E22-900M22S важно указать его максимальную выходную мощность (22 дБм). Обычно это делается с помощью флагов сборки. Найдите их в том же файле variant.h, или добавьте в platformio.ini для вашего окружения следующие строки: #define EBYTE_E22_900M22S // Включает поддержку конкретного модуля 5. Добавьте ваш новый вариант сборки myvariant к списку вариантов Meshtastic. Корневой файл firmware\platformio.ini подключает все .ini файлы из папки variants/*/*.ini, в том числе и ваш файл platformio.ini в папке myvariant. extra_configs = Откройте файл firmware/variants/esp32c3/diy/myvariant/platformio.ini и внесите в него следующие изменения (измененные значения выделены жирным шрифтом): ; ESP32 C3 Super Mini Development Board [Этап 4: Сборка и заливка прошивки] Теперь, когда конфигурация готова, можно приступить к компиляции. 1. Перейдите в корневой каталог репозитория (в папку firmware): cd ..\..\.. 2. Запустите сборку. В корневой папке firmware загруженного репозитория выполните команду: pio run -e myvariant Первая сборка может занять 10-15 минут, так как PlatformIO загрузит все необходимые инструменты и библиотеки. В случае успеха вы увидите сообщение `SUCCESS`, а готовый файл прошивки (`.bin` или `.uf2`) будет находиться в папке .pio/build/myvariant/. [Исправление ошибок компиляции, FAQ] $ pio run -e myvariant
Traceback (most recent call last):
File "/usr/bin/pio", line 33, in < module>
sys.exit(load_entry_point('platformio==4.3.4', 'console_scripts', 'pio')())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/bin/pio", line 25, in importlib_load_entry_point
return next(matches).load()
^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/importlib/metadata/__init__.py", line 205, in load
module = import_module(match.group('module'))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/importlib/__init__.py", line 90, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "< frozen importlib._bootstrap>", line 1387, in _gcd_import
File "< frozen importlib._bootstrap>", line 1360, in _find_and_load
File "< frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
File "< frozen importlib._bootstrap>", line 935, in _load_unlocked
File "< frozen importlib._bootstrap_external>", line 995, in exec_module
File "< frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
File "/usr/lib/python3/dist-packages/platformio/__main__.py", line 66, in < module>
@cli.resultcallback()
^^^^^^^^^^^^^^^^^^
AttributeError: 'PlatformioCLI' object has no attribute 'resultcallback'. Did you mean: 'result_callback'?
Способ 1: Обновить PlatformIO через pip (рекомендуется) Так как PlatformIO был установлен через системный пакетный менеджер, его нужно обновить через pip: # Сначала удалите старую версию из репозитория # Установите свежую версию через pip Если pip не установлен: sudo apt install python3-pip После установки добавьте PlatformIO в PATH (если ещё не добавлен): echo 'export PATH="$PATH:$HOME/.local/bin"' >> ~/.bashrc Способ 2: Обновить через официальный установщик # Удалите старую версию # Скачайте и запустите официальный установщик # Добавьте в PATH Способ 3: Использовать virtual environment (чистая установка) sudo apt remove platformio # Создайте виртуальное окружение # Установите PlatformIO # Теперь pio доступен в этом окружении Проверка успешного обновления: pio --version Актуальная версия на момент 18 мая 2026 года — 6.1.16 (или новее). Убедитесь, что версия стала 5.2.1+. После успешного обновления команда pio run -e myvariant должна работать корректно. $ pio run -e myvariant
UnknownEnvNamesError: Unknown environment names 'myvariant'.
Valid names are 'sugarcube, m5stack-stamp-c3, elecrow-adv-35-tft, icarus, muzi-base,
...
heltec-v4, seeed_xiao_nrf52840_kit_i2c, heltec-v4-tft, feather_rp2040_rfm95, betafpv_900_tx_nano'
Ошибка означает, что в вашем проекте нет среды (environment) с именем myvariant. Это имя вы выбрали сами, но его нужно предварительно определить в файле platformio.ini. [Решение: создать свою среду в platformio.ini] В корне вашего проекта Meshtastic найдите файл platformio.ini. В нём нужно добавить секцию для вашей пользовательской конфигурации. Вариант 1: создать новую среду на основе существующей Скорее всего, для вашего модуля E22-900M22S лучше всего подходит среда `tlora-v2-1-1_6` или `tbeam`. Добавьте в конец файла platformio.ini: [env:myvariant] Вариант 2: создать полностью свою конфигурацию для E22-900M22S [env:myvariant] Вариант 3: скопировать и переименовать существующую среду Посмотрите список доступных сред — например, `tbeam` или `heltec-v3` — и используйте одну из них напрямую: # Вместо myvariant используйте существующее имя # или # или Создание директории для variant.h. Если вы создали свою среду myvariant, вам также нужно создать директорию для вашего файла variant.h: # Создайте папку для вашего варианта # Скопируйте туда файл variant.h (можете взять за основу существующий) [Быстрое решение (если хотите просто собрать)] Если вы не хотите возиться с созданием своей конфигурации, просто используйте существующую среду, которая наиболее близка к вашему железу. Для E22-900M22S попробуйте: pio run -e tbeam или: pio run -e tlora-v2-1-1_6 Эти среды уже имеют правильные настройки для чипа SX1262 и должны работать с вашим модулем. После успешной сборки вы получите прошивку в папке .pio/build/ с именем выбранной среды. $ pio run -e myvariant
Processing myvariant (board: esp32c3_super_mini; platform:
https://github.com/pioarduino/platform-espressif32/releases/download/55.03.38-1
/platform-espressif32.zip; framework: arduino)
-------------------------------------------------------------------------------
Platform Manager: Installing https://github.com/pioarduino/platform-espressif32
/releases/download/55.03.38-1/platform-espressif32.zip
Downloading [####################################] 100%
Unpacking [####################################] 100%
Platform Manager: espressif32@55.3.38 has been installed!
UnknownBoard: Unknown board ID 'esp32c3_super_mini'
Ошибка `Unknown board ID 'esp32c3_super_mini'` возникает, потому что PlatformIO не может найти стандартное определение платы с таким ID в вашей текущей конфигурации. Это похоже на то, как если бы вы попросили кого-то найти книгу, которой нет в библиотеке. В вашем файле platformio.ini указана неизвестная платформа. Вот как это можно исправить: 1. Проверьте, существует ли такая плата в PlatformIO. Сначала убедитесь, что плата с ID `esp32c3_super_mini` вообще известна PlatformIO. Выполните в терминале команду: pio boards Она выведет огромный список всех поддерживаемых плат. Поищите в нём `esp32c3_super_mini`. Если не найдете, значит, её действительно нет. В моем случае был похожий вариант платы: pio boards | grep esp32c3_super_mini Поэтому было достаточно заменить esp32c3_super_mini на nologo_esp32c3_super_mini в моем файле variants/esp32c3/diy/esp32c3_super_mini/platformio.ini: ; ESP32 C3 Super Mini Development Board 2. Используйте официальную плату (рекомендуемый способ). Самый надежный путь — выбрать существующую плату, наиболее близкую по характеристикам к вашему устройству. Вариант А: `tbeam` — так как вы работаете с LoRa и, вероятно, на базе ESP32, одной из самых популярных плат является `tbeam`. Просто замените `board = esp32c3_super_mini` на `board = tbeam`. Вариант Б: `ttgo-lora32-v21new` — еще один распространенный вариант для LoRa-проектов. Как узнать ID: вы можете найти ID нужной платы с помощью команды `pio boards | grep -i "ваше_ключевое_слово"`, например, `pio boards | grep -i "lora"`. Ваш platformio.ini после правки будет выглядеть так: [env:myvariant] 3. Создайте свою собственную плату (продвинутый способ). Если вы точно знаете, что ваша плата уникальна и её нет в списке, вы можете определить её сами. Для этого: (a) Создайте JSON-файл с описанием платы. Создайте файл, например, my_custom_board.json, и поместите его в папку вашего проекта: < ваш_проект>/boards/. Если папки boards нет, создайте её. (b) Заполните JSON-файл. Минимально жизнеспособный пример для ESP32-платы (исправьте значения под ваше железо): { (c) Используйте его в platformio.ini. Теперь вы можете обратиться к нему по имени файла (без расширения `.json`): [env:myvariant] Compiling .pio/build/myvariant/src/detect/ScanI2C.cpp.o
In file included from src/graphics/Screen.h:78,
from src/main.h:8,
from src/Power.cpp:23:
.pio/libdeps/myvariant/ESP8266 and ESP32 OLED driver for SSD1306 displays/src/SSD1306Wire.h:
In constructor 'SSD1306Wire::SSD1306Wire(uint8_t, int, int, OLEDDISPLAY_GEOMETRY, HW_I2C, int)':
.pio/libdeps/myvariant/ESP8266 and ESP32 OLED driver for SSD1306 displays/src/SSD1306Wire.h:87:51:
error: 'Wire1' was not declared in this scope; did you mean 'Wire'?
87 | this->_wire = (_i2cBus==I2C_ONE) ? &Wire : &Wire1;
| ^~~~~
| Wire
In file included from src/graphics/Screen.h:78,
from src/PowerFSM.cpp:16:
.pio/libdeps/myvariant/ESP8266 and ESP32 OLED driver for SSD1306 displays/src/SSD1306Wire.h:
In constructor 'SSD1306Wire::SSD1306Wire(uint8_t, int, int, OLEDDISPLAY_GEOMETRY, HW_I2C, int)':
.pio/libdeps/myvariant/ESP8266 and ESP32 OLED driver for SSD1306 displays/src/SSD1306Wire.h:87:51:
error: 'Wire1' was not declared in this scope; did you mean 'Wire'?
Проблема в том, что библиотека дисплея пытается использовать `Wire1`, которого нет на вашем ESP32-C3. [Быстрое решение] Отредактируйте файл библиотеки, который вызывает ошибку: .pio/libdeps/myvariant/ESP8266\ and\ ESP32\ OLED\ driver\ for\ SSD1306\ displays/src/SSD1306Wire.h. Этот способ самый простой, однако у него есть недостаток: при полной перекомпиляции с нуля содержимое ваших исправлений потеряется, и их придется вносить заново. Найдите строку 87 (примерно): this->_wire = (_i2cBus==I2C_ONE) ? &Wire : &Wire1; Замените её на: #ifdef Wire1 [Наложение патча PlatformIO (правильный путь)] Чтобы изменения не сбросились при обновлении библиотеки, создайте патч. В корне проекта создайте файл ~/firmware/patches/ssd1306_wire1_fix.patch: --- a/src/SSD1306Wire.h Создайте файл ~/firmware/extra_scripts/pre_fix_wire1.py: import os Затем в ~/firmware/variants/esp32c3/diy/myvariant/platformio.ini варианта добавьте: [env:myvariant] Перекомпилируйте начисто: cd firmware [Ещё проще: отключить дисплей (временное решение)] Если дисплей вам не критичен для текущей сборки, просто отключите его в variant.h: // В вашем variants/myvariant/variant.h И добавьте в platformio.ini: build_flags = После исправления очистите кеш и пересоберите: rm -rf .pio/build/myvariant Ошибка должна исчезнуть. Это классическая проблема для ESP32-C3, где `Wire1` физически отсутствует. Медленная компиляция Meshtastic — действительно распространённая проблема, особенно если это ваша первая сборка. Самое важное, что нужно знать: это нормально, что она идёт долго. Вся сложность в том, что PlatformIO (инструмент сборки) изначально не очень быстр, а Meshtastic — проект огромный и поддерживает кучу разных плат. Вот что вы можете сделать, чтобы ускорить процесс. [3 самых эффективных способа ускорить сборку] Это лучшие методы, которые реально сократят ваше время ожидания. 1. Включить `ccache` (обязательно к применению). Это система кэширования компиляции, которая запоминает результат сборки каждого файла. Если вы перекомпилируете проект снова (или переключитесь между похожими платами), `ccache` просто подставит готовый результат, экономя огромное количество времени. Чтобы его включить, добавьте в ваш файл platformio.ini варианта эту строчку: build_cache_dir = .pio/build_cache Как это поможет: вторая и последующие сборки станут заметно быстрее. 2. Использовать флаг `-j` для параллельной сборки. Этот флаг указывает PlatformIO задействовать все ядра вашего процессора для компиляции. По умолчанию он может работать медленнее. Выполняйте сборку так: pio run -e myvariant -j $(nproc) Как это помогает: сборка становится намного быстрее за счёт параллельной работы. Без этого флага процессор используется не полностью. 3. Собирать только одну конкретную плату. В PlatformIO можно определить множество сред (`[env:...]`). Если запустить сборку без указания среды, он начнёт компилировать всё подряд, что может занять десятки минут даже на современной рабочей станции. Всегда явно указывайте вашу среду: pio run -e myvariant Как это помогает: вы компилируете ровно то, что вам нужно, избегая лишней работы. [Почему сборка всё ещё может быть медленной] Даже с этими настройками процесс может идти не мгновенно. Вот несколько причин, с которыми сталкиваются разработчики: 1. "Холостая" сборка всё равно требует времени: даже если вы ничего не меняли в коде, PlatformIO может тратить 30–40 секунд просто на проверку зависимостей и запуск инструментов. Это особенность его внутренней системы SCons. 2. Размер проекта: Meshtastic — это не просто "мигание светодиодом". Это сложная прошивка с поддержкой mesh-сетей, GPS, дисплеев, Bluetooth и многого другого. Большой код требует времени на компиляцию. 3. Антивирус: в некоторых случаях антивирусное ПО в реальном времени может замедлять сборку, проверяя каждый создаваемый файл. [Краткая инструкция для ускорения] 1. Добавьте `build_cache_dir = .pio/build_cache` в ваш platformio.ini. 2. Всегда используйте `-j` флаг: pio run -e myvariant -j $(nproc) 3. Для первой сборки запаситесь терпением. Следующие будут быстрее. В PlatformIO есть несколько способов очистки проекта. Основная команда — pio run -t clean, но в зависимости от ситуации могут потребоваться разные уровни очистки. [Уровни очистки] 1. Стандартная очистка (clean) Удаляет только временные объектные файлы для текущей среды сборки, оставляя библиотеки и кеш нетронутыми. pio run -t clean Для конкретной среды: pio run -e myvariant -t clean Когда использовать: обычные ошибки компиляции, проблемы с инкрементальной сборкой. 2. Полная очистка (prune) Удаляет всё неиспользуемое кешированное содержимое (неиспользуемые пакеты, библиотеки, кеш платформ). pio system prune Показать, что будет удалено, без реального удаления: pio system prune --dry-run Пропустить подтверждение: pio system prune --force Когда использовать: нехватка места на диске, подозрение на повреждение глобального кеша PlatformIO. 3. Ручная полная очистка Удаление всех скомпилированных данных проекта и кешированных зависимостей. Самый радикальный метод. Для текущего проекта: rm -rf .pio Полный сброс PlatformIO (все проекты): rm -rf ~/.platformio Переустановка пакетов при следующей сборке: pio run Когда использовать: переключение между средами вызывает ошибки "No such file or directory", необъяснимые конфликты библиотек, полный сбой после неудачного обновления. [Какой метод выбрать для вашей ситуации]
Совет: для ситуации сборки Meshtastic с пользовательским variant.h после возникновения ошибок с I2C и Wire1 или подобными рекомендуется выполнить полную очистку проекта, так как изменения в конфигурации затронули несколько файлов: rm -rf .pio Это гарантирует, что все объектные файлы будут перекомпилированы заново с вашими обновлёнными настройками. In file included from src/mesh/MemoryPool.h:9,
from src/mesh/MeshRadio.h:3,
from src/mesh/Default.h:2,
from src/SerialConsole.cpp:2:
src/configuration.h:68:2: error: #error APP_VERSION must be set by the build environment
68 | #error APP_VERSION must be set by the build environment
| ^~~~~
Добавьте в файл variants/esp32c3/diy/myvariant/platformio.ini: [env:myvariant] src/main.cpp:174:52: error: 'USERPREFS_TZ_STRING' was not declared in this scope
174 | volatile static const char slipstreamTZString[] = {USERPREFS_TZ_STRING};
| ^~~~~~~~~~~~~~~~~~~
Добавьте в файл variants/esp32c3/diy/myvariant/platformio.ini: [env:myvariant] src/modules/ExternalNotificationModule.cpp: In constructor 'ExternalNotificationModule::ExternalNotificationModule()':
src/modules/ExternalNotificationModule.cpp:314:43: error: 'USERPREFS_RINGTONE_RTTTL' was not declared in this scope
314 | strncpy(rtttlConfig.ringtone, USERPREFS_RINGTONE_RTTTL, sizeof(rtttlConfig.ringtone));
| ^~~~~~~~~~~~~~~~~~~~~~~~
Добавьте в файл variants/esp32c3/diy/myvariant/platformio.ini: [env:myvariant] После успешной сборки файл с прошивкой, готовый для загрузки на устройство, находится в папке вашего проекта по следующему пути: путь_к_вашему_проекту/firmware/.pio/build/myvariant/firmware.bin Итоговый файл называется firmware.bin. Все промежуточные объектные файлы и результаты компиляции отдельных модулей также находятся в этой директории .pio/build/myvariant/. [Как это работает] myvariant: это название конкретной конфигурации сборки (окружения), которое вы указали в файле platformio.ini через флаг `-e myvariant`. Если бы вы собирали другую конфигурацию, например, `pio run -e tbeam`, папка с результатом называлась бы tbeam. firmware.bin: самый главный файл — это и есть ваша готовая прошивка, которую можно записывать на устройство. Другие файлы: рядом с ним вы можете найти и другие артефакты сборки, например, firmware.elf (отладочный файл с дополнительной информацией) или partitions.bin (файл с таблицей разделов памяти), но для прошивки обычно нужен только `.bin`. Если вы захотите изменить стандартное расположение этой папки (например, чтобы не засорять проект), это можно сделать, добавив в ваш platformio.ini в секцию `[platformio]` директиву `build_dir`. Прошить ESP32-C3 можно напрямую из PlatformIO — это самый удобный способ, так как вы уже используете эту среду для сборки. Вот как это сделать правильно для вашей платы Nologo ESP32-C3 SuperMini. [Прошивка через PlatformIO (рекомендуемый способ)] PlatformIO может автоматически найти порт и прошить устройство. Просто выполните команду: pio run -e myvariant -t upload Если нужно указать порт вручную (например, когда подключено несколько устройств), добавьте параметр `--upload-port`: pio run -e myvariant -t upload --upload-port /dev/ttyUSB0 PlatformIO автоматически переведёт плату в режим загрузки, прошьёт `firmware.bin` и перезапустит устройство. [Ручная прошивка через esptool.py] Если вы хотите прошить плату вручную или у вас нет PlatformIO, используйте официальный инструмент esptool.py. 1. Установите esptool.py (если ещё не установлен): pip install esptool 2. Сотрите старую прошивку (рекомендуется): esptool.py --chip esp32c3 --port /dev/ttyUSB0 erase_flash 3. Запишите новую прошивку: esptool.py --chip esp32c3 --port /dev/ttyUSB0 --baud 460800 write_flash \ [Настройка PlatformIO для стабильной работы] Добавьте в ваш platformio.ini параметры для порта и монитора: [env:myvariant] Если вы не знаете, какой порт используется в Linux, выполните команду ls /dev/tty* до и после подключения платы — новый появившийся порт и будет вашим. [Особенности ESP32-C3 SuperMini] Платы Nologo ESP32-C3 SuperMini имеют несколько особенностей: 1. USB CDC включён: в вашей конфигурации уже есть -DARDUINO_USB_CDC_ON_BOOT=1, что правильно для этой платы. Таким образом, через этот виртуальный последовательный порт осуществляется вывод отладочных сообщений, перепрошивка Meshtastic и управление его настройками (с помощью утилит Python CLI [2] и Web UI [3]). 2. Ручной вход в режим загрузки: на некоторых платах C3 может потребоваться нажать и удерживать кнопку BOOT, затем кратковременно нажать RESET (или RST, EN), после чего отпустить BOOT. Только после этого плата войдёт в режим загрузки. Иногда помогает нажатие BOOT в момент начала прошивки. 3. Сброс после прошивки: некоторые платы C3 не перезагружаются автоматически после прошивки. Если программа не запускается, нажмите кнопку RESET вручную или отключите/подключите плату по USB. [Проверка работы] После прошивки откройте монитор порта: pio run -e myvariant -t monitor Если вы видите лог Meshtastic с инициализацией модулей — плата успешно прошита и работает. Если возникли проблемы, проверьте драйверы USB и права доступа к порту в Linux (можно добавить пользователя в группу `dialout`). Узнать список соседних узлов в сети Meshtastic можно, но для этого необходимо сначала включить специальный модуль Neighbor Info, так как по умолчанию эта функция отключена. [Что такое модуль Neighbor Info] Это встроенная, но опциональная функция прошивки Meshtastic. Когда она включена, ваш узел будет периодически отправлять в mesh-сеть список своих прямых соседей (0-hop neighbors) и качество связи с ними (SNR). Это позволяет всем участникам сети (или узлам, подключенным к MQTT) построить карту связей. Важно: эта информация носит исключительно информационный характер и не влияет на маршрутизацию пакетов в сети. [Как включить и настроить модуль] Управление модулем осуществляется через Python CLI [2]. Все примеры команд подходят для версий firmware 2.2.0 и выше. 1. Включить модуль: meshtastic --set neighbor_info.enabled true 2. Настроить интервал отправки (опционально): интервал по умолчанию — 6 часов (21600 секунд) и не может быть меньше 4 часов (14400 секунд). Чтобы установить интервал, например, в 5 часов: meshtastic --set neighbor_info.update_interval 18000 3. Разрешить отправку по LoRa (опционально): по умолчанию информация о соседях отправляется только через MQTT и в подключенное приложение. Чтобы отправлять её также по LoRa, используйте эту команду. Функция доступна с версии firmware 2.5.13: meshtastic --set neighbor_info.transmit_over_lora true 4. Проверить текущую конфигурацию модуля: meshtastic --get neighbor_info [Где смотреть список соседей] После включения модуля данные о соседях будут отправляться, но, по состоянию на октябрь 2023 года, не существовало стандартных клиентов для их визуализации. Вы можете использовать следующие подходы: MQTT: если ваша сеть имеет MQTT-шлюз, данные о соседях будут накапливаться на MQTT-сервере. Их можно собирать и обрабатывать для построения графа сети. Traceroute: альтернативный способ увидеть сетевой путь. Вы можете отправить traceroute до конкретного узла, чтобы увидеть последовательность узлов на пути к нему. В некоторых клиентах, например, в Meshtastic.Cli, для этого есть специальная команда `trace-route`. [Настройка в приложениях] Python CLI [2]: кроссплатформенная консольная утилита. В ней доступен самый полный функционал по управлению устройством Meshtastic. Android: все настройки модуля Neighbor Info доступны в приложении версии 2.2.0 и выше. Путь к настройкам: вертикальное меню (три точки) > Radio Configuration > Neighbor Info. Apple (iOS): на момент написания официальной документации функция еще не была реализована. Web UI [3]: все настройки модуля доступны в веб-интерфейсе. Стоит отметить, что модуль Neighbor Info может обнаруживать соседей даже на узлах, где он не включен (начиная с версии firmware 2.3.2), но для полной и регулярной картины сети его лучше активировать на всех возможных узлах. [Ссылки] 1. Meshtastic: компиляция прошивки. |