14.1.1.3. Instalação do firmware

Depois de ter um firmware.bin (e o respetivo romfs<n>.img) proveniente de Compilar o firmware, programe-o na câmara. O OpenMV IDE é o método recomendado; o procedimento por linha de comandos difere consoante a família de câmaras e está documentado por família nas páginas indicadas no final. O próprio bootloader é restaurado separadamente – consulte Restaurar o bootloader.

14.1.1.3.2. Windows: instalar os controladores USB

O Windows não possui controladores nativos para as interfaces USB DFU, SDP e ISP da câmara, pelo que as ferramentas de linha de comandos (dfu-util, as ferramentas NXP SPSDK, as Alif SE Tools) não conseguem detetar o dispositivo enquanto um controlador WinUSB não estiver associado. O instalador do OpenMV IDE para Windows instala todos estes controladores, por isso a abordagem mais simples é instalar o OpenMV IDE uma vez – após o qual tanto o IDE como as ferramentas de linha de comandos funcionam. É por isso que a instalação via GUI funciona numa máquina Windows nova, ao contrário de um dfu-util isolado.

Se a instalação do IDE não for uma opção, execute o instalador de controladores correspondente a partir do diretório share/qtcreator/drivers/ do OpenMV IDE como Administrador:

Instalador de controlador

Dispositivos USB que associa

openmv\openmv.cmd

Dispositivos OpenMV DFU e as interfaces SPSDK do RT1062 (0x1FC9:0x0135 SDP ROM e 0x15A2:0x0073 flashloader)

arduino\arduino.cmd

Dispositivos Arduino DFU (2341:03xx)

ftdi\ftdi.cmd

O adaptador FTDI 0403:6015 utilizado para recuperação do bootloader do AE3

DFU_Driver\STM32Bootloader.bat

O dispositivo DFU de sistema ST 0483:df11 utilizado para recuperação do bootloader do STM32

Em alternativa, associe WinUSB ao VID:PID específico com o Zadig ou pnputil. Nenhuma instalação de firmware por linha de comandos no Windows funciona sem isto. Linux e macOS não necessitam de instalação de controladores (o Linux requer apenas as regras udev).

14.1.1.3.3. Instalação via SWD (make deploy)

Se uma sonda de depuração já estiver ligada à câmara – como acontece durante a depuração – o ciclo de edição-build-instalação mais rápido ignora o USB DFU e programa o chip diretamente via SWD. Nas câmaras STM32:

make -j$(nproc) TARGET=<TARGET> deploy

Este procedimento instala o firmware recém-compilado via STM32_Programmer_CLI (do SDK) através da sonda ligada. Não há entrada no bootloader, não há reenumeração USB nem troca de cabos: compile, execute deploy e a câmara reinicia com o novo código. Este é o fluxo de trabalho recomendado durante o desenvolvimento ativo de firmware. Utilize DFU ou o OpenMV IDE quando instalar sem sonda ou quando distribuir firmware para outros.

14.1.1.3.4. Entrar no modo bootloader / DFU

A instalação do firmware requer que a câmara esteja no modo bootloader / DFU. Há três formas de entrar:

  • Na ligação (qualquer câmara). Todas as câmaras executam o bootloader durante uma breve janela ao ligar, antes do firmware iniciar – ligue a câmara por USB e o bootloader fica brevemente à escuta.

  • A partir do IDE (qualquer câmara). Com a câmara ligada, Tools -> Force enter OpenMV Cam bootloader reinicia-a em modo bootloader.

  • Botão de reset Arduino. Nas placas Arduino, clique duas vezes no botão de reset para entrar em modo bootloader.

14.1.1.3.5. Instalação por linha de comandos por família de câmaras

As páginas abaixo mostram o que o OpenMV IDE faz internamente para cada família de câmaras, para quando pretende executar a instalação do firmware por conta própria – em scripts, em CI ou numa linha de produção. Para instalações do dia-a-dia, recomendamos o OpenMV IDE.