FUOTA (mise à jour du micrologiciel par liaison radio) avec ChirpStack

Les étapes suivantes décrivent la configuration et l’exécution des mises à jour du firmware (FUOTA) pour les appareils finaux LoRaWAN à l’aide du serveur d’application ChirpStack.

Conditions préalables

Avant de commencer, vérifie que les conditions suivantes sont remplies :

  • Un serveur ChirpStack v4 installé et en fonctionnement.
  • Le nouveau firmware sous forme de .sbin-fichier.
  • Les appareils sont connectés au serveur ChirpStack.
  • L’intervalle de liaison montante attendu (secondes) du profil de l’appareil de tes appareils est configuré sur leur durée de veille. La valeur par défaut est 300 s. Tu trouveras plus de détails sur les paramètres du profil de l’appareil plus bas.
  • Les appareils disposent d’une charge de batterie suffisante. Nous recommandons d’effectuer FUOTA pendant la journée, lorsque les appareils sont exposés au soleil.
  • Les appareils se trouvent dans une zone de bonne portée radio. Nous recommandons de rapprocher les appareils d’une passerelle.

Configuration

Profil de l’appareil

Les paramètres suivants sont importants pour le profil de l’appareil :

Général

  • Région : EU868
  • Version MAC : LoRaWAN 1.0.4
  • Version des paramètres régionaux : RP002-1.0.1
  • Intervalle de liaison montante attendu (secondes) : durée de veille de l’appareil – valeur par défaut 300 s

Couche applicative

  • Version de synchronisation de l’horloge (TS003) : v1.0.0
  • Port fPort de synchronisation de l’horloge (TS003) : 202
  • Transport des blocs de données fragmentés (TS004) : v1.0.0
  • Port fPort du transport des blocs de données fragmentés (TS004) : 201
  • Version de la configuration du multicast distant (TS005) : v1.0.0
  • Port fPort de configuration du multicast distant (TS005) : 200

1. Créer un déploiement FUOTA ChirpStack

Commence par créer un nouveau déploiement FUOTA. Cette option se trouve dans l’application ChirpStack où se trouve ton appareil. ChirpStack crée automatiquement le groupe multicast pour FUOTA. Paramètres du déploiement FUOTA ChirpStack Les paramètres suivants sont recommandés :

  • Nombre maximal de tentatives unicast : 5
  • Débit de données multicast : 4 (selon la distance entre les appareils)
  • Redondance de la fragmentation (%) : 25%
  • Délai d’attente multicast : 4096 s
  • Taille des fragments (multiple de 8) : 192 octets
  • Payload : le nouveau firmware (.sbin)

2. Ajouter des appareils au déploiement

Tous les appareils finaux qui doivent recevoir le même firmware peuvent être mis à jour simultanément. Dans la vue Devices de l’application, certains appareils peuvent être sélectionnés via le bouton Appareil sélectionné ajouté à un déploiement FUOTA.

3. Ajouter des passerelles au déploiement

Comme pour les appareils finaux, les passerelles correspondantes doivent également être ajoutées au déploiement FUOTA.

4. Démarrer FUOTA

Une fois FUOTA configuré et tous les appareils finaux souhaités ainsi que les passerelles concernées ajoutés au déploiement FUOTA, celui-ci peut être démarré.

Remarque : Le processus FUOTA complet dure environ 2 heures, selon le nombre d’appareils, la valeur configurée pour Unicast retry count et la Fragmentation redundancy. La durée pendant laquelle l’appareil est en mode Class-C (Always On – réception des paquets FUOTA) est par défaut d’environ 30 à 60 minutes.

Déroulement et statut du FUOTA

Le FUOTA de ChirpStack se déroule selon les étapes suivantes, visibles dans le tableau de bord du déploiement FUOTA :

  1. Créer un groupe multicast
  2. Ajouter des appareils au groupe multicast
  3. Ajouter des passerelles au groupe multicast

Les étapes 1 à 3 se déroulent presque instantanément. Elles documentent uniquement la configuration interne dans ChirpStack.

  1. Configuration du groupe multicast
  2. Configuration de la session de fragmentation
  3. Configuration de la session multicast

Les étapes 4 à 6 concernent la configuration des appareils. ChirpStack tente de configurer les appareils par downlink. En cas d’échec, le downlink de configuration concerné est répété selon le nombre indiqué par Unicast retry count. Pendant cette période, l’appareil fonctionne normalement. Le statut de chaque appareil dans le FUOTA concernant ces messages de configuration peut être consulté dans l’onglet « Devices » du déploiement FUOTA.

  1. Enqueue fragments: Dans le cadre de ce processus interne de configuration, les fragments du firmware sont ajoutés à la file d’attente du groupe multicast à l’heure indiquée par « Run at ».
  2. Delete multicast group: Le groupe multicast est supprimé.
  3. Déploiement terminé

Le FUOTA est effectué entre les étapes 7 et 8. Les appareils restent en mode Class-C et constamment actifs pendant la durée du Multicast timeout. Pendant cette période, ils n’envoient pas de messages normaux, mais reçoivent les différents fragments du firmware. Leur consommation d’énergie est donc également plus élevée durant cette période. La durée du Multicast timeout doit être suffisamment longue pour permettre la transmission de tous les fragments du firmware. Le paramètre FUOTA Calculate multicast-timeout calcule la durée nécessaire à partir de la Fragment size ou du fichier du firmware dans le Payload.

À l’expiration du multicast-timeout ou après la réception de tous les fragments, l’appareil redémarre et, si le FUOTA a réussi, démarre avec le nouveau firmware.

Facultatif

Le paramètre FUOTA Fragmentation status request demande le statut de fragmentation à deux moments sélectionnables. Le résultat peut être consulté dans l’onglet « Devices » du déploiement FUOTA.