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 PNG —
Image.to_png(),image.PNGy 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 constanteimage.PNG/PIXFORMAT_PNG, carga/guardado de archivos PNG (lectura/escritura de.png) y salida PNG en las conversiones deimage.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_detectionse 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.
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_point → sample_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()).