Releases: openmv/openmv
Releases · openmv/openmv
Development Release
📚 Libraries
- tflm: Update submodule.
🐍 Micropython
- micropython: Update documentation for v4.5.9.
🪛 Misc Fixes:
- common: Support overriding the resolution table.
v4.5.9
⚠️ 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
🧱 Modules
- py_ml: Add uint16 support to match ndarrays.
🐍 Micropython
- micropython: Update submodule.
📜 Scripts
- libraries: Add missing return in microspeech.listen().
v4.5.7
🪄 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
🪄 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
🪄 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.