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.1. OpenMV IDE: Load Custom Firmware (aanbevolen)¶
OpenMV IDE bundelt elke flashtool (dfu-util, de NXP SPSDK-tools, de Alif SE Tools, de STM32-tools), installeert de vereiste USB-drivers op Windows, regelt het binnengaan van de bootloader en selecteert de juiste opdracht voor de aangesloten camera. Het is de aanbevolen manier om een aangepaste build te flashen.
Sluit de camera aan via USB (je hoeft niet op Connect te klikken).
Tools -> Load Custom Firmware.
Stel in het dialoogvenster Firmware Path in op de
build/<TARGET>/bin/firmware.binvan je build.Vink optioneel Erase internal file system aan om het interne FAT-bestandssysteem van de camera te wissen (zie Het interne bestandssysteem wissen voor wanneer en waarom).
Vink optioneel Reset ROMFS file system aan om de standaard-ROMFS opnieuw te flashen (uitgeschakeld als je rechtstreeks een
.imghebt geselecteerd).Klik op Run. De IDE reset de camera naar de bootloader, toont de exacte flashopdracht en een voortgangsbalk, en herstart de camera in de nieuwe firmware. Wacht op de blauwe zelftest-LED; de camera wordt daarna weer normaal geenumereerd.
Er is ook Tools -> Force enter OpenMV Cam bootloader om de camera handmatig in DFU-modus te zetten voordat je flasht.
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 DFU-apparaten, en de RT1062 SPSDK-interfaces ( |
|
Arduino DFU-apparaten ( |
|
De FTDI |
|
Het ST |
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.