📌 Это вторая часть цикла. Часть 1: Теория объясняет, зачем это нужно.
📦 Распаковка и подготовка
Комплектация Heltec V4
| Компонент | Назначение |
|---|---|
| Плата ~60×30 мм | ESP32-S3R2 + SX1262, OLED 128×64, USB-C |
| Антенна (IPEX) | Подключается к разъёму ANT - обязательно! |
| Кабель USB-C | Питание + прошивка + отладка |
| Пины (опционально) | Для подключения внешних датчиков/антенн |
⚠️ Важно: без подключённой антенны радиомодуль может выйти из строя. Всегда подключайте антенну перед подачей питания.
Характеристики Heltec V4
| Компонент | Описание |
|---|---|
| MCU | ESP32-S3R2 (WiFi + Bluetooth) |
| LoRa Transceiver | Semtech 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*
🔧 Процесс прошивки
- Отключите батарею и USB от платы
- Откройте веб-флешер, выберите:
- Device:
Heltec V4 - Firmware:
2.7.21(или новее стабильный/бета) - Вариант:
Full erase and install
- Device:
- Нажмите Erase Flash and Install
- Зажмите кнопку
PRGна плате - Не отпуская
PRG, подключите USB-кабель - Наблюдайте: краткая красная вспышка → в выпадающем списке порта появится
USB JTAG - Отпустите
PRG, выберитеUSB JTAG, нажмите Connect - Дождитесь окончания прошивки (терминал покажет прогресс)
- После сообщения
Leaving...нажмите кнопкуRST(сброс)
💡 Если флешер не видит порт - попробуйте другой кабель (не все кабели поддерживают данные), другой порт USB, или перезапустите браузер.
🔌 Первое подключение: три способа
После прошивки плата перезагрузится и запустит Meshtastic.
Варианты подключения к ноде
| Интерфейс | Как подключиться | Когда использовать |
|---|---|---|
| Bluetooth | Приложение Meshtastic (Android/iOS) → поиск устройств | Переносная нода, одно активное подключение |
| Wi-Fi | Нода создаёт AP → подключитесь к вашей сети → IP отображается на экране | Стационарная нода, несколько устройств одновременно |
| USB/COM | Подключение через терминал (PuTTY, screen) | Домашняя нода, отладка, прямой доступ |
⚠️ Bluetooth: только одно активное подключение.
Wi-Fi: можно подключить несколько устройств одновременно (удобно для стационарных нод).
USB: надёжно для настройки и отладки, не требует беспроводного подключения.
Настройка через приложение (рекомендуется)
- Установите Meshtastic (Android) или iOS-версию
- Запустите, дайте разрешения на локацию и Bluetooth
- Нажмите
+→ выберите вашу ноду (по имениMeshtastic_XXXX) - Подтвердите сопряжение
Настройка через Wi-Fi
- На экране ноды отобразится IP-адрес (обычно
192.168.1.x) - Подключитесь к Wi-Fi сети ноды (пароль отображается на экране)
- Откройте в браузере
http://<IP_адрес_ноды> - Настройте через веб-интерфейс
💡 IP-адрес: нода получает адрес от вашего роутера (не
192.168.4.1!). Точный адрес отображается на OLED-экране устройства.
👤 Настройка пользователя (User)
Основные параметры
| Параметр | Значение | Примечание |
|---|---|---|
| Long Name | [PE] ponfertato | Полное имя (до 20 символов) |
| Short Name | ponf | Короткое имя (максимум 4 символа) |
| Role | CLIENT или CLIENT_MUTE | Для городов с >200 нод - CLIENT_MUTE |
💡 ShortName: строго 4 символа! Это идентификатор в сообщениях.
🌐 Настройка MQTT для ONEmesh (RU)
ONEmesh - карта устройств Meshtastic в России. Подключение к их MQTT-серверу позволяет вашей ноде отображаться на карте и обмениваться данными с другими участниками.
🔐 MQTT передаёт: сообщения, метрики устройства, местоположение (если включено) на карту и в чаты Telegram согласно настройкам региона/города.
Основные параметры
| Параметр | Значение | Примечание |
|---|---|---|
| MQTT Address | mqtt.onemesh.ru | Сервер сообщества |
| Username | onemesh | По умолчанию; onemeshz / onemeshd - для downlink |
| Password | onecat | Общий для всех |
| Encryption enabled | Yes | Если каналы имеют PSK |
| JSON enabled | No | Не нужно для карты |
| TLS enabled | Yes | Если не работает - попробуйте No |
| Root topic | msh/RU/XXX | XXX = код города (список) |
| Proxy to client | Yes (Bluetooth) / No (Wi-Fi) | Зависит от способа подключения |
| Map reports | Yes | Отправка позиции на карту |
| I agree | Yes | Подтверждение правил |
| Precision | 729 m | Точность координат на карте |
| Map report interval | 3600 s (1 час) | Минимальный интервал |
💡 Совет: если кнопка «Сохранить» неактивна - заполняйте настройки поэтапно: сначала базовые (адрес, логин, пароль), потом карту, потом дополнительные опции.
Режимы имён пользователя
| Username | Downlink | Когда использовать |
|---|---|---|
onemesh | ❌ Отключён | Большинству пользователей - безопасный режим |
onemeshz | ✅ Zero-hop | Если нужно получать данные из интернета, но не ретранслировать их по радио |
onemeshd | ✅ Полный | Только для интеграций, соединения сегментов сети; не рекомендуется для обычных нод |
⚠️ Использование
onemeshdс включённым Downlink создаёт нагрузку на радио-сеть. Используйте осознанно.
📡 Настройка LoRa и каналов
Раздел LoRa
| Параметр | Значение | Зачем |
|---|---|---|
| Region | Russia | Автоматически задаёт частоту 433 МГц и корневую тему MQTT |
| Hop limit | 5 | Максимальное число прыжков сообщения; увеличьте для больших сетей |
| Ignore MQTT | No | Принимать пакеты, пришедшие через интернет |
| OK to MQTT | Yes | Разрешить соседям передавать ваши данные на карту |
🔁 Если меняете регион - проверьте, что
Root topicв MQTT обновился автоматически.
Каналы (Channels)
Настройте основной канал (Primary):
| Параметр | Значение | Примечание |
|---|---|---|
| PSK | AQ== | Базовый ключ шифрования; если шифрование в MQTT включено - обязателен |
| Uplink enabled | Yes | Отправлять данные с этого канала на MQTT |
| Downlink enabled | No | Получать данные из MQTT (включайте только с onemeshz/onemeshd) |
| Position enabled | Yes | Передавать координаты через этот канал |
| Precise location | No | Скрывать точные координаты от других нод |
| Precision | 182 m | Точность позиции в канале |
✅ Достаточно настроить один канал с
PSK,Position enabledиPrecision- даже без MQTT ваши данные сможет передать соседняя нода.
📍 Местоположение (Position)
GPS устройства
| Параметр | Значение | Рекомендация |
|---|---|---|
| Fixed position | Включено (если нет GPS) | Введите координаты вручную |
| Latitude | 57.74213199999996 | Широта (без нулей в конце) |
| Longitude | 40.9780224 | Долгота (без нулей в конце) |
| Altitude | 265 | Высота в метрах |
💡 Координаты: вводите без лишних нулей в конце (например,
57.742, не57.74200).
Пакет позиции
| Параметр | Значение | Зачем |
|---|---|---|
| Position broadcast interval | 3600–43200 s (1–12 ч) | В густонаселённых городах - 6–12 ч для снижения нагрузки |
| Smart position | Yes | Отправляет чаще при движении, реже в покое |
| Smart interval | 30 секунд | Минимальный интервал при быстром изменении позиции |
🔐 Для повышения приватности: уменьшите
Precisionв канале иMap precision, либо задайте фиксированные координаты в стороне от реального местоположения.
⚙️ Дополнительные модули
Информация об окружении (Environment)
| Параметр | Значение | Зачем |
|---|---|---|
| Enabled | Yes | Передавать данные о соседях на карту |
| Update interval | 14400 s (4 ч) | Минимальный интервал |
| Transmit over LoRa | No | Не нагружать радио-сеть; данные пойдут через MQTT |
🗺️ На карте появятся слои «Кто слышал это устройство» и «Кого слышало это устройство».
Устройство (Device)
| Параметр | Значение | Когда использовать |
|---|---|---|
| Role | CLIENT_MUTE | В городах с >200 нод - безопасный режим без ретрансляции |
CLIENT | Если сеть маленькая или у вас хорошая антенна/расположение | |
| Rebroadcast mode | CORE_PORTNUMS_ONLY | Для больших сетей; ALL - для маленьких |
| Broadcast interval | 3 часа | Интервал передачи информации об узле |
Часовой пояс
| Параметр | Значение |
|---|---|
| Timezone | GMT+3 (Москва) |
| Use phone timezone | Включено (если настраиваете с телефона) |
🔧 Оптимизация процесса прошивки
Для Heltec V4 (обход бага загрузчика)
Из-за особенности загрузчика Heltec V4, стандартный порядок не всегда работает. Оптимальный процесс:
- Отключите батарею и USB от платы
- Откройте веб-флешер
- Выберите device:
Heltec V4, firmware:2.7.21 - Нажмите Erase Flash and Install
- Зажмите кнопку
PRGна плате - Не отпуская
PRG, подключите USB-кабель - Наблюдайте: краткая красная вспышка → в списке портов появится
USB JTAG - Отпустите
PRG, выберитеUSB JTAG, нажмите Connect - Дождитесь окончания прошивки
- После
Leaving...нажмите кнопкуRST(сброс)
💡 Примечание: этот процесс описан в meshtastic/firmware#8543
📤 Первые сообщения между двумя нодами
Подготовка
- Прошейте обе платы по инструкции выше
- На каждой настройте:
- Один и тот же регион (
Russia) - Один и тот же канал с одинаковым
PSK(AQ==) Position enabled: Yes(для теста)
- Один и тот же регион (
- Разместите ноды на расстоянии 10–50 м (для первого теста)
Тест
- На первой ноде в приложении:
Messages→+→ введите текст →Send - На второй ноде: должно появиться входящее сообщение
- Проверьте вкладку
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 |
🆘 Помощь и сообщество
- 🗺️ Карта ONEmesh - визуализация сети
- 💬 Группа в Telegram - вопросы, помощь, координация по городам
- 📘 Официальная документация Meshtastic
- 🐙 Репозиторий прошивок
- 🔧 Heltec V4 Specs