v4.0.1¶
v4.0.1 は、長年にわたって OpenMV IDE の基盤となってきた Qt Creator 4.0.2 から Qt Creator 10.0.1 へとリベースした、ゼロからの近代化です。OpenMV プラグインスタック全体(フレームバッファビューア、シリアル/プロトコル、ターミナル、ヒストグラム、しきい値・キーポイントエディタ、ビデオツール、ファームウェアフラッシュ用ラッパー)が新しいベースの上に再適用され、洗練された Flat Light/Flat Dark テーマのペア、OpenMV を認識する Python ハイライト、統一されたファームウェアローダーダイアログ、そして幅広い ARM64 Linux および macOS でのデバイス検出サポートも併せて提供されます。Qt Creator ベースの変更は大規模な内部近代化ですが、ユーザープロジェクトを壊すことはありません。ただし一部のデフォルト動作とボード定義は変更されました(Breaking changes を参照)。
ハイライト¶
Qt Creator 10.0.1 へのリベース。 IDE は Qt Creator 4.0.2 から 10.0.1 へ移行しました。上流の Qt Creator はビルドの基本部分まで削ぎ落とされ(98b95fd3b)、OpenMV プラグイン全体が新しい基盤の上に再追加されました(0e8047372)。
Flat Light および Flat Dark テーマ。 洗練されたライト/ダークテーマのペアが、対応するカスタムエディタ構文ハイライトスタイルとともに提供されます。テーマ選択機能はこの 2 つに限定して General 設定で再び公開され、デフォルトテーマは
flat-darkになりました(21348924b、13c3849e8)。Raw-REPL シリアルターミナル。 ターミナルは適切な MicroPython raw-REPL(CTRL-A/CTRL-D)ステートマシンを通じてスクリプトを実行、中断、リロード、貼り付けするようになり、より大きなスクリプトを確実に処理できます(a7241079c)。
OpenMV を認識する Python 編集。 OpenMV のモジュール、クラス、関数、メソッド、引数が同梱ドキュメントに基づいて構文ハイライトされ、よりスマートな自動補完と、括弧/コロンを認識する自動インデント機能を備えています(801eab8a8、8e9f967e7、9fdff9c6d)。
統一されたファームウェアローダーダイアログ。 フラッシュ処理では、プログレスバーと、状態を記憶する折りたたみ可能な Show/Hide Details ログを備えた単一のコンテキスト依存ダイアログ(Erasing Disk / Flashing Firmware / Flashing Bootloader)が表示されるようになりました(5b51356f8)。
OpenMV Cam RT1062 サポート。 新しい i.MX RT1060 クラスのボード向けに、ファームウェア、DFU/フラッシュローダー、SDP/blhost 列挙、eFuse 焼き込みプログラミングステップが追加され(a6595f5f7)、その後このボードには独自の Secure Bootloader(SBL)ボードバリアントが用意されました(d2b11c6c8)。
新機能¶
自動化フラグ。
-auto_update(release/development/ パス)、-auto_erase、-auto_runの各フラグにより、IDE は接続時にファームウェアのブートロード/消去を行い、その後開いているスクリプトを実行できます。ブートローダーの再接続後、IDE はカメラが再列挙されるまで最大 10 秒待機してから処理を続行します(b54affe79、f4e03d978)。``-disable_stop`` フラグ と
stop on connect/disconnectメニュー切り替えにより、接続または切断時にスクリプトを停止する動作を無効にできます(02724ca7d)。Stop Script on Connect/Disconnect トグル(デフォルトでオン)により、接続/切断を実行中スクリプトの停止から切り離します。Auto Reconnect はデフォルトでオフになりました(a0e78057f)。
ボードタイプのプロンプト。 接続されたボードがファームウェアマッピングに存在しないアーキテクチャを報告した場合、IDE は「Unsupported board architecture!」エラーで中断する代わりに、ユーザーにボードタイプの選択を促すようになりました(前回の選択を記憶します)(b7165eb3d)。
OpenMV Python 構文ハイライト は、同梱ドキュメントから生成されたキーワードリストを使用して、既知の OpenMV のモジュール、クラス、データ、関数、メソッド、引数に色を付けます(801eab8a8、b4d481bf5)。
約 300 個の KSyntaxHighlighting 言語定義 がエディタに同梱され、多くの言語のソースファイルがそのままハイライトされます(39674a4dc)。
同梱の OpenMV サンプルスクリプト(Hello World、スナップショット、ビデオ録画、オプティカルフロー、イベントカメラ、グローバルシャッター、FLIR Lepton など)が IDE にコミットされ、同梱されるようになりました(938ac6bbe)。
バイナリ/16 進エディタ が有効になり、ユーザーはバイナリファイルを開いて検査できます。ツールバーは OpenMV の UI に合わせて簡素化されています(675bda966)。
メモリ内ドキュメント差分。 新規ファイルと読み取り専用のサンプルにバッキング用の一時ファイルが付与されるようになり、未保存のドキュメントも差分比較できるようになりました。また、外部ファイル差分ダイアログは最後に使用したフォルダを記憶します(5281e5f6c、2934d5216)。
タブ付きエディタプラグイン が再追加され、IDE にタブ付きのドキュメントバーが提供されます。ミニマッププラグインのソースも再追加されましたが、このリリースのビルドでは無効のままにされています(0e8047372)。
DfuSe および pydfu フォールバックフラッシュ が、シリアル番号でターゲット指定できない DFU デバイス向けに復元され、接続中はダイアログなしの自動消去処理が行われます(e42a5be7d)。
i.MX RT eFuse 焼き込み。 ファームウェアプログラミングで、RT1060 クラスのボード向けに eFuse(
efuse-program-once)を焼き込むようになりました(8053bb578、a6595f5f7)。Linux Root Installs ウィザードページ により、ユーザーは権限昇格を伴う apt ライブラリインストールと udev ルールインストールを、常に実行するのではなく、オプトインまたはオプトアウトできます(6bac80984)。
その他の変更と改善¶
バックグラウンドでのシリアルポートスキャン。 ポート列挙を UI スレッドから専用の
ScanSerialPortsThreadワーカーへ移動し、スキャン中も IDE が応答性を保つようにしました(7be4dab26)。より広範なデバイス検出。 ポートスキャンは再利用可能な
filterPorts()ヘルパーにリファクタリングされ、picotool および i.MX DFU デバイスを取り込み、既知の Arduino ブートローダーシリアルポート(NRF/RPI の旧 PID およびローダー PID)を DFU デバイスとして再分類します(25a5d30fd)。ターミナルのフォールバック追加。 Linux で同梱のビデオ再生ツール(Play Video File / Play RTSP Stream)を起動する際、IDE は
xtermとgnome-terminalに加えてlxterminal、konsole、xfce4-terminalへのフォールバックを行うようになりました(df54007e0)。ボードキーの報告。 カメラ登録時に「Remaining N」レスポンスを解析して、残りのボードキー数をユーザーに通知するようになり、独自の「Invalid Board Key for Board Type」エラーメッセージが追加されました(5759e73eb)。
GitHub ホストのダウンロード。 バージョンチェックとリソースのダウンロードは、
upload.openmv.ioの代わりにraw.githubusercontent.com/openmv/openmv-ide-versionとopenmv/openmv-ideのリリースを使用するようになりました(994109c28)。すべてで HTTPS を使用。 すべての OpenMV ウェブリクエスト(バージョンチェック、SWD ID 登録、リソースおよびファームウェアのダウンロード)が
https://を使用するようになりました(54347cad0)。Linux セットアップの自動化。 インストーラは不足しているライブラリと udev ルールを検出し、必要に応じて、正確な apt-get/pip および udev ルールのインストールコマンドを含む実行可能な
setup.sh(およびユーザーにそれを実行するよう伝えるREADME)を生成します(c6dc705e6)。低速ボードへの許容。 シリアルターミナルは 1 回の読み取り待機を 1ms から 10ms に引き上げ、スクリプトが終了すると「OK」確認応答を送出します(c935e4489)。
よりスムーズなフラッシュ進捗。 ファームウェアローダーのプログレスバーは、最初のパーセンテージティックの後ではなく即座に不確定状態から 0〜100% へ切り替わるようになり、これは dfu-util、bossac、picotool、i.MX のフラッシュ全体に適用されます(19d947308、86d021f92)。
旧ブートローダーのリカバリ が、fast モードのクエリ同期パディングなしで消去/書き込みコマンドを送信する非 fast ブートローダーモードを介して再追加されました(c20112c07)。
よりクリーンなツールコンソール。 ファームウェアフラッシュ用ターミナル(bossac、dfu-util、picotool、imx、ビデオツール)が、より整形されたコマンド出力を備えたスタンドアロンのコンソールプロセスとして実行されるようになりました(8053bb578)。
自動補完の磨き込み。 補完は、クラス、メソッド、関数を個別の引数ヒントで区別し、適切なコードモデルのアイコンを使用し、アンダースコアの接頭辞によって public/protected/private のスコープを尊重します。また、キーワード補完プロセッサは、明示的に(手動で)呼び出された補完においてカーソル前の先頭の空白をスキップします(8e9f967e7、68b26b5fc)。
ダイアログの統合。 OpenMV のその場しのぎの「Don't show this again」ダイアログ(起動時の
OpenMV Cam LED Colors情報ダイアログ、ファームウェアアップグレードおよびサンプルのプロンプトを含む)が、CheckableMessageBoxの「Do Not Ask/Show Again」ダイアログに統一されました。General 設定に「Reset Do Not Ask/Show Again Dialogs」ボタンが追加され、コード折りたたみマーカーはデフォルトで無効になっています(9fdff9c6d)。テーマ対応のブランディング。 ダークモードのスプラッシュ画面、About ボックスのダーク/ライト版 ST および NXP チップロゴ、ダークモードのツールチップカラー、適切な自動補完アイコンカラーが追加されました(d85fdeb19、9895a8395、f45ceaaea、7f3e1f383)。
画像ビューアの整理。 share、background、outline、「set as default」の各アクションが非表示にされ、画面に合わせるアクションが追加され、アニメーション画像のサイズ設定が修正されました(b37c55e25)。
コンテキストメニューの整理。「Show in File System View」、「Open Terminal」、「File Properties」、「Add/Delete UTF-8 BOM on Save」の各エントリが非表示になりました(5d862c78e)。
ダークなシリアルターミナル。 スタンドアロンターミナルは、スタイル付きスクロールバー、更新されたツールバーアイコン、複数画面にまたがる正しい高 DPI スクロールバーアイコンの再読み込みを備えた、適切なダークテーマを使用します(5c3af6880)。
Find/Search の整理。 結果パネルにダークテーマが追加され、検索エンジンセレクタが非表示になり、ラベルが簡素化され、Find-in-Files のデフォルトが Documents/OpenMV フォルダになりました(20a806550)。
アプリケーションアイデンティティ。 IDE はデスクトップ、タイトルバー、タスクバーに適切な OpenMV アイコンを表示するようになり(Windows では高 DPI 対応)、IDE の id は
openmvideに変更されました(8ad1eed1f)。高 DPI スプラッシュ は、Retina/200% スケールのディスプレイで 2x のスプラッシュ画像を表示します(626ff673e)。
アクションバーの修復。 左側のアクションバー(New File、Open、Save、Undo、Redo、Cut、Copy、Paste)が修復され、カスタムの OpenMV アイコンが付与されました(b8479b5d0)。
About ダイアログのロゴ。 Arduino と Edge Impulse の両パートナーロゴが、高 DPI の 2x バリアントとともに表示されるようになり(Edge Impulse は以前は非表示でした)、同梱のスプラッシュアートワークが更新されました(
splash-small-2/splash-large-2)(5facd8d9a)。Select Word Under Cursor が有効になりました。Go to Block Start/End(Ctrl+[ / Ctrl+])および Select Block Up/Down コマンドは一時的に再有効化されましたが(36ed5b1a8)、リリースでは無効のままにされています(626ff673e)。
Linux デスクトップエントリ に、Electronics カテゴリ、説明用の Comment、検索用 Keywords(embedded electronics、microcontroller、micropython、computer/machine vision)が追加されました(470e5702e)。
リソースの移行。 ユーザーリソースはバージョン管理された場所に移動され(古い qtcreator フォルダは起動時に削除されます)、Windows で発生する無害な DirectWrite フォントフェイス警告が抑制されました(a04af5351、70765dc2a)。
内部オプションの非表示。 内部の
-colorおよび-themeの Core オプションがヘルプ出力から非表示にされ、プレゼンテーションモードが再有効化されました(434c7b4cc)。コアカスタマイズの再適用 が、ファンシーなアクションバー/タブウィジェット、メッセージマネージャ/出力ウィンドウ、プロキシアクション、構文ハイライタ、テキストエディタに対して行われました(0e8047372)。
QCustomPlot 2.1.1。 同梱のプロットライブラリが Qt 6.4 互換性と、動的に変化する表示 DPI の正しい処理のために更新されました(8801415fe)。
装飾的な UI の整理 が、スクロールバーの矢印アイコン、ステータスバー、ドキュメントタブバーの閉じるボタン、エディタスクローラーの幅に対して行われました。エディタの「Display File Line Ending」インジケータはデフォルトでオフになりました(e0c4d2325、6a26f4430、e130988fb)。
バグ修正¶
Linux の VID/PID 検出を、実際のデバイスの VID/PID を取得するために
/sys/class/tty/<port>/device/ueventを読み取るように修正しました。これによりQSerialPortInfoが USB ハブの識別子を返す問題を回避し、ハブの背後にあるカメラが正しく検出されるようになりました(28220b351)。Mac のブートローダーファームウェアフラッシュを、エンドポイントサイズのアサーションを緩和し、書き込みがちょうど 1 つの USB エンドポイントのサイズである場合にのみ同期クエリパケットを追加するように修正しました(86d021f92)。
Linux のビデオ再生ツールを修正しました。Play Video File / Play RTSP Stream は 32 ビットおよび ARM Linux では非表示になり(ffplay が同梱されていないため)、xterm が利用できない場合は gnome-terminal にフォールバックします。また、macOS の ffmpeg バイナリがプレースホルダから復元されました(d342649cc、d896f4225)。
ファームウェア更新中に消去コマンドと書き込みコマンドが重複するのを避けるため、ブートローダーリセットの開始/終了遅延を 0 から 5 に増やしました(fabc168b6)。
ブートローダーリカバリを合理化しました。ブートローダーを強制してブリック状態のカメラを修復する際に冗長なプロンプトをスキップし、DFU ブートローダーのリセット後、IDE はユーザーに再接続を求める代わりに自動的に更新を再試行します(12b924088)。
シリアルのフレームバッファ/TX バッファダンプコマンドを、トランザクションの途中で中断できるようにしました(4a4afae1b)。
レスポンスをゼロバイトでパディングする可能性のあったシリアルポートの読み取りストール時の打ち切り回避策を削除し、高速な USB 転送の信頼性を向上させました(0ee1d8e91)。
WiFi デバッグと自動再接続を修正しました。WiFi ポートは再発見時に最終確認のタイムスタンプを更新し、WiFi ポートの引退および DFU/ブートローダー検出におけるいくつかの「erase 後のイテレータ」バグが修正され、自動再接続は IDE がビジー状態でなくなるまで待ってから再接続するようになりました(cf0b67dc6)。
video から MJPEG への変換ツールを、エンコーダ出力からフレームレートを解析し、フレームごとに正しいミリ秒デルタを書き込むように修正しました。これにより、変換後のビデオが正しい速度で再生されるようになりました(4a7ad2057)。
QProcess バックエンドを強制し、ブロッキングプロセスのイベントループガードを修正することで、ファームウェアフラッシュおよび同梱のコマンドラインツールが起動に失敗する問題を修正しました(200fe9f3c)。
デバイスピクセル比の変更時にアイコンのスタイルシートを再読み込みすることで、データセットエディタのツリー展開/折りたたみの分岐アイコンが HiDPI ディスプレイで正しく描画されるように修正しました(a0e78057f)。
パッケージ/リソースの更新後、インストール後に単に終了するのではなく、OpenMV IDE が自動的に再起動するようになりました(178ee1b8e)。
Find/検索結果のハイライトを修正し、現在のエディタがない場合に検索結果/ファイルを開くアクションが最初に表示されているエディタにフォールバックするようにしました(48c402dfc)。
ファームウェアローダーダイアログを、フラッシュ操作の完了時に警告テキストがクリアされ、ウィンドウが正しくリサイズされるように修正しました(c505c6ade)。
macOS のいくつかの UI バグを修正しました。タブバーがアイコン読み込みエラーを大量に出力しなくなり、ファイルを開いたときに正しく表示されるようになりました(9be8c58de、5322cf968)。
macOS および Linux でのステータスバー/出力ペインのスタイリングとベースライン位置合わせを修正しました(4fc4545de、d29b2baa0、a440d5cd8)。
ソースコード印刷を、ページタイトルのヘッダーがページ端に接するのではなく、適切な上部および左右の余白を持つように修正しました(786d6012c)。
プラットフォームおよびツールサポート¶
Qt Creator ベース: 10.0.1(4.0.2 からリベース)。
OpenMV IDE: 4.0.0 -> 4.0.1。
OpenMV Cam RT1062(i.MX RT1060): 初期の RT1062 ファームウェア、フラッシュローダー、署名済みイメージ、
imx.txtエントリ、セキュアブートローダー/eFuse のblhost設定キーがOPENMV5ファームウェアフォルダに追加されました(a6595f5f7)。その後、ボードは単一のOPENMV_RT1060フォルダに統合され、独自の Secure Bootloader(SBL)ボードバリアント(OpenMV_Cam_RT1062_SBL)が追加されました(d2b11c6c8、5baf28c6e)。同梱のフラッシュツールチェーン(blhost、bossac、dfu-util、dfuse + STM32 ドライバ、picotool、sdphost、ffmpeg、FTDI/Arduino ドライバ)が Windows/macOS/Linux 向けに再同梱され、Linux バイナリには実行可能フラグが付与されました(fbfa4903a、bfb6b32e2、9551c64da)。
ARM64 Linux DFU: 同梱の aarch64
dfu-utilと、デバイスリスト表示およびファームウェアダウンロードでの arm64 検出により、Raspberry Pi などのホストで DFU フラッシュが可能になります(16bc6fe0f、470e5702e)。i.MX デバイス検出 が Linux(
lsusbの解析)および macOS(ioregのスキャン)で動作するようになり、これらのプラットフォームでの i.MX RT ファームウェア読み込みが可能になりました(e03ccbe71、7cf505d09)。プラットフォームの制限: i.MX の使用は Windows/macOS/Linux-x86_64 に制限され、それ以外では致命的エラーになります。また、ARM/ARM64 Linux での Portenta/Nicla フラッシュは「DFU Util may not be stable on this platform」警告を表示します(9513f6475)。
Windows OpenGL:
opengl32sw、Qt6OpenGL、Qt6Gui の OpenGL サポートをデプロイパッケージに同梱することで、ソフトウェアレンダリングが復元されました(aaaa1928f)。Arduino ボードフォルダ/id の名称変更。 Portenta、Nicla Vision、Nano 33 BLE Sense のファームウェアフォルダおよび
boards.txtのボード id がARDUINO_PORTENTA_H7、ARDUINO_NICLA_VISION、ARDUINO_NANO_33_BLE_SENSEに名称変更されました(a70d6562a)。その後、Nano 33 BLE Sense のフォルダ/ボード id は、デバイスが報告するボード名に合わせてarduino_nano_33_ble_senseに小文字化されました(22750d8c7、a801a81de)。OPENMV_RT1060 ブートローダー のフラッシュローダー(
blhost_flash_loader.bin、sdphost_flash_loader.bin)が更新されました(5baf28c6e)。QCustomPlot: 2.1.1(同梱のプロットライブラリ)(8801415fe)。
ディスク上のファームウェアイメージ が、サポートされるすべての OpenMV/Arduino ボード(
OPENMV1〜4P、OPENMV4_PRO、OPENMVPT、ARDUINO_NICLA_VISION、arduino_nano_33_ble_sense、ARDUINO_PORTENTA_H7、ARDUINO_NANO_RP2040_CONNECT、OPENMV_RT1060、CYW4343、およびWINC1500WiFi ファームウェア)向けに、ファームウェアと、該当する場合はブートローダー/uvc イメージとともに再同梱されました(fbfa4903a)。
Breaking changes¶
これらはユーザーから見えるワークフローおよび動作の変更です。Qt Creator 10.0.1 へのリベース自体はユーザープロジェクトやスクリプトを壊しません。
i.MX RT1060 ボード定義の変更。
EVKBMIMXRT1060およびOPENMV5エントリは単一のOPENMV_RT1060ボード(OpenMV Cam RT1062 と SBL バリアント)に置き換えられ、古いファームウェアフォルダは削除されました(d2b11c6c8)。デフォルトのコマンドレスポンスタイムアウト が 10000 ms になりました(4.0.0 では 5000 ms)。
-override_read_timeoutのヘルプテキストもこれに合わせて更新されました(4a4afae1b)。接続/切断の動作の変更。 Auto Reconnect はデフォルトでオフになり、新しい「Stop Script on Connect/Disconnect」トグルが有効になっていない限り(デフォルトでオン)、接続または切断によって実行中のスクリプトが停止されることはなくなりました(a0e78057f)。
更新フローによる IDE の再起動。 パッケージ/リソースの更新後、インストール後に終了するのではなく、OpenMV IDE が自動的に再起動するようになりました(178ee1b8e)。
Arduino ボード id の名称変更。 Portenta、Nicla Vision、Nano 33 BLE Sense の
boards.txtボード id およびファームウェアフォルダがARDUINO_PORTENTA_H7、ARDUINO_NICLA_VISION、ARDUINO_NANO_33_BLE_SENSEに名称変更されました(後者はその後arduino_nano_33_ble_senseに小文字化されました)(a70d6562a、22750d8c7、a801a81de)。