v4.8.1

v4.8.1 dibangun di atas Qt Creator 14.0.2 dan berfokus pada protokol kamera OpenMV V2 dengan keandalan tinggi yang baru, Code Profiler bawaan, dan alur kerja penyimpanan yang mempertahankan kamera tetap terpasang alih-alih mengeluarkannya. Firmware bawaan dan seluruh set contoh diperbarui ke versi 4.8.1. Tidak ada perubahan yang merusak API skrip, namun perilaku penyimpanan-tanpa-eject dan penghapusan beberapa flag serial saat peluncuran merupakan perubahan alur kerja yang terlihat oleh pengguna.

Sorotan

  • OpenMV Protocol V2 adalah tumpukan kamera keandalan tinggi baru (OMVCamera/OMVTransport/OMVDebug) dengan CRC32, pengurutan, ACK/NAK, retransmisi, event, dan fragmentasi. Protokol ini dinegosiasikan secara otomatis saat koneksi dan mengatur reset, boot, streaming, eksekusi skrip, dan statistik.

  • Code Profiler adalah jendela baru (Window > Show Code Profiler) yang melakukan polling catatan profiling per fungsi dari kamera dan menampilkan panggilan, milidetik (μs) min/maks/total/rata-rata, rata-rata siklus, persentase, dan penghitung event dalam tabel yang dapat diurutkan.

  • Save in place tidak lagi mengeluarkan drive kamera; IDE kini menulis main.py dan menyelesaikan penulisan volume ke disk sehingga perangkat tetap terpasang.

  • Deteksi multi-sensor melaporkan setiap kamera pada sebuah board, ditampilkan di bilah status sebagai Sensors: X, Y dengan sensor utama tercantum pertama.

  • Dynamic Frame Reading menghitung ulang resolusi streaming raw yang paling sesuai per format piksel dan mengonfigurasi ulang aliran secara otomatis.

  • Firmware dan contoh bawaan diperbarui ke versi 4.8.1 untuk semua board, menambahkan contoh baru untuk kamera event GenX320, ML TensorFlow, Alif OLED, dan perisai LCD/Touch-LCD.

Fitur baru

  • Menambahkan protokol komunikasi OpenMV V2: lapisan transport dan transaksi lengkap dengan CRC32, pengurutan, ACK/NAK, retransmisi, event, dan fragmentasi, ditambah kelas OMVCamera yang dinegosiasikan secara otomatis saat koneksi dan terintegrasi ke dalam driver serial (2fde9eb3f, fff1bf2ba, 8c41fcfad, 7fc7ed4bc, 84c3956af, 669039adf, a49259852, 07af1922a, 85f0c7c87, 5070cc213, e314459cc, e0367ca95, 0da2f79d0, 2b6fc9866, 534ecffbe).

  • Menambahkan jendela Code Profiler (Window > Show Code Profiler), yang melakukan polling catatan profiling per fungsi dan menampilkan panggilan, milidetik (μs) min/maks/total/rata-rata, rata-rata siklus, persentase, dan penghitung event, serta memecahkan alamat ke simbol melalui pengurai ELF ELFIO bawaan (019d3cd2c, 57cd9e1cc).

  • Menambahkan dialog Debug Protocol Settings yang menampilkan System Info, Host Stats, dan Device Stats secara langsung yang diperbarui setiap detik, mengekspos laju polling per saluran ditambah kontrol polling gabungan vs terpisah (5220a6125, 0da2f79d0).

  • Menambahkan deteksi multi-sensor: board dengan lebih dari satu kamera melaporkan semuanya di bilah status sebagai Sensors: X, Y, sensor utama tercantum pertama (cebc79ce7).

  • Menambahkan Dynamic Frame Reading (aktif secara default), yang menghitung ulang resolusi streaming raw yang paling sesuai per format piksel (BINARY, GRAY, RGB565, ARGB8, JPEG, PNG) dan mengonfigurasi ulang aliran (75c073bdb, 0da2f79d0).

  • Menambahkan dekoding framebuffer untuk format piksel raw BINARY (mono 1-bpp) dan ARGB8 (alpha 32-bit) sehingga jenis citra tersebut kini dapat dirender di viewer (dabb82062).

  • Di Windows, Connect kini memindai perangkat USB yang ditandai bermasalah oleh OS dan memperingatkan dengan daftar perangkat yang bermasalah yang mungkin memblokir koneksi (1a5beb081, 1b59cd78e).

  • Menambahkan indikator registrasi di bilah status: tombol Registered berwarna hijau atau Unregistered berwarna koral untuk kamera yang terhubung, dapat diklik untuk mendaftarkan board (a8c98a4b9).

  • Viewer framebuffer kini dapat menampilkan pesan teks yang dipusatkan yang dikirim dari skrip yang sedang berjalan melalui kode escape FB_MESSAGE baru sebagai pengganti citra (530048201).

  • Menambahkan entri model-zoo baru: model estimasi kedalaman ST FastDepth (224/256/320), model pose landmark kepala ST, model tangan palm-detection dan hand-landmarks, serta model deteksi wajah depan BlazeFace (551668410, 4d64556d4, fadd6c4ed, b8277mb88, a8c98a4b9).

  • Menambahkan skrip uji-mandiri khusus build pabrik (kamera, IMU, ToF, WiFi, LAN) yang dibundel dan dibuka otomatis saat peluncuran pada varian IDE pabrik (0db7fbbb0); bagian LAN RT1060 dari pengujian saat ini dinonaktifkan (48370d022).

Perubahan dan peningkatan lainnya

  • Save in place: menyimpan skrip tidak lagi mengeluarkan drive kamera; IDE menulis main.py dan menyelesaikan penulisan buffer volume ke disk (FlushFileBuffers di Windows, syncfs di Linux, sync_volume_np/F_FULLFSYNC di macOS) sehingga perangkat tetap terpasang (1614c572f, 6928b51ea, 35ed53967).

  • Tindakan toolbar yang diklik saat kamera sedang sibuk (nonaktifkan framebuffer, kompresi JPEG, simpan skrip, konfigurasi pengaturan) kini dimasukkan ke antrean dan dijalankan secara otomatis saat perangkat bebas, alih-alih menampilkan dialog kesalahan Busy (f4315f0a4).

  • Viewer framebuffer kini secara default menampilkan fit-in-view sehingga citra otomatis menyesuaikan ukuran jendela saat startup, dan panel output terminal serial kini ditampilkan secara default saat startup (f3ce4dc75).

  • File model terkompilasi dengan ekstensi .lite kini dikenali di mana saja: pemfilteran dan tampilan browser model-zoo, penyelarasan ROMFS firmware, dan kompiler Vela/STEdge AI kini menghasilkan output .lite (f3ce4dc75).

  • Dialog kompilasi model STEdge AI (N6) kini mengurai dan melaporkan persentase penggunaan RAM NPU dan hyperRAM serta menyalin output jaringan yang direlokasi ke file yang sesuai dengan ekstensi model (f3ce4dc75).

  • Browser model-zoo kini menampilkan kolom ukuran file dan merenggangkan kolom nama agar muat, alih-alih menyembunyikan ukuran (f3ce4dc75).

  • Template skrip baru diperbarui ke API modul csi yang baru dan defaultnya menggunakan ukuran bingkai VGA, serta contoh Hello World bawaan dialihkan dari ukuran bingkai QVGA ke VGA (f3ce4dc75).

  • Dialog Convert Video ditulis ulang untuk menggunakan dialog loader bersama dengan output berwarna, pesan sukses/gagal, tombol OK-untuk-tutup, dan pesan kesalahan yang jelas ketika FFMPEG tidak tersedia di platform (f56efc7be).

  • Viewer framebuffer kini menampilkan peringatan berkedip ketika citra JPEG/PNG terlalu besar untuk di-buffer dan dikirim, melalui kode escape FB_BUFFER_ERROR baru (fda826126).

  • Entri bootloader DFU kini memaksa bootloader tetap aktif pada firmware protokol V2, dengan deteksi versi yang berfallback ke reset biasa pada bootloader lama (<1.0.2) yang bisa macet ketika dipaksa (975857221).

  • Folder model deteksi objek ST diubah nama dan diatur ulang (st_yolo_lc_v1 menjadi yolo_lc, tiny_yolo_v2 menjadi yolo_v2, model orang yolov8n menjadi file bernama ukuran biasa) dan varian int8 tiny_yolo_v2 yang besar dihapus (34240cc3c).

  • Pengaturan waktu serial kini dikonfigurasi melalui kunci override protocol pada settings.json firmware (overrideReadTimeout, overrideReadStallTimeout, overridePerCommandWait, dan kunci V2 overrideCRC/overrideSEQ/overrideACK) alih-alih flag baris perintah saat peluncuran (019d8bf1d).

  • Batas panjang baris language-server Python ditetapkan ke 120 kolom untuk flake8 dan pycodestyle sehingga baris panjang tidak lagi ditandai pada batas default 79 (dabb82062).

  • Mengurangi set model machine-learning bawaan dengan memindahkan koleksi model Qualcomm dan google/mobilenet_v1 ke models_unused untuk memperkecil ukuran installer (c44ddba20).

Perbaikan bug

  • Dialog progres unduhan firmware dan pembaruan sumber daya dibuat aman terhadap crash menggunakan penjaga QPointer sehingga tidak lagi menggunakan dialog yang sudah dihapus jika ditutup di tengah unduhan (f3ce4dc75).

  • Pemindaian drive kini terus memindai sampai drive USB kamera ditemukan dan membersihkan entri drive yang usang saat pemutusan koneksi, menggantikan hack timer satu kali sebelumnya (a31d41b4e).

  • Beberapa perbaikan koneksi dan serial: sensor tersembunyi (misalnya SoftCSI) tidak lagi mengotori tipe sensor yang ditampilkan, timer keep-alive serial Windows mencegah stall USB, Start tidak lagi me-restart skrip yang sudah berjalan, dan saluran kamera diputus dengan bersih saat port ditutup (a8e467be6).

  • Tampilan profiler memulihkan pemilihan penghitung event PMU per kolom (menu event yang dapat dicentang) dan status penghitung/header yang tersimpan yang sebelumnya dinonaktifkan sementara (40c679e90).

Dukungan platform dan alat

  • Basis Qt Creator: 14.0.2.

  • Firmware bawaan: diperbarui dari 4.7.0 ke 4.8.1, membangun ulang firmware untuk OPENMV2/3/4/4P/PT, OPENMV_N6, OPENMV_AE3, OPENMV_RT1060, dan board Arduino GIGA/Nicla Vision/Portenta H7 (2657818ca).

  • Memperbaiki handshake versi protokol di macOS untuk board RT1062 dan AE3 dengan membagi transfer USB multi-perintah menjadi potongan berukuran USBDBG_LEN yang dapat ditangani board tersebut (6b9d5f842).

  • Mengerjakan ulang paket driver Windows bawaan: menambahkan file driver .cat/.inf bertanda tangan per board (AE3, H7, H7Plus, M4, M7, N6, Pico/PT, RT1062) dan memindahkan driver serial CDC ke folder openmvcdc baru dengan auto-installer berbasis dpinst (439557829, ba3b01bfb).

  • Menambahkan dukungan untuk revisi sensor kamera MT9V032 yang lebih lama dengan mendaftarkan ID sensor 0x1311 dan 0x1312 (bersama 0x1313 yang sudah ada) sebagai MT9V0X2 (eaaa624e3).

Perubahan yang merusak

Rilis ini tidak memiliki perubahan yang merusak API skrip, namun terdapat beberapa perubahan alur kerja yang terlihat oleh pengguna:

  • Menyimpan skrip tidak lagi mengeluarkan atau melepas drive USB kamera. IDE kini menyelesaikan penulisan buffer volume di tempat, sehingga perangkat tetap terpasang setelah penyimpanan.

  • Flag serial saat peluncuran -override_read_timeout (default 5000 ms), -override_read_stall_timeout (default 1000 ms), dan -override_per_command_wait (default 1 ms, 2 ms di macOS) dihapus; pengaturan waktu serial kini dikonfigurasi melalui kunci override protocol pada settings.json firmware (019d8bf1d).

  • Bootloader bawaan kini hanya dikirimkan sebagai .bin; file firmware dan bootloader .dfu per board telah dihapus.