OTAFIX Bootloader für nRF52-Geräte installieren
MeshCore Blog von taco

OTAFIX Bootloader für nRF52-Geräte installieren

Hintergrund

Als ich mich das erste Mal intensiver mit MeshCore beschäftigt habe, ist mir aufgefallen, dass nRF52-Geräte OTA-Updates via BLE unterstützen – was natürlich eine großartige Sache ist, wenn man einen Repeater auf einem Dach aktualisieren muss.

Leider hat das bei mir nie wirklich zuverlässig funktioniert. Mit den richtigen Einstellungen hat es beim RAK4631 vielleicht manchmal geklappt, aber bei ProMicro-Geräten hat es schlicht gar nicht funktioniert. Das hat mich dazu gebracht, auf GitHub zu stöbern, wo ich einige uralte, in Vergessenheit geratene Pull Requests gefunden habe, die genau diese Probleme beheben sollten.

Da ihnen auf dem offiziellen Adafruit-GitHub keine Aufmerksamkeit geschenkt wurde, habe ich die Sache selbst in die Hand genommen, den Bootloader geforkt und die Fixes eingebaut.

OTAFIX Bootloader für nRF52-Geräte installieren

Für das bestmögliche OTA-Update-Erlebnis auf nRF52-Geräten empfiehlt es sich, auf den OTAFIX Bootloader zu aktualisieren. Diese Version enthält:

  • Automatischen Fallback in den OTA-DFU-Modus, wenn ein Update fehlschlägt
  • Deutlich schnellere OTA-Update-Geschwindigkeiten
  • Weitere Verbesserungen der Benutzerfreundlichkeit für bestimmte Geräte, z. B. die Möglichkeit, den OTA-DFU-Modus durch Halten eines Knopfes beim Neustart zu aktivieren

1. UF2-DFU-Modus aktivieren

Zuerst muss das Gerät in den UF2-DFU-Modus versetzt werden.

Bei den meisten nRF52-Geräten:

  • Gerät per USB mit dem Computer verbinden
  • Den Reset-Knopf schnell zweimal drücken (zweimal innerhalb von 0,5 Sekunden)
  • Ein UF2-USB-Laufwerk sollte erscheinen – der Name des Laufwerks unterscheidet sich je nach Gerät
Bei manchen Geräten wird eine andere Methode verwendet – siehe die Hinweise am Ende dieser Anleitung.

2. Aktuellen Bootloader prüfen (optional, aber empfohlen)

Dieser Schritt ist wichtig für Geräte wie das Seeed Studio XIAO nRF52840, das oft mit der SENSE-Bootloader-Variante ausgeliefert wird.

So prüft man das:

  • UF2-DFU-Modus aktivieren
  • Die Datei INFO_UF2.TXT auf dem eingebundenen Laufwerk öffnen
Diese Datei enthält Details zum aktuell installierten Bootloader. Beispiel: Wenn die Datei Board-ID: nRF52840-SeeedXiaoSense-v1 anzeigt, muss die SENSE-Variante installiert werden.

3. OTAFIX Bootloader herunterladen

Der OTAFIX Bootloader kann direkt über die MeshCore-Flasher-Seite heruntergeladen werden! Einfach auf https://flasher.meshcore.io gehen:

  • Gerät auswählen
  • Repeater auswählen
  • Ein Download-Link für den OTAFIX Bootloader erscheint in einem hervorgehobenen Banner – die Datei trägt den Namen update-xxxx.uf2
flasher banner grab

Alternativ ist der OTAFIX Bootloader auch direkt auf der offiziellen Seite verfügbar:

https://github.com/oltaco/Adafruit_nRF52_Bootloader_OTAFIX/releases

Die passende UF2-Datei für das jeweilige Gerät aus dem Abschnitt Assets herunterladen.

  • Dateien sind nach folgendem Schema benannt: update-xxxx.uf2
  • Es kann notwendig sein, auf „Show more" zu klicken, um alle verfügbaren Dateien anzuzeigen
Beispiel: Für die oben beschriebene Seeed Xiao Sense-Variante lädt man folgende Datei herunter: update-xiao_nrf52840_ble_sense_bootloader-0.9.2-OTAFIX2.1-BP1.2_nosd.uf2

4. Bootloader installieren

  • Die Datei update-xxxx.uf2 auf das UF2-Laufwerk ziehen und ablegen
  • Das Gerät erledigt automatisch Folgendes:
- Bootloader aktualisieren - Nach Abschluss neu starten

5. Update überprüfen

  • Erneut in den UF2-DFU-Modus wechseln
  • INFO_UF2.TXT nochmals öffnen
Die Versionszeile sollte nun OTAFIX enthalten.
otafix installed

Gerätespezifische Hinweise

T1000-e: DFU-Modus aktivieren

So wird der DFU-Modus aktiviert:

  • Magnetisches USB-Kabel anschließen
  • Knopf gedrückt halten
  • Kabel schnell zweimal trennen und wieder verbinden
Videoanleitung: https://www.youtube.com/shorts/D6uo93-RcaY

ThinkNode M3: DFU-Modus aktivieren

So wird der DFU-Modus aktiviert:

  • Magnetisches USB-Kabel anschließen
  • Knopf ca. 25–30 Sekunden gedrückt halten
Original auf blog.meshcore.io →