MeshCore (Official)
OfficialThe official MeshCore firmware — a lightweight C++ library and firmware for multi-hop packet routing over LoRa radios. It powers decentralized, self-healing mesh networks for off-grid, emergency and tactical communication, with prebuilt images and a web flasher.
- Maintainers
- meshcore-dev ↗· Scott Powell· ripplebiz ↗
- Status
- active
- Maturity
- stable
- Lifecycle
- active
- Latest version
- 1.16.0
- Released
- 2026-06-06
- Runtime
- Arduino · C++
- Distribution
- official
- License
- MIT
Capabilities
Transports
- ✓ BLE
- ✓ USB serial
- ✓ Native TCP
- ✓ Wi-Fi AP
Operations
- ✓ Web flasher
- ✓ OTA updates
- ✓ BLE DFU
- ✓ Config backup
Networking
- ✓ Repeater
- ✓ Room server
- ✕ Observer
- ✕ MQTT
- ✓ KISS modem
Hardware
- ✓ GPS
- ✓ Display
- ✓ Sensors
- ✓ Low-power RX
Protocol
- ✓ MeshCore compatible
- ✓ Raw packet send
- ✓ Raw packet observe
Node roles
Features
- Multi-hop packet routing
- End-to-end encrypted DMs
- BLE / USB / TCP companion clients
- Web, iOS, Android, Python & NodeJS clients
- Native flood-advert traffic management (1.16+)
- Web-based flasher
Releases
updated 2026-06-21v1.16.0 # Latest 3 variants 15 days ago · 2026-06-06 15:55 UTC
Download
Latest firmwares are in the flasher.meshcore.io
Change Log
New Features
- New CLI config var ‘flood.max.unscoped’ #2661
- New CLI config var ‘flood.max.advert’ #2702
- longer preamble now for lower SF. (32 for SF<=8, 16 for SF>8) #1954
- app/companion can now do anon_req/response with non-contact nodes #2672
- companion auto-shutdown, disabled when on external power, new UI warning on display #2663
- new ‘region def …’ CLI command #2540
- extended ACK support #2594
- app/companion can now compose and send raw packets #2543
- companion can now override default scope to explicit unscoped #2492
Enhancements
New device support
- NEW: LilyGo T-Echo Card support #2517
- NEW: LilyGo T-Impulse Plus support #2522
- NEW: Station G3 support #2515
- NEW: Heltec Mesh Node T1 support #2520
- new Xiao S3 variants (repeater, companion, etc) #2383
Bug fixes and Other
- RP2040 target build fixes. #2684
- companion protocol max frame size increase (now 176) #2022
- RAK Wismesh Tag fixes #2664
- Bug fix: repeater neighbor discovery fail when path.hash.mode != 0
- RAK4631, now using Bosch driver for BME680 sensor #2634
- enable radio.rxgain CLI command for LR1110 (T1000e) #2235
- default flood advert interval now 47 hours (was 12) #2608
- Client repeat (off-grid) EU freq change (from 869.0 to 869.495) #2604
- CLI validation on rxdelay, txdelay and direct.txdelay #2443
- Heltec T096, sensor node support #2576
- Heltec E290 USB companion fix #2562
- WiFi companion, reconnect logic redesigned for non-blocking #2493
- RAM usage reduced for older boards #2497
- nRF variants, CustomLFS lib upgrade to v2.2 #2519
- T-Echo Lite, fixes to RXEN, TXEN and TCXO #2511
- KISS modem frame timeout fixes #2490
- sensor manager redesign #2327
- startup tune suppressed if sound pref off #2460
- added KISS Modem variants for most boards #2620 #2432
- Adafruit nRF BLE fork, to prevent lockup during rapid connect/disconnect #2430
- RAK3401 companion, analog button support #2436
- Heltec boards, LNA disabled by default #2439
- new splash screens #2424
- Sensecap Solar Tx LED fix #2157
- new repeater variant: Heltec V4 expansion kit #2326
- new T-Echo Lite non-shell companion variants #2503 #2353
- T-Echo Lite, battery measure fix #2287
- RAK4631, sx1262 reset pin fix #2008
- Heltec T096, Wireless Tracker: FEM/LNA enable by default #2340
- R1 Neo, shutdown fix #2371
- Heltec V4, set adc.multiplier support #2335
Limiting Unscoped Traffic
The new
flood.max.unscopedCLI config variable is specifically for limiting unscoped flood traffic. Likeflood.max, it drops unscoped flood packets which have already had a given number of hops. By default it is 64, which is essentially off.Limiting Advert Traffic
The new
flood.max.advertCLI config variable is specifically for limiting adverts. Likeflood.max, it drops advert packets which have already had a given number of hops. By default it is 8.New Preamble
When using the lower Spreading Factors, the radio has less time to lock onto an incoming packet, so this change gives the faster SF’s a longer preamble, and thus decreasing the chance of the preamble being missed. For SF <= 8, the preamble is now 32 symbols.
Improved Region Discovery in Mobile App
The new companion firmware, and latest app, will be able to do ad-hoc requests to near by repeaters without having to add them to contacts first. This will streamline both repeater discovery, and region discovery.
New
region defCommandDefining regions via the CLI is currently quite verbose, and the latest CLI handling introduces a new
region def...command which has a short-hand notation for defining regions, especially ones which have deep nesting.See the CLI Command Reference for more details.
Extended ACK Support
The latest firmwares introduce support for ‘extended ACKs’, which are 6 bytes instead of 4. The extra bytes contain an extended attempt number, and additional random byte. This is in preparation for a later app feature which will enable much more than 4 attempts for direct messages. For now, repeaters will have to be updated first.
Companion Raw Packets
The latest companion firmwares now enable apps to compose the full packet, ie. headers, path and payload. This can correspond with the existing RxLog ability, so app can do its own raw send and receive of packets.
v1.15.0 # 3 variants 2 months ago · 2026-04-19 06:48 UTC
Download
Latest firmwares are in the flasher.meshcore.io
Change Log
- Default Scope support
- Support for New GROUP_DATA (binary) packets #1928 #2130
- Heltec V4.3 support #1867
- Heltec nRF Tracker (T096) support #2097
- GAT562 Mesh EVB Pro repeater and room server support #2042
- Radio rxgain now ON by default #2124
- Radio freq range now supported down to 150Mhz #2126
- GPS pref peristence fix #2018
- New
get|set dutycycleCLI command #1961 - Muzi Works R1 Neo support #2007
- GAT562 Watch support #2138 #2228
- BME680 sensor init fix #2227
- Heltec Wireless Paper battery read fix #2164
- WiFi companion fixes for Heltec V4,TBeam 1W #1833
- Waveshare RP2040: RXEN fix #2298
- nRF companion, support for OTA updates #2323
- Added companion for Heltec Wireless Paper #2315
- Misc #2134 #2190 #1425 #2075 #2302 #2306
- Xiao C3 bootloop fix #2328
Documentation Links
For info on the new Default Scope feature, please see this article.
For low level format of the GROUP_DATA packets, please see this docs link.
v1.14.1 # 3 variants 3 months ago · 2026-03-20 03:53 UTC
change log: Added GPS support for SenseCAP Solar P1 in #1589 Power off switch long press support for SenseCAP Solar P1 #1871 Added nRF52 power management for RAK3401 in #1984 Added token bucket based duty cycle enforcement in #1297 Added support for new GAT562 30S Mesh Kit device in #2009 Added support for new GAT562 Mesh Tracker Pro device in #1980 Added LNA toggle CLI commands radio.rxgain on and radio.rxgain off in #1653 Added MCU temperature to telemetry responses from room servers in #2052 Migrated Heltec Tracker v2 to KCT8103L in #1936 Nodes with GPS enabled will now auto sync time every 30 minutes in #1350 Fixed bug where some queued packets would not get transmit in #1877 Fixed bug where automatic adverts were not using the configured multibyte path setting in fcfdc5f
Device compatibility (92)
| Device | MCU | Radio | Status | Notes |
|---|---|---|---|---|
| Ebyte EoRa-S3-XXXTB Radio | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| GAT-IoT GAT562 30s | nrf52 | Semtech SX1262 | ✓ Supported | |
| GAT-IoT GAT562 Mesh EVB Pro | nrf52 | Semtech SX1262 | ✓ Supported | |
| GAT-IoT GAT562 Tracker | nrf52 | Unknown | ✓ Supported | |
| GAT-IoT GAT562 Mesh Tracker Pro | nrf52 | Semtech SX1262 | ✓ Supported | |
| GAT-IoT GAT562 Mesh Watch13 | nrf52 | Semtech SX1262 | ✓ Supported | |
| Generic E22 SX126x | esp32 | Semtech SX1262, Semtech SX1268 | ✓ Supported | |
| Generic ESP-NOW | esp32-c3 | Unknown | ✓ Supported | |
| Heltec CT62 | esp32-c3 | Semtech SX1262 | ✓ Supported | |
| Heltec Vision Master E213 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Heltec Vision Master E290 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Heltec MeshSolar / MeshTower | nrf52 | Unknown | ✓ Supported | |
| Heltec T096 | nrf52840 | Semtech SX1262 | ✓ Supported | |
| Heltec Mesh Node T1 | nrf52 | Semtech SX1262 | ✓ Supported | |
| Heltec T114 | nrf52840 | Semtech SX1262 | ✓ Supported | |
| Heltec T190 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Heltec Wireless Tracker v3 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Heltec Wireless Tracker v2 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Heltec V2 | esp32 | Semtech SX1276 | ✓ Supported | |
| Heltec V3 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Heltec WSL3 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Heltec V4 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Heltec V4 + Expansion Kit (Touch) | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Heltec Wireless Paper | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Ikoka Handheld nRF | nrf52 | Semtech SX1262 | ✓ Supported | |
| Ikoka Nano | nrf52840 | Semtech SX1262 | ✓ Supported | |
| Ikoka Stick | nrf52 | Semtech SX1262 | ✓ Supported | |
| Keepteen LT1 | nrf52840 | Semtech SX1262 | ✓ Supported | |
| LilyGo T3 S3 (SX126x) | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| LilyGo T3 S3 (SX127x) | esp32-s3 | Semtech SX1276 | ✓ Supported | |
| LilyGo T-Impulse Plus | nrf52 | Semtech SX1262 | ✓ 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-Beam Supreme (SX1262) | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| LilyGo T-Deck (community) | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| LilyGo T-Deck | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| LilyGo T-Echo | nrf52840 | Semtech SX1262 | ✓ Supported | |
| LilyGo T-Echo Card | nrf52840 | Semtech SX1262 | ✓ Supported | |
| LilyGo T-Echo Lite | nrf52840 | Semtech SX1262 | ✓ Supported | |
| LilyGo T-ETH Elite | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| LilyGo T-LoRa C6 | esp32-c6 | Semtech SX1262 | ✓ Supported | |
| LilyGo LoRa32 V2.1_1.6 | esp32 | Semtech SX1276 | ✓ Supported | |
| M5Stack Unit C6L | esp32-c6 | Semtech SX1262 | ✓ Supported | |
| Heltec MeshPocket | nrf52840 | Semtech SX1262 | ✓ Supported | |
| MeshAdventurer | esp32 | Semtech SX1262, Semtech SX1268 | ✓ Supported | |
| Meshtiny | nrf52 | Semtech SX1262 | ✓ Supported | |
| MinewSemi ME25LS01 | nrf52 | Semtech LR1110 | ✓ Supported | |
| Muzi Works R1 Neo | nrf52 | Semtech SX1262 | ✓ Supported | |
| UnitEng Nano G2 Ultra | nrf52840 | Unknown | ✓ Supported | |
| Nibble Screen Connect | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| ProMicro nrf52 (faketec) | nrf52 | Unknown | ✓ Supported | |
| RAK 11310 | rp2040 | Semtech SX1262 | ✓ Supported | |
| RAK WisBlock 3112 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| RAK WisMesh 1W Booster (3401 + 13302) | nrf52 | Semtech SX1262 | ✓ Supported | |
| RAK 3x72 | stm32wl | ST STM32WL (integrated LoRa) | ✓ Supported | |
| RAK WisBlock / WisMesh (RAK 4631) | nrf52840 | Semtech SX1262 | ✓ Supported | |
| RAK WisMesh Tag | nrf52840 | Semtech SX1262 | ✓ Supported | |
| RPI Pico 2040 + WaveShare SX1262 | rp2040 | Semtech SX1262 | ✓ Supported | |
| Seeed Studio SenseCAP Indicator ESP-NOW | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Seeed Studio SenseCAP Solar Node P1 | nrf52840 | Semtech SX1262 | ✓ Supported | |
| Seeed Studio SenseCAP Solar Node P1-Pro | nrf52840 | Semtech SX1262 | ✓ Supported | |
| UnitEng Station G2 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| UnitEng Station G3 ESP32 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Seeed Studio SenseCAP T1000-E | nrf52840 | Semtech LR1110 | ✓ Supported | |
| Tenstar C3 | esp32-c3 | Semtech SX1262, Semtech SX1268 | ✓ Supported | |
| Elecrow ThinkNode M1 | nrf52840 | Semtech SX1262 | ✓ Supported | |
| Elecrow ThinkNode M2 Mini | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Elecrow ThinkNode M3 | nrf52840 | Semtech LR1110 | ✓ Supported | |
| Elecrow ThinkNode M5 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Elecrow ThinkNode M6 | nrf52840 | Semtech SX1262 | ✓ Supported | |
| Tiny Relay | stm32wl | ST STM32WL (integrated LoRa) | ✓ Supported | |
| μArt.cz Solar Node Station | nrf52840 | Semtech SX1262 | ✓ Supported | |
| Waveshare RP2040-LoRa | rp2040 | Semtech SX1262 | ✓ Supported | |
| Seeed Studio Wio-E5 Dev Board | stm32wl | ST STM32WL (integrated LoRa) | ✓ Supported | |
| Seeed Studio Wio-E5 mini | stm32wl | ST STM32WL (integrated LoRa) | ✓ Supported | |
| Seeed Studio Wio Tracker L1 | nrf52840 | Semtech SX1262 | ✓ Supported | |
| Seeed Studio Wio Tracker L1 Pro | nrf52840 | Semtech SX1262 | ✓ Supported | |
| Seeed Studio Wio Tracker L1 E-ink | nrf52840 | Semtech SX1262 | ✓ Supported | |
| Wio WM1110 | nrf52840 | Semtech LR1110 | ✓ Supported | |
| Seeed Studio Xiao C3 | esp32-c3 | Semtech SX1262 | ✓ Supported | |
| Seeed Studio Xiao C6 | esp32-c6 | Semtech SX1262 | ✓ Supported | |
| Seeed Studio Xiao nRF52 WIO | nrf52840 | Unknown | ✓ Supported | |
| Seeed Studio XIAO RP2040 | rp2040 | Semtech SX1262 | ✓ Supported | |
| Seeed Studio XIAO ESP32S3 | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| Seeed Studio Xiao S3 WIO | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| LilyGo T-Deck Pro | esp32-s3 | Unknown | ✓ Supported | |
| LilyGo T5 E-Paper S3 Pro (H752-XX) | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| LilyGo T-Display Pro | esp32 | Unknown | ✓ Supported | |
| LilyGo T-Lora Pager | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| LilyGo T-Watch S3 Plus | esp32-s3 | Semtech SX1262 | ✓ Supported | |
| LilyGo T-Watch S3 | esp32-s3 | Semtech SX1262 | ✓ Supported |