v4.2.2

A v4.2.2 adiciona suporte a imagens PNG (decodificação/codificação via lodepng), um carregador de modelos integrados orientado por tabela, suporte ao OV5640 no Portenta, uma atualização do TensorFlow do Edge Impulse e o ulab 4.0. A API de configuração de CAN do RPC mudou — leia as mudanças incompatíveis abaixo.

Destaques

  • Suporte a PNGImage.to_png(), image.PNG e leitura/escrita de arquivos PNG.

  • tf.load_builtin_model() — modelos integrados orientados por tabela que podem ser substituídos ou adicionados em tempo de build.

  • Portenta H7 — suporte à câmera OV5640 (com autofoco).

  • MicroPython/ulab — ulab atualizado para 4.0.0.

  • Incompatível: a API de configuração de CAN do RPC mudou — veja as mudanças incompatíveis.

Novos recursos

  • Formato de imagem PNG — um novo método Image.to_png(), uma constante image.PNG / PIXFORMAT_PNG, carregamento/salvamento de arquivos PNG (leitura/escrita de .png) e saída PNG nas conversões de image.to(), por meio do codec lodepng integrado.

  • tf.load_builtin_model(path) — carrega um modelo integrado ao firmware e retorna uma tupla (labels, net); os modelos integrados agora são orientados por tabela, de modo que podem ser substituídos ou adicionados em tempo de build.

Outras mudanças e melhorias

  • TensorFlow / Edge Impulse — a biblioteca de inferência incluída foi atualizada para o Edge Impulse ei-V2.5.0, o modelo person_detection passou para a tabela de modelos integrados e operadores do TensorFlow que faltavam foram adicionados em todas as builds Cortex-M0+/M4/M7/M55, de modo que mais modelos do Edge Impulse funcionam.

  • ulab atualizado para 4.0.0.

  • Abrir a porta serial virtual USB a 1200 bps agora aciona um reset por toque no estilo Arduino para o bootloader.

  • O firmware do módulo WiFi WINC1500 foi atualizado para 19.7.6 (com o script atualizador), e agora ele informa a versão real do driver do host.

  • A porta RP2 imprime “MPY: soft reboot” e ganhou init/de-init de UART.

Correções de bugs

  • Corrigido o tamanho bruto do frame buffer no Arduino Nano RP2040 Connect e o Product ID USB do Arduino Nicla Vision (enumeração USB correta).

Hardware e suporte a placas

  • Arduino Portenta H7 — suporte à câmera OV5640 (com autofoco); o GC2145 fica desabilitado no Portenta.

  • Arduino Nano RP2040 Connect — configuração de memória e modelos de sistema de arquivos novo.

  • WiFi Shield (WINC1500) — firmware atualizado para 19.7.6.

Mudanças incompatíveis de API

Quebras de API visíveis ao usuário entre a v4.2.1 e a v4.2.2. Escopo: módulos C de Python em modules/ e bibliotecas Python em scripts/libraries/.

Cada mudança é marcada com seu impacto:

  • minor — API restrita; afeta apenas scripts que a usavam.

  • behavior — mesma API, resultados diferentes; reavalie scripts ajustados.

As mudanças são agrupadas por impacto nessa ordem. Cada hash de commit leva ao seu diff no GitHub.

API de configuração de CAN do RPC (minor)

Na biblioteca rpc, o argumento nomeado de CAN sampling_point de rpc_can_master / rpc_can_slave foi renomeado para sample_point (para corresponder ao MicroPython upstream), e o auxiliar manual de bit-timing de CAN foi removido — o barramento CAN agora é configurado via CAN(..., baudrate=, sample_point=). Scripts que passavam sampling_point ou que dependiam do antigo cálculo de bit-timing precisam ser atualizados.

Commits: b565eca58, 06d716986

image.format() e imagens comprimidas (behavior)

Com o caminho unificado de imagens comprimidas adicionado para PNG, image.format() agora retorna PIXFORMAT_INVALID para um formato desconhecido, e a indexação / iteração / impressão de imagens comprimidas agora cobre tanto PNG quanto JPEG. Código que inspecionava o valor de retorno anterior para formatos desconhecidos deve ser reavaliado.

Commit: f12a4659c

Lista de verificação de migração

Para uma migração limpa para a v4.2.2: renomeie sampling_pointsample_point no CAN do RPC e remova qualquer configuração manual de bit-timing de CAN (a mudança de CAN do RPC), e reavalie qualquer código que inspecionava image.format() para formatos desconhecidos (a mudança do format()).