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.
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:
- Vytvoriť multicastovú skupinu
- Pridať zariadenia do multicastovej skupiny
- Pridať brány do multicastovej skupiny
Kroky 1 až 3 prebehnú takmer okamžite. Dokumentujú iba interné nastavenie v ChirpStacku.
- Nastavenie multicastovej skupiny
- Nastavenie fragmentačnej relácie
- 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.
- Enqueue fragments: V rámci tohto interného procesu nastavenia sa fragmenty firmvéru v čase „Run at“ pridajú do frontu multicastovej skupiny.
- Delete multicast group: Multicastová skupina sa odstráni.
- 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.
