v3.8.0

v3.8.0 memperbarui inti ke MicroPython 1.13, membekukan sejumlah besar pustaka pembantu ke dalam firmware, menambahkan Portenta Ethernet (dengan contoh jaringan), dukungan HDMI CEC ke modul lcd, konfigurasi baudrate/sampling-point pyb.CAN, serta serangkaian perbaikan H7 low-power dan HAL. Modul time / utime digabungkan dan DMA F4 pyb.DAC dinonaktifkan — baca perubahan yang merusak kompatibilitas di bawah.

Sorotan

  • MicroPython 1.13 — inti MicroPython yang disertakan diperbarui.

  • Pustaka bekuuasyncio, mqtt, rpc, rtsp, modbus, bno055, pid, ssd1306, dan lainnya kini dibekukan ke dalam firmware.

  • Portenta Ethernet — dukungan Ethernet beserta contoh HTTP / SSL / peer-to-peer.

  • HDMI CEC — API CEC baru dalam modul lcd (Pure Thermal).

  • pyb.CAN — bit timing dari kata kunci baudrate / sampling_point.

  • Perubahan merusak: modul time / utime digabungkan dan fungsi DMA F4 pyb.DAC dinonaktifkan — lihat perubahan yang merusak kompatibilitas.

Fitur baru

  • Manifes bekuuasyncio, mqtt, rpc, rtsp, modbus, bno055, mutex, pid, ssd1306, tb6612, dan vl53l1x kini dibekukan ke dalam firmware pada OpenMV 3 / 4 / 4 Plus / Pure Thermal / Portenta.

  • Portenta Ethernet — Ethernet diaktifkan dengan contoh http_client, http_client_ssl, dan peer_to_peer.

  • HDMI CEC — API HDMI CEC ditambahkan ke modul lcd (Pure Thermal).

  • pyb.CAN — konstruktor / init() kini menghasilkan bit timing dari kata kunci baudrate dan sampling_point (bentuk prescaler manual tetap berfungsi); contoh CAN diperbarui sesuai.

Perubahan dan peningkatan lainnya

  • Banner REPL kini menyertakan string versi HAL; contoh Audio FFT diperbarui untuk API ulab yang lebih baru.

Perbaikan bug

Kamera dan sensor:

  • Memperbaiki clock sensor OV2640 dan penskalaan frekuensi PCLK OV5640 pada perangkat STM32H7 rev Y; memulihkan bus I2C FIR dari kondisi arbitration-lost dengan memberikan pulsa pada SCL, dan mencoba ulang inisialisasi AMG8833 pada soft-reset F7.

Daya dan timer:

  • Memperbaiki entri low-power H7 (stop/standby) — penskalaan tegangan untuk rev V, mengaktifkan kembali osilator/PLL saat bangun, low-power SDRAM dengan retensi DRAM, menonaktifkan Systick saat masuk stop, dan mengaktifkan DBGMCU hanya pada build debug. Memperbaiki kondisi HAL machine.Timer setelah pembaruan HAL H7 dan mengembalikan perubahan prioritas IRQ baca/tulis SD.

Tampilan dan konektivitas:

  • Memperbaiki konfigurasi ukuran data 8/16-bit LCD SPI F4 (definisi MCU_SERIES yang salah), mengembalikan error pada kegagalan inisialisasi bus SPI WINC1500 alih-alih melanjutkan secara diam-diam, dan menggunakan handle SPI statis untuk menghindari konflik bus SPI WINC1500. Memperbaiki bug GC-collect MicroPython.

Sistem:

  • unittests.py tidak lagi menandai suite sebagai gagal ketika sebuah tes dinonaktifkan atau tidak tersedia; menghapus contoh camera_lcd Thermopile-shield yang rusak.

Dukungan perangkat keras dan papan

  • OpenMV Pure Thermal — papan diperbarui dan diganti nama (OPENMVPURETHERMALOPENMVPT), dengan HDMI CEC.

  • OpenMV 2 — driver kamera OV2640 diaktifkan.

  • Arduino Portenta H7 — dukungan Ethernet.

Perubahan API yang merusak kompatibilitas

Perubahan API yang terlihat oleh pengguna antara v3.7.0 dan v3.8.0. Cakupan: C-modul Python dalam modules/ dan pustaka Python dalam scripts/libraries/.

Setiap perubahan diberi tag dengan dampaknya:

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

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

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

Modul time / utime digabungkan (minor)

Modul time dan utime digabungkan dan kelas clock OpenMV dipindahkan ke utime. Semua contoh yang disertakan diperbarui ke import utime / clock = utime.clock(). Skrip yang mengandalkan import time untuk kelas clock harus mengimpor utime sebagai gantinya.

Commits: 20587f308

Fungsi DMA F4 pyb.DAC dinonaktifkan (minor)

Pada papan berbasis F4, fungsi pyb.DAC yang memerlukan DMA dinonaktifkan karena heap F4 berada di CCM, yang tidak dapat diakses oleh DMA. Skrip F4 yang menggunakan penulisan buffer DMA DAC harus menghindari fungsi-fungsi tersebut.

Commits: d61f236f2

MicroPython diperbarui ke 1.13 (behavior)

Inti MicroPython yang disertakan diperbarui ke 1.13. Perilaku pustaka standar dan bahasa mengikuti MicroPython 1.13 upstream; periksa ulang skrip yang bergantung pada perilaku micropython / modul-standar yang spesifik terhadap versi.

Commits: fb0a5e26d

Frekuensi yang didukung cpufreq bergantung pada revisi (behavior)

Lebih banyak frekuensi CPU ditambahkan dan dibuat sadar terhadap revisi silikon: cpufreq.get_supported_frequencies() kini mengembalikan daftar yang bergantung pada revisi di H7 (50/100/200/400 MHz pada rev X/Y, 60/120/240/480 MHz pada rev V). Skrip yang meng-hard-code frekuensi dari daftar tetap lama harus menanyakan daftar yang didukung saat runtime.

Commits: 825dd0742

Daftar periksa migrasi

Untuk port yang bersih ke v3.8.0, pekerjaan umum yang perlu dilakukan adalah:

  1. Ubah import time menjadi import utime di mana Anda menggunakan kelas clock (penggabungan time/utime).

  2. Pada papan F4, hentikan penggunaan fungsi buffer DMA pyb.DAC (perubahan F4 DAC).

  3. Validasi ulang skrip yang bergantung pada perilaku MicroPython yang spesifik terhadap versi terhadap 1.13 (peningkatan MicroPython) dan tanyakan cpufreq.get_supported_frequencies() saat runtime alih-alih hard-coding (perubahan cpufreq).

Semua skrip lainnya berjalan tanpa perubahan.