FUOTA (aggiornamento del firmware via etere) con ChirpStack

I passaggi seguenti descrivono la configurazione e l'esecuzione degli aggiornamenti del firmware (FUOTA) per i dispositivi finali LoRaWAN utilizzando il ChirpStack Application Server.

Prerequisiti

Prima di iniziare, assicurati che siano soddisfatti i seguenti prerequisiti:

  • Un server ChirpStack v4 installato e in esecuzione.
  • Il nuovo file firmware come .sbin-file.
  • I dispositivi sono connessi al server ChirpStack.
  • Per i tuoi dispositivi, nel Profilo del dispositivo è configurato come Intervallo uplink previsto (s) il tempo di sospensione dei dispositivi. Il valore predefinito sarebbe 300 s. Ulteriori dettagli sulle impostazioni del Profilo del dispositivo sono riportati più avanti.
  • I dispositivi hanno una carica sufficiente della batteria. Consigliamo di eseguire il FUOTA durante il giorno, quando c'è luce solare.
  • I dispositivi si trovano in una zona con una buona copertura radio. Consigliamo di avvicinare i dispositivi a un gateway.

Configurazione

Profilo del dispositivo

Per il profilo del dispositivo sono importanti i seguenti parametri:

Generale

  • Regione: EU868
  • Versione MAC: LoRaWAN 1.0.4
  • Versione dei parametri regionali: RP002-1.0.1
  • Intervallo uplink previsto (s): tempo di sospensione del dispositivo - predefinito 300 s

Livello applicazione

  • Versione della sincronizzazione dell'orologio (TS003): v1.0.0
  • Porta fPort per la sincronizzazione dell'orologio (TS003): 202
  • Trasporto del blocco dati frammentato (TS004): v1.0.0
  • Porta fPort per il trasporto del blocco dati frammentato (TS004): 201
  • Versione della configurazione multicast remota (TS005): v1.0.0
  • Porta fPort per la configurazione multicast remota (TS005): 200

1. Creare un deployment FUOTA di ChirpStack

Per prima cosa è necessario creare un nuovo deployment FUOTA. Questa opzione si trova nell'applicazione ChirpStack in cui si trova il tuo dispositivo. ChirpStack crea automaticamente il gruppo multicast per il FUOTA. Impostazioni del deployment FUOTA di ChirpStack Si consigliano le seguenti impostazioni:

  • Numero massimo di tentativi unicast: 5
  • Data rate multicast: 4 (in base alla distanza dei dispositivi)
  • Ridondanza della frammentazione (%): 25%
  • Timeout multicast: 4096 s
  • Dimensione del frammento (multiplo di 8): 192 byte
  • Payload: il nuovo firmware (.sbin)

2. Aggiungere i dispositivi al deployment

Tutti i dispositivi che devono ricevere lo stesso firmware possono essere aggiornati contemporaneamente. Nella panoramica dei dispositivi dell'applicazione, è possibile selezionare i dispositivi tramite il pulsante Dispositivo selezionato essere aggiunto a un deployment FUOTA.

3. Aggiungere i gateway al deployment

Analogamente ai dispositivi, anche i gateway corrispondenti devono essere aggiunti al deployment FUOTA.

4. Avviare il FUOTA

Una volta configurato il FUOTA e aggiunti al deployment FUOTA tutti i dispositivi desiderati e i gateway interessati, è possibile avviare il FUOTA.

Nota: L’intero processo FUOTA dura circa 2 ore, a seconda del numero di dispositivi, del valore configurato per Unicast retry count e di Fragmentation redundancy. Il periodo durante il quale il dispositivo si trova in modalità Class-C (Always On – ricezione dei pacchetti FUOTA) dura normalmente circa 30–60 minuti.

Processo e stato del FUOTA

Il FUOTA di ChirpStack prevede i seguenti passaggi, visibili nella dashboard del deployment FUOTA:

  1. Creazione del gruppo multicast
  2. Aggiunta dei dispositivi al gruppo multicast
  3. Aggiunta dei gateway al gruppo multicast

I passaggi da 1 a 3 vengono eseguiti quasi immediatamente. Documentano solo la configurazione interna in ChirpStack.

  1. Configurazione del gruppo multicast
  2. Configurazione della sessione di frammentazione
  3. Configurazione della sessione multicast

I passaggi dal 4 al 6 riguardano la configurazione dei dispositivi. ChirpStack tenta di configurare i dispositivi tramite downlink. Se l’operazione non riesce, il downlink di configurazione viene ripetuto per il numero di volte indicato in Unicast retry count. Durante questo periodo il dispositivo rimane in modalità operativa normale. Lo stato dei singoli dispositivi nel FUOTA per quanto riguarda questi messaggi di configurazione può essere visualizzato nella scheda "Devices" del deployment FUOTA.

  1. Enqueue fragments: Nell’ambito di questo processo interno di configurazione, i frammenti del firmware vengono aggiunti alla coda del gruppo multicast all’ora indicata in "Run at".
  2. Delete multicast group: Il gruppo multicast viene eliminato.
  3. Completamento del deployment

Tra il passaggio 7 e il passaggio 8 viene eseguito il FUOTA. I dispositivi rimangono in modalità Class-C e permanentemente attivi per la durata del Multicast timeout. Durante questo periodo non inviano messaggi normali, ma ricevono i singoli frammenti del firmware. Di conseguenza, anche il consumo energetico dei dispositivi aumenta in questo periodo. Il valore di Multicast timeout deve essere sufficientemente elevato per consentire la ricezione di tutti i frammenti del firmware entro il tempo disponibile. L’impostazione FUOTA Calculate multicast-timeout calcola il tempo necessario in base a Fragment size e al file del firmware in Payload.

Dopo la scadenza del multicast-timeout o quando tutti i frammenti sono stati ricevuti, il dispositivo si riavvia e, se il FUOTA è andato a buon fine, si avvia con il nuovo firmware.

Facoltativo

L’impostazione FUOTA Fragmentation status request richiede lo stato della frammentazione in due momenti selezionabili. Il risultato può essere visualizzato nella scheda "Devices" del deployment FUOTA.