FUOTA (bežično ažuriranje firmvera) uz ChirpStack
Sljedeći koraci opisuju postavljanje i provođenje ažuriranja firmwarea (FUOTA) za LoRaWAN krajnje uređaje uz upotrebu ChirpStack aplikacijskog poslužitelja.
Preduvjeti
Prije početka provjeri jesu li ispunjeni sljedeći preduvjeti:
- Instaliran i pokrenut poslužitelj ChirpStack v4.
- Nova datoteka firmwarea kao
.sbin-datoteka. - Uređaji su povezani s poslužiteljem ChirpStack.
- U profilu uređaja za tvoje je uređaje kao očekivani interval uplinka (sekunde) konfigurirano vrijeme mirovanja uređaja. Zadana vrijednost bila bi
300 s. Više pojedinosti o postavkama profila uređaja nalazi se u nastavku. - Uređaji imaju dovoljnu razinu napunjenosti baterije. Preporučujemo da FUOTA-u provedeš tijekom dana, kada ima sunčeve svjetlosti.
- Uređaji se nalaze u dobrom radijskom dometu. Preporučujemo da uređaje približiš pristupniku.
Postavljanje
Profil uređaja
Za profil uređaja važni su sljedeći parametri:
Općenito
- Regija:
EU868 - MAC verzija:
LoRaWAN 1.0.4 - Verzija regionalnih parametara:
RP002-1.0.1 - Očekivani interval uplinka (sekunde): vrijeme mirovanja uređaja – zadano
300 s
Aplikacijski sloj
- Verzija sinkronizacije sata (TS003):
v1.0.0 - Ulazni priključak za sinkronizaciju sata (TS003):
202 - Prijenos fragmentiranog bloka podataka (TS004):
v1.0.0 - Ulazni priključak za prijenos fragmentiranog bloka podataka (TS004):
201 - Verzija udaljenog postavljanja multicast komunikacije (TS005):
v1.0.0 - Ulazni priključak za udaljeno postavljanje multicast komunikacije (TS005):
200
1. Izrada ChirpStack FUOTA implementacije
Najprije treba izraditi novu FUOTA implementaciju. Ta se opcija nalazi u ChirpStack aplikaciji u kojoj se nalazi tvoj uređaj. ChirpStack pritom automatski izrađuje multicast grupu za FUOTA-u.
Preporučuju se sljedeće postavke:
- Maksimalan broj ponovnih pokušaja unicast komunikacije:
5 - Multicast podatkovna brzina:
4(ovisno o udaljenosti uređaja) - Redundancija fragmentacije (%):
25% - Multicast vremensko ograničenje:
4096 s - Veličina fragmenta (višekratnik broja 8):
192 bajta - Payload: novi firmware (
.sbin)
2. Dodavanje uređaja u implementaciju
Svi krajnji uređaji koji trebaju primiti isti firmware mogu se ažurirati istodobno. U pregledu Devices u aplikaciji odabrani uređaji mogu se pomoću gumba Odabrani uređaj dodati u FUOTA implementaciju.
3. Dodavanje pristupnika u implementaciju
Kao i krajnji uređaji, odgovarajući pristupnici također se moraju dodati u FUOTA implementaciju.
4. Pokretanje FUOTA-e
Nakon što je FUOTA konfiguriran te su svi željeni krajnji uređaji i zahvaćeni pristupnici dodani u FUOTA implementaciju, FUOTA se može pokrenuti.
Napomena: Cijeli FUOTA postupak traje približno 2 sata – ovisno o broju uređaja, konfiguriranoj vrijednosti Unicast retry count i postavci Fragmentation redundancy. Vrijeme tijekom kojeg je uređaj u načinu rada Class-C (Always On – primanje FUOTA paketa) prema zadanim postavkama iznosi približno 30–60 minuta.
Tijek i status FUOTA-e
FUOTA u sustavu ChirpStack prolazi kroz sljedeće korake, koji su vidljivi na nadzornoj ploči FUOTA deploymenta:
- Izrada multicastne grupe
- Dodavanje uređaja u multicastnu grupu
- Dodavanje pristupnika u multicastnu grupu
Koraci od 1 do 3 odvijaju se gotovo odmah. Oni samo dokumentiraju interno postavljanje u ChirpStacku.
- Postavljanje multicastne grupe
- Postavljanje sesije fragmentacije
- Postavljanje multicast sesije
Koraci od 4 do 6 odnose se na konfiguraciju uređaja. ChirpStack pokušava konfigurirati uređaje putem downlinka. Ako to ne uspije, odgovarajući konfiguracijski downlink ponavlja se onoliko puta koliko je navedeno u postavci Unicast retry count. U tom je razdoblju uređaj u uobičajenom radu. Status pojedinačnih uređaja u FUOTA-i u vezi s tim porukama za postavljanje može se vidjeti na kartici „Devices” u FUOTA deploymentu.
- Enqueue fragments: U okviru ovog internog postupka postavljanja fragmenti firmwarea dodaju se u red čekanja multicastne grupe u trenutku „Run at”.
- Delete multicast group: Multicastna grupa se briše.
- Dovršavanje deploymenta
Između koraka 7 i 8 provodi se FUOTA. Uređaji su tijekom vremena Multicast timeout u načinu rada Class-C i stalno su aktivni. Za to vrijeme ne šalju uobičajene poruke, nego primaju pojedinačne fragmente firmwarea. Stoga je i potrošnja energije uređaja u tom razdoblju povećana. Vrijeme Multicast timeout mora biti dovoljno dugo da se svi fragmenti firmwarea mogu prenijeti. Postavka FUOTA Calculate multicast-timeout izračunava potrebno vrijeme na temelju postavke Fragment size odnosno datoteke firmwarea u polju Payload.
Nakon isteka multicast-timeout ili nakon što se prime svi fragmenti, uređaj će se ponovno pokrenuti i, ako je FUOTA uspješan, pokrenuti s novim firmwareom.
Neobavezno
Postavka FUOTA Fragmentation status request dohvaća status fragmentacije u dva odabrana trenutka. Rezultat se može vidjeti na kartici „Devices” u FUOTA deploymentu.
