📌 Это вторая часть цикла. Часть 1: Теория объясняет, зачем это нужно.


📦 Распаковка и подготовка

Комплектация Heltec V4

КомпонентНазначение
Плата ~60×30 ммESP32-S3R2 + SX1262, OLED 128×64, USB-C
Антенна (IPEX)Подключается к разъёму ANT - обязательно!
Кабель USB-CПитание + прошивка + отладка
Пины (опционально)Для подключения внешних датчиков/антенн

⚠️ Важно: без подключённой антенны радиомодуль может выйти из строя. Всегда подключайте антенну перед подачей питания.

Характеристики Heltec V4

КомпонентОписание
MCUESP32-S3R2 (WiFi + Bluetooth)
LoRa TransceiverSemtech SX1262
Частоты863–870 МГц (EU), 902–928 МГц (US)
Дисплей0.96" OLED 128×64
МощностьДо +28±1 dBm (High Power option)
ПитаниеUSB-C + оптимизированное управление LiPo
РазъёмыUSB-C, U.FL/IPEX для LoRa, 1.25-8Pin GNSS, 1.25-2Pin Solar
Форм-факторСовместим с V3/V3.1 по пинам

⚡ Прошивка: веб-флешер

Официальный флешер: https://flasher.meshtastic.org

Требования

ТребованиеПочему
Chromium-браузер (Chrome, Edge, Brave)Web Serial API работает только в них
Доступ к COM-портамВ Linux - права пользователя на dialout
Отключённая батареяНа время прошивки - только питание по USB

🐧 Linux: права на последовательный порт

Если при подключении видите:

[09:52:42.841] Serial: serial_io_handler.cc:157 Failed to open serial port: FILE_ERROR_ACCESS_DENIED

Решение:

# Добавить пользователя в группу dialout
sudo usermod -a -G dialout $USER

# Применить изменения (выйти и зайти снова, или)
newgrp dialout

# Проверить доступ
ls -l /dev/ttyUSB*  # или /dev/ttyACM*

🔧 Процесс прошивки

  1. Отключите батарею и USB от платы
  2. Откройте веб-флешер, выберите:
    • Device: Heltec V4
    • Firmware: 2.7.21 (или новее стабильный/бета)
    • Вариант: Full erase and install
  3. Нажмите Erase Flash and Install
  4. Зажмите кнопку PRG на плате
  5. Не отпуская PRG, подключите USB-кабель
  6. Наблюдайте: краткая красная вспышка → в выпадающем списке порта появится USB JTAG
  7. Отпустите PRG, выберите USB JTAG, нажмите Connect
  8. Дождитесь окончания прошивки (терминал покажет прогресс)
  9. После сообщения Leaving... нажмите кнопку RST (сброс)

💡 Если флешер не видит порт - попробуйте другой кабель (не все кабели поддерживают данные), другой порт USB, или перезапустите браузер.


🔌 Первое подключение: три способа

После прошивки плата перезагрузится и запустит Meshtastic.

Варианты подключения к ноде

ИнтерфейсКак подключитьсяКогда использовать
BluetoothПриложение Meshtastic (Android/iOS) → поиск устройствПереносная нода, одно активное подключение
Wi-FiНода создаёт AP → подключитесь к вашей сети → IP отображается на экранеСтационарная нода, несколько устройств одновременно
USB/COMПодключение через терминал (PuTTY, screen)Домашняя нода, отладка, прямой доступ

⚠️ Bluetooth: только одно активное подключение.
Wi-Fi: можно подключить несколько устройств одновременно (удобно для стационарных нод).
USB: надёжно для настройки и отладки, не требует беспроводного подключения.

Настройка через приложение (рекомендуется)

  1. Установите Meshtastic (Android) или iOS-версию
  2. Запустите, дайте разрешения на локацию и Bluetooth
  3. Нажмите + → выберите вашу ноду (по имени Meshtastic_XXXX)
  4. Подтвердите сопряжение

Настройка через Wi-Fi

  1. На экране ноды отобразится IP-адрес (обычно 192.168.1.x)
  2. Подключитесь к Wi-Fi сети ноды (пароль отображается на экране)
  3. Откройте в браузере http://<IP_адрес_ноды>
  4. Настройте через веб-интерфейс

💡 IP-адрес: нода получает адрес от вашего роутера (не 192.168.4.1!). Точный адрес отображается на OLED-экране устройства.


👤 Настройка пользователя (User)

Основные параметры

ПараметрЗначениеПримечание
Long Name[PE] ponfertatoПолное имя (до 20 символов)
Short NameponfКороткое имя (максимум 4 символа)
RoleCLIENT или CLIENT_MUTEДля городов с >200 нод - CLIENT_MUTE

💡 ShortName: строго 4 символа! Это идентификатор в сообщениях.


🌐 Настройка MQTT для ONEmesh (RU)

ONEmesh - карта устройств Meshtastic в России. Подключение к их MQTT-серверу позволяет вашей ноде отображаться на карте и обмениваться данными с другими участниками.

🔐 MQTT передаёт: сообщения, метрики устройства, местоположение (если включено) на карту и в чаты Telegram согласно настройкам региона/города.

Основные параметры

ПараметрЗначениеПримечание
MQTT Addressmqtt.onemesh.ruСервер сообщества
UsernameonemeshПо умолчанию; onemeshz / onemeshd - для downlink
PasswordonecatОбщий для всех
Encryption enabledYesЕсли каналы имеют PSK
JSON enabledNoНе нужно для карты
TLS enabledYesЕсли не работает - попробуйте No
Root topicmsh/RU/XXXXXX = код города (список)
Proxy to clientYes (Bluetooth) / No (Wi-Fi)Зависит от способа подключения
Map reportsYesОтправка позиции на карту
I agreeYesПодтверждение правил
Precision729 mТочность координат на карте
Map report interval3600 s (1 час)Минимальный интервал

💡 Совет: если кнопка «Сохранить» неактивна - заполняйте настройки поэтапно: сначала базовые (адрес, логин, пароль), потом карту, потом дополнительные опции.

Режимы имён пользователя

UsernameDownlinkКогда использовать
onemesh❌ ОтключёнБольшинству пользователей - безопасный режим
onemeshz✅ Zero-hopЕсли нужно получать данные из интернета, но не ретранслировать их по радио
onemeshd✅ ПолныйТолько для интеграций, соединения сегментов сети; не рекомендуется для обычных нод

⚠️ Использование onemeshd с включённым Downlink создаёт нагрузку на радио-сеть. Используйте осознанно.


📡 Настройка LoRa и каналов

Раздел LoRa

ПараметрЗначениеЗачем
RegionRussiaАвтоматически задаёт частоту 433 МГц и корневую тему MQTT
Hop limit5Максимальное число прыжков сообщения; увеличьте для больших сетей
Ignore MQTTNoПринимать пакеты, пришедшие через интернет
OK to MQTTYesРазрешить соседям передавать ваши данные на карту

🔁 Если меняете регион - проверьте, что Root topic в MQTT обновился автоматически.

Каналы (Channels)

Настройте основной канал (Primary):

ПараметрЗначениеПримечание
PSKAQ==Базовый ключ шифрования; если шифрование в MQTT включено - обязателен
Uplink enabledYesОтправлять данные с этого канала на MQTT
Downlink enabledNoПолучать данные из MQTT (включайте только с onemeshz/onemeshd)
Position enabledYesПередавать координаты через этот канал
Precise locationNoСкрывать точные координаты от других нод
Precision182 mТочность позиции в канале

✅ Достаточно настроить один канал с PSK, Position enabled и Precision - даже без MQTT ваши данные сможет передать соседняя нода.


📍 Местоположение (Position)

GPS устройства

ПараметрЗначениеРекомендация
Fixed positionВключено (если нет GPS)Введите координаты вручную
Latitude57.74213199999996Широта (без нулей в конце)
Longitude40.9780224Долгота (без нулей в конце)
Altitude265Высота в метрах

💡 Координаты: вводите без лишних нулей в конце (например, 57.742, не 57.74200).

Пакет позиции

ПараметрЗначениеЗачем
Position broadcast interval3600–43200 s (1–12 ч)В густонаселённых городах - 6–12 ч для снижения нагрузки
Smart positionYesОтправляет чаще при движении, реже в покое
Smart interval30 секундМинимальный интервал при быстром изменении позиции

🔐 Для повышения приватности: уменьшите Precision в канале и Map precision, либо задайте фиксированные координаты в стороне от реального местоположения.


⚙️ Дополнительные модули

Информация об окружении (Environment)

ПараметрЗначениеЗачем
EnabledYesПередавать данные о соседях на карту
Update interval14400 s (4 ч)Минимальный интервал
Transmit over LoRaNoНе нагружать радио-сеть; данные пойдут через MQTT

🗺️ На карте появятся слои «Кто слышал это устройство» и «Кого слышало это устройство».

Устройство (Device)

ПараметрЗначениеКогда использовать
RoleCLIENT_MUTEВ городах с >200 нод - безопасный режим без ретрансляции
CLIENTЕсли сеть маленькая или у вас хорошая антенна/расположение
Rebroadcast modeCORE_PORTNUMS_ONLYДля больших сетей; ALL - для маленьких
Broadcast interval3 часаИнтервал передачи информации об узле

Часовой пояс

ПараметрЗначение
TimezoneGMT+3 (Москва)
Use phone timezoneВключено (если настраиваете с телефона)

🔧 Оптимизация процесса прошивки

Для Heltec V4 (обход бага загрузчика)

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

  1. Отключите батарею и USB от платы
  2. Откройте веб-флешер
  3. Выберите device: Heltec V4, firmware: 2.7.21
  4. Нажмите Erase Flash and Install
  5. Зажмите кнопку PRG на плате
  6. Не отпуская PRG, подключите USB-кабель
  7. Наблюдайте: краткая красная вспышка → в списке портов появится USB JTAG
  8. Отпустите PRG, выберите USB JTAG, нажмите Connect
  9. Дождитесь окончания прошивки
  10. После Leaving... нажмите кнопку RST (сброс)

💡 Примечание: этот процесс описан в meshtastic/firmware#8543


📤 Первые сообщения между двумя нодами

Подготовка

  1. Прошейте обе платы по инструкции выше
  2. На каждой настройте:
    • Один и тот же регион (Russia)
    • Один и тот же канал с одинаковым PSK (AQ==)
    • Position enabled: Yes (для теста)
  3. Разместите ноды на расстоянии 10–50 м (для первого теста)

Тест

  1. На первой ноде в приложении: Messages+ → введите текст → Send
  2. На второй ноде: должно появиться входящее сообщение
  3. Проверьте вкладку Map - если включён MQTT, обе ноды появятся на карте в течение часа

Диагностика, если не работает

СимптомПроверкаРешение
Нет сообщенийПроверьте, что каналы имеют одинаковый PSKСкопируйте ключ точно, без пробелов
Нода не видна на картеПроверьте MQTT enabled, Map reports, интернет на телефоне/нодеПерезапустите ноду (RST), подождите 1–2 цикла отчёта
Ошибка подключения к MQTTПроверьте TLS enabled, корневую темуПопробуйте отключить TLS; убедитесь, что Root topic = msh/RU/XXX
Нет соединения по радиоПроверьте антенну, регион, Hop limitПодключите антенну, установите Region: Russia, Hop limit: 5

🆘 Помощь и сообщество