Mit Meshcore lassen sich nRF52840-basierte Repeater inzwischen bequem Over-the-Air (OTA) aktualisieren. Voraussetzung dafür ist ein passender Bootloader sowie das richtige Vorgehen beim Update. In diesem Beitrag beschreibe ich den Ablauf, meine Erfahrungen und worauf man achten sollte.
Grundlage ist der angepasste Adafruit nRF52 Bootloader mit verbessertem OTA/DFU-Support, wie er hier beschrieben ist: (optional)
https://meshcore-de.fyi/meshcore:allgemeines:adafruit-nrf52-bootloader-mit-verbessertem-ota-dfu
Voraussetzungen
-
Meshcore Repeater mit nRF52840
-
Installierter OTA-fähiger Bootloader
-
Android-Smartphone
-
App nRF Device Firmware Update
-
Meshcore Firmware im passenden DFU-Format
Repeater in den OTA-Modus versetzen
Bevor das Android-Tool genutzt werden kann, muss der Repeater manuell in den OTA-Modus gebracht werden.
Dazu auf der Kommandoebene (CLI) des Repeaters folgenden Befehl eingeben:
ota start
Der Repeater wechselt anschließend in den OTA-/DFU-Modus und wartet auf eine neue Firmware. Erst jetzt ist er für das Android-Tool sichtbar.
OTA-Update mit Android durchführen
Die App nRF Device Firmware Update auf dem Android-Gerät starten
-
Den Repeater aus der Geräteliste auswählen
-
Einmalig die Settings korrekt setzen
-
Die neue Firmware-Datei auswählen
-
Flash-Vorgang starten
Während des Updates sollte die Bluetooth-Verbindung nicht getrennt werden und die App im Vordergrund bleiben. Geduld ist ebenfalls gefragt.
Und ganz wichtig: Daumen drücken nicht vergessen 👍
Wenn alles erfolgreich abgeschlossen ist, startet der Repeater automatisch neu und läuft anschließend mit der neuen Firmware.
Versuch mit Adafruit_nRF52_Bootloader_OTAFIX
Ich habe zusätzlich versucht, den alternativen Bootloader https://github.com/oltaco/Adafruit_nRF52_Bootloader_OTAFIX zu verwenden, um OTA-Fixes einzuspielen.
Ergebnis:
Der Bootloader ließ sich nicht zuverlässig „fixen“ bzw. patchen.
Somit ist dieser Weg zwar dokumentiert, aber nicht stabil nutzbar. Er birgt das Risiko, dass das Gerät im Bootloader-State hängen bleibt, was bedeutet:
Du müsstest das Gerät dann über USB direkt ansprechen, um es wiederherzustellen