FUOTA (Firmware-update via de ether) met ChirpStack

In de volgende stappen wordt beschreven hoe firmware-updates (FUOTA) voor LoRaWAN-eindapparaten worden ingesteld en uitgevoerd met behulp van de ChirpStack Application Server.

Vereisten

Controleer voordat je begint of aan de volgende vereisten is voldaan:

  • Een geïnstalleerde en actieve ChirpStack v4-server.
  • Het nieuwe firmwarebestand als .sbin-bestand.
  • De apparaten zijn verbonden met de ChirpStack-server.
  • In het Device Profile is voor je apparaten als Expected uplink interval (secs) de slaapduur van je apparaten geconfigureerd. De standaardwaarde is 300s. Meer details over de instellingen van het Device Profile vind je verderop.
  • De apparaten hebben voldoende batterijlading. We raden aan FUOTA overdag bij zonlicht uit te voeren.
  • De apparaten bevinden zich binnen een goed radiobereik. We raden aan de apparaten in de buurt van een gateway te brengen.

Instellen

Device Profile

Voor het Device Profile zijn de volgende parameters belangrijk:

Algemeen

  • Regio: EU868
  • MAC-versie: LoRaWAN 1.0.4
  • Versie van de regionale parameters: RP002-1.0.1
  • Verwacht uplink-interval (seconden): slaapduur van het apparaat - standaard 300s

Applicatielaag

  • Clock sync-versie (TS003): v1.0.0
  • Clock sync fPort (TS003): 202
  • Fragmented data block transport (TS004): v1.0.0
  • Fragmented data block transport fPort (TS004): 201
  • Remote multicast setup-versie (TS005): v1.0.0
  • Remote multicast setup fPort (TS005): 200

1. ChirpStack-FUOTA-implementatie aanmaken

Eerst moet een nieuwe FUOTA-implementatie worden aangemaakt. Deze optie vind je in de ChirpStack-applicatie waarin je apparaat zich bevindt. ChirpStack maakt de multicastgroep voor FUOTA automatisch aan. ChirpStack-instellingen voor FUOTA-implementatie De volgende instellingen worden aanbevolen:

  • Aantal unicast-pogingen (max.): 5
  • Multicast-datasnelheid: 4 (afhankelijk van de afstand tot de apparaten)
  • Fragmentatieredundantie (%): 25%
  • Multicast-time-out: 4096 s
  • Fragmentgrootte (veelvoud van 8): 192 bytes
  • Payload: de nieuwe firmware (.sbin)

2. Apparaten aan de implementatie toevoegen

Alle eindapparaten die dezelfde firmware moeten ontvangen, kunnen tegelijkertijd worden bijgewerkt. In het overzicht Devices van de applicatie kunnen geselecteerde apparaten via de knop Geselecteerd apparaat aan een FUOTA-implementatie worden toegevoegd.

3. Gateways aan de implementatie toevoegen

Net als de eindapparaten moeten ook de betreffende gateways aan de FUOTA-implementatie worden toegevoegd.

4. FUOTA starten

Als FUOTA is geconfigureerd en alle gewenste eindapparaten en betrokken gateways aan de FUOTA-implementatie zijn toegevoegd, kan FUOTA worden gestart.

Opmerking: Het volledige FUOTA-proces duurt ongeveer 2 uur, afhankelijk van het aantal apparaten, de geconfigureerde Unicast retry count en de Fragmentation redundancy. De tijd waarin het apparaat zich in de Class-C-modus bevindt (Always On – FUOTA-pakketten ontvangen), bedraagt standaard ongeveer 30–60 minuten.

FUOTA-proces en -status

De ChirpStack-FUOTA doorloopt de volgende stappen, die zichtbaar zijn in het dashboard van de FUOTA-deployment:

  1. Multicastgroep aanmaken
  2. Apparaten aan multicastgroep toevoegen
  3. Gateways aan multicastgroep toevoegen

De stappen 1 tot en met 3 worden vrijwel onmiddellijk uitgevoerd. Ze documenteren alleen de interne configuratie in ChirpStack.

  1. Multicastgroep configureren
  2. Fragmentatiesessie configureren
  3. Multicastsessie configureren

De stappen 4 tot en met 6 hebben betrekking op de apparaatconfiguratie. ChirpStack probeert de apparaten via een downlink te configureren. Als dit mislukt, wordt de betreffende configuratie-downlink zo vaak herhaald als is ingesteld bij Unicast retry count. Gedurende deze tijd werkt het apparaat normaal. De status van de afzonderlijke apparaten in de FUOTA met betrekking tot deze configuratieberichten kan worden bekeken op het tabblad "Devices" van de FUOTA-deployment.

  1. Enqueue fragments: Tijdens dit interne configuratieproces worden de firmwarefragmenten op het tijdstip "Run at" aan de wachtrij van de multicastgroep toegevoegd.
  2. Delete multicast group: De multicastgroep wordt verwijderd.
  3. Deployment voltooien

Tussen stap 7 en 8 wordt de FUOTA uitgevoerd. De apparaten bevinden zich gedurende de Multicast timeout in de Class-C-modus en zijn permanent actief. Gedurende deze tijd verzenden ze geen normale berichten, maar ontvangen ze de afzonderlijke firmwarefragmenten. Het stroomverbruik van de apparaten is in deze periode dan ook hoger. De Multicast timeout moet lang genoeg zijn, zodat alle firmwarefragmenten tijdig kunnen worden overgedragen. De FUOTA-instelling Calculate multicast-timeout berekent de benodigde tijd op basis van de Fragment size en het firmwarebestand in de Payload.

Na afloop van de multicast-timeout of zodra alle fragmenten zijn ontvangen, wordt het apparaat opnieuw opgestart en start het bij een geslaagde FUOTA met de nieuwe firmware.

Optioneel

De FUOTA-instelling Fragmentation status request vraagt op twee selecteerbare tijdstippen de fragmentatiestatus op. Het resultaat hiervan kan worden bekeken op het tabblad "Devices" van de FUOTA-deployment.