Skip to content

Releases: openmv/openmv

Development Release

19 Jul 16:19
5df4e84
Compare
Choose a tag to compare

⚠️ This is a development release, and it may be unstable.

🪄 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

26 May 12:56
4759398
Compare
Choose a tag to compare

🪄 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

20 Apr 12:52
7662201
Compare
Choose a tag to compare

🪄 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

04 Mar 17:37
6829667
Compare
Choose a tag to compare

🪄 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

24 Dec 20:19
e4c0846
Compare
Choose a tag to compare

🪄 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

29 Nov 17:52
fad81c1
Compare
Choose a tag to compare

🪄 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

10 Oct 14:05
Compare
Choose a tag to compare

🪄 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

23 Aug 16:50
8ffedbd
Compare
Choose a tag to compare

🪄 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

07 Apr 17:41
b156d6b
Compare
Choose a tag to compare

🪄 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

27 Jan 21:04
9a4282b
Compare
Choose a tag to compare

🧪 Ports

  • stm32: Fix DCMI pins deinit.

⚙️ Boards

  • OPENMV4_PRO: Enable QSPI Flash.