Вышло крупное обновление MeshCore версии 1.17.0. Это не просто набор мелких исправлений, а фундаментальное улучшение работы инфраструктуры. Разработчики сосредоточились на самых болезненных точках реальных развертываний: пересечении пакетов в шумном эфире, гибкости приема сигналов и энергоэффективности.
В этом релизе затронуты все три ключевые роли: Repeater, Companion и Room Server. Мы разберем каждое значимое изменение, объясним физику процессов и дадим практические рекомендации по настройке вашего оборудования после обновления.
В плотных городских сетях или на массовых мероприятиях эфир быстро переполняется. Когда два узла начинают передачу одновременно, пакеты разрушаются, и данные теряются. В версии 1.17.0 логика предотвращения коллизий была серьезно переработана.
Перед началом передачи MeshCore теперь активнее "слушает" эфир, чтобы не накладываться на уже идущий пакет. Ранее в коде существовала ошибка в обработке флага обнаружения LoRa-преамбулы (preamble detect).
Исправление этого бага дало поразительный результат. В контролируемых стендовых тестах, где коллизии генерировались искусственно, процент успешной доставки пакетов вырос с 80% до 93-95%. Это означает, что ваша сеть станет заметно стабильнее без замены железа или антенн.
Параллельно разработчики тестировали аппаратный Channel Activity Detection (CAD). Это функция, при которой сам LoRa-чип аппаратно проверяет занятость канала перед передачей.
Однако в шумных городских условиях CAD показал себя неоднозначно. Из-за постоянного фонового шума чип мог определять канал как "занятый" и заставлять устройство ждать до 4 секунд перед каждой попыткой передачи. Это критически увеличивает задержки.
Поэтому в 1.17.0 аппаратный CAD оставлен выключенным по умолчанию. На Companion он пока недоступен. На Repeater его можно включить для экспериментов в относительно чистом эфире командой:
⚠️ Внимание: Включайте CAD на репитере только если вы уверены, что ваш узел находится в зоне с низким уровнем радиопомех. В противном случае вы рискуете получить огромные задержки передачи.
Одно из самых ожидаемых нововведений - полная поддержка нового поколения LoRa-чипов от Semtech, LR2021. Эта поддержка уже реализована в устройствах Meshnology W12 и SenseCAP MeshTracker X1.
Традиционные LoRa-чипы (например, SX1262) могут принимать сигналы только на одном коэффициенте расширения спектра (Spreading Factor, SF) в данный момент времени. Чтобы услышать узел с SF7 и узел с SF12, репитеру приходилось бы переключаться между ними, рискуя пропустить пакет.
Чип LR2021 умеет принимать сигналы параллельно. Он может отслеживать основной SF и до трех дополнительных SF на одной и той же частоте и полосе пропускания одновременно. Радиочип не переключается между ними, а действительно слушает их все сразу.
Эта функция открывает новые возможности для инфраструктурных узлов. Например, основная городская сеть может работать на быстром SF7 для экономии времени в эфире, а удаленный или сложный линк - на надежном SF10. Репитер на базе LR2021 сможет обслуживать обе группы узлов одновременно.
Настройка дополнительных SF выполняется через CLI репитера:
Существуют определенные ограничения на комбинации SF, но сама возможность уже работает и является огромным шагом вперед для построения гетерогенных сетей.
На некоторых платах Heltec (например, V4.3, но не V4.2) появилась возможность программно управлять внешним малошумящим усилителем (Front-End Module, FEM).
Важно не путать две разные настройки:
Команды для управления:
Интуитивно кажется, что усилитель всегда должен быть включен для максимальной дальности. На практике в условиях плотной городской застройки это часто вредит. Внешний LNA усиливает не только полезный слабый сигнал LoRa, но и весь окружающий радиочастотный шум, а также мощные посторонние сигналы (например, от базовых станций сотовой связи). Это приводит к перегрузке входного тракта и росту шумового пола (noise floor).
В одном из реальных тестов на Heltec V4.3 отключение внешнего LNA снизило шумовой пол на 15 dBm и уменьшило потребление почти вдвое. Теперь вы можете проверить это на своей установке без необходимости компилировать кастомную прошивку.
Ранее команда выключения на некоторых платах работала некорректно. Устройство могло погасить экран, но оставить включенными модули GPS, LoRa или OLED, продолжая потреблять миллиамперы тока. Для автономных узлов на солнечных батареях это было критично.
В версии 1.17.0 логика переработана так, чтобы при выполнении команды
В тестах на Heltec V4 потребление после выключения упало до 13 мкА (микроампер), а не нескольких миллиампер, как было ранее. Для устройства с аккумулятором на 2000 мАч это означает возможность хранения заряда месяцами, а не днями.
Репитеры, оснащенные физической кнопкой, теперь поддерживают выключение долгим нажатием. Это не заменяет физический разрыв цепи аккумулятора (который ожидается в будущих версиях железа), но делает программное выключение по-настоящему эффективным.
Room Server получил новую команду CLI, которая открывает двери для интеграции с внешними системами мониторинга.
Теперь Room Server может создать сообщение от собственного имени прямо из командной строки:
Такое сообщение сохраняется в комнате как обычный пост сервера и рассылается подключенным клиентам. Это создает механизм для удобной автоматизации. Внешний контроллер (например, Arduino или скрипт на Python) может отправлять в Room Server сигналы о событиях:
💡 Примечание: Прямая работа с GPIO и готовая автоматизация пока не добавлены в релиз. Сейчас появился именно программный механизм (API через CLI), через который внешние системы могут взаимодействовать с MeshCore.
Помимо функциональных нововведений, релиз содержит важные изменения в архитектуре и поддержке устройств.
Формат файла конфигурации изменен с бинарного на JSON. Это делает настройки читаемыми, удобными для резервного копирования и редактирования вручную.
При обновлении прошивки старые настройки автоматически мигрируют в новый формат. Старый бинарный файл при этом специально не удаляется, чтобы в случае проблем можно было легко откатиться на предыдущую версию прошивки.
Ранее Companion существовал как отдельные прошивки под Bluetooth, USB и Wi-Fi. В этом релизе добавлена поддержка Ethernet (для ThinkNode M7), а код переписан так, чтобы одна прошивка в будущем могла содержать сразу все интерфейсы (BLE + USB + Wi-Fi + Ethernet) с возможностью их одновременной работы.
Готовая официальная сборка Universal Companion в 1.17.0 еще не представлена. Пока необходимо скачивать отдельные версии под конкретный интерфейс, но фундамент для этого заложен.
Список официально поддерживаемых устройств расширился:
Также включены различные исправления стабильности работы GPS, BLE, USB и драйверов дисплеев.
Обновление до версии 1.17.0 настоятельно рекомендуется для всех инфраструктурных узлов (Repeater и Room Server). Для обычных Companion обновление является накопительным, но также принесет улучшения в стабильности.
MeshCore v1.17.0 - это релиз, который переводит систему из разряда "энтузиастских экспериментов" в категорию надежной инфраструктуры. Исправление коллизий дает немедленный прирост надежности. Поддержка Multi-SF на LR2021 закладывает фундамент для сетей следующего поколения. А возможность тонкой настройки LNA и настоящий режим сна решают реальные проблемы развертывания в сложных условиях.
Разработчики прислушиваются к сообществу. Возможность управления внешним усилителем и улучшение сна были прямыми ответами на запросы пользователей. Это показывает, что проект движется в правильном направлении, балансируя между инновациями и стабильностью.
🔥 Действуйте: Обновите свои репитеры уже сегодня. Протестируйте отключение LNA в шумных зонах и оцените прирост стабильности благодаря исправленной обработке преамбулы. Будущее децентрализованной связи требует надежного фундамента, и v1.17.0 делает этот фундамент значительно прочнее.MeshCore v1.17.0: Борьба с коллизиями, магия Multi-SF и тонкая настройка LNA 🚀
Оглавление
Революция в борьбе с коллизиями 🥊
Исправление обнаружения преамбулы
Аппаратный CAD: экспериментальная функция
[ Логика проверки канала в v1.17.0 ]
1. Программная проверка (Включена по умолчанию)
Слушает эфир → Преамбула обнаружена?
├─ Да: Ждет окончания пакета → Передает
└─ Нет: Передает сразу
2. Аппаратный CAD (Выключен по умолчанию)
Запрос к чипу → Канал свободен?
├─ Да: Передает
└─ Нет: Ждет 4 секунды → Повторяет проверку
(Риск бесконечного ожидания в шумном эфире)
set cad on
Поддержка LR2021 и магия Multi-SF 📡
Что такое Multi-SF и почему это важно
[ Прием сигналов: Обычный чип vs LR2021 ]
Обычный чип (SX1262):
Время 1: Слушает SF7 → Пропускает SF12
Время 2: Слушает SF12 → Пропускает SF7
Чип LR2021 (Multi-SF):
Время 1: Слушает SF7 + SF9 + SF10 + SF12 (параллельно)
Время 2: Слушает SF7 + SF9 + SF10 + SF12 (параллельно)
Настройка на репитере
set extra.sf 9 10 12
Управление внешним усилителем приема (LNA) 🎛️
Внешний LNA против внутреннего усиления
radio.rxgain: Управляет усилением внутри самого LoRa-чипа.radio.fem.rxgain: Управляет внешним аппаратным усилителем на плате.get radio.fem.rxgain
set radio.fem.rxgain on
set radio.fem.rxgain offКогда нужно выключать усилитель
Состояние LNA
Шумовой пол (Noise Floor)
Потребление тока
Рекомендуемое применение
Включен (on)
Высокий (например, -103 dBm)
Высокое (например, 12.3 мА)
Сельская местность, слабый полезный сигнал, чистый эфир
Выключен (off)
Низкий (например, -118 dBm)
Низкое (например, 5.8 мА)
Городская среда, много помех, сильные соседние сигналы
Настоящий режим сна (Poweroff и Hibernate) 🔋
Переработанная логика отключения
poweroff действительно отключалась вся периферия.
Выключение кнопкой
Room Server и шаги к автоматизации 🤖
Команда room.post
room.post Equipment box opened
Инфраструктурные изменения и новое железо 🛠️
Переход конфигурации на JSON
Основа для Universal Companion
Поддержка нового оборудования
Практическое руководство по обновлению 📥
Инструкция по прошивке
get config).Проверки после обновления
set radio.fem.rxgain off.set extra.sf.poweroff.
Зрелость инфраструктуры ✅