14.1.1.3. Grabación del firmware

Una vez que tengas un firmware.bin (y su romfs<n>.img) de Compilar el firmware, prográmalo en la cámara. OpenMV IDE es el método recomendado; el procedimiento por línea de comandos varía según la familia de cámara y está documentado por familia en las páginas enlazadas al final. El bootloader en sí se restaura por separado: consulta Restaurar el bootloader.

14.1.1.3.2. Windows: instalar los controladores USB

Windows no tiene un controlador integrado para las interfaces USB DFU, SDP e ISP de la cámara, por lo que las herramientas de línea de comandos (dfu-util, las herramientas NXP SPSDK, las Alif SE Tools) no pueden detectar el dispositivo hasta que se le vincule un controlador WinUSB. El instalador de Windows de OpenMV IDE instala todos estos controladores, así que el enfoque más sencillo es instalar OpenMV IDE una vez; después de eso, tanto el IDE como las herramientas de línea de comandos funcionan. Por eso la grabación con interfaz gráfica funciona en una máquina Windows nueva mientras que un dfu-util independiente no.

Si instalar el IDE no es una opción, ejecuta el instalador de controladores correspondiente desde el directorio share/qtcreator/drivers/ de OpenMV IDE como Administrador:

Instalador de controladores

Dispositivos USB que vincula

openmv\openmv.cmd

Dispositivos OpenMV DFU y las interfaces SPSDK del RT1062 (0x1FC9:0x0135 SDP ROM y 0x15A2:0x0073 flashloader)

arduino\arduino.cmd

Dispositivos Arduino DFU (2341:03xx)

ftdi\ftdi.cmd

El adaptador FTDI 0403:6015 usado para la recuperación del bootloader del AE3

DFU_Driver\STM32Bootloader.bat

El dispositivo DFU de sistema ST 0483:df11 usado para la recuperación del bootloader STM32

Alternativamente, vincula WinUSB al VID:PID específico con Zadig o pnputil. Sin esto, ninguna grabación por línea de comandos funciona en Windows. Linux y macOS no necesitan instalación de controladores (Linux solo requiere las reglas udev).

14.1.1.3.3. Grabación por SWD (make deploy)

Si ya hay una sonda de depuración conectada a la cámara – como ocurre durante la depuración – el ciclo de editar-compilar-grabar más rápido omite el USB DFU y programa el chip directamente por SWD. En las cámaras STM32:

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

Esto graba el firmware recién compilado mediante STM32_Programmer_CLI (del SDK) a través de la sonda conectada. No hay entrada al bootloader, ni reenumeración USB, ni cambio de cables: compila, ejecuta deploy y la cámara se reinicia ejecutando el nuevo código. Este es el flujo de trabajo recomendado durante el desarrollo activo del firmware. Usa DFU u OpenMV IDE cuando grabes sin una sonda o cuando distribuyas firmware a otros.

14.1.1.3.4. Entrar en modo bootloader / DFU

La grabación requiere que la cámara esté en su modo bootloader / DFU. Hay tres formas de entrar:

  • Al conectar (cualquier cámara). Cada cámara ejecuta su bootloader durante una breve ventana al encenderse, antes de que arranque el firmware: conecta la cámara al USB y el bootloader estará escuchando brevemente.

  • Desde el IDE (cualquier cámara). Con la cámara conectada, Tools -> Force enter OpenMV Cam bootloader la reinicia en modo bootloader.

  • Botón de reinicio de Arduino. En las placas Arduino, haz doble clic en el botón de reinicio para entrar en modo bootloader.

14.1.1.3.5. Grabación por línea de comandos según la familia de cámara

Las páginas siguientes muestran lo que OpenMV IDE hace internamente para cada familia de cámara, para cuando quieras ejecutar la grabación tú mismo: en scripts, en CI o en una línea de producción. Para la grabación cotidiana recomendamos OpenMV IDE.