Основы работы с MeshCore: от теории до прошивки

1. Основы радиосвязи LoRa

Для понимания того, как работает сеть, нужно разобрать три ключевых параметра:

  • BW (Bandwidth) — ширина частотного спектра. Увеличение ширины в 2 раза (например, с BW125 до BW250) позволяет передавать вдвое больше данных за то же время.
  • SF (Spreading Factor) — коэффициент расширения. Определяет, насколько сигнал «растянут» во времени. Чем ниже SF, тем быстрее передача, но тем выше чувствительность к шумам. Это как разговор в баре: если вы далеко друг от друга, приходится говорить медленно (SF10), если рядом — можно тараторить (SF7).
  • CR (Coding Rate) — коэффициент исправления ошибок. Процесс добавления избыточных бит для восстановления данных.
    • Совет: Используйте CR 5 для стабильной связи. Если сигнал прерывистый, переходите на 7 или 8.
2. Уникальность MeshCore

MeshCore спроектирован с упором на доставку сообщений, а не на постоянное вещание.

  • Почему клиенты не ретранслируют? В MeshCore обычные узлы (телефоны/трекеры) не работают как повторители. Это защищает эфир от «замусоривания» и бесконечных коллизий. Ретрансляцией занимаются только выделенные репитеры и комнатные серверы с параметром set repeat on.
  • Умная маршрутизация: Пути хранятся в списке контактов. Первое сообщение идет «лавиной» (flood), а в ответном подтверждении приходят адреса всех репитеров на пути. Будущие сообщения пойдут уже по этой цепочке, что экономит заряд и эфирное время.
3. Работа с прошивкой через Raspberry Pi

Если вам нужно обновить устройство MeshCore через USB-порт Raspberry Pi, следуйте этим шагам.

Для устройств на базе ESP (например, Heltec V3):

  1. Установите инструмент прошивки: pip install esptool --break-system-packages
  2. Перейдите в /dev, чтобы найти адрес устройства (обычно /dev/ttyUSB0).
  3. Для прошивки используйте команды:
    • Если файл не объединенный (non-merged): esptool.py -p /dev/ttyUSB0 --chip esp32-s3 write_flash 0x10000 <имя_файла>.bin
    • Если файл объединенный (merged): esptool.py -p /dev/ttyUSB0 --chip esp32-s3 write_flash 0x00000 <имя_файла>.bin

Для устройств на базе nRF (например, RAK, Heltec T114):

  1. Скачайте нужный ZIP-архив с прошивкой.
  2. Установите утилиту: pip install adafruit-nrfutil --break-system-packages
  3. Выполните прошивку (адрес обычно /dev/ttyACM0): adafruit-nrfutil --verbose dfu serial --package RAK_4631_companion_radio_usb-v1.7.1-165fb33.zip -p /dev/ttyACM0 -b 115200 --singlebank --touch 1200
4. Сборка прошивки из исходников

Если вы хотите собрать MeshCore самостоятельно на Linux или Windows (через WSL):

  1. Подготовьте окружение: sudo apt update && sudo apt install libpython3-dev python3-venv
  2. Создайте виртуальную среду и установите PlatformIO: python3 -m venv meshcore cd meshcore && source bin/activate pip install -U platformio
  3. Склонируйте репозиторий и запустите сборку: git clone https://github.com/ripplebiz/MeshCore.git cd MeshCore pio run -e RAK_4631_Repeater
5. Управление через консоль (CLI)

Для настройки параметров репитера напрямую через терминал используйте picocom: sudo apt install picocom picocom -b 115200 /dev/ttyUSB0 --imap lfcrlf

Здесь вы можете вводить команды конфигурации, такие как set flood.max для ограничения лавинного трафика.


Часто задаваемые вопросы

Где взять карты? Для отображения на глобальной карте используйте меню Internet Map -> Add me to the Map в приложении.

Где ключи? Публичный ключ для приложения в hex: 8b3387e9c5cdea6ac9e5edbaa115cd72. В T-Deck он же в base64: izOH6cXN6mrJ5e26oRXNcg==.

Есть ли поддержка ATAK? Нет, MeshCore не оптимизирован под «болтливый» трафик ATAK из-за отсутствия постоянной ретрансляции всеми узлами.

Вы не можете скопировать содержимое этой страницы