FUOTA (Kablosuz Firmware Güncellemesi) ile ChirpStack

Aşağıdaki adımlar, ChirpStack Application Server kullanılarak LoRaWAN uç cihazları için ürün yazılımı güncellemelerinin (FUOTA) nasıl ayarlanıp gerçekleştirileceğini açıklar.

Ön koşullar

Başlamadan önce aşağıdaki ön koşulların karşılandığından emin olun:

  • Kurulu ve çalışır durumda bir ChirpStack v4 sunucusu.
  • Yeni ürün yazılımı .sbin-dosyası.
  • Cihazlar ChirpStack sunucusuna bağlıdır.
  • Cihazlarınızın Device Profile ayarındaki Expected uplink interval (secs) değeri, cihazlarınızın uyku süresi olarak yapılandırılmıştır. Varsayılan değer 300s olacaktır. Device Profile ayarlarıyla ilgili daha fazla ayrıntı aşağıda yer almaktadır.
  • Cihazların pil şarjı yeterlidir. FUOTA işlemini güneş ışığı altında, gündüz yapmanızı öneririz.
  • Cihazlar iyi bir radyo kapsama alanı içindedir. Cihazları bir ağ geçidinin yakınına getirmenizi öneririz.

Kurulum

Device Profile

Device Profile için aşağıdaki parametreler önemlidir:

Genel

  • Bölge: EU868
  • MAC sürümü: LoRaWAN 1.0.4
  • Bölgesel parametreler sürümü: RP002-1.0.1
  • Beklenen uplink aralığı (sn): cihazın uyku süresi - varsayılan 300 sn

Uygulama katmanı

  • Saat senkronizasyonu sürümü (TS003): v1.0.0
  • Saat senkronizasyonu fPort'u (TS003): 202
  • Parçalanmış veri bloğu aktarımı (TS004): v1.0.0
  • Parçalanmış veri bloğu aktarımı fPort'u (TS004): 201
  • Uzaktan çoklu yayın kurulumu sürümü (TS005): v1.0.0
  • Uzaktan çoklu yayın kurulumu fPort'u (TS005): 200

1. ChirpStack FUOTA dağıtımı oluşturma

Öncelikle yeni bir FUOTA dağıtımı oluşturulmalıdır. Bu seçenek, cihazının bulunduğu ChirpStack uygulamasında bulunur. ChirpStack, FUOTA için çoklu yayın grubunu otomatik olarak oluşturur. ChirpStack FUOTA dağıtım ayarları Aşağıdaki ayarlar önerilir:

  • Tekli yayın yeniden deneme sayısı (maks.): 5
  • Çoklu yayın veri hızı: 4 (cihazların mesafesine bağlı olarak)
  • Parçalanma yedekliliği (%): 25%
  • Çoklu yayın zaman aşımı: 4096 s
  • Parça boyutu (8'in katı): 192 bayt
  • Payload: yeni ürün yazılımı (.sbin)

2. Cihazları dağıtıma ekleme

Aynı ürün yazılımını alması gereken tüm uç cihazlar aynı anda güncellenebilir. Uygulamanın Devices genel görünümünde seçilen cihazlar, şu düğme üzerinden Seçili cihaz bir FUOTA dağıtımına eklenmelidir.

3. Ağ geçitlerini dağıtıma ekleme

Uç cihazlarda olduğu gibi, ilgili ağ geçitleri de FUOTA dağıtımına eklenmelidir.

4. FUOTA'yı başlatma

FUOTA yapılandırıldıktan, istenen tüm cihazlar ve etkilenen ağ geçitleri FUOTA dağıtımına eklendikten sonra FUOTA başlatılabilir.

Not: FUOTA sürecinin tamamı, cihaz sayısına, yapılandırılan Unicast retry count değerine ve Fragmentation redundancy değerine bağlı olarak yaklaşık 2 saat sürer. Cihazın Class-C modunda olduğu süre (Always On – FUOTA paketlerini alma) varsayılan olarak yaklaşık 30–60 dakikadır.

FUOTA süreci ve durumu

ChirpStack-FUOTA aşağıdaki adımlardan geçer; bu adımlar FUOTA deployment'ının kontrol panelinde görülebilir:

  1. Multicast grubu oluştur
  2. Cihazları multicast grubuna ekle
  3. Ağ geçitlerini multicast grubuna ekle

1. ile 3. adımlar neredeyse anında gerçekleşir. Bunlar yalnızca ChirpStack'teki dahili kurulumu belgeler.

  1. Multicast grubu kurulumu
  2. Fragmentation oturumu kurulumu
  3. Multicast oturumu kurulumu

4. ile 6. adımlar cihaz yapılandırmasıyla ilgilidir. ChirpStack, cihazları downlink üzerinden yapılandırmayı dener. Bu başarısız olursa ilgili yapılandırma downlink'i Unicast retry count sayısı kadar tekrarlanır. Bu süre boyunca cihaz normal çalışır. Cihazların FUOTA kapsamındaki bu kurulum mesajlarına ilişkin durumu, FUOTA deployment'ının "Devices" sekmesinden görüntülenebilir.

  1. Enqueue fragments: Bu dahili kurulum işlemi kapsamında ürün yazılımı parçaları, "Run at" zamanında multicast grubunun kuyruğuna eklenir.
  2. Delete multicast group: Multicast grubu silinir.
  3. Deployment'ı tamamla

7. ve 8. adımlar arasında FUOTA gerçekleştirilir. Cihazlar Multicast timeout süresi boyunca Class-C modunda ve sürekli uyanık durumda kalır. Bu süre içinde normal mesajlar göndermez, bunun yerine ürün yazılımının ayrı parçalarını alırlar. Buna bağlı olarak cihazların güç tüketimi de bu süre içinde artar. Tüm ürün yazılımı parçalarının ayrılan süre içinde alınabilmesi için Multicast timeout süresi yeterince uzun olmalıdır. FUOTA ayarı Calculate multicast-timeout, Fragment size veya Payload içindeki ürün yazılımı dosyasını temel alarak gerekli süreyi hesaplar.

multicast-timeout süresi dolduğunda veya tüm parçalar alındığında cihaz yeniden başlatılır ve FUOTA başarılı olduysa yeni ürün yazılımıyla başlatılır.

İsteğe bağlı

FUOTA ayarı Fragmentation status request, seçilebilen iki zamanda Fragmentation durumunu sorgular. Buna ilişkin sonuç, FUOTA deployment'ının "Devices" sekmesinden görüntülenebilir.