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.
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:
- Vytvořit multicastovou skupinu
- Přidat zařízení do multicastové skupiny
- Přidat brány do multicastové skupiny
Kroky 1 až 3 proběhnou téměř okamžitě. Pouze dokumentují interní nastavení v ChirpStacku.
- Nastavení multicastové skupiny
- Nastavení fragmentační relace
- 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.
- Enqueue fragments: V rámci tohoto interního procesu nastavení se fragmenty firmwaru přidají do fronty multicastové skupiny pro čas „Run at“.
- Delete multicast group: Multicastová skupina se odstraní.
- 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.
