v4.2.2

v4.2.2 añade compatibilidad con imágenes PNG (decodificación/codificación mediante lodepng), un cargador de modelos integrados basado en tablas, compatibilidad con OV5640 en la Portenta, una actualización de TensorFlow de Edge Impulse y ulab 4.0. La API de configuración de RPC CAN cambió — lee los cambios incompatibles más abajo.

Aspectos destacados

  • Compatibilidad con PNGImage.to_png(), image.PNG y lectura/escritura de archivos PNG.

  • tf.load_builtin_model() — modelos integrados basados en tablas que se pueden reemplazar o añadir en tiempo de compilación.

  • Portenta H7 — compatibilidad con la cámara OV5640 (con enfoque automático).

  • MicroPython/ulab — ulab actualizado a 4.0.0.

  • Incompatible: la API de configuración de RPC CAN cambió — consulta los cambios incompatibles.

Nuevas características

  • Formato de imagen PNG — un nuevo método Image.to_png(), una constante image.PNG / PIXFORMAT_PNG, carga/guardado de archivos PNG (lectura/escritura de .png) y salida PNG en las conversiones de image.to(), mediante el códec lodepng integrado.

  • tf.load_builtin_model(path) — carga un modelo integrado en el firmware y devuelve una tupla (labels, net); los modelos integrados ahora se basan en tablas, por lo que se pueden reemplazar o añadir en tiempo de compilación.

Otros cambios y mejoras

  • TensorFlow / Edge Impulse — la biblioteca de inferencia incluida se actualizó a Edge Impulse ei-V2.5.0, el modelo person_detection se movió a la tabla de modelos integrados y se añadieron operadores de TensorFlow que faltaban en todas las compilaciones Cortex-M0+/M4/M7/M55, de modo que se ejecutan más modelos de Edge Impulse.

  • ulab actualizado a 4.0.0.

  • Abrir el puerto serie virtual USB a 1200 bps ahora desencadena un reinicio por toque al estilo Arduino hacia el bootloader.

  • El firmware del módulo WiFi WINC1500 se actualizó a 19.7.6 (con el script de actualización) y ahora informa de la versión real del controlador del host.

  • El puerto RP2 imprime «MPY: soft reboot» y obtuvo inicialización/desinicialización de UART.

Corrección de errores

  • Se corrigió el tamaño del frame buffer en bruto de la Arduino Nano RP2040 Connect y el Product ID USB de la Arduino Nicla Vision (enumeración USB correcta).

Compatibilidad de hardware y placas

  • Arduino Portenta H7 — compatibilidad con la cámara OV5640 (con enfoque automático); la GC2145 está deshabilitada en la Portenta.

  • Arduino Nano RP2040 Connect — configuración de memoria y plantillas de sistema de archivos nuevo.

  • WiFi Shield (WINC1500) — firmware actualizado a 19.7.6.

Cambios incompatibles en la API

Cambios incompatibles en la API visibles para el usuario entre v4.2.1 y v4.2.2. Alcance: módulos C de Python en modules/ y bibliotecas de Python en scripts/libraries/.

Cada cambio está etiquetado con su impacto:

  • menor — API restringida; solo afecta a los scripts que la usaban.

  • comportamiento — misma API, resultados diferentes; vuelve a revisar los scripts ajustados.

Los cambios se agrupan por impacto en ese orden. Cada hash de commit enlaza a su diff en GitHub.

API de configuración de RPC CAN (menor)

En la biblioteca rpc, el argumento de palabra clave CAN sampling_point de rpc_can_master / rpc_can_slave se renombró a sample_point (para coincidir con MicroPython upstream) y se eliminó el ayudante de temporización de bits CAN manual — el bus CAN ahora se configura mediante CAN(..., baudrate=, sample_point=). Los scripts que pasaban sampling_point o dependían del antiguo cálculo de temporización de bits deben actualizarse.

Commits: b565eca58, 06d716986

image.format() e imágenes comprimidas (comportamiento)

Con la ruta unificada de imágenes comprimidas añadida para PNG, image.format() ahora devuelve PIXFORMAT_INVALID para un formato desconocido, y la indexación / iteración / impresión de imágenes comprimidas ahora cubre tanto PNG como JPEG. El código que inspeccionaba el valor de retorno anterior para formatos desconocidos debe volver a revisarse.

Commit: f12a4659c

Lista de verificación de migración

Para una migración limpia a v4.2.2: renombra sampling_pointsample_point en RPC CAN y elimina cualquier configuración manual de temporización de bits CAN (el cambio de RPC CAN), y vuelve a revisar cualquier código que inspeccionara image.format() para formatos desconocidos (el cambio de format()).