v4.3.0

A v4.3.0 adiciona decodificação de JPEG acelerada por hardware, modo de alta temperatura e detecção de modelo do FLIR Lepton, novas conversões de espaço de cor de JPEG e o MicroPython 1.18, além de um lote de correções de RTC e WiFi. A API de modo de medição do Lepton mudou — leia as mudanças incompatíveis abaixo.

Destaques

  • Decodificação de JPEG por hardware no STM32 (H7) — descompressão de JPEG mais rápida.

  • Modo de alta temperatura do FLIR Lepton (até ~600 °C no Lepton 3.5) e detecção automática de modelo (1.5–3.5).

  • Novas conversões de JPEG — decodifica JPEGs YCbCr para escala de cinza e JPEGs em escala de cinza para RGB565.

  • MicroPython atualizado para 1.18.

  • Incompatível: o ioctl de modo de medição do Lepton mudou — veja as mudanças incompatíveis.

Novos recursos

  • Decodificação de JPEG acelerada por hardware — o codec JPEG on-chip do STM32 agora é usado para descompressão.

  • Conversões de espaço de cor de JPEG — o decodificador pode decodificar JPEGs YCbCr para GRAYSCALE e JPEGs GRAYSCALE para RGB565.

  • Modo de alta temperatura do Lepton — um novo modo de medição high_temp usa baixo ganho para estender a faixa para aproximadamente 600 °C no Lepton 3.5.

  • Arduino Nano RP2040 Connect — os módulos de driver onewire, dht e neopixel agora estão congelados no firmware.

Outras mudanças e melhorias

  • MicroPython atualizado para 1.18.

  • O driver do FLIR Lepton agora detecta e informa o modelo específico do Lepton (1.5 / 1.6 / 2.0 / 2.5 / 3.0 / 3.5) para a IDE.

Correções de bugs

Processamento de imagem:

  • Image.to_grayscale() / a conversão do canal L não retorna mais valores L negativos para pixels RGB565 escuros; o decodificador de JPEG não falha mais (MemManage) em imagens com dimensões ímpares.

Câmera e sensores:

  • Corrigidas as razões de subamostragem de janela do GC2145 e a ordem de pixels Bayer para qualidade de imagem correta em resoluções abaixo de QVGA e no modo BAYER.

Rede e armazenamento:

  • Corrigido o tratamento de timeout de sockets não bloqueantes do WINC1500 e adicionado o mapeamento adequado de errno do MicroPython para erros de socket; corrigido o tratamento de arquivos do disco USB do OpenMV no STM32.

Relógio de tempo real:

  • Corrigida a seleção de fonte de clock do RTC / LSE-vs-LSI e a errata do oscilador LSE nas placas OpenMV Cam H7 Plus e Pure Thermal.

Hardware e suporte a placas

  • STM32 (H7) — decodificação de JPEG por hardware.

  • OpenMV Cam H7 Plus / Pure Thermal — correções de fonte de clock do RTC.

  • Arduino Nano RP2040 Connect — drivers onewire / dht / neopixel congelados.

Mudanças incompatíveis de API

Quebras de API visíveis ao usuário entre a v4.2.3 e a v4.3.0. 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.

Ambas as mudanças incompatíveis afetam apenas o sensor térmico FLIR Lepton. Cada hash de commit leva ao seu diff no GitHub.

ioctl de modo de medição do Lepton (minor)

sensor.ioctl(SET_MEASUREMENT_MODE, ...) aceita um novo argumento opcional high_temp, e GET_MEASUREMENT_MODE agora retorna uma tupla de 2 elementos (enabled, high_temp) em vez de um único booleano. Código que lia o valor de retorno booleano anterior precisa ser atualizado para desempacotar a tupla.

Commit: 6b2cd1008

Faixa de temperatura padrão do Lepton (behavior)

A faixa de temperatura padrão do FLIR Lepton mudou de −17,78 °C…37,78 °C para −10,0 °C…40,0 °C. O mapeamento de cores e as temperaturas informadas para cenas que dependiam da antiga faixa padrão serão diferentes — defina uma faixa explícita se você precisar do comportamento anterior.

Commit: bc07e0131

Lista de verificação de migração

Apenas scripts do FLIR Lepton são afetados: desempacote a nova tupla (enabled, high_temp) de GET_MEASUREMENT_MODE (a mudança de modo de medição) e defina uma faixa de temperatura explícita se você dependia do padrão antigo (a mudança de faixa padrão). Todos os outros scripts funcionam sem alterações.