v4.8.1¶
v4.8.1 is gebouwd op Qt Creator 14.0.2 en draait om een nieuw, zeer betrouwbaar OpenMV V2-cameraprotocol, een ingebouwde Code Profiler en een opslagworkflow waarbij de camera gemonteerd blijft in plaats van te worden uitgeworpen. De meegeleverde firmware en de volledige voorbeeldenset zijn bijgewerkt naar 4.8.1. Er zijn geen wijzigingen die de scripting-API breken, maar het gedrag waarbij opslaan de camera niet langer uitwerpt en het verwijderen van enkele seriële opstartvlaggen zijn voor de gebruiker zichtbare workflowwijzigingen.
Hoogtepunten¶
OpenMV Protocol V2 is een nieuwe, zeer betrouwbare camerastack (
OMVCamera/OMVTransport/OMVDebug) met CRC32, sequencing, ACK/NAK, hertransmissie, events en fragmentatie. Het wordt automatisch onderhandeld bij het verbinden en stuurt reset, boot, streaming, scriptuitvoering en statistieken aan.Code Profiler is een nieuw venster (
Window>Show Code Profiler) dat per functie profilingrecords van de camera opvraagt en aanroepen, min/max/totaal/gemiddelde microseconden (μs), gemiddelde cycli, percentage en eventtellers toont in een sorteerbare tabel.Ter plaatse opslaan werpt het camerastation niet langer uit; de IDE schrijft nu
main.pyen spoelt het volume naar schijf zodat het apparaat gemonteerd blijft.Detectie van meerdere sensoren rapporteert elke camera op een board, weergegeven in de statusbalk als
Sensors: X, Ymet de hoofdsensor als eerste vermeld.Dynamic Frame Reading herberekent de best passende ruwe streamingresolutie per pixelformaat en herconfigureert de stream automatisch.
Meegeleverde firmware en voorbeelden zijn voor alle boards bijgewerkt naar 4.8.1, met nieuwe voorbeelden voor de GenX320 event-camera, TensorFlow ML, Alif OLED en LCD/Touch-LCD shields.
Nieuwe functies¶
Toegevoegd: het OpenMV V2-communicatieprotocol: een volledige transport- en transactielaag met CRC32, sequencing, ACK/NAK, hertransmissie, events en fragmentatie, plus een
OMVCamera-klasse die automatisch wordt onderhandeld bij verbinden en is geïntegreerd in de seriële driver (2fde9eb3f, fff1bf2ba, 8c41fcfad, 7fc7ed4bc, 84c3956af, 669039adf, a49259852, 07af1922a, 85f0c7c87, 5070cc213, e314459cc, e0367ca95, 0da2f79d0, 2b6fc9866, 534ecffbe).Toegevoegd: het Code Profiler-venster (
Window>Show Code Profiler), dat per functie profilingrecords opvraagt en aanroepen, min/max/totaal/gemiddelde microseconden (μs), gemiddelde cycli, percentage en eventtellers toont, waarbij adressen via een meegeleverde ELFIO ELF-parser worden omgezet naar symbolen (019d3cd2c, 57cd9e1cc).Toegevoegd: een dialoogvenster Debug Protocol Settings dat live System Info, Host Stats en Device Stats toont, elke seconde vernieuwd, met per kanaal de pollingfrequenties plus bedieningselementen voor gecombineerde versus gesplitste polling (5220a6125, 0da2f79d0).
Toegevoegd: detectie van meerdere sensoren: een board met meer dan één camera rapporteert ze allemaal in de statusbalk als
Sensors: X, Y, met de hoofdsensor als eerste (cebc79ce7).Toegevoegd: Dynamic Frame Reading (standaard aan), dat de best passende ruwe streamingresolutie per pixelformaat (
BINARY,GRAY,RGB565,ARGB8,JPEG,PNG) herberekent en de stream herconfigureert (75c073bdb, 0da2f79d0).Toegevoegd: framebuffer-decodering voor de ruwe pixelformaten
BINARY(1-bpp mono) enARGB8(32-bits alfa) zodat die afbeeldingstypen nu in de viewer worden weergegeven (dabb82062).Op Windows zoekt Connect nu naar USB-apparaten die door het besturingssysteem als problematisch zijn gemarkeerd en waarschuwt met een lijst van de defecte apparaten die de verbinding kunnen blokkeren (1a5beb081, 1b59cd78e).
Toegevoegd: een registratie-indicator in de statusbalk: een groene knop
Registeredof koraalkleurige knopUnregisteredvoor de verbonden camera, aanklikbaar om het board te registreren (a8c98a4b9).De framebuffer-viewer kan nu een gecentreerd tekstbericht weergeven dat vanuit het draaiende script wordt verzonden via een nieuwe
FB_MESSAGE-escapecode in plaats van een afbeelding (530048201).Toegevoegd: nieuwe model-zoo-items: ST FastDepth dieptebepalingsmodellen (224/256/320), een ST head-landmarks pose-model, palm-detection- en hand-landmarks handmodellen en een BlazeFace front-gezichtsdetectiemodel (551668410, 4d64556d4, fadd6c4ed, b8277bb88, a8c98a4b9).
Toegevoegd: een zelftestscript dat alleen in factory-builds aanwezig is (camera, IMU, ToF, WiFi, LAN), dat wordt meegeleverd en automatisch wordt geopend bij het opstarten van de factory-variant van de IDE (0db7fbbb0); het RT1060 LAN-gedeelte van de test is momenteel uitgeschakeld (48370d022).
Overige wijzigingen en verbeteringen¶
Ter plaatse opslaan: het opslaan van een script werpt het camerastation niet langer uit; de IDE schrijft
main.pyen spoelt het volume naar schijf (FlushFileBuffersop Windows,syncfsop Linux,sync_volume_np/F_FULLFSYNCop macOS) zodat het apparaat gemonteerd blijft (1614c572f, 6928b51ea, 35ed53967).Werkbalkacties die worden aangeklikt terwijl de camera bezig is (framebuffer uitschakelen, JPEG comprimeren, script opslaan, instellingen configureren) worden nu in de wachtrij gezet en automatisch uitgevoerd zodra het apparaat vrij is, in plaats van dat er een Busy-foutdialoog verschijnt (f4315f0a4).
De framebuffer-viewer staat nu standaard op passend in beeld zodat de afbeelding bij het opstarten automatisch op het venster wordt geschaald, en het uitvoerpaneel van de seriële terminal wordt nu standaard bij het opstarten getoond (f3ce4dc75).
Gecompileerde modelbestanden met de extensie
.liteworden nu overal herkend: filtering en weergave in de model-zoo-browser, ROMFS-uitlijning van de firmware, en de Vela/STEdge AI-compilers genereren nu.lite-uitvoer (f3ce4dc75).Het STEdge AI (N6)-dialoogvenster voor het compileren van modellen parseert en rapporteert nu de gebruikspercentages van NPU-RAM en hyperRAM en kopieert de verplaatste netwerkuitvoer naar een bestand dat overeenkomt met de extensie van het model (f3ce4dc75).
De model-zoo-browser toont nu de kolom met bestandsgrootte en rekt de naamkolom uit om te passen, in plaats van de grootte te verbergen (f3ce4dc75).
Het sjabloon voor nieuwe scripts is bijgewerkt naar de nieuwe
csi-module-API en gebruikt standaard de framesize VGA, en het meegeleverde Hello World-voorbeeld is van QVGA naar VGA-framesize overgeschakeld (f3ce4dc75).Het dialoogvenster Convert Video is herschreven om de gedeelde laderdialoog te gebruiken met gekleurde uitvoer, succes-/foutmeldingen, een OK-om-te-sluiten-knop en een duidelijke fout wanneer FFMPEG niet beschikbaar is op het platform (f56efc7be).
De framebuffer-viewer toont nu een knipperende waarschuwing wanneer een
JPEG/PNG-afbeelding te groot is om te bufferen en te verzenden, via een nieuweFB_BUFFER_ERROR-escapecode (fda826126).Het binnengaan van de DFU-bootloader dwingt de bootloader nu om resident te blijven op firmware met het V2-protocol, met versiedetectie die terugvalt op een gewone reset bij oudere bootloaders (<1.0.2) die vast konden lopen wanneer ze werden geforceerd (975857221).
ST object-detectiemodelmappen zijn hernoemd en gereorganiseerd (
st_yolo_lc_v1naaryolo_lc,tiny_yolo_v2naaryolo_v2,yolov8n-persoonsmodellen naar bestanden met alleen een grootte in de naam) en de grote int8-varianten vantiny_yolo_v2zijn verwijderd (34240cc3c).De seriële timing wordt nu afgesteld via de
protocol-overschrijfsleutels in de firmware-settings.json(overrideReadTimeout,overrideReadStallTimeout,overridePerCommandWaiten de V2-sleutelsoverrideCRC/overrideSEQ/overrideACK) in plaats van via opstartvlaggen op de opdrachtregel (019d8bf1d).De regellengtelimiet van de Python language-server is voor flake8 en pycodestyle ingesteld op 120 kolommen zodat lange regels niet langer bij de standaard 79 worden gemarkeerd (dabb82062).
De meegeleverde set machine-learning-modellen is verkleind door de Qualcomm-modelcollectie en
google/mobilenet_v1naarmodels_unusedte verplaatsen om het installatieprogramma te verkleinen (c44ddba20).
Bugfixes¶
De voortgangsdialogen voor firmware-download en resource-update zijn crashbestendig gemaakt met
QPointer-beveiligingen zodat ze geen verwijderde dialoog meer gebruiken als deze midden in een download wordt gesloten (f3ce4dc75).Het scannen van stations blijft nu opnieuw scannen totdat het USB-station van de camera is gevonden en wist verouderde stationsvermeldingen bij het verbreken van de verbinding, waarmee de eerdere eenmalige timer-hack is verwijderd (a31d41b4e).
Diverse verbindings- en seriële fixes: verborgen sensoren (bijv.
SoftCSI) maken het weergegeven sensortype niet langer rommelig, een Windows seriële keep-alive-timer voorkomt USB-vastlopers, Start herstart een al draaiend script niet meer, en het camerakanaal wordt netjes losgekoppeld bij het sluiten van de poort (a8e467be6).De profilerweergave heeft de per-kolom PMU-eventtellerselectie (aanvinkbare eventmenu’s) en de opgeslagen teller-/kopstatus hersteld die tijdelijk waren uitgeschakeld (40c679e90).
Platform- en toolondersteuning¶
Qt Creator-basis: 14.0.2.
Meegeleverde firmware: bijgewerkt van 4.7.0 naar 4.8.1, met herbouw van de firmware voor OPENMV2/3/4/4P/PT, OPENMV_N6, OPENMV_AE3, OPENMV_RT1060 en de Arduino GIGA/Nicla Vision/Portenta H7-boards (2657818ca).
De protocolversie-handshake op macOS voor RT1062- en AE3-boards is gerepareerd door de multi-command USB-overdracht op te splitsen in stukken ter grootte van
USBDBG_LENdie deze boards aankunnen (6b9d5f842).Het meegeleverde Windows-driverpakket is herzien: per board ondertekende
.cat/.inf-driverbestanden toegevoegd (AE3, H7, H7Plus, M4, M7, N6, Pico/PT, RT1062) en de CDC seriële drivers zijn verplaatst naar een nieuweopenmvcdc-map met een op dpinst gebaseerde auto-installer (439557829, ba3b01bfb).Ondersteuning toegevoegd voor oudere revisies van de MT9V032-camerasensor door de sensor-ID’s
0x1311en0x1312(naast de bestaande0x1313) te registreren alsMT9V0X2(eaaa624e3).
Brekende wijzigingen¶
Deze release breekt geen scripting-API, maar er zijn enkele voor de gebruiker zichtbare workflowwijzigingen:
Het opslaan van een script werpt of ontkoppelt het USB-station van de camera niet langer. De IDE spoelt nu de volumebuffers ter plaatse, zodat het apparaat na een opslagactie gemonteerd blijft.
De seriële opstartvlaggen
-override_read_timeout(standaard 5000 ms),-override_read_stall_timeout(standaard 1000 ms) en-override_per_command_wait(standaard 1 ms, 2 ms op macOS) zijn verwijderd; de seriële timing wordt nu geconfigureerd via deprotocol-overschrijfsleutels in de firmware-settings.json(019d8bf1d).Meegeleverde bootloaders worden nu alleen als
.bingeleverd; de per-board.dfufirmware- en bootloaderbestanden zijn verwijderd.