v2.4.0¶
v2.4.0 is gebouwd op Qt Creator 4.0.2 en draait om de nieuwe V3-bootloader (QSPI-flashindelingopvraging tijdens het laden van firmware en wissen tijdens een volledige wisbeurt van het onboard-dataflashgeheugen), live sensor- en boardrapportage in de statusbalk, en een nieuw 32-bits USB-debugprotocol dat overeenkomt met de meegeleverde firmware. Het voegt ook een LED-gids bij eerste gebruik toe en een grote reeks nieuwe TensorFlow-, Modbus- en WiFi-voorbeelden. Omdat het debugprotocol is gewijzigd, moeten camera’s de nieuwe meegeleverde firmware draaien om verbinding te kunnen maken.
Hoogtepunten¶
V3-bootloaderondersteuning vraagt de indeling van het externe QSPI-flashgeheugen van een board op tijdens het laden van firmware en wist het tijdens een volledige wisbeurt van het onboard-dataflashgeheugen (d953df62f).
Sensor- en boardrapportage vraagt bij het verbinden de sensormodule van de aangesloten camera op en toont deze in de statusbalk (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) naast een nieuw boardtype-label (0ffa82958).
TensorFlow-model kopiëren laat je
.tflite-modellen naar de cam kopiëren, niet alleen.network-bestanden van neurale netwerken (ad1aa98f0).Onboard-dataflashgeheugen wissen is een nieuw
Tools-commando dat alleen het onboard-bestandssysteemflashgeheugen van de cam wist, na een bevestigingsvraag, zonder de firmware opnieuw te flashen (d953df62f, 98686ac46).LED-gids bij eerste gebruik is een nieuw
OpenMV Cam LED Colors-dialoogvenster dat de toestanden van de onboard-LED uitlegt en permanent kan worden weggeklikt (c2d00422f).
Nieuwe functies¶
V3-bootloader vraagt de QSPI-flashindeling op tijdens het laden van firmware en wist het externe QSPI-flashgeheugen alleen tijdens een volledige wisbeurt van het onboard-dataflashgeheugen;
connectClickedactiveert op V3-boards altijdbootloaderQSPIFLayoutmaar voertbootloaderQSPIFErasealleen uit wanneerforceFlashFSEraseis ingesteld (QSPI-schrijf-/geheugentestcommando’s zijn geïmplementeerd in de IO-laag maar worden niet door de loader aangeroepen) (d953df62f).Sensor- en boardstatus vraagt bij het verbinden de sensormodule van de camera op en toont deze (OV2640, OV5640, OV7690, OV7725, OV9650, MT9V034, LEPTON) in de statusbalk, samen met een nieuw boardtype-label, met behulp van een nieuwe
sensors.txtid-naar-naam-toewijzing (0ffa82958).LED-gids bij eerste gebruik voegt een nieuw
OpenMV Cam LED Colors-dialoogvenster toe dat na een korte vertraging verschijnt wanneerhelloworld_1.pybij het eerste gebruik het geopende document is, en dat de toestanden van de onboard-LED uitlegt (knipperend groen = bootloader draait, blauw =main.pydraait, wit = hardwarestoring-paniek); een selectievakje “Don’t show this message again.” bewaart het wegklikken via eenDONT_SHOW_LED_STATES_AGAIN-instelling (c2d00422f).OpenMV Cam-stationsmap openen is een nieuw
Tools-menu-item dat het gekoppelde station van de camera opent in de bestandsverkenner van het systeem (a49f54305).Onboard-dataflashgeheugen wissen is een nieuw
Tools-commando dat alleen het onboard-bestandssysteemflashgeheugen wist, na een bevestigingsvraag, zonder de firmware opnieuw te flashen (d953df62f, 98686ac46).TensorFlow-model kopiëren laat het model-kopieerdialoogvenster
.tflite-modellen naar de cam kopiëren naast.network-bestanden van neurale netwerken; het dialoogfilter kreeg ookLabel Files (*.txt)- enAll Files-vermeldingen (ad1aa98f0, 0ffa82958, c0dbdd9e5).Versieschakelaar voor debugprotocol splitst de seriële commando’s
GetAttribute,SetAttribute,FBEnableenJPEGEnableop bij communicatie met firmware 3.5.3+ voor meer betrouwbaarheid (83b9ca18f).Nieuwe meegeleverde voorbeelden voegen TensorFlow Lite mobilenet- en persoonsdetectie-schuifvenster-scripts toe plus een STM32Cube.AI (
nn_stm32cubeai.py) MNIST-voorbeeld, een nieuwe32-modbus-map (modbus_rtu_slave.py,modbus_apriltag.py), WiFi-shield-toevoegingen (http_client_ssl,static_ip,mqtt_pub/mqtt_sub), Arduino UART/SPI-slave, en CAN (e26b90d79, 42ba8f5c4).
Overige wijzigingen en verbeteringen¶
Het USB-debugprotocol is bijgewerkt naar de nieuwe firmware: attribuutlezingen gebruiken het nieuwe 32-bits
ATTR_READ_2(0xCA)-commando, en attribuut-, waarde- en framebuffer-enable-payloads worden verzonden als 32-bits longs in plaats van 16-bits words (55d7cfe70).Save open script to OpenMV Cam is hernoemd naar Save open script to OpenMV Cam (as main.py) om te verduidelijken dat het
main.pyschrijft (a49f54305).Run Bootloader is hernoemd naar Run Bootloader (Load Firmware) om het doel ervan te verduidelijken (ad1aa98f0).
Voorbeeldmenu’s worden nu gesorteerd op hun numerieke map-/bestandsprefix, en de voorloop
NN--cijfers worden uit de weergegeven namen verwijderd (ad1aa98f0).Uitvoer- en seriële terminals geven tabs nu weer als spaties met een configureerbare tabbreedte voor de seriële terminal uit de teksteditor-instellingen in plaats van een vaste breedte van 8 (98686ac46).
Stationsdetectie op Linux accepteert nu ook
fuseblk-gekoppelde bestandssystemen (bijvoorbeeld exFAT/NTFS-volumes) bij het koppelen van het camerastation (c0dbdd9e5).De meegeleverde MicroPython HTML-documentatieset (bibliotheekreferentie, esp8266/esp32-tutorials, gegenereerde pagina’s en afbeeldingen) die in de IDE-help wordt getoond, is bijgewerkt (e69d71f7c, 90b5c6eb5, 97b0f645a).
Bugfixes¶
Een numerieke overflow in de histogramstatistieken (gemiddelde, kwartielen, mediaan, standaarddeviatie) is verholpen door de accumulators te verbreden van
intnaar 64-bits, wat onjuiste statistieken op grote afbeeldingen voorkomt (55d7cfe70).Loskoppelen/uitwerpen op Linux is herzien: de onbetrouwbare
syncfs/closedir-flush is verwijderd en het station wordt nu ontkoppeld met een eenvoudigumount-commando, zonder voortgangsvenster (b86d5c62c, c0dbdd9e5, 30d4a7d2d).Het USB-station van het board wordt nu alleen gekoppeld wanneer de firmware nieuw genoeg is of een
.openmv_disk-markeringsbestand aanwezig is, wat voorkomt dat de IDE het verkeerde verwijderbare station kaapt (e464eaed4).De herverbindingslogica is gecorrigeerd, zodat het activeren van een bootloader-/wisbewerking terwijl er verbinding is nu eerst netjes verbreekt en daarna opnieuw probeert, wat een vastzittende bezig-toestand voorkomt (d953df62f).
De commentaar-/witruimteverwijderaar die wordt gebruikt bij het verzenden van scripts naar de cam is herschreven als een string-bewuste toestandsmachine, zodat
#-tekens binnen strings niet langer worden aangezien voor commentaar, en afsluitende witruimte en docstrings correct worden afgehandeld (24dff1b2f).De afhandeling van vertaalstrings voor diverse verbindings-/terminaldialoogberichten is gecorrigeerd, zodat de ingesloten shell-commando’s (
sudo adduser,pydfu-installatiestappen) niet langer deel uitmaken van de vertaalbare tekst en correct worden weergegeven (b5705a57e).
Platform- en toolondersteuning¶
Qt Creator-basis: 4.0.2.
Het OpenMV Cam H7 Plus-board/-firmware is hernoemd van
OPENMV4RnaarOPENMV4P(OMV4P_H7_32768_SDRAM) en de bijbehorende firmware is onder de nieuwe naam meegeleverd (c0dbdd9e5).De weergavenaam van het H7 Plus-board is gecorrigeerd zodat deze underscores in plaats van spaties gebruikt (
OpenMV_Cam_H7_Plus_(STM32H743_w/_SDRAM)) (75764132c).De meegeleverde firmware is gedurende de release bijgewerkt, eindigend op versie 3.5.2 voor OPENMV2/3/4/4P (laatste verhoging in 15c07498c; eerdere cumulatieve verhogingen in 42ba8f5c4 naar 3.4.2, a99c2e3e1 naar 3.4.3, e26b90d79 naar 3.5.0, en 97b0f645a naar 3.5.1).
Meegeleverde firmwareversies: OPENMV2 (Cam M4) 1.4.11, OPENMV3 (Cam M7) 1.4.11, OPENMV4 (Cam H7) 1.2.15, OPENMV4P (Cam H7 Plus) 1.2.15.
OpenMV IDE-versie verhoogd van 2.2.1 naar 2.4.0.
Ingrijpende wijzigingen¶
Het USB-debugprotocol voor attribuutlezing is overgeschakeld van het oude 16-bits ATTR_READ (0x8A)-commando naar het nieuwe 32-bits ATTR_READ_2 (0xCA)-commando, en attribuut-, waarde- en enable-payloads worden nu verzonden als 32-bits longs; de IDE vraagt bij het verbinden ook de sensor-ID van de camera op. Dit vereist firmware die het nieuwe protocol implementeert. De meegeleverde 1.2.15 / 1.4.11-firmware biedt dit, dus oudere camera’s moeten naar de nieuwe firmware worden geflasht om verbinding te kunnen maken.