v4.0.1

A v4.0.1 é uma modernização completa que reconstrói o OpenMV IDE a partir de sua antiga base no Qt Creator 4.0.2 para o Qt Creator 10.0.1. Toda a pilha de plugins do OpenMV (visualizador de frame buffer, serial/protocolo, terminal, histograma, editores de limiar e de pontos-chave, ferramentas de vídeo e wrappers de gravação de firmware) é reaplicada sobre a nova base, junto a um par de temas refinados Flat Light/Flat Dark, realce de sintaxe Python com reconhecimento do OpenMV, uma caixa de diálogo unificada de carregamento de firmware e amplo suporte à detecção de dispositivos em ARM64 Linux e macOS. A mudança da base do Qt Creator é uma grande modernização interna, mas não quebra os projetos do usuário; alguns comportamentos padrão e definições de placas mudaram (veja Mudanças incompatíveis).

Destaques

  • Rebase no Qt Creator 10.0.1. O IDE migra do Qt Creator 4.0.2 para o 10.0.1: o Qt Creator upstream é reduzido ao essencial para compilação (98b95fd3b) e todo o plugin do OpenMV é readicionado sobre a nova base (0e8047372).

  • Temas Flat Light e Flat Dark. Um par refinado de temas claro/escuro acompanha estilos personalizados de realce de sintaxe do editor; o seletor de Tema é reexposto nas configurações Gerais, restrito apenas a esses dois, e o tema padrão agora é flat-dark (21348924b, 13c3849e8).

  • Terminal serial Raw-REPL. O terminal agora executa, interrompe, recarrega e cola scripts por meio de uma máquina de estados de raw-REPL do MicroPython (CTRL-A/CTRL-D) apropriada, lidando de forma confiável com scripts maiores (a7241079c).

  • Edição de Python com reconhecimento do OpenMV. Módulos, classes, funções, métodos e argumentos do OpenMV recebem realce de sintaxe a partir da documentação incluída, com autocompletar mais inteligente e um autoindentador que reconhece colchetes/dois-pontos (801eab8a8, 8e9f967e7, 9fdff9c6d).

  • Caixa de diálogo unificada de carregamento de firmware. A gravação agora exibe uma única caixa de diálogo contextual (Apagando Disco / Gravando Firmware / Gravando Bootloader) com uma barra de progresso e um log Mostrar/Ocultar Detalhes recolhível que memoriza o estado (5b51356f8).

  • Suporte à OpenMV Cam RT1062. Firmware, carregadores de DFU/flash, enumeração SDP/blhost e uma etapa de programação por queima de eFuse foram adicionados para a nova placa da classe i.MX RT1060 (a6595f5f7), que então recebe uma variante de placa Secure Bootloader (SBL) distinta (d2b11c6c8).

Novos recursos

  • Flags de automação. As flags -auto_update (release / development / caminho), -auto_erase e -auto_run permitem que o IDE faça o bootload/apague o firmware e então execute o script aberto ao conectar; após uma reconexão do bootloader, o IDE aguarda até 10s para que a câmera seja reenumerada antes de continuar (b54affe79, f4e03d978).

  • Flag ``-disable_stop`` e uma opção de menu stop on connect/disconnect permitem que os usuários desativem a interrupção do script ao conectar ou desconectar (02724ca7d).

  • A opção Parar Script ao Conectar/Desconectar (ativada por padrão) desacopla conectar/desconectar da interrupção do script em execução; o Reconectar Automático agora vem desativado por padrão (a0e78057f).

  • Prompt de tipo de placa. Quando uma placa conectada relata uma arquitetura que não está no mapeamento de firmware, o IDE agora solicita ao usuário que escolha o tipo de placa (memorizando a última escolha) em vez de abortar com um erro “Unsupported board architecture!” (b7165eb3d).

  • Realce de sintaxe Python do OpenMV colore os módulos, classes, dados, funções, métodos e argumentos conhecidos do OpenMV usando listas de palavras-chave preenchidas a partir da documentação incluída (801eab8a8, b4d481bf5).

  • ~300 definições de linguagem do KSyntaxHighlighting acompanham o editor, de modo que arquivos-fonte em muitas linguagens recebem realce prontamente (39674a4dc).

  • Scripts de exemplo do OpenMV incluídos (Hello World, snapshot, gravação de vídeo, fluxo óptico, câmeras de eventos, global shutter, FLIR Lepton e mais) agora são incorporados e distribuídos com o IDE (938ac6bbe).

  • Editor binário/hexadecimal está habilitado para que os usuários possam abrir e inspecionar arquivos binários, com sua barra de ferramentas reduzida para se adequar à interface do OpenMV (675bda966).

  • Comparação de documentos em memória. Novos arquivos e exemplos somente leitura agora recebem um arquivo temporário de apoio para que documentos não salvos possam ser comparados, e a caixa de diálogo de comparação de arquivos externos memoriza a última pasta utilizada (5281e5f6c, 2934d5216).

  • Plugin de editor com abas foi readicionado, dando ao IDE uma barra de documentos com abas; o código-fonte do plugin de minimapa foi readicionado, mas deixado desabilitado na compilação desta versão (0e8047372).

  • Gravação alternativa via DfuSe e pydfu foi restaurada para dispositivos DFU que não podem ser endereçados por número de série, com tratamento de apagamento automático sem caixa de diálogo durante a conexão (e42a5be7d).

  • Queima de eFuse do i.MX RT. A programação de firmware agora queima um eFuse (efuse-program-once) para as placas da classe RT1060 (8053bb578, a6595f5f7).

  • Página do assistente de Instalações Root no Linux permite que o usuário opte por participar ou não da instalação elevada de bibliotecas via apt e da instalação das regras udev, em vez de executá-las sempre (6bac80984).

Outras mudanças e melhorias

  • Varredura de portas seriais em segundo plano. A enumeração de portas foi movida da thread da interface para um worker dedicado ScanSerialPortsThread, de modo que o IDE permanece responsivo durante a varredura (7be4dab26).

  • Detecção de dispositivos mais ampla. A varredura de portas foi refatorada em um helper reutilizável filterPorts() que incorpora dispositivos picotool e i.MX DFU e reclassifica portas seriais conhecidas de bootloader do Arduino (PIDs antigos de NRF/RPI e de loader) como dispositivos DFU (25a5d30fd).

  • Mais alternativas de terminal. Ao iniciar as ferramentas de reprodução de vídeo incluídas (Reproduzir Arquivo de Vídeo / Reproduzir Stream RTSP) no Linux, o IDE agora recorre a lxterminal, konsole e xfce4-terminal além de xterm e gnome-terminal (df54007e0).

  • Relatório de chaves de placa. O registro da câmera agora analisa uma resposta “Remaining N” para informar ao usuário quantas chaves de placa restam, e adiciona uma mensagem de erro distinta “Invalid Board Key for Board Type” (5759e73eb).

  • Downloads hospedados no GitHub. As verificações de versão e os downloads de recursos agora usam raw.githubusercontent.com/openmv/openmv-ide-version e as releases de openmv/openmv-ide em vez de upload.openmv.io (994109c28).

  • HTTPS em tudo. Todas as requisições web do OpenMV (verificações de versão, registro de ID SWD, downloads de recursos e de firmware) agora usam https:// (54347cad0).

  • Automação da configuração no Linux. O instalador detecta bibliotecas e regras udev ausentes e, se necessário, gera um setup.sh executável com os comandos exatos de instalação apt-get/pip e de regras udev (e um README instruindo o usuário a executá-lo) (c6dc705e6).

  • Tolerância a placas lentas. O terminal serial aumenta seu tempo de espera por leitura de 1ms para 10ms e emite uma confirmação “OK” quando um script termina (c935e4489).

  • Progresso de gravação mais suave. As barras de progresso do carregador de firmware agora mudam de indeterminadas para 0-100% imediatamente, em vez de após o primeiro avanço de porcentagem, em todas as gravações via dfu-util, bossac, picotool e i.MX (19d947308, 86d021f92).

  • Recuperação de bootloader antigo foi readicionada por meio de um modo de bootloader não rápido que envia comandos de apagamento/gravação sem o preenchimento de sincronização por consulta do modo rápido (c20112c07).

  • Consoles de ferramentas mais limpos. Os terminais de gravação de firmware (bossac, dfu-util, picotool, imx, ferramentas de vídeo) agora rodam como processos de console autônomos com saída de comando mais bem formatada (8053bb578).

  • Aprimoramento do autocompletar. O autocompletar distingue classes, métodos e funções com dicas de argumentos separadas, usa ícones apropriados do modelo de código e respeita o escopo público/protegido/privado pelo prefixo de sublinhado; o processador de autocompletar por palavra-chave também ignora os espaços em branco iniciais antes do cursor ao ser invocado de forma explícita (manual) (8e9f967e7, 68b26b5fc).

  • Caixas de diálogo consolidadas. As caixas de diálogo improvisadas “Não mostrar novamente” do OpenMV – incluindo a caixa de diálogo informativa de inicialização OpenMV Cam LED Colors e os prompts de atualização de firmware e de exemplos – foram unificadas em caixas de diálogo CheckableMessageBox “Não Perguntar/Mostrar Novamente”, um botão “Redefinir Caixas de Diálogo Não Perguntar/Mostrar Novamente” foi adicionado às configurações Gerais, e os marcadores de dobramento de código vêm desabilitados por padrão (9fdff9c6d).

  • Identidade visual sensível ao tema. Telas de abertura em modo escuro, logos dos chips ST e NXP em versões escuro/claro na caixa Sobre, cores de tooltip em modo escuro e cores adequadas para os ícones de autocompletar foram adicionados (d85fdeb19, 9895a8395, f45ceaaea, 7f3e1f383).

  • Limpeza do visualizador de imagens. As ações de compartilhar, plano de fundo, contorno e “definir como padrão” foram ocultadas, uma ação de ajustar à tela foi adicionada, e o dimensionamento de imagens animadas foi corrigido (b37c55e25).

  • Limpeza do menu de contexto. As entradas “Show in File System View”, “Open Terminal”, “File Properties” e “Add/Delete UTF-8 BOM on Save” foram ocultadas (5d862c78e).

  • Terminal serial escuro. O terminal autônomo usa um tema escuro apropriado com barras de rolagem estilizadas, ícones de barra de ferramentas atualizados e recarregamento correto do ícone da barra de rolagem em alta DPI entre telas (5c3af6880).

  • Limpeza de Localizar/Buscar. O painel de resultados ganha um tema escuro, o seletor do mecanismo de busca é ocultado, os rótulos são simplificados, e o Localizar em Arquivos passa a usar por padrão a pasta Documentos/OpenMV (20a806550).

  • Identidade da aplicação. O IDE agora exibe o ícone correto do OpenMV na área de trabalho, na barra de título e na barra de tarefas (com tratamento de alta DPI no Windows), e o id do IDE foi alterado para openmvide (8ad1eed1f).

  • Tela de abertura em alta DPI exibe uma imagem de abertura 2x em telas Retina/com escala de 200% (626ff673e).

  • Reparo da barra de ações. A barra de ações à esquerda (Novo Arquivo, Abrir, Salvar, Desfazer, Refazer, Recortar, Copiar, Colar) foi reparada e recebeu ícones personalizados do OpenMV (b8479b5d0).

  • Logos da caixa de diálogo Sobre. Tanto o logo parceiro do Arduino quanto o do Edge Impulse agora são exibidos (o Edge Impulse estava antes oculto) com variantes 2x em alta DPI, e a arte de abertura incluída foi atualizada (splash-small-2 / splash-large-2) (5facd8d9a).

  • Selecionar Palavra Sob o Cursor está habilitado; os comandos Ir para Início/Fim do Bloco (Ctrl+[ / Ctrl+]) e Selecionar Bloco Acima/Abaixo foram reabilitados brevemente (36ed5b1a8), mas deixados desabilitados na versão (626ff673e).

  • Entrada de área de trabalho do Linux ganha uma categoria Electronics, um Comentário de descrição e Palavras-chave de busca (embedded electronics, microcontroller, micropython, computer/machine vision) (470e5702e).

  • Migração de recursos. Os recursos do usuário foram movidos para um local versionado (a antiga pasta qtcreator é removida na inicialização), e avisos inofensivos de face de fonte do DirectWrite no Windows são suprimidos (a04af5351, 70765dc2a).

  • Opções internas ocultadas. As opções internas -color e -theme do Core são ocultadas da saída de ajuda, e o modo de apresentação foi reabilitado (434c7b4cc).

  • Personalizações de núcleo reaplicadas à barra de ações/widget de abas estilizado, ao gerenciador de mensagens/janela de saída, às ações proxy, ao realçador de sintaxe e ao editor de texto (0e8047372).

  • QCustomPlot 2.1.1. A biblioteca de plotagem incluída foi atualizada para compatibilidade com o Qt 6.4 e tratamento correto de DPI de exibição que muda dinamicamente (8801415fe).

  • Limpezas cosméticas da interface nos ícones de seta da barra de rolagem, na barra de status, nos botões de fechar da barra de abas de documentos e na largura do scroller do editor; o indicador “Display File Line Ending” do editor agora vem desativado por padrão (e0c4d2325, 6a26f4430, e130988fb).

Correções de bugs

  • Corrigida a detecção de VID/PID no Linux lendo /sys/class/tty/<port>/device/uevent para obter o VID/PID real do dispositivo, contornando o QSerialPortInfo que retornava os identificadores do hub USB, de modo que câmeras atrás de hubs sejam detectadas corretamente (28220b351).

  • Corrigida a gravação de firmware do bootloader no Mac relaxando as asserções de tamanho de endpoint e anexando o pacote de consulta de sincronização somente quando uma gravação tem exatamente o tamanho de um endpoint USB (86d021f92).

  • Corrigidas as ferramentas de reprodução de vídeo no Linux: Reproduzir Arquivo de Vídeo / Reproduzir Stream RTSP agora ficam ocultas em Linux 32-bit e ARM (sem ffplay incluído), com uma alternativa via gnome-terminal quando o xterm está indisponível, e o binário ffmpeg do macOS foi restaurado a partir de um placeholder (d342649cc, d896f4225).

  • Aumentados os atrasos de início/fim do reset do bootloader de 0 para 5 para evitar a sobreposição de comandos de apagamento e gravação durante atualizações de firmware (fabc168b6).

  • Otimizada a recuperação do bootloader: forçar o bootloader para reparar uma câmera travada pula prompts redundantes, e após um reset do bootloader DFU o IDE tenta atualizar automaticamente em vez de pedir ao usuário para reconectar (12b924088).

  • Permitido que comandos de dump de frame buffer/buffer de TX serial sejam abortados no meio da transação (4a4afae1b).

  • Removido o contorno de desistência por travamento de leitura da porta serial que podia preencher respostas com bytes zero, melhorando a confiabilidade de transferências USB rápidas (0ee1d8e91).

  • Corrigidos a depuração por WiFi e o reconectar automático: portas WiFi atualizam seu timestamp de última detecção ao serem redescobertas, vários bugs de iterador-após-apagamento na desativação de portas WiFi e na detecção de DFU/bootloader foram corrigidos, e o reconectar automático agora aguarda até que o IDE não esteja ocupado antes de reconectar (cf0b67dc6).

  • Corrigido o conversor de vídeo para MJPEG para analisar a taxa de quadros a partir da saída do encoder e gravar o delta correto em milissegundos por quadro, de modo que os vídeos convertidos sejam reproduzidos na velocidade certa (4a7ad2057).

  • Corrigida a falha de inicialização da gravação de firmware e das ferramentas de linha de comando incluídas, forçando o backend do QProcess e corrigindo a proteção do laço de eventos do processo bloqueante (200fe9f3c).

  • Corrigidos os ícones de ramificação de expandir/recolher da árvore do editor de conjuntos de dados para serem renderizados corretamente em telas HiDPI, recarregando a folha de estilos de ícones quando a proporção de pixels do dispositivo muda (a0e78057f).

  • As atualizações de pacotes/recursos agora reiniciam automaticamente o OpenMV IDE em vez de apenas encerrá-lo após a instalação (178ee1b8e).

  • Corrigido o realce dos resultados de Localizar/buscar e feito com que as ações de resultado de busca/abertura de arquivo recorram ao primeiro editor visível quando não há editor atual (48c402dfc).

  • Corrigida a caixa de diálogo do carregador de firmware para que seu texto de aviso seja limpo e a janela seja redimensionada corretamente quando uma operação de gravação é concluída (c505c6ade).

  • Corrigidos vários bugs de interface no macOS: a barra de abas não emite mais erros excessivos de carregamento de ícones e aparece corretamente ao abrir um arquivo (9be8c58de, 5322cf968).

  • Corrigidos o estilo e o alinhamento de linha de base da barra de status / painel de saída no macOS e no Linux (4fc4545de, d29b2baa0, a440d5cd8).

  • Corrigida a impressão de código-fonte para que o cabeçalho com o título da página tenha margens superior e laterais adequadas em vez de tocar a borda da página (786d6012c).

Suporte de plataforma e ferramentas

  • Base do Qt Creator: 10.0.1 (reconstruída a partir da 4.0.2).

  • OpenMV IDE: 4.0.0 -> 4.0.1.

  • OpenMV Cam RT1062 (i.MX RT1060): o firmware inicial do RT1062, o flash-loader, as imagens assinadas, a entrada imx.txt e as chaves de configuração blhost de secure-bootloader/eFuse foram adicionados na pasta de firmware OPENMV5 (a6595f5f7); a placa foi então consolidada em uma única pasta OPENMV_RT1060, e uma variante de placa Secure Bootloader (SBL) distinta (OpenMV_Cam_RT1062_SBL) foi adicionada (d2b11c6c8, 5baf28c6e).

  • Toolchain de gravação incluído (blhost, bossac, dfu-util, dfuse + drivers STM32, picotool, sdphost, ffmpeg, drivers FTDI/Arduino) foi reempacotado para Windows/macOS/Linux, com os binários Linux marcados como executáveis (fbfa4903a, bfb6b32e2, 9551c64da).

  • DFU em ARM64 Linux: um dfu-util aarch64 incluído, mais a detecção arm64 na listagem de dispositivos e no download de firmware, habilita a gravação por DFU em hosts como o Raspberry Pi (16bc6fe0f, 470e5702e).

  • A detecção de dispositivos i.MX agora funciona no Linux (analisando lsusb) e no macOS (varrendo ioreg), habilitando o carregamento de firmware i.MX RT nessas plataformas (e03ccbe71, 7cf505d09).

  • Restrição por plataforma: o uso do i.MX é restrito a Windows/macOS/Linux-x86_64 com um erro crítico em outros casos, e a gravação de Portenta/Nicla em ARM/ARM64 Linux exibe um aviso “DFU Util may not be stable on this platform” (9513f6475).

  • OpenGL no Windows: a renderização por software foi restaurada incluindo opengl32sw, Qt6OpenGL e o suporte OpenGL do Qt6Gui no pacote distribuído (aaaa1928f).

  • Pastas/ids de placas Arduino renomeados. As pastas de firmware e os ids de placa em boards.txt da Portenta, Nicla Vision e Nano 33 BLE Sense foram renomeados para ARDUINO_PORTENTA_H7, ARDUINO_NICLA_VISION e ARDUINO_NANO_33_BLE_SENSE (a70d6562a); a pasta/id de placa da Nano 33 BLE Sense foi posteriormente convertida para minúsculas, arduino_nano_33_ble_sense, para corresponder ao nome de placa relatado pelo dispositivo (22750d8c7, a801a81de).

  • Carregadores de flash do bootloader OPENMV_RT1060 (blhost_flash_loader.bin, sdphost_flash_loader.bin) foram atualizados (5baf28c6e).

  • QCustomPlot: 2.1.1 (biblioteca de plotagem incluída) (8801415fe).

  • Imagens de firmware em disco foram reempacotadas para todas as placas OpenMV/Arduino suportadas (OPENMV1-4P, OPENMV4_PRO, OPENMVPT, ARDUINO_NICLA_VISION, arduino_nano_33_ble_sense, ARDUINO_PORTENTA_H7, ARDUINO_NANO_RP2040_CONNECT, OPENMV_RT1060, CYW4343, além do firmware WiFi WINC1500), com firmware e, quando aplicável, imagens de bootloader/uvc (fbfa4903a).

Mudanças incompatíveis

Estas são mudanças de fluxo de trabalho e comportamento visíveis ao usuário; o rebase para o Qt Creator 10.0.1 em si não quebra os projetos ou scripts do usuário.

  • Definições de placa i.MX RT1060 alteradas. As entradas EVKBMIMXRT1060 e OPENMV5 foram substituídas por uma única placa OPENMV_RT1060 (OpenMV Cam RT1062, mais uma variante SBL), e as antigas pastas de firmware foram removidas (d2b11c6c8).

  • O tempo limite padrão de resposta a comandos é de 10000 ms (era 5000 ms na 4.0.0); o texto de ajuda de -override_read_timeout foi atualizado para corresponder (4a4afae1b).

  • Comportamento de conectar/desconectar alterado. O Reconectar Automático agora vem DESATIVADO por padrão, e conectar ou desconectar não interrompe mais o script em execução por padrão, a menos que a nova opção “Stop Script on Connect/Disconnect” esteja habilitada (ela vem ativada por padrão) (a0e78057f).

  • O fluxo de atualização reinicia o IDE. As atualizações de pacotes/recursos agora reiniciam o OpenMV IDE automaticamente em vez de encerrá-lo após a instalação (178ee1b8e).

  • Ids de placas Arduino renomeados. Os ids de placa em boards.txt e as pastas de firmware da Portenta, Nicla Vision e Nano 33 BLE Sense foram renomeados para ARDUINO_PORTENTA_H7, ARDUINO_NICLA_VISION e ARDUINO_NANO_33_BLE_SENSE (este último posteriormente convertido para minúsculas, arduino_nano_33_ble_sense) (a70d6562a, 22750d8c7, a801a81de).