Am 19. April 2026 wurde MeshCore Firmware Version 1.15.0 veröffentlicht. Das Release bringt Unterstützung für sechs neue Hardware-Plattformen, standardmäßig aktivierten LNA (Low Noise Amplifier, rauscharmer Vorverstärker), neue Paketformate auf Protokollebene sowie einen neuen CLI-Befehl zur Duty-Cycle-Steuerung. Die aktuellen Firmwares stehen unter flasher.meshcore.io zum Flashen bereit.
Neue Hardware-Plattformen
Version 1.15.0 erweitert die unterstützte Hardware-Palette erheblich. Neu hinzugekommen sind der Heltec V4.3 sowie der Heltec nRF Tracker (T096) — letzterer wird im Quellcode als heltec_mesh_node_t096-Board-Definition geführt. Ebenfalls neu ist Unterstützung für den Muzi Works R1 Neo, bei dem im Zuge der Integration Debugging deaktiviert und der RTC-Code bereinigt wurde. Für die GAT562-Produktlinie wurden gleich drei Varianten aufgenommen: das GAT562 Mesh EVB Pro (als Repeater und Room Server), sowie die GAT562 Watch (Mesh Watch13). Bei der GAT562 Watch wird der obere Knopf zum Aufwecken aus dem Hibernate-Modus verwendet; ein doppelter Druck auf denselben Knopf navigiert zurück. Darüber hinaus wurde die LoRa-Frequenzunterstützung auf einen Bereich von bis zu 150 MHz ausgeweitet, was zusätzliche regionale Frequenzbänder ermöglicht.
Radio & Empfang
Ein zentrales Empfangsverbesserungs-Feature dieses Releases ist die standardmäßige Aktivierung des radio.rxgain-Parameters. Der LNA (Low Noise Amplifier) ist damit nach einem Upgrade auf v1.15.0 automatisch aktiv — ein explizites Nachkonfigurieren ist nicht mehr erforderlich. Ausgenommen davon ist die Station G2, für die ein separater Fix den korrekten Standardwert sicherstellt. Zusätzlich wurde für das Waveshare RP2040 der fehlende SX126X_RXEN-Pin (Pin 17) ergänzt, der zuvor die RX-Empfindlichkeit beeinträchtigt hatte; außerdem wurde die TCXO-Spannung auf 1,8 V für dieses Board korrigiert. Beide Fixes stellen sicher, dass der Empfangspfad auf diesen Plattformen korrekt funktioniert.
CLI & Konfiguration
Mit v1.15.0 wird der neue CLI-Befehl get|set dutycycle eingeführt. Duty Cycle bezeichnet in LoRa-Regionen wie EU868 die prozentuale Begrenzung der Sendezeit, um regulatorische Vorgaben einzuhalten. Der Befehl erlaubt das Abfragen und Setzen dieses Wertes direkt über die Kommandozeile:
Auch der radio.rxgain-Parameter ist über die CLI zugänglich und wurde in der offiziellen Dokumentation mit einem eigenen Eintrag versehen. Die Default-Scope-Funktion wurde sowohl für den Companion als auch für den Repeater implementiert; die CLI-Befehle rund um region wurden dabei in eine gemeinsame CommonCLI-Komponente refaktoriert. Der Befehl region default ... erstellt eine Region nun automatisch, sofern noch keine vorhanden ist, und region put ... setzt standardmäßig Flood als erlaubt. Weitere Details zur Default-Scope-Funktion finden sich in einem separaten Artikel auf blog.meshcore.io.
Companion & OTA
Ein bedeutendes Update betrifft den nRF Companion, der nun OTA (Over-the-Air, drahtlose Firmware-Updates) unterstützt. Konkret wurde DFU (Device Firmware Update) in den BLE-Stack integriert. Für ESP32-C6-basierte Geräte wurde ElegantOTA aktiviert. Beim ESP32-SDK wurde ein Fix für OTA-Includes eingespielt und die Async-Bibliothek aktualisiert. Für den Heltec Wireless Paper wurde eine neue USB-Companion-Radio-Umgebung hinzugefügt, womit dieses Gerät nun als Companion betrieben werden kann. Ein Fix stellt sicher, dass die GPS-Einstellungen (aktiviert/deaktiviert) beim Bootvorgang korrekt aus dem persistierten Zustand wiederhergestellt werden — applyGPSPrefs() wurde dazu aus dem UITask herausgelöst und zentralisiert. Für den Heltec V4 und den TBeam 1W wurden WiFi-Companion-spezifische Stabilitätsprobleme behoben. Der OFFLINE_QUEUE_SIZE-Wert wurde auf 256 für verschiedene fehlende WiFi-Companion-ESP-Umgebungen sowie für den Xiao nRF52 Companion USB gesetzt.
Neue Paket-Features: GROUP_DATA und Default Scope
Mit v1.15.0 wird Unterstützung für den neuen Pakettyp PAYLOAD_TYPE_GRP_DATA (GROUP_DATA, binäre Gruppenpaket-Daten) eingeführt. Dieser Pakettyp unterstützt auch direkte Pfade beim Senden von Gruppendaten. Im Zuge der Implementierung wurden unter anderem der Zeitstempel aus dem Gruppenpaket entfernt, der Datentyp verbreitert und der Gerätetyp umbenannt. Für benutzerdefinierte Payloads wird nun der Wert 0xFF als Pflichtkennung vorausgesetzt. Die Dokumentation zum Paketformat wurde entsprechend aktualisiert. Weitere Details zum Paketformat finden sich in der offiziellen MeshCore-Dokumentation.
Sensoren
Der BME680-Sensor (Umweltsensor für Temperatur, Luftfeuchtigkeit, Luftdruck und Luftqualität) erhielt einen Initialisierungs-Fix, der einen Fehler bei der Sensor-Initialisierung behebt. Neu hinzugekommen ist außerdem Unterstützung für den RAK12035 Soil Moisture and Temperature Sensor (Bodenfeuchtigkeit- und Temperatursensor). Für den EnvironmentSensorManager wurden Makro-Overrides für den INA3221 ermöglicht. Zusätzlich wurde ein ADC_MULTIPLIER für eine anpassbare ADC-Berechnung definiert und für den Heltec Wireless Paper korrekt hinterlegt.
Bugfixes & Stabilität
Ein kritischer Bootloop-Fix für den Xiao C3 wurde eingespielt: Sensoren wurden aus der Xiao-C3-Companion-Konfiguration entfernt, da diese die Ursache für Bootloops darstellten. Ein memcpy-Vergleichslängen-Fehler (Off-by-One) wurde korrigiert. Die Standard-Button-Polarität wurde auf Active-LOW für alle Firmware-Typen vereinheitlicht; der T1000-E erhielt einen separaten Fix, da bei diesem Gerät der Button-Press auf HIGH liegt. Ein Fehler bei den ADVERT_NAME-Definitionen wurde korrigiert: Der ThinkNode M5 trug fälschlicherweise die Bezeichnung „M2", und der Generic ESPNow Room Server nannte sich „Heltec Room". Für den ThinkNode M5 wurden außerdem versehentlich eingecheckte WiFi-Zugangsdaten aus der Varianten-Konfiguration entfernt. Der Heltec Wireless Paper Batterie-Auslesefehler wurde durch korrekte ADC_MULTIPLIER-Definition behoben.
BLE & Verbindungsstabilität
Der GATT (Generic Attribute Profile)-Cache-Problematik auf Android bei bereits gekoppelten Geräten wurde entgegengewirkt, indem der BLE-UART-Service nun als erster Service registriert bleibt. Dies verhindert GATT-Cache-Konflikte bei erneuter Verbindung.
Sonstige Änderungen
Die RadioLib-Bibliothek wurde auf Version 7.6.0 aktualisiert. Der FIRMWARE_VER_CODE wurde auf 11 angehoben. Die Methode sendNodeDiscoverReq() wurde öffentlich gemacht, um Post-Boot-Discovery zu ermöglichen. In der Dokumentation wurden unter anderem der discover.neighbors-Befehl, die GPS-Ausgabe-Beschreibung sowie der neighbor.remove-Befehl aktualisiert. Das RAK 4631 FAQ-Eintrag wurde bezüglich des neuen Bootloaders aktualisiert, und ein Multibyte-FAQ-Eintrag wurde ergänzt.
---
Quellen:- Offizieller Release-Blogpost: blog.meshcore.io/2026/04/19/release-1-15-0
- Firmware flashen: flasher.meshcore.io