Skip to content

Releases: openmv/openmv

Development Release

18 Sep 19:24
3e62a71
Compare
Choose a tag to compare

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

📚 Libraries

  • tflm: Update submodule.

🐍 Micropython

  • micropython: Update documentation for v4.5.9.

🪛 Misc Fixes:

  • common: Support overriding the resolution table.

v4.5.9

04 Sep 13:18
f1aa024
Compare
Choose a tag to compare

⚠️ Breaking Changes

  • apriltag: Disable unused TAG families by default.

🪄 Image

  • apriltag: Switch to libm's sin/cos.
  • imlib: Optimize debayering with Helium.
  • imlib: Fix automatic vbuffer count.
  • imlib: Add support for sending raw preview frames.
  • jpeg: Minor clean-up.
  • imlib: Fix framebuffer_get_buffer_size().

📚 Libraries

  • tflm: Use GC's free memory for the temporary tensor arena.

💾 Drivers

  • dave2d: Add license file.
  • dave2d: Fix video memory bug.
  • dave2d: Remove license for now.
  • dave2d: Add D/AVE 2D GPU driver.

🧱 Modules

  • modules: Use the default optimization level for all user C modules.
  • py_image: Fix implicit float conversion.

🧪 Ports

  • stm32: Fix CM4 boot memory.
  • stm32: Move stm32-specific bootloader and uvc to port dir.
  • all: Refactor sensor flags.
  • all: support for building specific imlib files with clang.

⚙️ Boards

  • OPENMV4P: Set HW crop flag.
  • OPENMV_RT1060: Add support for RAW streaming.

📜 Scripts

  • examples: Add back windowing to example.

🛠 Tools

  • Update converters.
  • Clean up tools.
  • Add Alif tools.
  • uncrustify: Fix compound literal return indentation.
  • tflite2c: Add default optimization for user models.
  • tflite2c: Set Vela optimization per model.
  • pyopenmv: Misc fixes, updates and benchmark mode.

🪛 Misc Fixes:

  • Move Haar cascades.
  • build(deps): bump tj-actions/changed-files from 44 to 45
  • docker: Update docker build.
  • Add gitattributes.
  • misc: USB debug fixes.
  • sensor: Add raw sensor flag.
  • linker: Update linker script variables.
  • common: Add profiling macros.
  • usbdbg: Optimzie CDC buffers copy.
  • common: Change linker variable to uint32.

v4.5.8

31 Jul 17:08
7a90254
Compare
Choose a tag to compare

🧱 Modules

  • py_ml: Add uint16 support to match ndarrays.

🐍 Micropython

  • micropython: Update submodule.

📜 Scripts

  • libraries: Add missing return in microspeech.listen().

v4.5.7

31 Jul 09:08
6179112
Compare
Choose a tag to compare

🪄 Image

  • draw: Refactor draw_image to support gpu offload.
  • jpegd: Fix for JPEG decoder boundary problem.

📚 Libraries

  • tflm: Update submodule.
  • tflm: Fix Makefile rules to generate files once.
  • tflm: Remove Vela models (now generated on the fly).

🧱 Modules

  • py_image: Update all lineops to use the draw_image backend.
  • py_ml: print model address location too.
  • py_sensor: Add missing PAG7920 enum.

🐍 Micropython

  • micropython: Update submodule.

🧪 Ports

  • stm32: Fix MPU region protection bug.

📜 Scripts

  • libraries: Update rpc_spi_master to use the machine module.

🛠 Tools

  • tflite2c: Support converting Vela models on the fly.

🪛 Misc Fixes:

  • common: Add GPU memory section to common ld.
  • github: Post firmware stats after PRs.
  • README: Create toolchain parent directory.
  • README: Update builld instructions.
  • common: Reserve JPEG buffer only if defined.
  • common: Add nosys stubs.
  • misc: Update GCC toolchain installation instructions.

v4.5.6

20 Jul 08:12
89478be
Compare
Choose a tag to compare

🪄 Image

  • draw: Add missing speculative read invalidates.
  • draw: Add AA support for draw_circle.

🤖 Sensors

  • hm0360: Enable HM0360 to work on GIGA.

💾 Drivers

  • cyw43: Add firmware W4343WA1_45_98_102.

🧱 Modules

  • py_ml: Switch to upstream TFLM and refactor all TensorFlow modules.
  • py_ml: Add generic CNN processing support.
  • py_ml: Make predict output a numpy array.
  • py_ml: Fully vectorize all input and output scaling/datatypes.
  • py_ml: Fix the size of the input bytearray.
  • py_ml: Add support for multi-input models.
  • py_image: Update morph() to use arg parse.
  • py_image: Change scale argument to (min,max) range.
  • py_image: Add buffer length sanity check.
  • py_image: Add Image as a type instead of function.
  • py_image: Add support for turning lists/tuples into Images.
  • py_image: Refactor get_similarity() to use draw_image backend.

🐍 Micropython

  • micropython: Update to Micropython v1.23.0.

🧪 Ports

  • All: Add support for additional GC blocks.
  • All: Root pointer fixes.
  • All: Add common linker script.
  • All: Fix DMA memory alignment.
  • All: Fix accidental CPU cache invalidation.
  • All: Add efficient GET_STATE debug command.
  • mimxrt: Fix I2C for the MLX90640 driver.
  • stm32: Add mic gain support to py_audio when using DFSDM.

⚙️ 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: Add back original licenses.
  • misc: Change to SoftI2c for RT.
  • misc: Export common environment variables from top Makefile.
  • misc: Tinyusb debug updates.
  • misc: Fix malloc heap memory typo.
  • docs: fix misspelling of tensorflow

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.