14.1.1.3. De firmware flashen

Zodra je een firmware.bin (en de bijbehorende romfs<n>.img) hebt uit De firmware bouwen, programmeer je die op de camera. OpenMV IDE is de aanbevolen methode; de procedure via de opdrachtregel verschilt per camerafamilie en wordt per familie gedocumenteerd op de pagina’s die onderaan zijn gelinkt. De bootloader zelf wordt apart hersteld – zie De bootloader herstellen.

14.1.1.3.2. Windows: de USB-drivers installeren

Windows heeft geen ingebouwde driver voor de USB DFU-, SDP- en ISP-interfaces van de camera, dus de opdrachtregeltools (dfu-util, de NXP SPSDK-tools, de Alif SE Tools) kunnen het apparaat niet detecteren totdat er een WinUSB-driver aan is gekoppeld. De Windows-installer van OpenMV IDE installeert al deze drivers, dus de eenvoudigste aanpak is om OpenMV IDE een keer te installeren – waarna zowel de IDE als de opdrachtregeltools werken. Dit is waarom flashen via de GUI lukt op een verse Windows-machine terwijl een losse dfu-util dat niet doet.

Als het installeren van de IDE geen optie is, voer dan de bijbehorende driver-installer uit de map share/qtcreator/drivers/ van OpenMV IDE uit als Administrator:

Driver-installer

USB-apparaten die het koppelt

openmv\openmv.cmd

OpenMV DFU-apparaten, en de RT1062 SPSDK-interfaces (0x1FC9:0x0135 SDP ROM en 0x15A2:0x0073 flashloader)

arduino\arduino.cmd

Arduino DFU-apparaten (2341:03xx)

ftdi\ftdi.cmd

De FTDI 0403:6015-adapter die wordt gebruikt voor AE3-bootloaderherstel

DFU_Driver\STM32Bootloader.bat

Het ST 0483:df11 systeem-DFU-apparaat dat wordt gebruikt voor STM32-bootloaderherstel

Koppel anders WinUSB aan de specifieke VID:PID met Zadig of pnputil. Zonder dit werkt opdrachtregel-flashen op Windows niet. Linux en macOS hebben geen driverinstallatie nodig (Linux vereist alleen de udev-regels).

14.1.1.3.3. Flashen via SWD (make deploy)

Als er al een debug-probe op de camera is aangesloten – zoals voor debugging – omzeilt de snelste bewerk-build-flash-cyclus USB DFU en programmeert de chip rechtstreeks via SWD. Op de STM32-camera’s:

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

Dit flasht de zojuist gebouwde firmware via STM32_Programmer_CLI (uit de SDK) over de aangesloten probe. Er is geen bootloaderingang, geen USB-herenumeratie en geen kabelwisseling: bouw, voer deploy uit, en de camera herstart met de nieuwe code. Dit is de aanbevolen workflow tijdens actieve firmwareontwikkeling. Gebruik DFU of OpenMV IDE bij het flashen zonder probe of bij het distribueren van firmware naar anderen.

14.1.1.3.4. De bootloader- / DFU-modus binnengaan

Flashen vereist dat de camera in de bootloader- / DFU-modus staat. Er zijn drie manieren om binnen te gaan:

  • Bij het aansluiten (elke camera). Elke camera draait kort zijn bootloader wanneer hij opstart, voordat de firmware start – sluit de camera aan via USB en de bootloader luistert kort mee.

  • Vanuit de IDE (elke camera). Met de camera aangesloten herstart Tools -> Force enter OpenMV Cam bootloader hem in bootloadermodus.

  • Arduino-resetknop. Op Arduino-boards dubbelklik je op de resetknop om in bootloadermodus te komen.

14.1.1.3.5. Opdrachtregel-flashen per camerafamilie

De onderstaande pagina’s laten zien wat OpenMV IDE achter de schermen doet voor elke camerafamilie, voor wanneer je het flashen zelf wilt uitvoeren – in scripts, in CI of op een productielijn. Voor alledaags flashen raden we OpenMV IDE aan.