Releases: openmv/openmv
Releases · openmv/openmv
Development Release
🪄 Image
- draw: Add missing speculative read invalidates.
- draw: Add AA support for draw_circle.
📚 Libraries
- tflm: Update submodule.
- tflm: Update libtflm submodule.
- tflm: Code cleanup.
- libtflm: Update submodule.
🤖 Sensors
- hm0360: Enable HM0360 to work on GIGA.
💾 Drivers
- cyw43: Add firmware W4343WA1_45_98_102.
🧱 Modules
- py_ml: Make predict output a numpy array.
- py_image: Update morph() to use arg parse.
- py_ml: Add tensor area memory address to model object.
- py_ml: Fix model kwargs.
- py_ml: Fully vectorize all input and output scaling/datatypes.
- py_image: Change scale argument to (min,max) range.
- py_ml: ML updates and fix.
- py_image: Add buffer length sanity check.
- py_ml: Fix the size of the input bytearray.
- py_ml: Add support for multi-input models.
- py_image: Add Image as a type instead of function.
- py_image: Add support for turning lists/tuples into Images.
- py_tf: Fix log buffer free-order.
- py_tf: Refactor py_tf module.
- py_tf: Add generic CNN processing support.
- py_image: Refactor get_similarity() to use draw_image backend.
🐍 Micropython
- micropython: Update submodule.
- micropython: Update submodule.
- micropython: Update submodule.
- micropython: Update submodule.
- micropython: Update submodule.
- micropython: Update to Micropython v1.23.0.
🧪 Ports
- mimxrt: Fix I2C for the MLX90640 driver.
- stm32: Add mic gain support to py_audio when using dfsdm.
- ports: Fix accidental CPU cache invalidation.
- all: Add support for additional GC blocks.
- all: Root pointer fixes.
⚙️ Boards
- ARDUINO_GIGA: Enable HIMAX sensors.
📜 Scripts
- examples: Add Open-AMP example.
- libraries: Update normalization to handle 3D/4D image tensors.
- examples: Add regression example.
- libraries: Moved nms class to ml/utils.
- libraries: Fix Normalization image format.
- libraries: Move nms to python.
🛠 Tools
- tflite2c: Fix model alignment.
🪛 Misc Fixes:
- misc: Update common linker script.
- misc: Fix DMA memory alignment.
- msic: Update GET_STATE command.
- ServoShield: Change to SoftI2c for RT.
- misc: Export common environment variables from top Makefile.
- misc: Tinyusb debug updates.
- misc: Fix malloc heap memory typo.
- usbdbg: Implement USB debug GET_STATE command.
- misc: Add common linker script, and misc board config updates.
- TensorFlow: Switch to upstream TFLM and refactor all TensorFlow modules.
- docs: fix misspelling of tensorflow
- py_tf: Refactor TF module.
v4.5.5
🪄 Image
- pool: Remove obsolete pooling functions.
- binary: Fix erode mask check.
- imlib: Invalidate vbuffers before returning them.
- draw: Cleanup drawline code.
- imlib: Change ARM_MATH_CM4/CM7 to DSP.
🧱 Modules
- py_image: Move ksize to be pos_arg.
- py_image: Fix morph spelling.
- py_image: Update py_image_to with mp_arg_parse_all.
🧪 Ports
- mimxrt: Retry transfer if the DMA is still busy.
- stm32: Reset vbuffer state when dropping frames.
🪛 Misc Fixes:
- misc: Increase delay after reset/power-down.
v4.5.4
🪄 Image
- draw: Fix out of bound crash issue with set_pixel_aa.
- binary: Improve erode/dilate performance using SIMD.
- jpege: Improve jpeg YUV422/420 UV sub-sampling speed.
- imlib: Update min/max usage to clamp and sat.
- fmath: Fix fmath function inlining.
📚 Libraries
- pid.py: change millis to ticks_ms
🤖 Sensors
- PAG7920: Support PixArt image sensor PAG7920.
🧱 Modules
- py_image: Update binary to use mp_arg_parse_all.
- py_image: Use mp_arg_pasrse_all for erode/dilate.
🐍 Micropython
- micropython: Turn crypto lib for mimxrt back on.
- micropython: Update docs.
🧪 Ports
- stm32: Don't control CS pin in slave mode.
- stm32: Add support for YUV422 hardware JPEG compression.
⚙️ Boards
- ARDUINO_GIGA: Enable OMV_GC2145_ROTATE.
- ARDUINO_GIGA: Enable RESET/PEN pin.
- OPENMV_RT1060: Fix BLE baudrate.
📜 Scripts
- libraries: Fix MQTT SSL params.
🥾 Bootloader
- bootloader: Fix GPIO clock macros.
v4.5.3
🪄 Image
- imlib: Optimize math ops.
- imlib: Optimize binary ops.
- imlib: Remove mul().
- imlib: Remove cartoon() method.
- imlib: Add ksize helper.
- imlib: Add config options for find_features.
- imlib: Refactor collections linked list.
- draw: Add anti aliasing in draw_line.
- jpegd: Fix jpeg decode for non-multiple of 8.
- imlib: Enable hardware JPEG decoder.
- stats: Fix get_threshold A/B values.
- apriltag: Fix find_rects() roi parameter.
- imlib: Fix gcc13.2 compile issues.
🧬 HAL
- omv_i2c: Update I2C flags.
- cmsis: Move cmsis gcc extensions to new file.
📚 Libraries
- libtf: Add model operator order hash support.
- libtf: Fixed missing tensorflow operators crash.
🤖 Sensors
- GC2145: Fix hmirror and vflip.
- GC2145: Fix chip id bug in sensor probe.
- GC2145: Support using GC2145 and OV5640 at the same time.
- paj6100: Fix driver for RT1062.
💾 Drivers
- pixart: Fix buffer overflow case.
🧱 Modules
- py_image: Optimize invert and negate.
- py_display: Add user SPI LCD register control.
- py_image: Remove div() method.
- py_tf: Refactor regression() code to handle arrays correctly.
- py_fir: Fix mlx data root pointer.
- py_image: Fix bug with gamma arguments.
- py_image: Upgrade ccm to work well with ulab.
- py_tf: Cleanup segment, detect, and callback data.
- py_image: Refactor isp ops to use mp_arg_parse.
🐍 Micropython
- micropython: Update fork to fix shared TinyUSB HS config.
- micropython: Update Arduino boards pins.
- micropython: Add back IMXRT CAN Driver.
- micropython: Fix deepsleep on mimxrt1062.
- micropython: Disable GC scanning of BSS.
- micropython: Update to MicroPython v1.22.
🧪 Ports
- all: Fix WiFi AP mode issues.
- stm32: Fix xclk duty cycle to 50%.
- all: Add a sensor function to reconfigure hardware if/when needed.
- mimxrt: Enable edma memcpy.
- mimxrt: Use hardware byteswap support.
- mimxrt: Improve Sensor Driver.
- ports: Add yuv shift to match bayer shift.
- all: Refactor sensor line copy.
- all: Refactor frame rate control.
- ports: Minor sensor cleanup.
- stm32: Scan devices once per scan.
- ports: Fix sensor bayer image with cropping and transpose.
- all: Allow sensor_abort() to be called from different contexts.
- ports: Fix sensor abstraction layer comment.
- all: Remove custom pendsv prototypes.
- all: Refactor PendSV code.
- all: Update to CMSIS version 5.9.0.
- stm32: Error on jpeg geometry mismatch.
- ports: Don't deinit the SSEL pin on stm32 and mimxrt.
- all: Use LD wrap for redirecting serial data to TinyUSB debug code.
- all: Update to Arm GNU Toolchain 13.2.rel1.
⚙️ Boards
- ARDUINO_GIGA: Enable GC2145 driver.
- NICLA_VISION: Reduce flash usage.
- OPENMV_RT1060: Update UMM Heap Size to match H7 Plus.
- OPENMV_RT1060: Enable ISP Ops.
- OPENMV_RT1060: Enable ulab.
- all: Refactor board config files.
- all: Add custom board reset function.
- all: Enable OV5640 Autofocus firmware and add example.
📜 Scripts
- examples: Add imxrt board control examples.
- examples: Add working Pure Thermal OpenMV example.
- examples: Reorganize OpenMV Board examples.
- libraries: Replace pyb with time module in vl53l1x.py.
- examples: Remove old CENTER argument usage.
- scripts: Update examples and libraries.
- libraries: Change the RPC Interface Library UART Master.
🛠 Tools
- tools: Add tflite model hash tool.
- pyopenmv_fb: Fix pygame FB test script.
🪛 Misc Fixes:
- build(deps): bump actions/cache from 4.0.0 to 4.0.1
- misc: Code formatting.
- build(deps): bump actions/cache from 3.3.3 to 4.0.0
- misc: Fix errors triggered by disabling specific features.
- build(deps): bump actions/cache from 3.3.2 to 3.3.3
- misc: Update firmware workflow for upload/download v4.
- build(deps): bump tj-actions/changed-files from 40 to 41
- build(deps): bump actions/upload-artifact from 3 to 4
- build(deps): bump actions/download-artifact from 3 to 4
v4.5.2
🪄 Image
- imlib: Fix imlib_midpoint_pool cannot select the centered area.
🧱 Modules
- py_tv: Fix argument parsing.
- py_mjpeg: Calculate MJPEG FPS internally.
- py_tf: Fix non-square image support.
🐍 Micropython
- micropython: Update docs.
🧪 Ports
- mimxrt: Service TinyUSB while waiting for sensor frames.
- All: Add support for passing variables to manifest files.
- mimxrt: Add CAN support.
⚙️ Boards
- OPENMV_RT1060: Fix default script LED pin name.
- OPENMV_RT1060: Enable high res apriltags.
- ARDUINO_GIGA: Enable OV5640.
📜 Scripts
- examples: Fix GIGA display script.
- examples: Add timeout_char to uart examples.
🪛 Misc Fixes:
- misc: Fix TinyUSB polling.
- build(deps): bump actions/setup-python from 4 to 5
- build(deps): bump tj-actions/changed-files from 39 to 40
v4.5.1
🪄 Image
- imlib: Add scaling and centering hints to draw_image.
- imlib: Add hmirror, vflip, and transpose support to draw_image.
- imlib: Move draw_image arguments to struct.
- imlib: Fix corner detection bug.
- imlib: Support creating images from bytearrays.
🤖 Sensors
- gc2145: Add support for a wider FoV.
- mt9v0xx: Enable row noise correction.
💾 Drivers
- winc: Fix AP mode.
🧱 Modules
- modules: Make int/floating image scaling behavior the same.
- py_tf: Revert
load_to_fb
arg name. - all: Refactor arg parsing.
- py_image: Cleanup MP_DEFINES for helper functions.
- modules: Allow arg_to_image to load images from paths.
- modules: Refactor keyword_to_image helper function.
- modules: Move palette constants to the image module.
- py_helper: Add arg to scale helper.
- modules: Refactor py_helper_arg_to_image functions.
- py_display: Refactor display args.
- tv: Fix image corruption when specifying image rect.
- py_winc: Make module more compatible with other WiFi modules.
- py_display: Add support for Python backlight controllers.
- spi_display: Fix display args.
🐍 Micropython
- micropython: Add MICROPY_NLR_JUMP_HOOK.
- micropython: Update docs.
🧪 Ports
- all: Remove support for self-tests.
- all: Refactor common boot code.
- mimxrt: Update led driver.
- mimxrt: Add .openmv_disk file.
- mimxrt: Add support for fsync pin to snapshot.
⚙️ Boards
- ARDUINO_NICLA_VISION: Add Arduino pins.
- arduino_nano_33_ble_sense: Fix frozen drivers.
- ARDUINO_GIGA: Add QSPI fix/workaround to early init.
📜 Scripts
- examples: Fix Nano 33 audio example.
- examples: Update thermal scripts for new refectored API.
- examples: Fix triggering in frame differencing examples.
- examples: Fix Nicla UART example.
- scripts: Fix light shield and low power ordering.
- scripts: Rename OpenMV example scripts to sort correctly.
- scripts: Add examples path name to index.csv to fix sorting.
- examples: Add license header to all examples.
- scripts: Improve OpenMV Boards MJPEG Examples.
- examples: Fix Portenta pins.
🪛 Misc Fixes:
- misc: Refactor file management code.
- misc: Fix build when debugging is enabled.
v4.5.0
🪄 Image
- imlib: Fix in-place scaling bug.
- imlib: Fix DMA2D cache line access.
- fmath: Fix invalid fp instruction usage on cortex-m4.
- imlib: Fix int_maybe() bug.
- imlib: Improve morph performance.
- imlib: Improve transpose performance
🤖 Sensors
- OV7670: Fix VGA window.
- OV7670: Implement flip and mirror controls.
- Support scanning multiple devices on the camera bus.
- Add support for controlling BLC and nightmode.
- mt9v0xx: Fix exposure calculation.
- Fix gain calculation math accuracy.
💾 Drivers
- drivers: Refactor all display modules.
- drivers: Make all SPI based Python modules portable.
- drivers: Move alloc alignment macros to the common header.
🧱 Modules
- py_sensor: Print warning on missing sensor controls.
🐍 Micropython
- cywbt.c: Sync CYWBT driver with upstream.
- micropython: Fix I2C4 support.
- micropython: Fix QSPI reset command.
- micropython: Remove MICROPY_STREAMS_POSIX_API from board config files.
🧪 Ports
- stm32: Fix display portrait mode.
- stm32: Improve LCD display update interrupt code.
- stm32: Remove hard-coded MDMA channels.
- stm32: Fix DSI display timing.
- stm32: Drop frames on transpose corruption.
- stm32: Fix microspeech demo.
- sensor: Fix sensor_set_xclk freq to accept any frequency.
⚙️ Boards
- ARDUINO_GIGA: Add support for Arduino Giga.
- arduino_nano_33_ble_sense: Add LED pins.
- All: Rename LED pins more consistently.
📜 Scripts
- examples: Update WiFi and Bluetooth examples.
- examples: Add Giga H7 examples.
- scripts: Make examples more portable.
- libraries: Add machine extension module.
- libraries: Add display extension module.
- libraries: Add GT911 controller driver.
- libraries: Replace IMU/Env drivers with upstream versions.
🛠 Tools
- tools: Fix code formatter config.
🪛 Misc Fixes:
- build(deps): bump dev-drprasad/delete-tag-and-release from 0.2.1 to 1.0.1
- Update README.md
- misc: Update code formatting.
- misc: Fix various typos
- misc: Update code formatting workflow.
- misc: Fix code format workflow.
v4.4.3
🪄 Image
- imlib: refactor py blob code.
- libtf: Update to the latest tensorflow API.
- libtf: Enable more ops in tensorflow library.
- imlib: Update gamma_corr to support bayer and yuv images.
- imlib: Add support for AWB and CCM.
- apriltag: Add floating point centroid.
- mjpeg: Vastly improve MJPEG code.
🧬 HAL
- omv: Add SPI HAL.
📚 Libraries
- lib: Update the rtsp library to use the machine module.
- libtf: Update libtf regression to support 2D input.
- libtf: Update libtf to support 2D regression.
🤖 Sensors
- lepton: Use new VOSPI/SPI HAL.
💾 Drivers
- pixart: Fix spi send/recv functions.
- pixart: Switch to the new SPI HAL.
- winc1500: Switch to the new SPI HAL.
🐍 Micropython
- micropython: Update docs.
- micropython: Update submodule.
- micropython: misc fixes and features for mimxrt.
- micropython: Update to MicroPython 1.20.0.
- micropython: Update ulab to 6.0.12.
🧪 Ports
- imxrt: Fix compile error when disabling sdram.
- stm32: Refactor I2C bus definitions.
- mimxrt: Add mimxrt port and OPENV_RT1060.
- stm32: Call gc_sweep before deinitializing networking drivers.
- stm32: Link CYW43 BTHCI.
- stm32: Share GPIO IRQ descriptor with other ports.
- stm32: Fix SPI HAL DMA/blocking transfers.
- stm32: Switch IMU module to the new SPI HAL.
- stm32: Add DMA utils.
- stm32: Refactor CEC module to use new GPIO HAL.
- all: Refactor cambus code.
- stm32: Refactor all pins defintiions.
- nrf: Fix OV767x on ML kit.
- rp2: Add missing license header to cambus.c
- stm32: Switch to the open-source cyw43 driver.
⚙️ Boards
- OPENMV_RT1060: Fix SD Card Detection on power-on.
- OPENMV_RT1060: Fix blinking LED polarity.
🛠 Tools
- tools: Add imxrt firmware tools.
🪛 Misc Fixes:
- mimxrt: Handle short packets for debug mode in TinyUSB.
- fix: added missing close() of socket object.
- examples: Format all examples.
- examples: Fix Nicla Vision extint example.
- misc: Rename common header.
- examples: Update all networking scripts.
- build(deps): bump actions/setup-python from 3 to 4
- build(deps): bump geekyeggo/delete-artifact from 1 to 2
- build(deps): bump actions/cache from 3.2.5 to 3.3.1
v4.4.2
🪄 Image
- imlib: Fix bug with copy argument updating original object.
- imlib: Fix redefined assert error on some builds.
- jpeg: Fix compression argument order.
🤖 Sensors
- FIR: Disable FIR module build if no sensors are enabled.
- MT9M114: Optimize patch loading.
- MT9V0XX: Allow overriding external clock frequency.
💾 Drivers
- winc1500: Set NIC to NULL on closing sockets.
- winc1500: Keep listening socket open on accept timeout.
🧪 Ports
- All: Improve script execution and exception handling.
- All: Switch to using board pendsv entries.
- All: Use static scheduler nodes for Audio modules.
- stm32: Rename FB alloc overlay size macro.
- stm32: Add byte reversal support to lcd screen.
- stm32: Clock finds frequency under requested.
⚙️ Boards
- all: Add a bytes offset config option for multi-word UIDs.
- NICLAV: Add readout control to driver and fix image orientation.
- PORTENTA: Override default MT sensor clock.
📜 Scripts
- examples: Update ulab fft examples.
- libraries: Fix RSTP library for the winc.
- libraries: Format RPC/RTSP libraries.
🪛 Misc Fixes:
- tinyusb_debug: Misc fixes.
- usbdbg: Refactor USB debugger code.
- tinyusb_debug: Define IRQ handler names in board config.
- misc: Add Python linter workflow.
v4.4.1
🧪 Ports
- stm32: Fix DCMI pins deinit.
⚙️ Boards
- OPENMV4_PRO: Enable QSPI Flash.