MeshCore: общее
Как устроен MeshCore: роли устройств, поиск маршрута, содержимое пакета, выбор железа и сравнение с Meshtastic.
Если Meshtastic — это «мессенджер для всех», то MeshCore — продуманная инфраструктура для связи на больших расстояниях. Система тоже открытая и работает на LoRa, её создал Скотт Пауэлл (Scott Powell) в 2024 году, но философия другая: сообщение ищет дорогу один раз, а потом летит по ней адресно. «Кричат» (повторяют чужой пакет) только специальные устройства — репитеры. Клиентские устройства молчат и не забивают эфир.
Три роли устройств

Железо одно и то же — разница только в прошивке.
- Companion — твой личный мобильный узел, «телефон» в сети. Подключается к смартфону по Bluetooth и работает как мессенджер. Чужие сообщения не ретранслирует — за счёт этого экономит батарею.
- Repeater — ретранслятор, «скелет» сети. Ставят на возвышенностях: крышах и вышках. Занимается только пересылкой пакетов и обеспечивает покрытие на большой территории.
- Observer или mqtt - те же ретрансляторы, но с возможностью сбора статистики для отправки на сайт(ы) типа meshcortel.ru eastmesh или личные сайты с картой, анализом пакетов, маршрутов и т.п.
- Room Server — сервер комнат, автономный «дисковый накопитель» для сообщений. Хранит историю групповых чатов и сообщения для тех, кто сейчас офлайн: вернулся в зону — забрал пропущенное.
Клиенты не повторяют чужие пакеты. Это главное отличие от Meshtastic: если бы повторяли все, эфир бы задохнулся от повторов и коллизий. Повторяют только репитеры — и room server, если вручную включить повтор, но так делать не рекомендуют.
К репитеру нельзя подключиться по Bluetooth: он настраивается по USB или удалённо по радио. Когда клиент заходит на room server, он получает последние 32 непрочитанных сообщения.
Как устройства узнают друг друга: advert
Advert — это объявление о себе: имя, позиция и публичный ключ, подписанные, чтобы нельзя было подделать. В Meshtastic это называлось бы «отправкой node info». Есть два способа:
- zero hop — объявление слышат только те, кто рядом, дальше оно не идёт;
- flood — объявление подхватывают и повторяют все репитеры, оно уходит по всей сети.
Клиент объявляет о себе только когда ты сам нажмёшь кнопку. Репитер сам рассылает flood-объявление раз в 12 часов (интервал настраивается).
Как появляется маршрут

Сначала потоком, потом адресно — и заново потоком, если маршрут сломался.
Такой способ называется маршрутизацией по источнику (source routing): путь вычисляет отправитель,а не сеть. Вместо «крика на всех» сообщение идёт только по этому маршруту.
- Первое сообщение — потоком (flood). Ты ещё не знаешь дороги. Пакет уходит во все стороны, и каждый репитер, который его услышал, повторяет дальше. Рано или поздно сообщение доходит до адресата.
- Адресат отвечает отчётом о пути. Он отправляет обратно отчёт: через какие репитеры прошёл пакет. Отчёт идёт тем же потоком, а ты записываешь путь в список контактов.
- Дальше — адресно (direct). Путь вписывается прямо в пакет: список номеров репитеров. Репитер повторяет пакет только если его номер есть в списке — остальные молчат. Эфир почти свободен, а сообщение летит быстрее.
- Если маршрут сломался. Репитер увезли, он выключился или ты ушёл в другое место. Приложение пробует старый путь 3 раза, потом забывает его и снова отправляет потоком — и находит новый маршрут. Ломающиеся пути в движении — нормальная ситуация, приложение само лечит их потоком.
Что внутри пакета
Пакет в MeshCore устроен проще, чем кажется:
[заголовок] [коды региона — не всегда] [длина пути] [путь] [данные]
- заголовок — тип маршрута и тип данных. Тип маршрута — это
flood(во все стороны) илиdirect(по записанному пути); - путь — список номеров репитеров, через которые пакет должен пройти. Номер — это короткий отпечаток публичного ключа репитера: 1, 2 или 3 байта;
- данные — сам текст, подтверждение (ACK), объявление (advert) или трассировка пути.
Сколько прыжков выдержит путь. С однобайтовыми номерами пакет может пройти до 64 прыжков, с двухбайтовыми — до 32, с трёхбайтовыми — до 21. Чем длиннее номер, тем меньше шансов, что два разных репитера «слипнутся» в один номер.
Что даёт такая схема
Дальность. Благодаря чёткой работе ретрансляторов и пути до 64 прыжков сообщения уходят на десятки километров. Известен случай связи на 60 км — там, где с Meshtastic не получалось.
Масштаб. Компаньоны не перегружают сеть, поэтому она спокойно растёт до городского и даже регионального уровня.
Батарея. Твой портативный узел не тратит энергию на пересылку чужих пакетов — время работы от батареи заметно больше.
Обратная сторона, о которой стоит помнить:
- Групповые каналы всегда идут потоком. У канала нет одного адресата, значит и маршрута быть не может — сообщение обязано разойтись во все стороны. Репитеры могут ограничивать такой поток.
- Сеть рассчитана на репитеры. Если вокруг только клиенты-компаньоны, дальность упирается в радиус одного устройства. Один репитер на высоте даёт больше, чем десять устройств на земле.
- MeshCore и Meshtastic не слышат друг друга. Это разные протоколы и разные радио-настройки, общий эфир у них не получится.
- Room server — это не чат, а почтовый ящик. Он полезен там, где люди появляются в зоне не одновременно.
Какое железо под какую роль
Для MeshCore подходит то же самое LoRa-оборудование, что и для Meshtastic: разница только в прошивке. Важно понять, какая роль (Companion, Repeater или Room Server) лучше подходит конкретному устройству.
Заводские решения
- Heltec T096 — идеальный Companion. Экономичный nRF52840 (всего 13 мкА в режиме сна) и встроенный GNSS-приёмник: долго работает в походе или городе без подзарядки. При этом передатчик сохраняет высокую мощность — до 28±1 дБм.
- Heltec V4 — лучший Repeater. До 28 дБм на выходе: ставится стационарно на крыше или вышке и надёжно пересылает пакеты, создавая «скелет» сети. Помните: на максимальной мощности он потребляет почти 1 А, поэтому нужно хорошее питание.
- Heltec V3 — универсал. Классическая плата на ESP32: годится и в роли компаньона (если не критично время работы от батареи), и в роли ретранслятора. Хороший вариант для экспериментов и стационарных узлов.
- Готовые специализированные решения: T-Deck и SenseCAP Solar Node P1-Pro for MeshCore — поставляются с предустановленной прошивкой и готовы к работе.
DIY-решения
- FakeTec — идеальный компаньон. Экономичный nRF52, низкая цена (около 10 €) и долгое время работы от батареи: надёжный портативный узел за небольшие деньги.
- Project Hydra / HydraX — для роли репитера. До 30 дБм (1 Вт): подходят там, где нужна максимальная дальность и проникновение сигнала. Но они прожорливы и требуют серьёзного источника питания.
- MeshAdventurer — тоже репитер для тяжёлых условий. Широкий диапазон питания 9–28 В (автомобильная сеть или солнечная панель), OLED-экран, GPS и зуммер — удобно разворачивать в поле.
- MeshAdventurer Reborn — улучшенный проект Meshadnventurer для тяжёлых условий.
| Роль в сети | Лучший выбор (заводской) | Лучший выбор (DIY) |
|---|---|---|
| Companion (компаньон) | Heltec T096 — экономичный, с GPS | FakeTec — очень дешёвый и экономичный |
| Repeater (ретранслятор) | Heltec V4 — мощный, до 28 дБм | Hydra или MeshAdventurer — до 30 дБм |
| Универсальный | Heltec V3 — подходит для любых ролей | — |
Главное правило. Для MeshCore важнее чёткое разделение ролей. Поставили ретранслятор — помогли всей сети, и MeshCore использует ваш узел по максимуму. Используете компаньона — экономите батарею и не перегружаете сеть.
MeshCore и Meshtastic рядом
| Что сравниваем | Meshtastic | MeshCore |
|---|---|---|
| Маршрутизация | управляемый флуд (managed flood) | по источнику (source routing) |
| Кто повторяет чужой пакет | все узлы | только ретрансляторы |
| Архитектура | равноправные узлы (peer-to-peer) | с разделением ролей: клиенты и инфраструктура |
| Первое сообщение | всегда потоком | потоком (flood), чтобы найти путь |
| Следующие сообщения | снова потоком | адресно по сохранённому маршруту |
| Ограничение прыжков | по умолчанию 3, в настройках до 7 | внутренний максимум 64; зависит от длины номера репитера (64 / 32 / 21) |
| История сообщений | только в реальном времени, на самих узлах | поддерживается через room-серверы (последние 32) |
| Расход батареи | выше: узел тратит энергию на пересылку чужого | у компаньона очень низкий |
| Кому подходит | простота, «поставил и работает», много участников | когда важна экономия эфира и есть постоянные репитеры |