FUOTA (aktualizácia firmvéru vzduchom) s ChirpStackom

Nasledujúce kroky opisujú nastavenie a vykonanie aktualizácií firmvéru (FUOTA) pre koncové zariadenia LoRaWAN pomocou aplikačného servera ChirpStack.

Predpoklady

Pred začatím sa uistite, že sú splnené nasledujúce predpoklady:

  • Nainštalovaný a spustený server ChirpStack v4.
  • Nový súbor firmvéru ako .sbin-súbor.
  • Zariadenia sú pripojené k serveru ChirpStack.
  • V profile zariadenia pre vaše zariadenia je ako očakávaný interval uplinku (s) nakonfigurovaný čas spánku vašich zariadení. Predvolená hodnota je 300 s. Ďalšie podrobnosti o nastaveniach profilu zariadenia nájdete nižšie.
  • Zariadenia majú dostatočne nabitú batériu. FUOTA odporúčame vykonávať počas dňa, keď svieti slnko.
  • Zariadenia sa nachádzajú v dosahu kvalitného rádiového signálu. Odporúčame umiestniť ich do blízkosti brány.

Nastavenie

Profil zariadenia

Pre profil zariadenia sú dôležité nasledujúce parametre:

Všeobecné

  • Región: EU868
  • Verzia MAC: LoRaWAN 1.0.4
  • Verzia regionálnych parametrov: RP002-1.0.1
  • Očakávaný interval uplinku (s): čas spánku zariadenia – predvolená hodnota 300 s

Aplikačná vrstva

  • Verzia synchronizácie hodín (TS003): v1.0.0
  • Port fPort synchronizácie hodín (TS003): 202
  • Prenos fragmentovaného dátového bloku (TS004): v1.0.0
  • Port fPort prenosu fragmentovaného dátového bloku (TS004): 201
  • Verzia vzdialeného nastavenia multicastu (TS005): v1.0.0
  • Port fPort vzdialeného nastavenia multicastu (TS005): 200

1. Vytvorenie nasadenia ChirpStack FUOTA

Najskôr je potrebné vytvoriť nové nasadenie FUOTA. Túto možnosť nájdete v aplikácii ChirpStack, v ktorej sa nachádza vaše zariadenie. ChirpStack pri tom automaticky vytvorí multicastovú skupinu pre FUOTA. Nastavenia nasadenia ChirpStack FUOTA Odporúčajú sa nasledujúce nastavenia:

  • Maximálny počet opakovaní unicastu: 5
  • Multicastová dátová rýchlosť: 4 (v závislosti od vzdialenosti zariadení)
  • Redundancia fragmentácie (%): 25%
  • Časový limit multicastu: 4096 s
  • Veľkosť fragmentu (násobok 8): 192 bajtov
  • Payload: nový firmvér (.sbin)

2. Pridanie zariadení do nasadenia

Všetky koncové zariadenia, ktoré majú dostať rovnaký firmvér, možno aktualizovať súčasne. V prehľade Devices v aplikácii možno vybrané zariadenia pomocou tlačidla Vybrané zariadenie pridané do nasadenia FUOTA.

3. Pridanie brán do nasadenia

Rovnako ako koncové zariadenia je potrebné do nasadenia FUOTA pridať aj príslušné brány.

4. Spustenie FUOTA

Po nakonfigurovaní FUOTA a pridaní všetkých požadovaných koncových zariadení a príslušných brán do nasadenia FUOTA možno FUOTA spustiť.

Poznámka: Celý proces FUOTA trvá približne 2 hodiny – v závislosti od počtu zariadení, nakonfigurovanej hodnoty Unicast retry count a nastavenia Fragmentation redundancy. Čas, počas ktorého je zariadenie v režime Class-C (Always On – prijímanie paketov FUOTA), je predvolene približne 30 až 60 minút.

Priebeh a stav FUOTA

FUOTA v ChirpStack prechádza nasledujúcimi krokmi, ktoré sú viditeľné na dashboarde nasadenia FUOTA:

  1. Vytvoriť multicastovú skupinu
  2. Pridať zariadenia do multicastovej skupiny
  3. Pridať brány do multicastovej skupiny

Kroky 1 až 3 prebehnú takmer okamžite. Dokumentujú iba interné nastavenie v ChirpStacku.

  1. Nastavenie multicastovej skupiny
  2. Nastavenie fragmentačnej relácie
  3. Nastavenie multicastovej relácie

Kroky 4 až 6 sa týkajú konfigurácie zariadení. ChirpStack sa pokúsi nakonfigurovať zariadenia pomocou downlinku. Ak to zlyhá, príslušný konfiguračný downlink sa zopakuje toľkokrát, koľko určuje hodnota Unicast retry count. Počas tohto času zariadenie funguje v bežnom režime. Stav jednotlivých zariadení v rámci FUOTA týkajúci sa týchto nastavovacích správ si môžete pozrieť na karte „Devices“ v nasadení FUOTA.

  1. Enqueue fragments: V rámci tohto interného procesu nastavenia sa fragmenty firmvéru v čase „Run at“ pridajú do frontu multicastovej skupiny.
  2. Delete multicast group: Multicastová skupina sa odstráni.
  3. Dokončiť nasadenie

Medzi krokmi 7 a 8 prebehne FUOTA. Zariadenia sú počas času Multicast timeout v režime Class-C a zostávajú nepretržite aktívne. Počas tohto času nevysielajú bežné správy, ale prijímajú jednotlivé fragmenty firmvéru. Spotreba energie zariadení je preto v tomto období vyššia. Čas Multicast timeout musí byť dostatočne dlhý, aby sa stihli preniesť všetky fragmenty firmvéru. Nastavenie FUOTA Calculate multicast-timeout vypočíta potrebný čas na základe hodnoty Fragment size, respektíve súboru firmvéru v položke Payload.

Po uplynutí času multicast-timeout alebo po prijatí všetkých fragmentov sa zariadenie reštartuje a pri úspešnom FUOTA spustí nový firmvér.

Voliteľné

Nastavenie FUOTA Fragmentation status request zisťuje stav fragmentácie v dvoch vybraných časoch. Výsledok si môžete pozrieť na karte „Devices“ v nasadení FUOTA.