v4.4.0¶
v4.4.0 is een grote moderniseringsrelease die OpenMV IDE rebaset van zijn al lang bestaande Qt Creator 10.0.1-basis naar Qt Creator 14.0.2, waarbij de volledige OpenMV-plugin en elke fork-aanpassing opnieuw op de nieuwere basis worden toegepast. Daarnaast bundelt deze release een ingebedde Python-taalserver voor offline code-aanvulling, schakelt GitHub Copilot op elk platform in, introduceert een nieuwe aangepaste OpenMV DFU-bootloader, en migreert OpenMV-camera’s naar een nieuwe 37C5 USB-vendor-ID. De basiswijziging is een grote interne modernisering maar breekt geen gebruikersprojecten; zie Breaking changes voor het kleine aantal voor de gebruiker zichtbare workflow-wijzigingen.
Hoogtepunten¶
Qt Creator 14.0.2-rebase. De IDE gaat van Qt Creator 10.0.1 naar 14.0.2, met de volledige OpenMV-plugin en alle
// OPENMV-DIFF //-aanpassingen opnieuw toegepast op de moderne basis (d6c895be8, 1fa75b397).Ingebedde Python-taalserver. De IDE levert en gebruikt nu automatisch een gebundelde
pylsp(met astroid 3.3.5), wat offline Python/MicroPython-code-aanvulling biedt zonder een aparte pip-installatie op Windows, macOS en Linux x86_64 (257addee0, 5a2b3e72f, 94470798d).GitHub Copilot op alle platformen. Copilot is geïntegreerd en standaard ingeschakeld, met een gebundelde Node.js 20.18.0-runtime voor Windows, macOS en Linux, zodat het niet langer beperkt is tot bepaalde machines, plus een opstartdialoog om het in te schakelen (bb07d582b, 1cb967c5a, b37e48040).
Nieuwe OpenMV DFU-bootloader. Een volledig geïmplementeerde aangepaste
openmv_dfu-bootloaderflow stuurt firmware-updates aan vanuitsettings.json, inclusief een “board in DFU mode detected”-dialoog met keuzes voor install-latest-release, load-specific-firmware en erase-filesystem, plus een fallback-bootloaderpad voor het herstellen van bricked camera’s (08b9d0676, 6a6a9351d, 6d78d6571).Nieuwe camera-ondersteuning. Voegt de OpenMV Cam N6-, RT1062- en AE3-borden toe, en migreert camera’s naar de nieuwe
37C5USB-vendor-ID met bijgewerkte DFU-drivers en udev-regels (000ed8a87, f453bc945, 4a16e04c2, 6d78d6571).Betrouwbaardere seriële communicatie. Belangrijke verbeteringen aan de seriële communicatie verhelpen vervormde terminaltekst en willekeurige verbroken verbindingen met op TinyUSB gebaseerde camera’s (caeba6a16, 6cf122a3c).
Nieuwe functies¶
OpenMV DFU-bootloader. Een nieuw
openmv_dfu-bootloadersysteem met speciale DFU-drivers en een fallback-bootloadermechanisme herstelt bricked camera’s voor alle firmwaretypes (6a6a9351d, 6d78d6571). De flow stuurt firmware-updates aan vanuitsettings.jsonen presenteert een “board in DFU mode detected”-dialoog met de opties install-latest-release, load-specific-firmware en erase-filesystem (08b9d0676, ef19133b6, 9c59d113c).Bordnaam in poortkiezer. De seriële-poortselectiedialoog onderzoekt nu elke poort en toont de gedetecteerde bordnaam naast de poort (bijv.
COM3: OpenMV Cam H7) in plaats van een kale poortnaam (9837d6cb5).Editor met tabbladen. De tabbed-editor-plugin is hersteld, met een rij documenttabbladen boven het editorgebied om tussen geopende bestanden te wisselen (c8519c09f), en deze bewaart en herstelt nu de tabbladvolgorde over sessies heen (55ccfb207).
Python-syntaxismarkering. Voegt een speciale Python-syntaxismarkeringsdefinitie voor de editor toe met regels voor string-format, float en sleutelwoorden (9be46c0c3).
Overige wijzigingen en verbeteringen¶
Refactor van firmware-laden. De code voor het laden van firmware is opgesplitst in afzonderlijke bootloader-handlers per type (OpenMV DFU, Arduino DFU, BOSSAC, i.MX, picotool), met toevoeging van touch-to-reset PID-afhandeling voor Arduino DFU-borden en expliciete “Legacy”-bordvarianten voor apparaten met afwijkende VID/PID (9f465f9f8).
STM32 ROM-bootloaderbeveiligingen. De IDE waarschuwt nu of blokkeert het laden van
firmware.dfu/openmv.dfuop de STM32 ROM-herstelbootloader, en beveelt alleenbootloader.dfuaan om het bricken van STM32H7-borden te voorkomen die worden getroffen door een bug in de chip-ROM-bootloader (c5ce0ae1a, e7cde1ec1).Automatische, stille Python-LSP-installatie. De Python-taalserver installeert en updatet nu automatisch zonder infobar-prompts of console-berichtenspam (d89f5985f), en het Python-autocomplete/documentatie-hoversysteem is herwerkt tot een speciale OpenMV-documentatie-engine die de gebundelde HTML-bibliotheekdocumentatie parseert om sleutelwoordmarkering en tooltips aan te sturen (47e02873b, 4f9853f21, 82cefc931).
Detectie van Linux Python-interpreter. Interpreterdetectie op Linux is nu automatisch, waarbij alleen Python 3-interpreters uit
PATHworden overwogen en de nieuwste als enige standaard wordt gekozen (214fdc758).Opschoning van Python-instellingen. De beheergroep per interpreter en de pagina Interpreters zijn verborgen, de Language Server Configuration is ondergebracht onder een
Python-categorie, en de ongebruikte REPL- en interpreterkeuze-werkbalkknoppen zijn verborgen in de Python-editor (d89f5985f). Op Windows registreert de IDE nu automatisch de gebundelde ingebeddepython.exeals de standaardinterpreter, waarbij de gebundelde taalserver als reeds geïnstalleerd wordt beschouwd (1d9ca003e, d89f5985f).Schonere profielmap. De IDE schrijft niet langer ongebruikte Qt Creator-instellingenbestanden (devices, kits, toolchains, Qt-versies) en opent bestanden direct in de editor (3771b0107), scant het systeem niet langer op qmake/Qt-versies (42807f25f), en vermijdt het laden van ongebruikte device-/toolchain-/kit-machinerie en opstartruis (902a357de, b2666a35b).
Veiligere updates. Het bijwerken van de IDE overschrijft niet langer gebruikersbronnen; alleen de beheerde resourcemappen (examples, firmware, html, models) worden verwijderd en opnieuw gekopieerd, waarbij
micropython-headersdaarnaast wordt verwijderd (het wordt apart geïnstalleerd in plaats van via dit pad opnieuw gekopieerd), met een duidelijkere foutmelding alsfirmware/settings.jsonontbreekt of ongeldig is (b4b8c208d, 3255ba4fb).Snellere DFU-verbinding. De wachttijd voor de DFU-verbinding is verkort zodat flashen en verbinden sneller gaan (11d8c9fe3, 4700bf678).
Herstelde OpenMV-menu- en UI-aanpassingen. De gestroomlijnde OpenMV-menu-indeling is opnieuw toegepast, waarbij de Build- en Debug-menu’s worden verborgen en projectbeheeracties worden verwijderd (7503f2bec); de code-aanvulling-engine krijgt weer klasse-/methodebewustzijn en public/private-sleutelwoordbereiken voor MicroPython-autocomplete (55fc348ea); de ANSI-kleurweergave in de terminal is opnieuw toegepast met thema-bewuste heldere/gedimde waarden en cursor-back-escape-ondersteuning (c6787a27a); en de werkbalk van de afbeeldingsviewer is aangepast met resolutie-/zoom-tooltips en een verplaatste Fit-to-Screen-actie (734fec693).
Herstelde gebundelde bronnen. Flash-tools, DFU-drivers, firmware en de volledige example-/script-boom zijn na de uitkleding bij de rebase hersteld in de gedeelde bronnen (33c8354bc), en OpenMV’s aangepaste opstartlogica voor de applicatie is opnieuw toegepast: het vereist hard de
TextEditor-plugin (de controles voor de OpenMV- en TabbedEditor-plugins zijn aanwezig maar uitgeschakeld), installeert een aangepaste Qt-berichtenhandler, verwijdert de opdrachtregelopties-client/-pid/-block, en forceert gedrag met één instantie (06c788f3d).Ontbrekende-plugin-fout. De app faalt nu hard met een duidelijke foutmelding als de vereiste plugins ontbreken of zijn uitgeschakeld, de OpenMV-plugin kreeg een Copilot-afhankelijkheid, en diverse teksteditor-opties (
Prefer single line commentsen de commentaarpositiekeuze in de Behavior-instellingen, enHighlight selectionin de Display-instellingen) zijn verborgen (1bc02b1f3).Kortere seriële time-outs. De seriële-protocol-time-outs zijn verkort (lezen 10000 naar 5000 ms, schrijven 6000 naar 3000 ms) voor snellere foutfeedback, waarbij de gedocumenteerde standaardwaarde van
-override_read_timeoutis bijgewerkt om overeen te komen (641385af4).Herstel van vastgelopen poort. Seriële poorten die midden in een opdracht vastlopen, worden nu hersteld met een
GET_STATE-query (configureerbaar via de get-state-instelling) in plaats van een script-running-query (a8598f550).Volgorde van instellingendialoog. De instellingendialoog verbergt het selectievakje voor alfabetische categoriesortering zodat de paginalijst in de door OpenMV bedoelde volgorde blijft (1cb967c5a).
Copilot-instellingen vereenvoudigd. De Copilot-instellingenpagina is teruggebracht tot alleen de aanmeld-/auth- en proxy-besturingselementen, waarbij de opties enable-Copilot, Node.js-pad, dist-pad en auto-complete zijn verborgen (1cb967c5a).
Bugfixes¶
Belangrijke problemen met seriële communicatie verholpen door de stall-time-out voor seriële leesbewerkingen 10x te verhogen en een op
GET_STATEgebaseerd unstuck-pad uit te schakelen dat de tekst in de seriële terminal vervormde (caeba6a16).Willekeurige verbroken seriële verbindingen met op TinyUSB gebaseerde camera’s verholpen door een frame-dump-unlock-opdracht uit te geven en de afhandeling van read-stall te herwerken in plaats van de verbinding te verbreken (6cf122a3c).
De
get_state-afhandeling van de camera tolerant gemaakt voor korte/gedeeltelijke antwoorden en ervoor gezorgd dat gebufferde tekst in de seriële terminal wordt doorgespoeld tijdens foutherstel zodat loguitvoer niet verloren gaat (c8b4248a6, 247a779dd).De flashpartitie-/alt-setting-nummers van de DFU-bootloader gecorrigeerd voor het laden van OpenMV Cam-firmware (a8700d12d).
Alle bootloaders hersteld door een nieuwe
hidden-bordvlag te respecteren, de filtering op serienummer over te schakelen naar inverse filters, en het Arduino Nano RP2040 Connect UF2-item een werkende picotool-configuratie te geven (63cee629b).De dialoog voor bordtypeselectie van de bootloader die de verkeerde waarde onthield verholpen door aparte geschiedenissleutels te gebruiken voor leesbare en IMX-bordtypeselecties (a3325af32).
De timestamp-/framesnelheidberekening van videotranscodering (Save Video) verholpen door het gemiddelde frame-interval in microseconden te berekenen, een nieuw v21
ImageWriter-tijdformaat te ondersteunen en te beschermen tegen null-pixmaps tijdens conversie (f5c75c749, f8f762b3e).Een crash in de histogram-/framebufferweergave verholpen wanneer een lege (null) pixmap werd ontvangen, door
pixmapUpdate()te beschermen tegen null-data (622cf5ea8).Hover-annotatie-tooltips in de teksteditor hersteld zodat het zweven over tekstmarkeringen weer de annotatie-tooltip toont (1852d18e1).
Voorkomen dat de info-dialogen van GitHub Copilot en LED-kleuren verschijnen terwijl de IDE bezig is met verbinden of flashen (f8f762b3e).
Crashbescherming toegevoegd in de language client zodat de afhandeling van document-content-change de IDE in randgevallen niet langer laat crashen (7926ffe4c).
Python-taalservercontroles die een schone afsluiting van de IDE verhinderden verholpen door de Python-plugin asynchroon te laten wachten op lopende controles voordat wordt afgesloten (9ff6c7936).
Python-autocomplete op Linux verholpen: de language client wortelt zichzelf bij de gebundelde
micropython-headersen de overbodige werkbalkactie voor de aanvulpopup in de editor is verborgen (d37f66a9a, 56e748f9d, 016fa73eb).De afhandeling van tijdelijke/niet-opgeslagen bestanden verholpen zodat Save As de beginmap van het bestandsdialoogvenster gebruikt, en de dialoog Save Items en de Diff-editor niet langer interne tijdelijke bestandspaden tonen (b7f0bb378, c8e7b6b8f, 6b128c34c).
Bij het opslaan van een naamloze/tijdelijke buffer wordt de Save-As-dialoog nu standaard ingesteld op een juiste
.py-bestandsnaam in plaats van een lege naam (3001fdfff).Tijdelijke/naamloze documenten worden nu aangeboden voor opslaan wanneer ze gewijzigd zijn, uitgesloten van autosave, en correct via Save-As gerouteerd (f87b71cf0).
De volgorde van het menu Recent Files verholpen zodat het opnieuw openen van een al vermeld bestand de volgorde niet langer wijzigt, en het bestandsdialoogvenster gebruikt nu standaard de projectmap (d49c0c993).
De tekstweergave van berichtvensters verholpen door op aanvinkbare berichtvensters niet langer rich-text-formaat te forceren, zodat onopgemaakte tekst correct wordt weergegeven (0c565502f).
Tooltipkleuren verholpen zodat tooltips correct worden weergegeven in het lichte thema (35cbf077b).
Algemene stabiliteits- en opschoningsfixes voor Qt Creator in de core-instellingen, de language client, de MSVC-toolchain, de project explorer en de Python-plugins (836b163dc, 134f43cb8).
De mapnaam van de gebundelde firmware voor de Arduino Nano 33 BLE Sense gecorrigeerd (b1d8ac227) en de Linux udev-regel voor het product-ID van de AE3 DFU-bootloader verholpen, waarbij
96E3is gecorrigeerd naar kleine letters96e3zodat de hoofdlettergevoeligeidProduct-match van udev werkt (2cd43c96b). De Linux udev-regel voor de AE3 DFU-bootloader is ook bijgewerkt naar het product-ID37c5:afe3voor deopenmvdfu-symlink (b99555637).
Platform- en toolondersteuning¶
Qt Creator-basis: 14.0.2 (gerebaset vanaf 10.0.1).
OpenMV Cam N6 wordt nu ondersteund (VID:PID 37C5:1206, DFU-bootloader 37C5:9206), inclusief firmware-instellingen, een Windows DFU-driver en een Linux udev-regel (000ed8a87, 1b950c8c6).
OpenMV Cam RT1062 wordt nu ondersteund onder een nieuwe aangepaste USB VID/PID (37C5:1060), inclusief DFU-drivers, udev-regels en behouden legacy 1209:ABD1-items voor oudere apparaten (f453bc945, d55d6441f).
OpenMV Cam AE3 wordt nu ondersteund, inclusief Windows DFU-drivers, zijn firmware-/config-imageboom en USB VID/PID (bijgewerkt naar 37C5:16E3 runtime / 37C5:96E3 bootloader) (4a16e04c2, cc52e76f5, 3f75e7de4, 8eb80b129).
Nieuw USB VID/PID-systeem: OpenMV-camera’s gaan over naar vendor-ID
37C5met nieuwe bootloader-/DFU-ID’s (bijv. 37C5:1202/9202 M4, 1203/9203 M7, 1204/9204 H7, 124A/924A H7 Plus, 1205/9205), waarbij oude 1209:ABD1-borden als Legacy worden gelabeld terwijl zowel oude als nieuwe firmware nog worden ondersteund (6d78d6571, 6a6a9351d, 500b1a0bf).PAG7936-afbeeldingssensor toegevoegd aan de lijst met herkende sensoren (f9e3f3461).
Ingebedde Python 3.13-interpreter gebundeld voor macOS, Linux x86_64, Linux arm64 en Linux arm (9133b1516), met native
libpython3.13- enujson-gedeelde bibliotheken (d3aa663d8, a2cb24e74).Gebundelde taalserver:
pylspmet astroid 3.3.5 op Windows, macOS en Linux x86_64 (257addee0). De Windows-build levert een ingebedde CPython met python-lsp-server 1.12.0, jedi 0.17.2, docstring_to_markdown 0.15, pip 24.2 en distlib 0.3.9 (9b6434602, 069807cd3, 5f2e45196, 3b6c6c312).Gebundelde Node.js 20.18.0 “Iron” LTS-runtime voor Windows, macOS, Linux arm64, Linux x64 en Linux armv7 om GitHub Copilot op alle platformen mogelijk te maken (bb07d582b, 6db78bf45, 1cb967c5a).
Alif Security Toolkit met ondertekende boot-/system-package-binaries en gebruikershandleiding gebundeld voor Windows, macOS en Linux x86_64 voor het provisioneren van op Alif gebaseerde OpenMV-camera’s (bijv. AE3) (f63851be3).
Linux desktop-integratie is hersteld, waarbij een desktop-applicatievermelding en AppStream-metadata worden geïnstalleerd en het Python (
.py)-MIME-type wordt geregistreerd (3fa25f571).
Breaking changes¶
Er is geen scripting-API gewijzigd. De volgende voor de gebruiker zichtbare workflow- en gedragswijzigingen kunnen worden opgemerkt:
Nieuwe USB-vendor-ID. OpenMV-camera’s migreren naar vendor-ID
37C5met nieuwe product- en DFU-bootloader-ID’s; borden op de oude1209:ABD1VID worden nu gelabeld als “Legacy”. De IDE ondersteunt zowel oude als nieuwe firmware tegelijk, maar Linux-gebruikers moeten de bijgewerkte udev-regels opnieuw installeren om de nieuwe ID’s te laten herkennen.Legacy-borditems verborgen. Legacy-varianten van de OpenMV Cam M4/M7/H7/H7 Plus/Pure Thermal-borden worden nu onderdrukt in de firmware-/bordselectielijst via een nieuwe
legacy-bordvlag (onderscheiden van de bestaandehidden-vlag), zodat gebruikers die specifiek een legacy-borditem nodig hebben het niet langer in de vervolgkeuzelijst zien (6d78d6571).Kortere seriële time-outs. De standaard leestime-out voor antwoorden daalt van 10000 ms naar 5000 ms en de schrijftime-out van 6000 ms naar 3000 ms (de standaardwaarde van
-override_read_timeoutwordt nu gedocumenteerd als 5000). Trage borden/verbindingen die op de langere standaardwaarden vertrouwden, kunnen eerder een time-out krijgen.
De Qt Creator 14.0.2-rebase is een grote interne modernisering maar is niet breaking voor gebruikersprojecten.