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. Postavke ChirpStack FUOTA implementacije 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:

  1. Izrada multicastne grupe
  2. Dodavanje uređaja u multicastnu grupu
  3. Dodavanje pristupnika u multicastnu grupu

Koraci od 1 do 3 odvijaju se gotovo odmah. Oni samo dokumentiraju interno postavljanje u ChirpStacku.

  1. Postavljanje multicastne grupe
  2. Postavljanje sesije fragmentacije
  3. 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.

  1. Enqueue fragments: U okviru ovog internog postupka postavljanja fragmenti firmwarea dodaju se u red čekanja multicastne grupe u trenutku „Run at”.
  2. Delete multicast group: Multicastna grupa se briše.
  3. 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.