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; connectClicked activeert op V3-boards altijd bootloaderQSPIFLayout maar voert bootloaderQSPIFErase alleen uit wanneer forceFlashFSErase is 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.txt id-naar-naam-toewijzing (0ffa82958).

  • LED-gids bij eerste gebruik voegt een nieuw OpenMV Cam LED Colors-dialoogvenster toe dat na een korte vertraging verschijnt wanneer helloworld_1.py bij het eerste gebruik het geopende document is, en dat de toestanden van de onboard-LED uitlegt (knipperend groen = bootloader draait, blauw = main.py draait, wit = hardwarestoring-paniek); een selectievakje “Don’t show this message again.” bewaart het wegklikken via een DONT_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 ook Label Files (*.txt)- en All Files-vermeldingen (ad1aa98f0, 0ffa82958, c0dbdd9e5).

  • Versieschakelaar voor debugprotocol splitst de seriële commando’s GetAttribute, SetAttribute, FBEnable en JPEGEnable op 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 nieuwe 32-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.py schrijft (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 int naar 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 eenvoudig umount-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 OPENMV4R naar OPENMV4P (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.