FUOTA (firmwareopdatering over the air) med ChirpStack

De følgende trin beskriver opsætning og gennemførelse af firmwareopdateringer (FUOTA) for LoRaWAN-slutpunkter ved hjælp af ChirpStack-applikationsserveren.

Forudsætninger

Før du begynder, skal du sikre dig, at følgende forudsætninger er opfyldt:

  • En installeret og kørende ChirpStack v4-server.
  • Den nye firmwarefil som .sbin-fil.
  • Enhederne er forbundet til ChirpStack-serveren.
  • Enhedsprofilen for dine enheder har konfigureret enhedernes dvaletid som Forventet uplink-interval (sek.). Standardværdien er 300 sek.. Flere oplysninger om indstillingerne for enhedsprofilen findes nedenfor.
  • Enhederne har tilstrækkelig batterikapacitet. Vi anbefaler at udføre FUOTA i dagtimerne med sollys.
  • Enhederne befinder sig inden for god radiodækning. Vi anbefaler at placere enhederne tæt på en gateway.

Opsætning

Enhedsprofil

For enhedsprofilen er følgende parametre vigtige:

Generelt

  • Region: EU868
  • MAC-version: LoRaWAN 1.0.4
  • Version af regionale parametre: RP002-1.0.1
  • Forventet uplink-interval (sek.): enhedens dvaletid – standard 300 sek.

Applikationslag

  • Version af klokkesynkronisering (TS003): v1.0.0
  • FPort til klokkesynkronisering (TS003): 202
  • Transport af fragmenterede datablokke (TS004): v1.0.0
  • FPort til transport af fragmenterede datablokke (TS004): 201
  • Version af fjernopsætning af multicast (TS005): v1.0.0
  • FPort til fjernopsætning af multicast (TS005): 200

1. Opret ChirpStack FUOTA-udrulning

Først skal der oprettes en ny FUOTA-udrulning. Denne mulighed findes i den ChirpStack-applikation, hvor din enhed befinder sig. ChirpStack opretter automatisk multicast-gruppen til FUOTA. ChirpStack-indstillinger for FUOTA-udrulning Følgende indstillinger anbefales:

  • Antal unicast-genforsøg (maks.): 5
  • Multicast-datahastighed: 4 (afhængigt af enhedernes afstand)
  • Fragmenteringsredundans (%): 25%
  • Multicast-timeout: 4096 s
  • Fragmentstørrelse (multiplum af 8): 192 byte
  • Nyttedata: den nye firmware (.sbin)

2. Føj enheder til udrulningen

Alle slutpunkter, der skal modtage den samme firmware, kan opdateres samtidig. I applikationens enhedsoversigt kan valgte enheder via knappen Valgt enhed føjes til en FUOTA-udrulning.

3. Føj gateways til udrulningen

Ligesom slutpunkterne skal de tilsvarende gateways også føjes til FUOTA-udrulningen.

4. Start FUOTA

Når FUOTA er konfigureret, og alle ønskede slutpunkter samt berørte gateways er føjet til FUOTA-udrulningen, kan FUOTA startes.

Bemærk: Den komplette FUOTA-proces tager cirka 2 timer – afhængigt af antallet af enheder, den konfigurerede Unicast retry count og Fragmentation redundancy. Den tid, hvor enheden er i Class-C-tilstand (Always On – modtager FUOTA-pakker), er som standard cirka 30–60 minutter.

FUOTA-forløb og -status

ChirpStack-FUOTA gennemgår følgende trin, som kan ses på dashboardet for FUOTA-deploymentet:

  1. Opret multicast-gruppe
  2. Føj enheder til multicast-gruppe
  3. Føj gateways til multicast-gruppe

Trin 1 til 3 udføres næsten øjeblikkeligt. De dokumenterer kun den interne opsætning i ChirpStack.

  1. Opsætning af multicast-gruppe
  2. Opsætning af fragmenteringssession
  3. Opsætning af multicast-session

Trin 4 til 6 vedrører enhedskonfigurationen. ChirpStack forsøger at konfigurere enhederne via downlink. Hvis dette mislykkes, gentages den pågældende konfigurations-downlink det antal gange, der er angivet under Unicast retry count. I dette tidsrum fungerer enheden normalt. Status for de enkelte enheders modtagelse af disse opsætningsmeddelelser i FUOTA kan ses under fanen "Devices" i FUOTA-deploymentet.

  1. Enqueue fragments: Som en del af denne interne opsætningsproces føjes firmwarefragmenterne til multicast-gruppens kø på tidspunktet "Run at".
  2. Delete multicast group: Multicast-gruppen slettes.
  3. Fuldfør deployment

FUOTA udføres mellem trin 7 og 8. Enhederne er i Class-C-tilstand og konstant vågne i den angivne Multicast timeout-periode. I dette tidsrum sender de ikke normale meddelelser, men modtager de enkelte firmwarefragmenter. Derfor er enhedernes strømforbrug også højere i denne periode. Multicast timeout-perioden skal være tilstrækkeligt lang til, at alle firmwarefragmenterne kan modtages inden for tidsrummet. FUOTA-indstillingen Calculate multicast-timeout beregner den nødvendige tid ud fra Fragment size eller firmwarefilen i Payload.

Når multicast-timeout er udløbet, eller alle fragmenter er modtaget, genstarter enheden og starter med den nye firmware, hvis FUOTA-processen lykkedes.

Valgfrit

FUOTA-indstillingen Fragmentation status request anmoder fragmenteringsstatussen på to valgbare tidspunkter. Resultatet kan ses under fanen "Devices" i FUOTA-deploymentet.