MeshCoreTel
ForkFork of MeshCore-EastMesh firmware for repeaters with WiFi, HTTPS API, local web panel, and MQTT support. Replaces EastMesh AU telemetry with the MeshCoreTel telemetry service. Features WiFi client mode with DHCP, NTP time sync, MQTT brokers (meshcoretel, letsmesh-eu, letsmesh-us), plain TCP and WSS transport, JWT authentication, local HTTPS web panel with password access, battery reporting, fan control on T-Beam 1W, and external LNA toggle on Heltec v4.3. All network processes run on a separate core to avoid LoRa latency.
Fork of EastMesh
- Maintainer
- VBart ↗
- Status
- Active
- Maturity
- Beta
- Lifecycle
- Active
- Latest version
- 1.2.0
- Released
- 2026-06-07
- Runtime
- Arduino · C++
- Distribution
- Community
- Licensing
- Open source
- License
- MIT
Capabilities
Transports
- ✓ BLE
- ✓ USB serial
- ✓ Native TCP
- ✓ Wi-Fi AP
Operations
- ✕ Web flasher
- ✓ OTA updates
Networking
- ✓ Repeater
- ✕ Room server
- ✓ Observer
- ✓ MQTT
- ✕ KISS modem
Hardware
- ✓ GPS
- ✓ Display
- ✕ Sensors
- ✕ Low-power RX
Protocol
- ✓ MeshCore compatible
Node role
Features
- WiFi client mode with DHCP auto-configuration
- NTP time synchronization
- MQTT broker support (meshcoretel, letsmesh-eu, letsmesh-us)
- Plain TCP and WSS transport
- JWT authentication using device identity
- Local HTTPS web panel with password access
- Battery reporting on supported platforms
- Fan control on T-Beam 1W
- External LNA toggle on Heltec v4.3
- Network processes on separate core for zero LoRa latency
Project signals
- GitHub stars
- 37
- Forks
- 9
- Watchers
- 1
- Open issues
- 9
- Contributors
- 176
- Release downloads
- 2,842
- Latest downloads
- 1,183
- Source available
- Yes
- Releases available
- Yes
- CI builds
- Yes
Releases
from GitHub · updated 2026-07-05v1.2.0 # Latest 1 month ago · 2026-06-07 16:54 UTC
Новая версия прошивок для MeshCoreTel-повторителей с поддержкой MQTT и веб-интерфейсом для конфигурирования и мониторинга.
Что нового в этом релизе
Основа: обновление до официальной MeshCore v1.16.0
Прошивка обновлена до последней официальной версии MeshCore v1.16.0, которая включает улучшения и исправления от сообщества разработчиков.
Новое: управление усилителем приёма (LNA) на устройствах Heltec с FEM
Кого касается: владельцев устройств Heltec, оснащённых внешним модулем усиления сигнала (FEM — Front-End Module), например с чипом KCT8103L (Heltec v4.3).
Что такое LNA: Low Noise Amplifier — малошумящий усилитель на пути приёма сигнала. Когда он включён, устройство лучше слышит слабые сигналы от удалённых узлов сети.
Что изменилось:
- Официальная v1.16.0 отключила LNA по умолчанию на устройствах Heltec с FEM. В данной же прошивке сохранено включённое состояние по умолчанию для повторителя.
- Добавлена новая настройка
radio.fem.rxgain, которая позволяет через CLI-команды включать и отключать LNA без перезагрузки (и тем более без перепрошивки) устройства:
get radio.fem.rxgain # посмотреть текущее состояние set radio.fem.rxgain on # включить LNA (лучший приём) set radio.fem.rxgain off # выключить LNAТекущее значение сохраняется при перезагрузках. Все CLI-команды можно выполнять через веб-интерфейс.
Обращаю внимание, что LNA усиливает и сигнал и шумы — это нормально.
С включенным LNA на Heltec v4.3:
> set radio.fem.rxgain on OK - LoRa FEM RX gain onИ с выключенным:
> set radio.fem.rxgain off OK - LoRa FEM RX gain offИзменения из 1.16.0:
Ниже приведу наиболее интересный список изменений, унаследованных из официальной прошивки 1.16.0 для повторителей на базе ESP32.
Увеличение преамбулы для низких SF
При SF ≤ 8 (быстрые режимы) преамбула увеличена с 16 до 32 символов. На низких SF у радио меньше времени на захват сигнала, поэтому более длинная преамбула снижает вероятность пропуска начала пакета.
Расширенный ACK (6 байт вместо 4)
ACK-пакеты теперь содержат 6 байт вместо 4: добавлены байт номера попытки отправки и случайный байт. Это устраняет редкие коллизии при дедупликации пакетов и готовит почву для поддержки более 4 попыток доставки прямых сообщений в будущих версиях приложения. Повторители должны быть обновлены до 1.16.0 раньше, чем приложение начнёт использовать эту функцию.
Новые настройки ограничения хопов
flood.max.advert(по умолчанию: 8) Отдельный лимит хопов для пакетов-объявлений (advert). Раньше объявления ограничивались общимflood.max. Теперь можно задать меньший радиус распространения объявлений, не трогая лимит для обычных сообщений. 1flood.max.unscoped(по умолчанию: 64, то есть фактически выключено) Ограничивает хопы для flood-пакетов, у которых нет метки региона. В MeshCore пакеты бывают двух видов: с меткой региона — они позволяют повторителям фильтровать трафик по географии, и без метки — они распространяются по всей сети без географической фильтрации. Этот параметр позволяет отдельно ограничить именно такие "безрегиональные" пакеты.Значение по умолчанию для интервала flood-объявлений
Значение по умолчанию для
flood.advert.intervalизменено с 12 до 47 часов. Параметр по-прежнему настраивается командойset flood.advert.interval <часы>.Исправление бага: обновление соседей через flood-адверты
Если соседний повторитель использовал
path.hash.mode1 или 2, его flood-адверты не обновляли запись …v1.1.2 # 1 month ago · 2026-06-06 14:54 UTC
Минорное обновление прошивок для MeshCoreTel-повторителей с поддержкой MQTT и веб-интерфейсом для конфигурирования и мониторинга.
Что нового в этой версии:
Веб-панель
- Рядом с публичным ключом узла в разделе "Info" появилась кнопка-ссылка на профиль устройства на meshcoretel.ru.
- В таблице соседей "Neighbours" короткие ID теперь тоже являются ссылками на профили соседних узлов на meshcoretel.ru.
- Для
bootв истории событий "Events" теперь отображается причина перезагрузки — например,power on,software reset,panic/exceptionи т.д.
- Для
low memoryв истории событий "Events" теперь отображается сколько свободной памяти оставалось в тот момент.
CLI
- Команда
get pwrmgt.bootreasonтеперь работает на ESP32: показывает причину последней перезагрузки устройства.
Синхронизация времени
- Устройство теперь автоматически использует NTP-сервер, который предоставляет DHCP-сервер в локальной сети (если он его передаёт). Это полезно в изолированных сетях без доступа к интернету, где есть свой NTP-сервер.
Исправления
- Исправлен редкий сбой MeshCore-прошивки при приёме LoRa-пакетов максимального размера. Сбой проявлялся крайне редко, но мог приводить к перезагрузке устройства.
- Исправлен баг: график ошибок приёма пакетов переставал обновляться и показывал нули после длительной работы устройства.
Жаркое лето
Во многих городах установилилась теплая погода и графики температуры MCU поползли вверх. Чтобы снизить температуру в прошивке предусмотрены режимы сбережения энергии для Wi-Fi, которые заметно снижают тепловую нагрузку на чип без какой-либо деградации функциональности и стабильности в большинстве случаев.
Включаются эти режимы командами
set wifi.powersaving minиset wifi.powersaving max.По умолчанию энергосбережение для Wi-Fi отключено:
get wifi.powersaving > noneПопробуйте начать с
minи проследить стабильность Wi-Fi с MQTT и Web в этом режиме. Если всё хорошо, можете попробовать иmax. Температура чипа в этих режимах заметно снизится.Текущий режим также отображается на веб-панели в разделе "Stats":
В составе релиза:
*-merged.bin— полная версия (рекомендуется при первой прошивке)*.bin— только сам код приложения (настройки сохраняются)
Прошивка также доступна в веб-прошивальщике от Мешкартеля:
- https://meshcoretel.ru/ru/flasher - под заголовком Прошивки наблюдателя от VBart
v1.1.1 # 2 months ago · 2026-05-16 15:39 UTC
Корректирующий релиз прошивок для MeshCoreTel-повторителей с поддержкой MQTT и веб-интерфейсом для конфигурирования и мониторинга.
О чём релиз: исправлена досадная проблема с OTA — после прошивки панель могла сообщать, что устройство не загрузилось, хотя это было не так. Также ещё улучшена отзывчивость веб-интерфейса и устранены огрехи в отображении графиков.
Базируется на прошивках:
- MeshCore v1.15.0
- EastMesh v1.3.11
Изменения по сравнению с версией v1.1.0
Исправление во встроенном в веб-панель OTA-обновлении
После успешной прошивки панель могла ждать минуту и показать
"Device did not come back online. =(", хотя устройство загружалось нормально, не пугайтесь. Это происходило из-за того, что CI-сборки всегда генерируют новый самоподписной сертификат, и браузер блокировал проверочное соединение.Ранее, когда это тестировалось при локальной сборке, сертификат между сборками не менялся и всё работало, но в релизных сборках сертификат всегда отличается, а из соображений безопасности разработчики браузеров ошибку сертификата сделали неотличимой от ошибки подключения. После прошивки нужно просто в браузере перезагрузить страницу и согласиться принять новый сертификат.
Теперь, вместо попыток опроса устройства, отображается 10-секундный обратный отсчёт с автоматическим переходом на страницу входа.
Производительность
Включены "TLS session tickets": браузер теперь возобновляет HTTPS-сессию без полного RSA-рукопожатия — веб-интерфейс открывается заметно быстрее при повторных подключениях.
Графики трендов
- Ложный нулевой столбец в начале графика пакетов и нулевой минимум диапазона из-за этого — устранены.
- Диапазон min/max для пакетов теперь учитывает сумму RX и TX, а не только RX.
- Аномальный скачок на стыке сессий при восстановлении истории с SD-карты — исправлен.
- Синхронизация подсветки между графиками теперь по временно́й метке — разные графики больше не выделяют разные моменты времени.
- Исправлена подсветка крайних столбцов на столбчатых графиках (пакеты, спутники GPS).
Прочее
- Кнопки в неактивном состоянии больше не подсвечиваются при наведении.
Браузер теперь может кэшировать TLS-сессию в течении суток с момента последнего обращения. Это избавляет от необходимости каждый раз считать сессионые ключи, что в разы снижает нагрузку на устройство и устраняет задержку для новых подключений.
Было:
$ openssl s_time -connect heltec:443 -time 10 Now timing without session id reuse. starting ********** 10 connections in 0.02s; 500.00 connections/user sec, bytes read 0 10 connections in 11 real seconds, 0 bytes read per connectionСтало:
$ openssl s_time -connect heltec:443 -time 10 -reuse Now timing with session id reuse. starting rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr 142 connections in 0.12s; 1183.33 connections/user sec, bytes read 0 142 connections in 11 real seconds, 0 bytes read per connectionСтало на порядок быстрее.
Device compatibility (28)
| Device | MCU | Radio | Status | Notes |
|---|---|---|---|---|
| Heltec V4 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Heltec V3 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Heltec V2 | esp32 | Semtech SX1276 | ✓ Supported | |
| Heltec Vision Master E213 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Heltec Vision Master E290 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Heltec T190 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Heltec Wireless Tracker v3 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Heltec WSL3 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Heltec Wireless Paper | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| LilyGo T3 S3 (SX126x) | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| LilyGo T3 S3 (SX127x) | esp32-s3 | Semtech SX1276 | ✓ Supported | |
| LilyGo T-Beam 1W | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| LilyGo T-Beam (SX1262) | esp32 | Semtech SX1262 | ✓ Supported | |
| LilyGo T-Beam 1.2 (SX1276) | esp32 | Semtech SX1276 | ✓ Supported | |
| LilyGo T-Deck | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| LilyGo LoRa32 V2.1_1.6 | esp32 | Semtech SX1276 | ✓ Supported | |
| LilyGo T-LoRa C6 | esp32-c6 | Semtech SX1262 | ✓ Supported | |
| UnitEng Station G2 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Elecrow ThinkNode M2 Mini | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Elecrow ThinkNode M5 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| RAK WisBlock 3112 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Xiao S3 WIO | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Xiao C6 | esp32-c6 | Semtech SX1262 | ✓ Supported | |
| M5Stack Unit C6L | esp32-c6 | Semtech SX1262 | ✓ Supported | |
| Ebyte EoRa-S3-XXXTB Radio | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| ESP32 + E22 SX126x (generic) | esp32 | Semtech SX1262, Semtech SX1268 | ✓ Supported | |
| MeshAdventurer | esp32 | Semtech SX1262, Semtech SX1268 | ✓ Supported | |
| Nibble Screen Connect | esp32-s3 | Semtech SX1262 | ✓ Supported |