Kabellose Firmware-Updates für autarke RAK-Nodes!

Ein Projekt von meshtastic.at (meshworld.at):

V1.7 20.2.2024

DAS PROJEKT:
Kabellose Firmware-Updates für autarke RAK-Nodes!

leere oder fertige gelötete Platine, modifiziertes RAK18001, Raspi OS Image anfragen

Dieses Projekt zeigt, wie Firmware-Updates auf schwer zugänglichen RAK-Nodes durchgeführt werden können – ganz ohne Kabel, ohne Gehäuseöffnung und ohne Mastkletterei. Die Lösung kombiniert einen Raspberry Pi Zero W 2 mit LoRa-Kommunikation, um den Node vor Ort zu aktivieren. Das Update läuft dann komfortabel per Smartphone über Fernwartung ab – ein Notebook wird nicht benötigt.

Das Ergebnis: Zeitersparnis, weniger Aufwand und ein smarter Ansatz für zukünftige Technologien.

Die Herausforderung:

Normalerweise erfordert ein Firmware-Update, dass das Node-Gehäuse geöffnet wird, um es per USB-Kabel an ein Notebook anzuschließen. Wenn der Node auf einem Mast oder an einer schwer erreichbaren Stelle montiert ist, wird das schnell mühsam.

Zwar gibt es für iOS-Nutzer angeblich die Möglichkeit, das RAK4631 per Meshtastic App zu flashen, aber diese Lösung ist nicht für alle zugänglich – schließlich besitzt nicht jeder ein iPhone oder iPad.

Das Ziel: Eine nachhaltige, universelle und kostengünstige Lösung, die zudem noch zukünftige Erweiterungen mit neuen Technologien ermöglicht.

Die Idee:

Die Grundidee ist nicht neu – viele Node-Betreiber in der LoRa-Mesh-Community haben sich bestimmt schon Gedanken dazu gemacht. Doch ein entscheidender Hinweis von Volker aus dem MeshLoraAustria-Team hat den Trigger für dieses Projekt gesetzt.

Autarke Nodes auf Basis des RAK4631 werden üblicherweise mit der Basisplatine RAK19003 oder RAK19007 betrieben. Beide Platinen unterstützen das Erweiterungsmodul RAK18001 „Buzzer“, das für dieses Projekt zentral ist.

Der Clou: Das Buzzer-Signal wird genutzt, um eine Elektronik zu triggern, die einen Raspberry Pi startet. Damit kann das Update dann bequem per Fernwartung durchgeführt werden.

Der Plan:

  1. Hardware:
    • RAK18001 „Buzzer“ auf GPIO 21 Das Modul wird modifiziert und triggert die Schaltung um den Raspberry einzuschalten.
    • Raspberry Pi Zero W 2 Geringer Stromverbrauch, geringe Kosten.
    • Bipolares Relais mit doppelter Spule, geringer Stromverbrauch da nur für den Schaltvorgang Strom verbraucht wird
    • Optokoppler 817C trennt den Raspi 18001 galvanisch von der Schaltung
    • Atmel ATtiny13 µC steuert Aus- Einschalten der Raspi Spannungsversorgung
    • ein paar elektronische Standardkomponenten
    • Li-Ion-Akku: Mindestens 3,4V Restspannung optional mit einem DC DC Stepup Booster, und ein Solarpanel für autarken Betrieb.
  2. Ablauf:
    • Das Node empfängt per LoRa den Buzzer-Alert und aktiviert über die Schaltung den Raspberry Pi.
    • Der Raspberry bootet, startet die grafische Benutzeroberfläche und verbindet sich automatisch mit dem Hotspot eines Smartphones.
    • Über die Meshtastic Flash-Webseite kann das Update in wenigen Schritten durchgeführt werden.
    • Der Buzzer-Alert wird deaktiviert, um versehentliche Neustarts des Raspi zu vermeiden.
  3. Software-Voraussetzungen:
    • Das Bullseye 32-Bit-Raspberry-OS mit grafischer Oberfläche wird auf der SD-Karte installiert.
    • Der ressourcenintensive Chromium Browser wird durch den Midori Browser ersetzt
    • WLAN-Zugangsdaten des Smartphone-Hotspots werden hinterlegt.
    • Der VNC-Serverdienst wird aktiviert, um den Raspberry Pi fernzusteuern.
    • Python-Skript für die Aktivierung des RAK Laufwerks um das Update vom Raspi aus einzuspielen
    • Python-Skript für den Shutdown: Nach erfolgreichem Update kann der Raspberry Pi herunter gefahren werden, und die Schaltung schaltet die Stromversorgung nach einer Minute Verzögerung ab.
  4. Nach dem Update:
    • Alles läuft wieder energieeffizient im autarken Modus.

Nächste Schritte

  1. (check) Erstellung der Schaltung
  2. (check) Programmierung des Mikrocontrollers (ATtiny13)
  3. (check) Modifikation des RAK18001
  4. (check) Aufbau eines Versuchsmodells der Schaltung
  5. (check) Installation des Raspberry Pi
  6. (check) Test eines Firmware-Updates über Fernwartung (VNC)
  7. (check) Erstellung und Test der Phyton Scripte
  8. (check) Vorbereitung des Nodes
  9. (check) Testlauf des gesamten Systems
  10. (check) Feldtest an einem „echten“ autarken Node
  11. (check) Fertigung und Test eines Prototyps
  12. (check) Erstellung einer umfassenden Anleitung
  13. (check) Veröffentlichung der Anleitung
  14. (check) Produktion einer Kleinserie für die Community (optional)

Das Projekt ist erfolgreich abgeschossen.

Um das Update der RAK Nodes über den Browser durchzuführen, muss zwingend Chromium verwendet werden. Dieser Browser ist jedoch sehr ressourcenintensiv und ist am Raspberry Pi Zero mit nur 512 MB RAM nicht lauffähig. Daher kann das Update nicht direkt über den Browser ausgeführt werden. Es ist ein Browser erforderlich der mit den geringen Ressourcenlauffähig ist und mit dem man die Firmware herunterladen kann und auf das RAK Node überspielen kann.

leere oder fertige gelötete Platine, modifiziertes RAK18001, Raspi OS Image anfragen