FUOTA (actualización de firmware por vía inalámbrica) con ChirpStack
Los siguientes pasos describen la configuración y ejecución de actualizaciones de firmware (FUOTA) para dispositivos finales LoRaWAN mediante el servidor de aplicaciones ChirpStack.
Requisitos
Antes de comenzar, asegúrate de que se cumplen los siguientes requisitos:
- Un servidor ChirpStack v4 instalado y en funcionamiento.
- El nuevo archivo de firmware como
.sbin-archivo. - Los dispositivos están conectados al servidor de ChirpStack.
- El Perfil del dispositivo de tus dispositivos tiene configurado como Intervalo de enlace ascendente esperado (segundos) el tiempo de reposo de tus dispositivos. El valor predeterminado sería
300 s. Encontrarás más detalles sobre los ajustes del perfil del dispositivo más abajo. - Los dispositivos tienen suficiente carga de batería. Recomendamos realizar el FUOTA durante el día y con luz solar.
- Los dispositivos se encuentran dentro de un buen alcance de radio. Recomendamos acercar los dispositivos a un gateway.
Configuración
Perfil del dispositivo
Para el perfil del dispositivo son importantes los siguientes parámetros:
General
- Región:
EU868 - Versión de MAC:
LoRaWAN 1.0.4 - Versión de los parámetros regionales:
RP002-1.0.1 - Intervalo de enlace ascendente esperado (segundos): tiempo de reposo del dispositivo (valor predeterminado)
300 s
Capa de aplicación
- Versión de sincronización del reloj (TS003):
v1.0.0 - Puerto fPort de sincronización del reloj (TS003):
202 - Transporte de bloques de datos fragmentados (TS004):
v1.0.0 - Puerto fPort de transporte de bloques de datos fragmentados (TS004):
201 - Versión de configuración remota de multidifusión (TS005):
v1.0.0 - Puerto fPort de configuración remota de multidifusión (TS005):
200
1. Crear un despliegue FUOTA de ChirpStack
Primero debe crearse un nuevo despliegue FUOTA. Esta opción se encuentra en la aplicación de ChirpStack en la que está tu dispositivo. ChirpStack crea automáticamente el grupo de multidifusión para el FUOTA.
Se recomiendan los siguientes ajustes:
- Número máximo de reintentos de unidifusión:
5 - Velocidad de datos de multidifusión:
4(depende de la distancia de los dispositivos) - Redundancia de fragmentación (%):
25% - Tiempo de espera de multidifusión:
4096 s - Tamaño del fragmento (múltiplo de 8):
192 bytes - Carga útil: el nuevo firmware (
.sbin)
2. Añadir dispositivos al despliegue
Todos los dispositivos finales que deban recibir el mismo firmware pueden actualizarse simultáneamente. En la vista general de dispositivos de la aplicación, se pueden seleccionar dispositivos mediante el botón Dispositivo seleccionado añadirse a un despliegue de FUOTA.
3. Añadir gateways al despliegue
Al igual que los dispositivos finales, también deben añadirse al despliegue de FUOTA los gateways correspondientes.
4. Iniciar FUOTA
Una vez configurado el FUOTA y añadidos al despliegue de FUOTA todos los dispositivos finales y gateways afectados, se puede iniciar el FUOTA.
Nota: El proceso completo de FUOTA dura aproximadamente 2 horas, en función del número de dispositivos, de Unicast retry count configurado y de Fragmentation redundancy. El tiempo durante el que el dispositivo permanece en modo Class-C (Always On: recepción de los paquetes FUOTA) es de aproximadamente 30–60 minutos de forma predeterminada.
Proceso y estado de la FUOTA
La FUOTA de ChirpStack sigue los siguientes pasos, que pueden consultarse en el panel del despliegue FUOTA:
- Crear grupo multicast
- Añadir dispositivos al grupo multicast
- Añadir gateways al grupo multicast
Los pasos 1 a 3 se realizan casi inmediatamente. Solo documentan la configuración interna en ChirpStack.
- Configuración del grupo multicast
- Configuración de la sesión de fragmentación
- Configuración de la sesión multicast
Los pasos 4 a 6 se refieren a la configuración de los dispositivos. ChirpStack intenta configurar los dispositivos mediante downlinks. Si esto falla, el downlink de configuración correspondiente se repite el número de veces indicado en Unicast retry count. Durante este tiempo, el dispositivo funciona con normalidad. El estado de cada dispositivo en la FUOTA con respecto a estos mensajes de configuración puede consultarse en la pestaña «Devices» del despliegue FUOTA.
- Enqueue fragments: Como parte de este proceso interno de configuración, los fragmentos del firmware se añaden a la cola del grupo multicast en el momento indicado en «Run at».
- Delete multicast group: Se elimina el grupo multicast.
- Completar despliegue
La FUOTA se lleva a cabo entre los pasos 7 y 8. Durante el tiempo definido por Multicast timeout, los dispositivos permanecen en modo Class-C y están permanentemente activos. Durante este tiempo no envían mensajes normales, sino que reciben los distintos fragmentos del firmware. Por ello, el consumo energético de los dispositivos también aumenta durante este periodo. El tiempo de Multicast timeout debe ser suficientemente largo para que todos los fragmentos del firmware puedan recibirse dentro del plazo. La configuración FUOTA Calculate multicast-timeout calcula el tiempo necesario a partir de Fragment size o del archivo de firmware incluido en Payload.
Una vez transcurrido el multicast-timeout o cuando se hayan recibido todos los fragmentos, el dispositivo se reiniciará y, si la FUOTA se ha realizado correctamente, iniciará la nueva versión del firmware.
Opcional
La configuración FUOTA Fragmentation status request consulta el estado de fragmentación en dos momentos seleccionables. El resultado puede consultarse en la pestaña «Devices» del despliegue FUOTA.
