Novedad: el cortafuegos de IA supervisa toda la plataforma y explica cada incidente con palabras sencillas. Vea cómo funciona

Re: OTA para un MCU principal STM32 cuando el ESP32 de al lado es el que habla MQTT

Traducido del English por IA ·

Hicimos exactamente esto en controladores de edificios (STM32 más un módem ESP32). A Hermetry no le importa qué chip acaba ejecutando la imagen; solo se comunica con el dispositivo que ha iniciado sesión, así que el ESP32 es el que descarga e informa.Cuando asigna un paquete, el dispositivo recibe estos atributos compartidos en un solo mensaje en v1/attributes/set: fw_title, fw_version, fw_size, fw_checksum, fw_checksum_algorithm (SHA256), fw_url y fw_sig si el paquete tiene una firma separada. fw_url es una dirección HTTPS de corta duración, válida durante 15 minutos, y la descarga puede reanudarse con una solicitud HTTP Range.El dispositivo informa del progreso como atributos de cliente: fw_state pasa por DOWNLOADING, DOWNLOADED, VERIFIED, UPDATING, UPDATED (o FAILED con fw_error), fw_progress de 0 a 100 durante la descarga, y tras el reinicio current_fw_title y current_fw_version. UPDATED por sí solo no se acepta; espera ver la nueva versión en ejecución.Nuestro flujo en el ESP32:

1. llega fw_* -> comprobar fw_title == "irr-stm32"
2. GET fw_url (reanudación Range) a la flash del ESP32, informar fw_progress
3. Comprobación SHA-256 + Ed25519 contra fw_sig -> fw_state VERIFIED
4. Enviar la imagen por UART al bootloader del STM32 en el banco 2
5. El STM32 verifica de nuevo, intercambia los bancos y reinicia -> fw_state UPDATING
6. El STM32 informa su versión al ESP32 -> current_fw_version

Tiene un F407 de 1 MB, que es de banco único, así que para 380 KB usaría los 512 KB superiores como zona de descarga y un pequeño bootloader que copie la imagen tras comprobarla. La flash externa también funciona, pero entonces el bootloader necesita el driver SPI.En la pestaña Firmware del perfil active las actualizaciones de firmware (desactivadas por defecto) y deje desactivado Permitir imágenes sin firmar fuera del banco de pruebas. Las actualizaciones por LTE también están desactivadas por defecto. Configure los Modelos de hardware en el paquete para que una imagen del ESP32 nunca acabe en la zona del STM32.Firmware updates (OTA)

Solución aceptada♥ 5