FUOTA (posodobitev vdelane programske opreme po zraku) s ChirpStackom

V naslednjih korakih je opisana nastavitev in izvedba posodobitev vdelane programske opreme (FUOTA) za končne naprave LoRaWAN z uporabo aplikacijskega strežnika ChirpStack.

Pogoji

Pred začetkom se prepričaj, da so izpolnjeni naslednji pogoji:

  • Nameščen in delujoč strežnik ChirpStack v4.
  • Nova datoteka vdelane programske opreme kot .sbin-datoteka.
  • Naprave so povezane s strežnikom ChirpStack.
  • V profilu naprave je pri pričakovanem intervalu oddajanja navzgor (s) konfiguriran čas spanja tvojih naprav. Privzeta vrednost je 300 s. Več podrobnosti o nastavitvah profila naprave je navedenih spodaj.
  • Naprave imajo zadostno napolnjeno baterijo. Priporočamo, da FUOTA izvedeš podnevi in ob sončnem sevanju.
  • Naprave so v dosegu z dobrim radijskim signalom. Priporočamo, da naprave približaš prehodu.

Nastavitev

Profil naprave

Za profil naprave so pomembni naslednji parametri:

Splošno

  • Regija: EU868
  • Različica MAC: LoRaWAN 1.0.4
  • Različica regionalnih parametrov: RP002-1.0.1
  • Pričakovani interval oddajanja navzgor (s): čas spanja naprave – privzeto 300 s

Aplikacijska plast

  • Različica sinhronizacije ure (TS003): v1.0.0
  • Vrata fPort za sinhronizacijo ure (TS003): 202
  • Prenos fragmentiranega podatkovnega bloka (TS004): v1.0.0
  • Vrata fPort za prenos fragmentiranega podatkovnega bloka (TS004): 201
  • Različica oddaljene nastavitve večoddajanja (TS005): v1.0.0
  • Vrata fPort za oddaljeno nastavitev večoddajanja (TS005): 200

1. Ustvarjanje uvedbe FUOTA v ChirpStacku

Najprej je treba ustvariti novo uvedbo FUOTA. To možnost najdeš v aplikaciji ChirpStack, v kateri je tvoja naprava. ChirpStack pri tem samodejno ustvari skupino za večoddajanje FUOTA. Nastavitve uvedbe FUOTA v ChirpStacku Priporočene so naslednje nastavitve:

  • Največje število ponovnih poskusov enooddajanja: 5
  • Podatkovna hitrost večoddajanja: 4 (odvisno od oddaljenosti naprav)
  • Redundanca fragmentacije (%): 25%
  • Časovna omejitev večoddajanja: 4096 s
  • Velikost fragmenta (večkratnik števila 8): 192 bajtov
  • Koristna vsebina: nova vdelana programska oprema (.sbin)

2. Dodajanje naprav v uvedbo

Vse končne naprave, ki naj prejmejo isto vdelano programsko opremo, je mogoče posodobiti hkrati. V pregledu naprav v aplikaciji lahko izbrane naprave prek gumba Izbrana naprava dodati v uvedbo FUOTA.

3. Dodajanje prehodov v uvedbo

Tako kot končne naprave je treba v uvedbo FUOTA dodati tudi ustrezne prehode.

4. Zagon FUOTA

Ko je FUOTA konfiguriran, vse želene končne naprave in prizadeti prehodi dodani v uvedbo FUOTA, je mogoče FUOTA zagnati.

Opomba: Celoten postopek FUOTA traja približno 2 uri – odvisno od števila naprav, konfiguriranega Unicast retry count in Fragmentation redundancy. Čas, ko je naprava v načinu Class-C (Always On – prejemanje paketov FUOTA), privzeto traja približno 30–60 minut.

Potek in stanje FUOTA

ChirpStack FUOTA poteka po naslednjih korakih, ki so prikazani na nadzorni plošči uvedbe FUOTA:

  1. Ustvarjanje multicastne skupine
  2. Dodajanje naprav v multicastno skupino
  3. Dodajanje prehodov v multicastno skupino

Koraki od 1 do 3 se izvedejo skoraj takoj. Dokumentirajo le notranjo nastavitev v ChirpStacku.

  1. Nastavitev multicastne skupine
  2. Nastavitev seje fragmentacije
  3. Nastavitev multicastne seje

Koraki od 4 do 6 se nanašajo na konfiguracijo naprav. ChirpStack poskuša naprave konfigurirati prek downlinka. Če to ne uspe, se zadevni konfiguracijski downlink ponovi tolikokrat, kot določa Unicast retry count. V tem času naprava deluje normalno. Stanje posameznih naprav v FUOTA glede teh nastavitvenih sporočil si lahko ogledate na zavihku »Devices« v uvedbi FUOTA.

  1. Enqueue fragments: V okviru tega notranjega postopka nastavitve se fragmenti vdelane programske opreme ob času »Run at« dodajo v čakalno vrsto multicastne skupine.
  2. Delete multicast group: Multicastna skupina se izbriše.
  3. Dokončanje uvedbe

Med 7. in 8. korakom se izvede FUOTA. Naprave so za čas Multicast timeout v načinu Class-C in ves čas budne. V tem času ne pošiljajo običajnih sporočil, temveč prejemajo posamezne fragmente vdelane programske opreme. Zato je tudi poraba energije naprav v tem času povečana. Čas Multicast timeout mora biti dovolj dolg, da je mogoče pravočasno prenesti vse fragmente vdelane programske opreme. Nastavitev FUOTA Calculate multicast-timeout izračuna potreben čas na podlagi Fragment size oziroma datoteke vdelane programske opreme v Payload.

Po poteku multicast-timeout ali ko so prejeti vsi fragmenti se bo naprava znova zagnala in se ob uspešnem FUOTA zagnala z novo vdelano programsko opremo.

Izbirno

Nastavitev FUOTA Fragmentation status request na dveh izbranih časovnih točkah preveri stanje fragmentacije. Rezultat si lahko ogledate na zavihku »Devices« v uvedbi FUOTA.