v4.0.1

v4.0.1 is een grondige modernisering die OpenMV IDE rebaset van zijn al lang bestaande Qt Creator 4.0.2-basis naar Qt Creator 10.0.1. De volledige OpenMV-pluginstack (framebuffer-viewer, serieel/protocol, terminal, histogram, drempelwaarde- en sleutelpunt-editors, videotools en wrappers voor het flashen van firmware) wordt opnieuw toegepast bovenop de nieuwe basis, naast een verzorgd themapaar Flat Light/Flat Dark, OpenMV-bewuste Python-highlighting, een uniform firmware-laaddialoogvenster en brede ondersteuning voor apparaatdetectie op ARM64 Linux en macOS. De wijziging van de Qt Creator-basis is een grote interne modernisering, maar breekt geen gebruikersprojecten; enkele standaardgedragingen en boarddefinities zijn wel veranderd (zie Brekende wijzigingen).

Hoogtepunten

  • Qt Creator 10.0.1-rebase. De IDE gaat van Qt Creator 4.0.2 naar 10.0.1: upstream Qt Creator is teruggebracht tot zijn build-basis (98b95fd3b) en de volledige OpenMV-plugin is opnieuw toegevoegd op de nieuwe basis (0e8047372).

  • Flat Light- en Flat Dark-thema’s. Een verzorgd licht/donker-themapaar wordt geleverd met bijpassende aangepaste syntaxis-highlightingstijlen voor de editor; de Theme-kiezer is opnieuw beschikbaar in de algemene instellingen, beperkt tot enkel deze twee, en het standaardthema is nu flat-dark (21348924b, 13c3849e8).

  • Raw-REPL seriële terminal. De terminal draait, onderbreekt, herlaadt en plakt scripts nu via een echte MicroPython raw-REPL (CTRL-A/CTRL-D) toestandsmachine, die grotere scripts betrouwbaar afhandelt (a7241079c).

  • OpenMV-bewuste Python-bewerking. OpenMV-modules, -klassen, -functies, -methoden en -argumenten worden syntaxis-gehighlight op basis van de meegeleverde documentatie, met slimmere automatische aanvulling en een haakje/dubbelepunt-bewuste auto-inspringer (801eab8a8, 8e9f967e7, 9fdff9c6d).

  • Uniform firmware-laaddialoogvenster. Bij het flashen wordt nu een enkel contextueel dialoogvenster getoond (Schijf wissen / Firmware flashen / Bootloader flashen) met een voortgangsbalk en een inklapbaar, toestand-onthoudend Details tonen/verbergen-logboek (5b51356f8).

  • Ondersteuning voor OpenMV Cam RT1062. Firmware, DFU/flash-loaders, SDP/blhost-enumeratie en een eFuse-brandprogrammeringsstap zijn toegevoegd voor het nieuwe board uit de i.MX RT1060-klasse (a6595f5f7), dat vervolgens een aparte Secure Bootloader (SBL) boardvariant krijgt (d2b11c6c8).

Nieuwe functies

  • Automatiseringsvlaggen. Met de vlaggen -auto_update (release / development / pad), -auto_erase en -auto_run kan de IDE firmware bootloaden/wissen en vervolgens het geopende script uitvoeren bij verbinden; na een herverbinding van de bootloader wacht de IDE tot 10s totdat de camera opnieuw geënumereerd is voordat verder wordt gegaan (b54affe79, f4e03d978).

  • ``-disable_stop``-vlag en een stop on connect/disconnect-menuschakelaar laten gebruikers het stoppen van het script bij verbinden of verbreken uitschakelen (02724ca7d).

  • De schakelaar Stop Script on Connect/Disconnect (standaard aan) ontkoppelt verbinden/verbreken van het stoppen van het draaiende script; Auto Reconnect staat nu standaard uit (a0e78057f).

  • Boardtype-prompt. Wanneer een verbonden board een architectuur meldt die niet in de firmware-mapping staat, vraagt de IDE de gebruiker nu om het boardtype te kiezen (waarbij de laatste keuze wordt onthouden) in plaats van af te breken met een “Unsupported board architecture!”-fout (b7165eb3d).

  • OpenMV Python-syntaxishighlighting kleurt bekende OpenMV-modules, -klassen, -data, -functies, -methoden en -argumenten met behulp van trefwoordenlijsten die worden gevuld vanuit de meegeleverde documentatie (801eab8a8, b4d481bf5).

  • ~300 KSyntaxHighlighting-taaldefinities worden met de editor geleverd, zodat broncodebestanden in veel talen direct gehighlight worden (39674a4dc).

  • Meegeleverde OpenMV-voorbeeldscripts (Hello World, snapshot, video-opname, optical flow, event cameras, global shutter, FLIR Lepton en meer) worden nu in de IDE vastgelegd en meegeleverd (938ac6bbe).

  • Binaire/hex-editor is ingeschakeld zodat gebruikers binaire bestanden kunnen openen en inspecteren, met een werkbalk die is ingekort om in de OpenMV-UI te passen (675bda966).

  • In-memory documentvergelijking. Nieuwe bestanden en alleen-lezen voorbeelden krijgen nu een onderliggend tijdelijk bestand zodat niet-opgeslagen documenten vergeleken kunnen worden, en het dialoogvenster voor het vergelijken van externe bestanden onthoudt de laatst gebruikte map (5281e5f6c, 2934d5216).

  • Plugin voor editor met tabbladen is opnieuw toegevoegd, waardoor de IDE een documentbalk met tabbladen krijgt; de broncode van de minimap-plugin is opnieuw toegevoegd maar voor deze release uitgeschakeld gelaten in de build (0e8047372).

  • DfuSe- en pydfu-fallbackflashing is hersteld voor DFU-apparaten die niet via serienummer kunnen worden geadresseerd, met automatische wisafhandeling zonder dialoogvenster tijdens het verbinden (e42a5be7d).

  • i.MX RT eFuse-brand. Bij firmwareprogrammering wordt nu een eFuse gebrand (efuse-program-once) voor de boards uit de RT1060-klasse (8053bb578, a6595f5f7).

  • Wizardpagina Linux Root Installs laat de gebruiker zich aan- of afmelden voor de apt-bibliotheekinstallatie met verhoogde rechten en de installatie van udev-regels in plaats van deze altijd uit te voeren (6bac80984).

Overige wijzigingen en verbeteringen

  • Seriële poortscanning op de achtergrond. Poortenumeratie is van de UI-thread verplaatst naar een speciale ScanSerialPortsThread-worker zodat de IDE responsief blijft tijdens het scannen (7be4dab26).

  • Bredere apparaatdetectie. Poortscanning is geherstructureerd tot een herbruikbare filterPorts()-helper die picotool- en i.MX DFU-apparaten meeneemt en bekende Arduino bootloader-seriële poorten (oude NRF/RPI- en loader-PID’s) herclassificeert als DFU-apparaten (25a5d30fd).

  • Meer terminal-fallbacks. Bij het starten van de meegeleverde videoafspeeltools (Play Video File / Play RTSP Stream) op Linux valt de IDE nu terug op lxterminal, konsole en xfce4-terminal naast xterm en gnome-terminal (df54007e0).

  • Rapportage van board-sleutels. Cameraregistratie parseert nu een “Remaining N”-respons om de gebruiker te vertellen hoeveel board-sleutels er nog over zijn, en voegt een aparte foutmelding “Invalid Board Key for Board Type” toe (5759e73eb).

  • GitHub-gehoste downloads. Versiecontroles en resource-downloads gebruiken nu raw.githubusercontent.com/openmv/openmv-ide-version en de openmv/openmv-ide-releases in plaats van upload.openmv.io (994109c28).

  • Overal HTTPS. Alle OpenMV-webverzoeken (versiecontroles, SWD ID-registratie, resource- en firmwaredownloads) gebruiken nu https:// (54347cad0).

  • Linux setup-automatisering. Het installatieprogramma detecteert ontbrekende bibliotheken en udev-regels en genereert indien nodig een uitvoerbaar setup.sh met de exacte apt-get/pip- en udev-regel-installatiecommando’s (en een README die de gebruiker zegt het uit te voeren) (c6dc705e6).

  • Tolerantie voor trage boards. De seriële terminal verhoogt zijn wachttijd per lezing van 1ms naar 10ms en geeft een “OK”-bevestiging af wanneer een script klaar is (c935e4489).

  • Vloeiendere flashvoortgang. Voortgangsbalken van de firmware-loader schakelen nu onmiddellijk van onbepaald naar 0-100% in plaats van na de eerste percentagetik, over dfu-util, bossac, picotool en i.MX-flashing heen (19d947308, 86d021f92).

  • Herstel van oude bootloader is opnieuw toegevoegd via een niet-snelle bootloadermodus die wis-/schrijfcommando’s verzendt zonder de query-sync-padding van de snelle modus (c20112c07).

  • Schonere toolconsoles. Firmware-flashterminals (bossac, dfu-util, picotool, imx, videotools) draaien nu als zelfstandige consoleprocessen met beter geformatteerde commando-uitvoer (8053bb578).

  • Verfijning van automatische aanvulling. Aanvulling onderscheidt klassen, methoden en functies met afzonderlijke argumenthints, gebruikt de juiste codemodelpictogrammen en respecteert public/protected/private scope via underscore-voorvoegsel; de trefwoordaanvullingsprocessor slaat ook voorafgaande witruimte vóór de cursor over bij expliciet (handmatig) aangeroepen aanvulling (8e9f967e7, 68b26b5fc).

  • Geconsolideerde dialoogvensters. De ad-hoc “Don’t show this again”-dialoogvensters van OpenMV – waaronder het OpenMV Cam LED Colors-infodialoogvenster bij het opstarten en de firmware-upgrade- en voorbeeldprompts – zijn samengevoegd tot CheckableMessageBox “Do Not Ask/Show Again”-dialoogvensters, een knop “Reset Do Not Ask/Show Again Dialogs” is toegevoegd aan de algemene instellingen, en markeringen voor code folding zijn standaard uitgeschakeld (9fdff9c6d).

  • Thema-bewuste branding. Splashschermen voor de donkere modus, donkere/lichte ST- en NXP-chiplogo’s in het About-venster, tooltipkleuren voor de donkere modus en juiste pictogramkleuren voor automatische aanvulling zijn toegevoegd (d85fdeb19, 9895a8395, f45ceaaea, 7f3e1f383).

  • Opschoning van de afbeeldingsviewer. De acties delen, achtergrond, contour en “set as default” zijn verborgen, een passend-op-scherm-actie is toegevoegd, en de grootte van geanimeerde afbeeldingen is gecorrigeerd (b37c55e25).

  • Opschoning van het contextmenu. De items “Show in File System View”, “Open Terminal”, “File Properties” en “Add/Delete UTF-8 BOM on Save” zijn verborgen (5d862c78e).

  • Donkere seriële terminal. De zelfstandige terminal gebruikt een echt donker thema met gestileerde schuifbalken, bijgewerkte werkbalkpictogrammen en correcte herlading van high-DPI-schuifbalkpictogrammen over schermen heen (5c3af6880).

  • Opschoning van Zoeken/Find. Het resultatenpaneel krijgt een donker thema, de zoekmachine-selector is verborgen, labels zijn vereenvoudigd en Find-in-Files staat standaard op de map Documents/OpenMV (20a806550).

  • Applicatie-identiteit. De IDE toont nu het juiste OpenMV-pictogram op het bureaublad, in de titelbalk en in de taakbalk (met high-DPI-afhandeling op Windows), en de IDE-id is gewijzigd in openmvide (8ad1eed1f).

  • High-DPI-splash toont een 2x splashafbeelding op Retina-/200%-schaaldisplays (626ff673e).

  • Herstel van de actiebalk. De actiebalk aan de linkerkant (New File, Open, Save, Undo, Redo, Cut, Copy, Paste) is hersteld en voorzien van aangepaste OpenMV-pictogrammen (b8479b5d0).

  • Logo’s in het About-dialoogvenster. Zowel de partnerlogo’s van Arduino als Edge Impulse worden nu getoond (Edge Impulse was voorheen verborgen) met high-DPI 2x-varianten, en de meegeleverde splashafbeelding is bijgewerkt (splash-small-2 / splash-large-2) (5facd8d9a).

  • Select Word Under Cursor is ingeschakeld; de commando’s Go to Block Start/End (Ctrl+[ / Ctrl+]) en Select Block Up/Down werden kort opnieuw ingeschakeld (36ed5b1a8) maar uitgeschakeld gelaten in de release (626ff673e).

  • Linux-bureaubladvermelding krijgt een Electronics-categorie, een omschrijvende Comment en zoek-Keywords (embedded electronics, microcontroller, micropython, computer/machine vision) (470e5702e).

  • Resource-migratie. Gebruikersresources zijn verplaatst naar een geversioneerde locatie (de oude qtcreator-map wordt bij het opstarten verwijderd), en onschuldige DirectWrite-lettertypewaarschuwingen op Windows worden onderdrukt (a04af5351, 70765dc2a).

  • Verborgen interne opties. De interne Core-opties -color en -theme zijn verborgen in de help-uitvoer, en de presentatiemodus is opnieuw ingeschakeld (434c7b4cc).

  • Opnieuw toegepaste core-aanpassingen op de fancy actiebalk/tab-widget, de message manager/output window, proxy-acties, syntaxis-highlighter en teksteditor (0e8047372).

  • QCustomPlot 2.1.1. De meegeleverde plotbibliotheek is bijgewerkt voor compatibiliteit met Qt 6.4 en correcte afhandeling van een dynamisch veranderende display-DPI (8801415fe).

  • Cosmetische UI-opschoningen aan de pijlpictogrammen van schuifbalken, de statusbalk, de sluitknoppen van de documenttabbalk en de breedte van de editorscroller; de indicator “Display File Line Ending” van de editor staat nu standaard uit (e0c4d2325, 6a26f4430, e130988fb).

Bugfixes

  • Linux VID/PID-detectie hersteld door /sys/class/tty/<port>/device/uevent te lezen voor de echte VID/PID van het apparaat, waarmee wordt omzeild dat QSerialPortInfo de identificatoren van de USB-hub teruggeeft, zodat camera’s achter hubs correct worden gedetecteerd (28220b351).

  • Mac bootloader-firmwareflashing hersteld door endpoint-grootte-asserties te versoepelen en het sync-querypakket alleen toe te voegen wanneer een schrijfbewerking precies één USB-endpoint groot is (86d021f92).

  • Videoafspeeltools op Linux hersteld: Play Video File / Play RTSP Stream zijn nu verborgen op 32-bits en ARM Linux (geen meegeleverde ffplay), met een gnome-terminal-fallback wanneer xterm niet beschikbaar is, en het macOS ffmpeg-binary is hersteld vanuit een placeholder (d342649cc, d896f4225).

  • De start-/eindvertragingen van de bootloader-reset verhoogd van 0 naar 5 om te voorkomen dat wis- en schrijfcommando’s elkaar overlappen tijdens firmware-updates (fabc168b6).

  • Gestroomlijnd bootloaderherstel: het forceren van de bootloader om een onbruikbare cam te repareren slaat overbodige prompts over, en na een DFU-bootloaderreset probeert de IDE automatisch opnieuw bij te werken in plaats van de gebruiker te vragen opnieuw te verbinden (12b924088).

  • Toegestaan dat seriële framebuffer-/TX-buffer-dumpcommando’s midden in een transactie kunnen worden afgebroken (4a4afae1b).

  • De seriële-poort-leesstilstand-opgeefworkaround verwijderd die responsen met nulbytes kon opvullen, wat de betrouwbaarheid van snelle USB-overdrachten verbetert (0ee1d8e91).

  • WiFi-debugging en automatisch herverbinden hersteld: WiFi-poorten vernieuwen hun laatst-gezien-tijdstempel bij herontdekking, verschillende iterator-na-wissen-bugs in WiFi-poortuitfasering en DFU-/bootloaderdetectie zijn gecorrigeerd, en automatisch herverbinden wacht nu tot de IDE niet bezig is voordat opnieuw wordt verbonden (cf0b67dc6).

  • De video-naar-MJPEG-converter hersteld om de framerate uit de encoderuitvoer te parseren en het juiste milliseconde-verschil per frame te schrijven, zodat geconverteerde video’s op de juiste snelheid worden afgespeeld (4a7ad2057).

  • Hersteld dat firmware-flashing en meegeleverde commandoregeltools niet konden starten door de QProcess-backend te forceren en de event-loop-bewaking van blokkerende processen te corrigeren (200fe9f3c).

  • De vertakkingspictogrammen voor uitvouwen/inklappen van de dataset-editorboom hersteld zodat ze correct renderen op HiDPI-displays, door de pictogramstijlbladen opnieuw te laden bij wijziging van de device-pixel-ratio (a0e78057f).

  • Pakket-/resource-updates herstarten nu automatisch OpenMV IDE in plaats van na de installatie alleen af te sluiten (178ee1b8e).

  • De highlighting van Find-/zoekresultaten hersteld en de zoekresultaat-/bestand-openen-acties teruggevallen op de eerste zichtbare editor wanneer er geen huidige editor is (48c402dfc).

  • Het firmware-laaddialoogvenster hersteld zodat de waarschuwingstekst wordt gewist en het venster correct van grootte verandert wanneer een flashbewerking voltooid is (c505c6ade).

  • Verschillende macOS-UI-bugs hersteld: de tabbalk spamt niet langer pictogram-laadfouten en wordt correct getoond bij het openen van een bestand (9be8c58de, 5322cf968).

  • Styling en baseline-uitlijning van de statusbalk / het output-paneel op macOS en Linux hersteld (4fc4545de, d29b2baa0, a440d5cd8).

  • Het afdrukken van broncode hersteld zodat de paginatitelheader correcte boven- en zijmarges heeft in plaats van tegen de paginarand aan te zitten (786d6012c).

Platform- en toolondersteuning

  • Qt Creator-basis: 10.0.1 (gerebased vanaf 4.0.2).

  • OpenMV IDE: 4.0.0 -> 4.0.1.

  • OpenMV Cam RT1062 (i.MX RT1060): de initiële RT1062-firmware, flash-loader, ondertekende images, imx.txt-vermelding en secure-bootloader/eFuse blhost-configuratiesleutels zijn toegevoegd in de OPENMV5-firmwaremap (a6595f5f7); het board is vervolgens geconsolideerd tot één OPENMV_RT1060-map, en een aparte Secure Bootloader (SBL) boardvariant (OpenMV_Cam_RT1062_SBL) is toegevoegd (d2b11c6c8, 5baf28c6e).

  • Meegeleverde flash-toolchain (blhost, bossac, dfu-util, dfuse + STM32-drivers, picotool, sdphost, ffmpeg, FTDI-/Arduino-drivers) is opnieuw meegeleverd voor Windows/macOS/Linux, met de Linux-binaries gemarkeerd als uitvoerbaar (fbfa4903a, bfb6b32e2, 9551c64da).

  • ARM64 Linux DFU: een meegeleverde aarch64 dfu-util plus arm64-detectie in de apparaatlijst en firmwaredownload maakt DFU-flashing mogelijk op hosts zoals de Raspberry Pi (16bc6fe0f, 470e5702e).

  • i.MX-apparaatdetectie werkt nu op Linux (door lsusb te parseren) en macOS (door ioreg te scannen), waardoor i.MX RT-firmware op die platforms kan worden geladen (e03ccbe71, 7cf505d09).

  • Platformbeperking: i.MX-gebruik is beperkt tot Windows/macOS/Linux-x86_64 met een kritieke fout elders, en Portenta-/Nicla-flashing op ARM/ARM64 Linux toont een waarschuwing “DFU Util may not be stable on this platform” (9513f6475).

  • Windows OpenGL: softwarerendering is hersteld door opengl32sw, Qt6OpenGL en Qt6Gui OpenGL-ondersteuning mee te leveren in het gedistribueerde pakket (aaaa1928f).

  • Arduino-boardmappen/-id’s hernoemd. De firmwaremappen en boards.txt-board-id’s voor de Portenta, Nicla Vision en Nano 33 BLE Sense zijn hernoemd naar ARDUINO_PORTENTA_H7, ARDUINO_NICLA_VISION en ARDUINO_NANO_33_BLE_SENSE (a70d6562a); de map/board-id van de Nano 33 BLE Sense is daarna omgezet naar kleine letters arduino_nano_33_ble_sense om overeen te komen met de door het apparaat gerapporteerde boardnaam (22750d8c7, a801a81de).

  • OPENMV_RT1060 bootloader flash-loaders (blhost_flash_loader.bin, sdphost_flash_loader.bin) zijn bijgewerkt (5baf28c6e).

  • QCustomPlot: 2.1.1 (meegeleverde plotbibliotheek) (8801415fe).

  • Op schijf opgeslagen firmware-images zijn opnieuw meegeleverd voor alle ondersteunde OpenMV-/Arduino-boards (OPENMV1-4P, OPENMV4_PRO, OPENMVPT, ARDUINO_NICLA_VISION, arduino_nano_33_ble_sense, ARDUINO_PORTENTA_H7, ARDUINO_NANO_RP2040_CONNECT, OPENMV_RT1060, CYW4343, plus WINC1500 WiFi-firmware), met firmware en, waar van toepassing, bootloader-/uvc-images (fbfa4903a).

Brekende wijzigingen

Dit zijn voor de gebruiker zichtbare workflow- en gedragswijzigingen; de Qt Creator 10.0.1-rebase zelf breekt geen gebruikersprojecten of -scripts.

  • i.MX RT1060-boarddefinities gewijzigd. De vermeldingen EVKBMIMXRT1060 en OPENMV5 zijn vervangen door één OPENMV_RT1060-board (OpenMV Cam RT1062, plus een SBL-variant), en de oude firmwaremappen zijn verwijderd (d2b11c6c8).

  • Standaard commando-respons-timeout is 10000 ms (was 5000 ms in 4.0.0); de helptekst van -override_read_timeout is dienovereenkomstig bijgewerkt (4a4afae1b).

  • Verbind-/verbreekgedrag gewijzigd. Auto Reconnect staat nu standaard UIT, en verbinden of verbreken stopt het draaiende script standaard niet meer, tenzij de nieuwe schakelaar “Stop Script on Connect/Disconnect” is ingeschakeld (deze staat standaard aan) (a0e78057f).

  • Updateflow herstart de IDE. Pakket-/resource-updates herstarten nu automatisch OpenMV IDE in plaats van na de installatie af te sluiten (178ee1b8e).

  • Arduino-board-id’s hernoemd. De boards.txt-board-id’s en firmwaremappen voor de Portenta, Nicla Vision en Nano 33 BLE Sense zijn hernoemd naar ARDUINO_PORTENTA_H7, ARDUINO_NICLA_VISION en ARDUINO_NANO_33_BLE_SENSE (de laatste later omgezet naar kleine letters arduino_nano_33_ble_sense) (a70d6562a, 22750d8c7, a801a81de).