Личный узел
«Телефон» в сети: подключается к смартфону по Bluetooth или USB и работает как мессенджер. Чужие пакеты не повторяет — экономит батарею.
Сергиев Посад · LoRa 868 МГц · без интернета и сотовой связи
Мы дорабатываем прошивки MeshCore, собираем репитеры и узлы на ESP32 и nRF52 с модулями SX1262 и Ebyte E22 — и строим локальную mesh-сеть, которая работает там, где не работает вообще ничего.
Что такое MeshCore
MeshCore — лёгкий стек многошаговой маршрутизации для LoRa-радио. Сообщение ищет путь один раз, а дальше идёт по нему адресно. Эфир «кричат» только специальные устройства — репитеры, клиентские узлы молчат и не забивают канал.
«Телефон» в сети: подключается к смартфону по Bluetooth или USB и работает как мессенджер. Чужие пакеты не повторяет — экономит батарею.
Ретранслятор на крыше, вышке или балконе. Только пересылает пакеты и даёт покрытие на районы и трассы. Настраивается по USB или удалённо по радио.
Хранит историю групповых каналов и отдаёт пропущенное тем, кто вернулся в зону связи. Полезно для дежурств, походов и аварийных сценариев.
Чем занимается сообщество
Свой форк оригинальной прошивки: драйверы дисплеев, русский язык на экранах, темы, меню уведомлений, настройка радио прямо с устройства, свои варианты плат.
Что именно изменено →MQTT-репитеры: аплинк телеметрии, локальная веб-панель, Wi-Fi, ESP-NOW и MQTT-мосты, история метрик в PSRAM и на SD-карте, свой CLI.
Что именно изменено →Браузерный прошивальщик, локальные и серверные сборки релизов, документация и вики, помощь новичкам с железом и первым узлом.
Открыть прошивальщик →Форк MESHINFO · base 1.17.1 · версия форка 0.1.0
За основу взята оригинальная прошивка meshcore-dev/MeshCore: архитектура, протокол, роли узлов и большинство вариантов плат остаются как в оригинале. Форк добавляет доработки под свои устройства — Heltec T096, ProMicro (SSD1306/SH1106), Heltec v3 и v4, LilyGo T-Deck и T-Echo Card, Heltec T114/T190, ThinkNode M9, Meshadventurer на E22.
Драйвер выбирается значением DISPLAY_CLASS в platformio.ini варианта,
а не правкой target.h. Добавлен собственный драйвер SH1106Display
и сборка ProMicro_SH1106_companion_radio_ble — та же плата, но с SH1106 вместо SSD1306.
Флаг -D OLED_RU=1. Строка UTF-8 проходит через
DisplayDriver::translateUTF8ToBlocks() (UTF-8 → CP1251) и рисуется шрифтом
glcdfont6x8.h с картой CP1251. Поддержаны SSD1306, SH1106, ST7735 и ST7789LCD;
для ST7789 (Heltec T114/T190, ThinkNode M9) сгенерированы кириллические
ArialMT_Plain_16_RU и ArialMT_Plain_24_RU.
Пять палитр — amber, teal, signal, neon,
classic — лежат в общей таблице src/helpers/ui/ColorThemes.h
и работают и на ST7735, и на ST7789LCD. В ui-new есть страница THEME
с живым предпросмотром; выбор сохраняется в prefs, пересборка не нужна.
Показывает версию MeshCore, строку MESHINFO v0.1.0 (версия форка, макрос
MESHINFO_VERSION) и сайт meshinfo.ru. Дата сборки убрана — она
только путала рядом с версией. Правка внесена во все стартовые экраны:
companion/ui-new, репитер, room server и sensor.
Страница RADIO в ui-new (длинное нажатие): частота шагом 25 кГц,
ширина полосы, SF, CR и мощность передатчика. Значения применяются к радио сразу, в память
пишутся по пункту Save & exit; через 5 минут простоя меню закрывается без
сохранения, а входящие сообщения не всплывают поверх него.
Popups, Wake screen (запретить автовключение дисплея по входящему),
Alerts (звук + вибрация / только звук / только вибрация / выключено),
Channels (для каждого канала режим popup / silent /
off), Quiet hours с часовым поясом и Unread для
накопленных сообщений. В тихие часы глушатся звук, вибрация и всплытия, но сообщения не теряются.
generic-e22 (E22-900M30S и E22-400M30S), meshadventurer
(SX1262 / SX1268 и E22P 433M30S / 868M30S), thinknode_m9, gat562_*,
а также сборка ProMicro под SH1106.
Workflow .gitea/workflows/firmware.yml собирает выбранный набор устройств
через build.sh (запуск только вручную). Основной способ выпуска —
локальная сборка ci/build-local.ps1 с публикацией файлов в релиз Gitea:
на VPS одно ядро, сервер только принимает готовые образы.
PosadMesh · база upstream + транспорт, телеметрия и веб
PosadMesh — форк проекта EastMesh, который, в свою очередь, основан на официальной прошивке MeshCore. Ядро — mesh-стек, радио, протокол и работа с платами — остаётся upstream-кодом; PosadMesh добавляет поверх него транспорт, телеметрию и веб-интерфейс. Проект ориентирован на работу с meshcoretel.ru.
| Область | upstream MeshCore | PosadMesh |
|---|---|---|
| Транспорт | нет MQTT; репитер работает только по радио и через последовательный порт | MQTT-аплинк: курируемый брокер meshcoretel и опциональный собственный (TCP или WSS по пути /mqtt); публикация статуса, пакетов и raw-данных |
| MQTT-мост | нет | передача raw-пакетов mesh между репитерами через ваш peer-брокер (трек repeater-mqtt-bridge) |
| Wi-Fi | нет | Wi-Fi на репитерах: подключение, энергосбережение, watchdog шлюза, автопереподключение, настройка NTP, команды wifi.* |
| Веб-интерфейс | нет | локальная HTTPS-панель: вход по паролю администратора, CLI по белому списку, настройки репитера / радио / MQTT, регионы, чёрные списки, OTA, свой TLS-сертификат, светлая и тёмная темы |
| Телеметрия | нет | история метрик в PSRAM и архив на SD: батарея, загрузка ядра, память, пакеты, ошибки, уровень сигнала и шума, датчики, GPS; страница /stats с графиками и списком соседей |
| CLI | базовый набор MeshCore | дополнительно mqtt.*, wifi.*, web.*, bridge.*, blacklist path|chan, region, stats-*, time и time.force, режим Ghost Node, лимит пересылки flood, отчёт о батарее платы, управление вентилятором T-Beam 1W |
| Сборки | companion (USB/BLE), repeater, room server, sensor | только MQTT-таргеты: *_repeater_mqtt, *_repeater_mqtt_espnow, *_repeater_mqtt_bridge, *_repeater_bridge_espnow |
| Платы | базовый список MeshCore | добавлены свои варианты: Meshadventurer, самодельные ESP32-S3 + E22, Xiao S3 + LoRa2021F33, RAK3112, Station G2/G3, ThinkNode и другие |
Публикация JSON-телеметрии в курируемый брокер meshcoretel и при желании
во второй, собственный брокер. Топики вида meshcore/<iata>/…,
настройки mqtt.iata, mqtt.owner, mqtt.email.
Пересылка raw-пакетов mesh между репитерами через ваш peer-брокер: топик
meshcore/bridge/packets, магическое значение 0xC03E,
контрольная сумма Fletcher и XOR-шифрование общим bridge.secret.
Обнаружение дубликатов не даёт пакетам зацикливаться.
Локальный мост между соседними репитерами с разными радиоконфигурациями (разная полоса, SF). Это не WAN-туннель через интернет: узлы должны слышать друг друга по радио.
Двойное нажатие кнопки из экрана состояния открывает меню — компьютер и телефон не нужны.
Координаты в формате xx.xxxx yy.yyyy, частота как 868.731 MHz,
полоса как 062.50 kHz, CR, SF, мощность TX, пересылка пакетов, размер хэша пути,
интервалы advert, лимит flood, внизу — Save & exit. Значения применяются
через тот же CommonCLI, что и последовательный порт.
| Трек | Когда нужен | Суффикс файла |
|---|---|---|
repeater-mqtt | Стационарный репитер с Wi-Fi и MQTT-аплинком — видимость в брокере и на карте | *_repeater_mqtt |
repeater-mqtt-espnow | Один репитер делает и MQTT-аплинк, и локальный ESP-NOW мост | *_repeater_mqtt_espnow |
repeater-mqtt-bridge | Пересылка raw-пакетов mesh между репитерами через свой MQTT-брокер | *_repeater_mqtt_bridge |
repeater-bridge-espnow | Только локальный ESP-NOW мост, без MQTT и веб-панели | *_repeater_bridge_espnow |
set mqtt.meshcoretel on|off не срабатывал: обработчик сравнивался со строкой set mqtt.mqtt.meshcoretel .setEndpointEnabled маскировал сохранённую маску брокеров значением 0x07 и терял бит собственного брокера.</div съедал подсказку про пароль администратора.F в имени региона — region allowf, region denyf и region remove не работали.\r в именах на Windows.meshcore-dev/MeshCore.
Наш инструмент
Мы сделали страницу, которая прошивает платы прямо из браузера по USB — без PlatformIO,
Python и командной строки. Список прошивок собирается автоматически из релизов Gitea,
а запись идёт через Web Serial (esptool-js).
-merged.bin пишется по адресу 0x0, обычный .bin — по 0x10000 с сохранением настроек..uf2 и .zip скачиваются с инструкцией — копирование на UF2-диск или DFU через nRF Connect.Полезные ссылки
База знаний сообщества: MeshCore и Meshtastic простыми словами, радио, роли устройств, маршрутизация, железо и практические руководства.
meshinfo.ru → ИнструментПрошивка плат прямо из браузера: наш форк MeshCore и MQTT-репитеры PosadMesh, выбор платы, полное стирание, журнал и прогресс.
meshinfo.ru/flasher → РелизыГотовые образы по трекам repeater-mqtt, repeater-mqtt-espnow,
repeater-mqtt-bridge и repeater-bridge-espnow.
Наш форк оригинальной прошивки: дисплеи и драйверы, русский язык, темы, меню уведомлений, свои варианты плат.
git.meshinfo.ru/shade/MeshCore → СервисКарта, связи и телеметрия узлов, а также веб-прошивальщик с настройкой радиопараметров региона.
meshcoretel.ru → ОригиналОфициальная прошивка, с которой синхронизируется наш форк: протокол, роли узлов, большинство вариантов плат.
github.com/meshcore-dev →
Прошивки MQTT-репитера передают телеметрию на meshcoretel.ru — укажите
координаты узла и радиопараметры своего региона, чтобы узел появился на карте и в связях.
Для московского региона это 868.731 МГц, полоса 62.5 кГц,
SF7, CR7, хэш пути 2 байта.