v2.4.0

A v2.4.0 é baseada no Qt Creator 4.0.2 e gira em torno do novo bootloader V3 (consulta do layout da flash QSPI durante o carregamento do firmware e apagamento durante um apagamento completo da data flash interna), do relatório ao vivo do sensor e da placa na barra de status, e de um novo protocolo de depuração USB de 32 bits compatível com o firmware empacotado. Ela também adiciona um guia de LED para a primeira execução e um grande conjunto de novos exemplos de TensorFlow, Modbus e WiFi. Como o protocolo de depuração mudou, as câmeras precisam executar o novo firmware empacotado para se conectar.

Destaques

  • Suporte ao bootloader V3 consulta o layout da flash QSPI externa de uma placa durante o carregamento do firmware e a apaga durante um apagamento completo da data flash interna (d953df62f).

  • Relatório de sensor e placa consulta o módulo de sensor da câmera conectada na conexão e o exibe na barra de status (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) junto a um novo rótulo de tipo de placa (0ffa82958).

  • Cópia de modelos TensorFlow permite copiar modelos .tflite para a câmera, não apenas arquivos de rede neural .network (ad1aa98f0).

  • Erase Onboard Data Flash é um novo comando de Tools que apaga apenas a flash do sistema de arquivos interno da câmera, após um prompt de confirmação, sem regravar o firmware (d953df62f, 98686ac46).

  • Guia de LED da primeira execução é uma nova caixa de diálogo OpenMV Cam LED Colors que explica os estados do LED interno e pode ser dispensada permanentemente (c2d00422f).

Novos recursos

  • Bootloader V3 consulta o layout da flash QSPI durante o carregamento do firmware e apaga a flash QSPI externa apenas durante um apagamento completo da data flash interna; connectClicked sempre aciona bootloaderQSPIFLayout em placas V3, mas executa bootloaderQSPIFErase somente quando forceFlashFSErase está definido (os comandos de escrita/memtest QSPI são implementados na camada de IO, mas não são exercitados pelo loader) (d953df62f).

  • Status de sensor e placa consulta o módulo de sensor da câmera na conexão e o exibe (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) na barra de status, junto a um novo rótulo de tipo de placa, usando um novo mapa de id-para-nome sensors.txt (0ffa82958).

  • Guia de LED da primeira execução adiciona uma nova caixa de diálogo OpenMV Cam LED Colors que aparece após um curto atraso quando helloworld_1.py é o documento aberto na primeira execução, explicando os estados do LED interno (verde piscando = bootloader em execução, azul = executando main.py, branco = pânico de falha de hardware); uma caixa de seleção “Don’t show this message again.” persiste a dispensa por meio de uma configuração DONT_SHOW_LED_STATES_AGAIN (c2d00422f).

  • Open OpenMV Cam Drive folder é um novo item do menu Tools que abre a unidade montada da câmera no navegador de arquivos do sistema (a49f54305).

  • Erase Onboard Data Flash é um novo comando de Tools que apaga apenas a flash do sistema de arquivos interno, após um prompt de confirmação, sem regravar o firmware (d953df62f, 98686ac46).

  • Cópia de modelos TensorFlow permite que a caixa de diálogo de cópia de modelos copie modelos .tflite para a câmera, além de arquivos de rede neural .network; o filtro da caixa de diálogo também ganhou entradas Label Files (*.txt) e All Files (ad1aa98f0, 0ffa82958, c0dbdd9e5).

  • Chave de versão do protocolo de depuração divide os comandos seriais GetAttribute, SetAttribute, FBEnable e JPEGEnable ao conversar com firmware 3.5.3+ para maior confiabilidade (83b9ca18f).

  • Novos exemplos empacotados adicionam scripts de janela deslizante para mobilenet do TensorFlow Lite e detecção de pessoas, além de um exemplo MNIST com STM32Cube.AI (nn_stm32cubeai.py), uma nova pasta 32-modbus (modbus_rtu_slave.py, modbus_apriltag.py), adições ao WiFi shield (http_client_ssl, static_ip, mqtt_pub/mqtt_sub), Arduino UART/SPI-slave e CAN (e26b90d79, 42ba8f5c4).

Outras mudanças e melhorias

  • Atualizou o protocolo de depuração USB para o novo firmware: as leituras de atributos usam o novo comando de 32 bits ATTR_READ_2 (0xCA), e os payloads de atributo, valor e habilitação do framebuffer são enviados como longs de 32 bits em vez de words de 16 bits (55d7cfe70).

  • Renomeou Save open script to OpenMV Cam para Save open script to OpenMV Cam (as main.py) para esclarecer que ele grava main.py (a49f54305).

  • Renomeou Run Bootloader para Run Bootloader (Load Firmware) para esclarecer seu propósito (ad1aa98f0).

  • Os menus de exemplos agora são ordenados pelo prefixo numérico de pasta/arquivo, e os dígitos iniciais NN- são removidos dos nomes exibidos (ad1aa98f0).

  • Os terminais de saída e serial agora renderizam tabulações como espaços usando uma largura de tabulação de terminal serial configurável a partir das configurações do editor de texto, em vez de uma largura fixa de 8 (98686ac46).

  • A detecção de unidades no Linux agora também aceita sistemas de arquivos montados como fuseblk (por exemplo, volumes exFAT/NTFS) ao associar a unidade da câmera (c0dbdd9e5).

  • Atualizou o conjunto de documentação HTML do MicroPython empacotado (referência da biblioteca, tutoriais esp8266/esp32, páginas e imagens geradas) exibido na ajuda da IDE (e69d71f7c, 90b5c6eb5, 97b0f645a).

Correções de bugs

  • Corrigiu um estouro numérico nas estatísticas do histograma (média, quartis, mediana, desvio padrão) ampliando os acumuladores de int para 64 bits, evitando estatísticas erradas em imagens grandes (55d7cfe70).

  • Refez a desconexão/ejeção no Linux: o pouco confiável flush syncfs/closedir foi removido e a unidade agora é desmontada com um comando umount simples, sem caixa de diálogo de progresso (b86d5c62c, c0dbdd9e5, 30d4a7d2d).

  • A unidade USB da placa agora só é associada quando o firmware é novo o suficiente ou quando um arquivo marcador .openmv_disk está presente, evitando que a IDE pegue a unidade removível errada (e464eaed4).

  • Corrigiu a lógica de reconexão para que acionar uma operação de bootloader/apagamento enquanto conectado agora desconecte de forma limpa primeiro e depois tente novamente, evitando um estado de trabalho travado (d953df62f).

  • Reescreveu o removedor de comentários/espaços em branco usado ao enviar scripts para a câmera como uma máquina de estados ciente de strings, de modo que caracteres # dentro de strings não sejam mais confundidos com comentários, e espaços em branco no final e docstrings sejam tratados (24dff1b2f).

  • Corrigiu o tratamento de strings de tradução para várias mensagens de caixa de diálogo de conexão/terminal, de modo que os comandos de shell embutidos (sudo adduser, etapas de instalação do pydfu) não façam mais parte do texto traduzível e sejam renderizados corretamente (b5705a57e).

Suporte de plataforma e ferramentas

  • Base do Qt Creator: 4.0.2.

  • Renomeou a placa/firmware OpenMV Cam H7 Plus de OPENMV4R para OPENMV4P (OMV4P_H7_32768_SDRAM) e empacotou seu firmware sob o novo nome (c0dbdd9e5).

  • Corrigiu o nome de exibição da placa H7 Plus para usar sublinhados em vez de espaços (OpenMV_Cam_H7_Plus_(STM32H743_w/_SDRAM)) (75764132c).

  • O firmware empacotado foi atualizado ao longo do lançamento, terminando na versão 3.5.2 para OPENMV2/3/4/4P (incremento final em 15c07498c; incrementos cumulativos anteriores em 42ba8f5c4 para 3.4.2, a99c2e3e1 para 3.4.3, e26b90d79 para 3.5.0 e 97b0f645a para 3.5.1).

  • Versões do firmware empacotado: OPENMV2 (Cam M4) 1.4.11, OPENMV3 (Cam M7) 1.4.11, OPENMV4 (Cam H7) 1.2.15, OPENMV4P (Cam H7 Plus) 1.2.15.

  • Versão da OpenMV IDE elevada de 2.2.1 para 2.4.0.

Mudanças incompatíveis

O protocolo de leitura de atributos de depuração USB foi alterado do antigo comando de 16 bits ATTR_READ (0x8A) para o novo comando de 32 bits ATTR_READ_2 (0xCA), e os payloads de atributo, valor e habilitação agora são enviados como longs de 32 bits; a IDE também consulta o ID do sensor da câmera na conexão. Isso requer um firmware que implemente o novo protocolo. O firmware empacotado 1.2.15 / 1.4.11 o fornece, portanto câmeras mais antigas precisam ser regravadas com o novo firmware para se conectar.