v4.1.0

v4.1.0 menghadirkan dukungan penuh Arduino Nano RP2040 Connect / Raspberry Pi Pico (WiFi, Bluetooth, pengambilan gambar kamera, lompat-ke-bootloader), dekoding citra JPEG langsung, klien HTTP urequests yang dibekukan, dukungan sensor OV7670, dan pelaporan kesalahan sensor yang terstandarisasi. API WiFi dan pengecualian sensor berubah — baca perubahan yang memutus kompatibilitas di bawah.

Highlights

  • Board RP2 — Arduino Nano RP2040 Connect / Pico mendapatkan WiFi (NINA-W10), Bluetooth (NimBLE), pengambilan gambar kamera/DCMI, dan lompat-ke-bootloader.

  • Dekoding JPEG — operasi citra kini menerima citra JPEG terkompresi secara langsung.

  • Klien HTTP urequests dibekukan ke dalam firmware.

  • Dukungan sensor kamera OV7670.

  • Memutus kompatibilitas: API WiFi NINA/RP2 dirombak dan beberapa kesalahan sensor kini memunculkan RuntimeError — lihat perubahan yang memutus kompatibilitas.

New features

  • Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi melalui driver network NINA-W10, Bluetooth/NimBLE, pengambilan gambar kamera (program PIO DCMI), dan perintah lompat-ke-bootloader.

  • Dekoding citra JPEGfind_apriltags(), lcd.display(), tv.display(), dan operasi citra terkait kini menerima citra JPEG terkompresi secara langsung (dekode ke biner/skala abu-abu/RGB565).

  • urequests — klien HTTP (GET/POST/PUT/...) kini dibekukan pada OpenMV 4 / 4 Plus / Portenta / Nicla, beserta contoh http_post.py.

  • Pustaka pembantu ble_advertising, dibekukan pada Nano RP2040 Connect.

  • Host/debugpyopenmv.reset_to_bl() dan perintah USBDBG_SYS_RESET_TO_BL (0x0E) baru untuk reset ke bootloader; lompat-ke-bootloader pada Arduino Nano 33 BLE Sense.

  • OV7670 — dukungan sensor kamera OV7670 baru, dapat dipilih pada OpenMV 4.

Other changes and improvements

  • Socket UDP RP2 otomatis terikat ke port sementara saat digunakan tanpa pengikatan; submodul MicroPython yang dibundel diperbarui.

Bug fixes

Networking:

  • Memperbaiki penanganan accept/close/send/recv/bind socket WiFi NINA dan batas waktu operasi, serta kondisi balapan buffer teks debug RP2 yang dapat merusak output IDE.

Camera and system:

  • Memperbaiki reset HM01B0, bus I2C kamera yang macet setelah pemindaian sensor gagal pada OpenMV H7, entri daya rendah H7 ULPI saat USB dicabut, generasi pin ADC H7, dan konfigurasi pin kamera Portenta / SPI-CS shield.

Hardware and board support

  • Arduino Nano RP2040 Connect / Raspberry Pi Pico — WiFi, Bluetooth, kamera, filesystem flash lebih besar, MSC bootloader.

  • Sensor kamera OV7670 (OpenMV 4).

  • Arduino Portenta H7 — breakout I2C4, pin PWM/clock tambahan, sensor OV7725 / MT9V034.

Breaking API changes

Perubahan API yang terlihat pengguna antara v4.0.2 dan v4.1.0. Cakupan: C-modul Python di modules/ dan pustaka Python di scripts/libraries/.

Setiap perubahan diberi tag dampaknya:

  • minor — API terbatas; hanya memengaruhi skrip yang menggunakannya.

  • behavior — API sama, hasil berbeda; periksa ulang skrip yang telah disetel.

Perubahan dikelompokkan berdasarkan dampak dalam urutan tersebut. Jika Anda hanya ingin memigrasikan kode, langsung ke daftar periksa migrasi di akhir. Setiap hash commit menautkan ke diff-nya di GitHub.

API WiFi NINA / RP2 dirombak (minor)

Driver WLAN NINA / RP2 dirombak agar sesuai dengan antarmuka network upstream MicroPython / CYW43: konstruktor WLAN(interface) (mode STA/AP), metode active([bool]) baru, alias config / start_ap dari connect, argumen ssid pada connect() diganti nama menjadi essid, kata kunci channel baru, dan nina.fw_version() kini mengembalikan tuple (major, minor, patch) alih-alih byte mentah. Ketidakcocokan versi firmware NINA kini berupa peringatan tidak fatal alih-alih OSError.

Commits: eb2f98277, e14470f68, 0c40f4832

Kesalahan sensor kini memunculkan RuntimeError (behavior)

Pelaporan kesalahan sensor distandarisasi menggunakan tabel kode kesalahan terpadu: kegagalan kamera (timeout pengambilan gambar, framesize/pixformat/window/framerate tidak valid, kesalahan buffer bingkai, overflow JPEG, sensor tidak terdeteksi, ...) kini memunculkan pesan yang konsisten dan deskriptif, dan beberapa kondisi yang sebelumnya memunculkan ValueError kini memunculkan RuntimeError (termasuk sensor.reset()). Kode yang menangkap ValueError untuk kasus-kasus ini harus diganti dengan RuntimeError.

Commits: 0491a6a88, c8bf0af6f, 2fb226562

Migration checklist

Untuk migrasi bersih ke v4.1.0, pekerjaan umum yang perlu dilakukan:

  1. Migrasikan kode WiFi NINA/RP2 ke antarmuka network.WLAN standar (WLAN(interface), active(), essid=) dan harapkan tuple dari nina.fw_version() (perubahan API WiFi).

  2. Ubah except ValueError menjadi except RuntimeError di sekitar penanganan kesalahan kamera / sensor.reset() (perubahan kesalahan sensor).