FUOTA (aktualizacja oprogramowania sprzętowego drogą radiową) z ChirpStackiem

Poniższe kroki opisują konfigurację i przeprowadzanie aktualizacji oprogramowania układowego (FUOTA) dla urządzeń końcowych LoRaWAN z użyciem serwera aplikacji ChirpStack.

Wymagania

Przed rozpoczęciem upewnij się, że spełnione są następujące wymagania:

  • Zainstalowany i uruchomiony serwer ChirpStack v4.
  • Nowy plik oprogramowania układowego jako .sbin-plik.
  • Urządzenia są połączone z serwerem ChirpStack.
  • W profilu urządzenia dla Twoich urządzeń jako oczekiwany interwał uplinku (s) skonfigurowano czas uśpienia urządzeń. Wartość domyślna to 300 s. Więcej informacji o ustawieniach profilu urządzenia znajduje się poniżej.
  • Urządzenia mają wystarczający poziom naładowania baterii. Zalecamy przeprowadzanie FUOTA w ciągu dnia, przy świetle słonecznym.
  • Urządzenia znajdują się w zasięgu dobrej łączności radiowej. Zalecamy umieszczenie urządzeń blisko bramy.

Konfiguracja

Profil urządzenia

W profilu urządzenia ważne są następujące parametry:

Ogólne

  • Region: EU868
  • Wersja MAC: LoRaWAN 1.0.4
  • Wersja parametrów regionalnych: RP002-1.0.1
  • Oczekiwany interwał uplinku (s): czas uśpienia urządzenia — wartość domyślna 300 s

Warstwa aplikacji

  • Wersja synchronizacji zegara (TS003): v1.0.0
  • Port synchronizacji zegara (TS003): 202
  • Transport pofragmentowanych bloków danych (TS004): v1.0.0
  • Port transportu pofragmentowanych bloków danych (TS004): 201
  • Wersja zdalnej konfiguracji multicastu (TS005): v1.0.0
  • Port konfiguracji zdalnego multicastu (TS005): 200

1. Tworzenie wdrożenia FUOTA w ChirpStack

Najpierw należy utworzyć nowe wdrożenie FUOTA. Opcję tę można znaleźć w aplikacji ChirpStack, w której znajduje się Twoje urządzenie. ChirpStack automatycznie utworzy grupę multicast dla FUOTA. Ustawienia wdrożenia FUOTA w ChirpStack Zalecane są następujące ustawienia:

  • Maksymalna liczba ponowień unicast: 5
  • Przepływność danych multicast: 4 (zależnie od odległości urządzeń)
  • Nadmiarowość fragmentacji (%): 25%
  • Limit czasu multicast: 4096 s
  • Rozmiar fragmentu (wielokrotność 8): 192 bajty
  • Ładunek: nowe oprogramowanie układowe (.sbin)

2. Dodawanie urządzeń do wdrożenia

Wszystkie urządzenia końcowe, które powinny otrzymać to samo oprogramowanie układowe, można aktualizować jednocześnie. W widoku urządzeń aplikacji wybrane urządzenia można wybrać za pomocą przycisku Wybrane urządzenie do wdrożenia FUOTA.

3. Dodawanie bram do wdrożenia

Podobnie jak urządzenia końcowe, odpowiednie bramy również należy dodać do wdrożenia FUOTA.

4. Uruchomienie FUOTA

Jeśli FUOTA zostało skonfigurowane oraz wszystkie żądane urządzenia końcowe i odpowiednie bramy zostały dodane do wdrożenia FUOTA, można je uruchomić.

Uwaga: Cały proces FUOTA trwa około 2 godzin — w zależności od liczby urządzeń, skonfigurowanej wartości Unicast retry count oraz parametru Fragmentation redundancy. Czas, przez który urządzenie działa w trybie Class-C (Always On — odbieranie pakietów FUOTA), wynosi standardowo około 30–60 minut.

Przebieg i stan FUOTA

FUOTA w ChirpStack przebiega według następujących kroków, które można zobaczyć na pulpicie wdrożenia FUOTA:

  1. Utwórz grupę multicastową
  2. Dodaj urządzenia do grupy multicastowej
  3. Dodaj bramy do grupy multicastowej

Kroki od 1 do 3 odbywają się niemal natychmiast. Dokumentują jedynie wewnętrzną konfigurację w ChirpStack.

  1. Konfiguracja grupy multicastowej
  2. Konfiguracja sesji fragmentacji
  3. Konfiguracja sesji multicastowej

Kroki od 4 do 6 dotyczą konfiguracji urządzeń. ChirpStack próbuje skonfigurować urządzenia za pomocą downlinku. Jeśli to się nie powiedzie, odpowiedni downlink konfiguracyjny zostanie powtórzony tyle razy, ile określono w polu Unicast retry count. W tym czasie urządzenie działa w zwykłym trybie. Stan poszczególnych urządzeń w ramach FUOTA w odniesieniu do tych komunikatów konfiguracyjnych można wyświetlić w karcie „Devices” wdrożenia FUOTA.

  1. Enqueue fragments: W ramach tego wewnętrznego procesu konfiguracji fragmenty oprogramowania układowego zostaną dodane do kolejki grupy multicastowej na czas określony w polu „Run at”.
  2. Delete multicast group: Grupa multicastowa zostanie usunięta.
  3. Zakończ wdrożenie

Między krokiem 7 a 8 przeprowadzany jest proces FUOTA. Urządzenia pozostają w trybie Class-C i są stale aktywne przez czas określony jako Multicast timeout. W tym czasie nie wysyłają zwykłych wiadomości, lecz odbierają poszczególne fragmenty oprogramowania układowego. W związku z tym zużycie energii urządzeń jest w tym okresie większe. Czas Multicast timeout musi być wystarczająco długi, aby wszystkie fragmenty oprogramowania układowego mogły zostać przesłane w wyznaczonym czasie. Ustawienie FUOTA Calculate multicast-timeout oblicza wymagany czas na podstawie wartości Fragment size lub pliku oprogramowania układowego w polu Payload.

Po upływie czasu multicast-timeout lub po odebraniu wszystkich fragmentów urządzenie uruchomi się ponownie, a jeśli FUOTA zakończy się powodzeniem, uruchomi nową wersję oprogramowania układowego.

Opcjonalnie

Ustawienie FUOTA Fragmentation status request sprawdza stan fragmentacji w dwóch wybranych momentach. Wynik można wyświetlić w karcie „Devices” wdrożenia FUOTA.