FUOTA (Ενημέρωση υλικολογισμικού μέσω ασύρματης σύνδεσης) με ChirpStack
Τα ακόλουθα βήματα περιγράφουν τη ρύθμιση και την εκτέλεση ενημερώσεων firmware (FUOTA) για τελικές συσκευές LoRaWAN με χρήση του ChirpStack Application Server.
Προϋποθέσεις
Πριν ξεκινήσεις, βεβαιώσου ότι πληρούνται οι ακόλουθες προϋποθέσεις:
- Ένας εγκατεστημένος και λειτουργικός διακομιστής ChirpStack v4.
- Το νέο αρχείο firmware ως
.sbin-αρχείο. - Οι συσκευές είναι συνδεδεμένες στον διακομιστή ChirpStack.
- Το Device Profile για τις συσκευές σου έχει ρυθμισμένο ως Expected uplink interval (secs) τον χρόνο αδράνειας των συσκευών σου. Η προεπιλεγμένη τιμή είναι
300s. Περισσότερες λεπτομέρειες σχετικά με τις ρυθμίσεις του Device Profile θα βρεις παρακάτω. - Οι συσκευές έχουν επαρκή φόρτιση μπαταρίας. Συνιστούμε να εκτελείτε το FUOTA κατά τη διάρκεια της ημέρας, με ηλιοφάνεια.
- Οι συσκευές βρίσκονται σε καλή εμβέλεια ασύρματης επικοινωνίας. Συνιστούμε να φέρετε τις συσκευές κοντά σε μια πύλη.
Ρύθμιση
Device Profile
Για το Device Profile είναι σημαντικές οι ακόλουθες παράμετροι:
Γενικά
- Περιοχή:
EU868 - Έκδοση MAC:
LoRaWAN 1.0.4 - Έκδοση περιφερειακών παραμέτρων:
RP002-1.0.1 - Αναμενόμενο διάστημα uplink (δευτ.): χρόνος αδράνειας της συσκευής - προεπιλογή
300 δευτ.
Επίπεδο εφαρμογής
- Έκδοση συγχρονισμού ρολογιού (TS003):
v1.0.0 - Θύρα fPort συγχρονισμού ρολογιού (TS003):
202 - Μεταφορά κατακερματισμένων μπλοκ δεδομένων (TS004):
v1.0.0 - Θύρα fPort μεταφοράς κατακερματισμένων μπλοκ δεδομένων (TS004):
201 - Έκδοση απομακρυσμένης ρύθμισης multicast (TS005):
v1.0.0 - Θύρα fPort απομακρυσμένης ρύθμισης multicast (TS005):
200
1. Δημιουργία ChirpStack FUOTA Deployment
Αρχικά πρέπει να δημιουργηθεί ένα νέο FUOTA deployment. Αυτή η επιλογή βρίσκεται στην εφαρμογή ChirpStack όπου βρίσκεται η συσκευή σου. Το ChirpStack δημιουργεί αυτόματα την ομάδα multicast για το FUOTA.
Συνιστώνται οι ακόλουθες ρυθμίσεις:
- Μέγιστος αριθμός επαναλήψεων unicast:
5 - Ρυθμός δεδομένων multicast:
4(ανάλογα με την απόσταση των συσκευών) - Πλεονασμός κατακερματισμού (%):
25% - Χρονικό όριο multicast:
4096 s - Μέγεθος τμήματος (πολλαπλάσιο του 8):
192 byte - Payload: το νέο firmware (
.sbin)
2. Προσθήκη συσκευών στο Deployment
Όλες οι τελικές συσκευές που πρέπει να λάβουν το ίδιο firmware μπορούν να ενημερωθούν ταυτόχρονα. Στην επισκόπηση Devices της εφαρμογής, μπορείτε να επιλέξετε συσκευές μέσω του κουμπιού Επιλεγμένη συσκευή να προστεθεί σε ένα FUOTA Deployment.
3. Προσθήκη πυλών στο Deployment
Όπως και οι τελικές συσκευές, έτσι και οι αντίστοιχες πύλες πρέπει να προστεθούν στο FUOTA Deployment.
4. Έναρξη FUOTA
Αφού ρυθμιστεί το FUOTA και προστεθούν στο FUOTA Deployment όλες οι επιθυμητές τελικές συσκευές και οι επηρεαζόμενες πύλες, μπορεί να ξεκινήσει το FUOTA.
Σημείωση: Η πλήρης διαδικασία FUOTA διαρκεί περίπου 2 ώρες – ανάλογα με τον αριθμό των συσκευών, το διαμορφωμένο Unicast retry count και το Fragmentation redundancy. Ο χρόνος κατά τον οποίο η συσκευή βρίσκεται σε λειτουργία Class-C (Always On – λήψη των πακέτων FUOTA) ανέρχεται από προεπιλογή περίπου σε 30–60 λεπτά.
Διαδικασία και κατάσταση FUOTA
Το FUOTA του ChirpStack περιλαμβάνει τα ακόλουθα βήματα, τα οποία εμφανίζονται στον πίνακα ελέγχου του FUOTA deployment:
- Δημιουργία ομάδας multicast
- Προσθήκη συσκευών στην ομάδα multicast
- Προσθήκη gateways στην ομάδα multicast
Τα βήματα 1 έως 3 πραγματοποιούνται σχεδόν αμέσως. Καταγράφουν μόνο την εσωτερική ρύθμιση στο ChirpStack.
- Ρύθμιση ομάδας multicast
- Ρύθμιση συνεδρίας κατακερματισμού
- Ρύθμιση συνεδρίας multicast
Τα βήματα 4 έως 6 αφορούν τη διαμόρφωση των συσκευών. Το ChirpStack επιχειρεί να διαμορφώσει τις συσκευές μέσω downlink. Αν αυτό αποτύχει, το αντίστοιχο downlink διαμόρφωσης επαναλαμβάνεται όσες φορές ορίζει το Unicast retry count. Κατά τη διάρκεια αυτή, η συσκευή λειτουργεί κανονικά. Η κατάσταση των επιμέρους συσκευών στο FUOTA σχετικά με αυτά τα μηνύματα ρύθμισης μπορεί να εμφανιστεί στην καρτέλα "Devices" του FUOTA deployment.
- Enqueue fragments: Στο πλαίσιο αυτής της εσωτερικής διαδικασίας ρύθμισης, τα τμήματα του firmware προστίθενται στην ουρά της ομάδας multicast κατά τη χρονική στιγμή "Run at".
- Delete multicast group: Η ομάδα multicast διαγράφεται.
- Ολοκλήρωση deployment
Μεταξύ του βήματος 7 και 8 πραγματοποιείται το FUOTA. Οι συσκευές παραμένουν σε λειτουργία Class-C και μόνιμα ενεργές για όσο διαρκεί το Multicast timeout. Κατά τη διάρκεια αυτή δεν αποστέλλουν κανονικά μηνύματα, αλλά λαμβάνουν τα επιμέρους τμήματα του firmware. Κατά συνέπεια, η κατανάλωση ενέργειας των συσκευών είναι αυξημένη. Ο χρόνος Multicast timeout πρέπει να είναι αρκετά μεγάλος, ώστε να υπάρχει επαρκής χρόνος για τη λήψη όλων των τμημάτων του firmware. Η ρύθμιση FUOTA Calculate multicast-timeout υπολογίζει τον απαιτούμενο χρόνο με βάση το Fragment size ή το αρχείο firmware στο Payload.
Μετά τη λήξη του multicast-timeout ή όταν έχουν ληφθεί όλα τα τμήματα, η συσκευή θα επανεκκινήσει και, εφόσον το FUOTA ολοκληρωθεί επιτυχώς, θα εκκινήσει με το νέο firmware.
Προαιρετικό
Η ρύθμιση FUOTA Fragmentation status request ζητά την κατάσταση κατακερματισμού σε δύο επιλεγόμενες χρονικές στιγμές. Το αποτέλεσμα μπορεί να εμφανιστεί στην καρτέλα "Devices" του FUOTA deployment.
