FUOTA (aktualizace firmwaru vzduchem) s ChirpStackem

Následující kroky popisují nastavení a provedení aktualizací firmwaru (FUOTA) pro koncová zařízení LoRaWAN pomocí ChirpStack Application Serveru.

Předpoklady

Než začnete, ujistěte se, že jsou splněny následující předpoklady:

  • Nainstalovaný a spuštěný server ChirpStack v4.
  • Nový firmware jako .sbin-soubor.
  • Zařízení jsou připojena k serveru ChirpStack.
  • V Device Profile pro vaše zařízení je jako Expected uplink interval (secs) nastavená doba spánku zařízení. Výchozí hodnota je 300s. Další podrobnosti o nastavení Device Profile najdete níže.
  • Zařízení mají dostatečně nabitou baterii. Doporučujeme provádět FUOTA během dne a při slunečním svitu.
  • Zařízení se nacházejí v dobrém dosahu rádiového signálu. Doporučujeme umístit zařízení do blízkosti brány.

Nastavení

Device Profile

Pro Device Profile jsou důležité následující parametry:

Obecné

  • Region: EU868
  • Verze MAC: LoRaWAN 1.0.4
  • Verze regionálních parametrů: RP002-1.0.1
  • Očekávaný interval uplinku (s): doba spánku zařízení – výchozí hodnota 300 s

Aplikační vrstva

  • Verze synchronizace času (TS003): v1.0.0
  • Port pro synchronizaci času (TS003): 202
  • Přenos fragmentovaných datových bloků (TS004): v1.0.0
  • Port pro přenos fragmentovaných datových bloků (TS004): 201
  • Verze vzdáleného nastavení multicastu (TS005): v1.0.0
  • Port pro vzdálené nastavení multicastu (TS005): 200

1. Vytvoření ChirpStack FUOTA deploymentu

Nejprve je třeba vytvořit nový FUOTA deployment. Tuto možnost najdete v aplikaci ChirpStack, ve které se vaše zařízení nachází. ChirpStack přitom automaticky vytvoří multicastovou skupinu pro FUOTA. Nastavení ChirpStack FUOTA deploymentu Doporučujeme následující nastavení:

  • Maximální počet opakování unicastu: 5
  • Multicast data-rate: 4 (v závislosti na vzdálenosti zařízení)
  • Nadbytečnost fragmentace (%): 25%
  • Časový limit multicastu: 4096 s
  • Velikost fragmentu (násobek 8): 192 bajtů
  • Payload: nový firmware (.sbin)

2. Přidání zařízení do deploymentu

Všechna koncová zařízení, která mají obdržet stejný firmware, lze aktualizovat současně. V přehledu Devices v aplikaci lze vybraná zařízení pomocí tlačítka Vybrané zařízení přidat do FUOTA deploymentu.

3. Přidání bran do deploymentu

Stejně jako koncová zařízení je třeba do FUOTA deploymentu přidat také příslušné brány.

4. Spuštění FUOTA

Jakmile je FUOTA nakonfigurováno a do FUOTA deploymentu jsou přidána všechna požadovaná koncová zařízení a příslušné brány, lze FUOTA spustit.

Upozornění: Celý proces FUOTA trvá přibližně 2 hodiny – v závislosti na počtu zařízení, nakonfigurovaném Unicast retry count a hodnotě Fragmentation redundancy. Doba, po kterou je zařízení v režimu Class C (Always On – přijímání paketů FUOTA), je ve výchozím nastavení přibližně 30–60 minut.

Průběh a stav FUOTA

FUOTA v ChirpStacku prochází následujícími kroky, které jsou viditelné na nástěnce nasazení FUOTA:

  1. Vytvořit multicastovou skupinu
  2. Přidat zařízení do multicastové skupiny
  3. Přidat brány do multicastové skupiny

Kroky 1 až 3 proběhnou téměř okamžitě. Pouze dokumentují interní nastavení v ChirpStacku.

  1. Nastavení multicastové skupiny
  2. Nastavení fragmentační relace
  3. Nastavení multicastové relace

Kroky 4 až 6 se týkají konfigurace zařízení. ChirpStack se pokusí zařízení nakonfigurovat pomocí downlinku. Pokud se to nepodaří, příslušný konfigurační downlink se zopakuje tolikrát, kolik určuje Unicast retry count. Během této doby zařízení funguje v běžném režimu. Stav jednotlivých zařízení v rámci FUOTA týkající se těchto nastavovacích zpráv lze zobrazit na kartě „Devices“ v nasazení FUOTA.

  1. Enqueue fragments: V rámci tohoto interního procesu nastavení se fragmenty firmwaru přidají do fronty multicastové skupiny pro čas „Run at“.
  2. Delete multicast group: Multicastová skupina se odstraní.
  3. Dokončit nasazení

Mezi kroky 7 a 8 proběhne FUOTA. Zařízení jsou po dobu Multicast timeout v režimu Class C a zůstávají trvale aktivní. Během této doby neodesílají běžné zprávy, ale přijímají jednotlivé fragmenty firmwaru. Spotřeba energie zařízení je proto v tomto období vyšší. Doba Multicast timeout musí být dostatečně dlouhá, aby bylo možné včas přijmout všechny fragmenty firmwaru. Nastavení FUOTA Calculate multicast-timeout vypočítá potřebnou dobu na základě Fragment size, respektive souboru firmwaru v poli Payload.

Po uplynutí multicast-timeout nebo po přijetí všech fragmentů se zařízení restartuje a při úspěšném FUOTA spustí nový firmware.

Volitelné

Nastavení FUOTA Fragmentation status request zjišťuje stav fragmentace ve dvou vybraných okamžicích. Výsledek lze zobrazit na kartě „Devices“ v rámci nasazení FUOTA.