iabdalkader
7ff4418ea9
scripts/examples: Add Protocol examples.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-15 17:16:50 +02:00
iabdalkader
f9097acb1b
tools/openmv: OpenMV Protocol V2 Implementation.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-15 17:16:50 +02:00
iabdalkader
caaec35e62
ports/stm32: Switch to new protocol.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-15 17:16:50 +02:00
iabdalkader
37a565bf41
ports/alif: Switch to new protocol.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-15 17:16:47 +02:00
iabdalkader
0ee4824c90
ports/mimxrt: Switch to new protocol.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-15 17:16:09 +02:00
iabdalkader
e9d5e3bfbf
boards/all: Switch to new protocol.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-15 17:16:09 +02:00
iabdalkader
639250aa3f
modules/omv: Switch to new protocol.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-15 17:16:09 +02:00
iabdalkader
47b74c0be4
lib/imlib: Send stream events.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-15 17:16:09 +02:00
iabdalkader
b95c0b6b0e
modules: Add OpenMV protocol bindings.
...
Enables creating transports and data channels from Python.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-15 17:16:09 +02:00
iabdalkader
8364a72a83
protocol: Introduce OMV protocol V2.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-15 17:16:09 +02:00
iabdalkader
a806718180
common/usbdbg: Remove obsolete protocol files.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-15 17:16:09 +02:00
iabdalkader
8f74e0b390
common/mp_utils: Remove exec_bootscript.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-15 17:16:09 +02:00
iabdalkader
0b0f7fb6b4
tools/pyopenmv: Remove obsolete tools.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-15 17:16:09 +02:00
iabdalkader
647ab3aa87
common: Add circular buffer API for data streaming
...
Add a simple ring buffer implementation with claiming/committing,
consumption tracking, and automatic compaction when needed.
A better solution would be to implement Bip Buffer:
https://www.codeproject.com/Articles/3479/The-Bip-Buffer-The-Circular-Buffer-with-a-Twist
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-15 17:16:09 +02:00
Ibrahim Abdelkader
8eca7f598a
Merge pull request #2870 from andrewleech/micropython_vfs_2
...
🔎 Check Code Formatting / formatting-check (push) Waiting to run
🔥 Firmware Build / build-firmware (0, ARDUINO_GIGA) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, ARDUINO_NANO_33_BLE_SENSE) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, ARDUINO_NANO_RP2040_CONNECT) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, ARDUINO_NICLA_VISION) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, ARDUINO_PORTENTA_H7) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, DOCKER) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV2) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV3) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV4) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV4P) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMVPT) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV_AE3) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV_N6) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV_RT1060) (push) Waiting to run
🔥 Firmware Build / build-firmware (1, OPENMV_N6) (push) Waiting to run
🔥 Firmware Build / code-size-report (push) Blocked by required conditions
🔥 Firmware Build / stable-release (push) Blocked by required conditions
🔥 Firmware Build / development-release (push) Blocked by required conditions
fs: Replace FatFS direct calls with MicroPython VFS abstraction
2025-10-15 17:55:23 +03:00
Andrew Leech
a38bc7df52
modules/py_imageio: Replace FatFS calls with VFS abstraction.
...
Convert py_imageio.c to use file_t and VFS file operations instead of
direct FatFS calls (FIL, f_size, f_eof, f_tell).
This completes the VFS conversion for the modules directory.
2025-10-14 23:10:56 +11:00
Andrew Leech
cd10451d49
common: Fix NULL pointer dereference and recursion bugs.
...
Addresses review feedback from PR #2870 :
- Fix NULL pointer dereference when finalisers run on unopened files
- Prevent infinite recursion in error handlers during buffered I/O
- Add explicit validation for FA_READ|FA_WRITE flag combinations
- Switch to mp_vfs_open for consistency with VFS abstraction
- Add NULL checks to file_buffer_on/off public APIs
The recursion fix ensures both file_buffer_off() and file_close()
clear their state before risky operations, making re-entry safe.
2025-10-14 12:17:12 +11:00
Andrew Leech
e49e49eb36
ports/alif: Remove file_ll_touch() block.
...
This functionality has been moved to boot.py scripts.
Signed-off-by: Andrew Leech <andrew.leech@planetinnovation.com.au>
2025-10-14 12:17:12 +11:00
Andrew Leech
e56fa55dec
ports/stm32: Replace FatFS calls with VFS abstraction.
...
Signed-off-by: Andrew Leech <andrew.leech@planetinnovation.com.au>
2025-10-14 12:17:12 +11:00
Andrew Leech
78ad9448dc
drivers/winc1500: Replace FatFS calls with VFS abstraction.
...
Signed-off-by: Andrew Leech <andrew.leech@planetinnovation.com.au>
2025-10-14 12:17:12 +11:00
Andrew Leech
fa65d7af94
modules: Replace FatFS calls with VFS abstraction.
...
Signed-off-by: Andrew Leech <andrew.leech@planetinnovation.com.au>
2025-10-14 12:17:12 +11:00
Andrew Leech
5e9bc80a2e
lib/imlib: Replace FatFS calls with VFS abstraction.
...
Signed-off-by: Andrew Leech <andrew.leech@planetinnovation.com.au>
2025-10-14 12:16:16 +11:00
Andrew Leech
f54fa0c0a2
common: Replace FatFS calls with VFS abstraction.
...
Signed-off-by: Andrew Leech <andrew.leech@planetinnovation.com.au>
2025-10-14 12:16:16 +11:00
Ibrahim Abdelkader
29ad945adb
Merge pull request #2888 from openmv/imageio_fix_mode
...
🔎 Check Code Formatting / formatting-check (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, ARDUINO_GIGA) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, ARDUINO_NANO_33_BLE_SENSE) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, ARDUINO_NANO_RP2040_CONNECT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, ARDUINO_NICLA_VISION) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, ARDUINO_PORTENTA_H7) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, DOCKER) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV2) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV4) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV4P) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMVPT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV_AE3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV_N6) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV_RT1060) (push) Has been cancelled
🔥 Firmware Build / build-firmware (1, OPENMV_N6) (push) Has been cancelled
🔥 Firmware Build / code-size-report (push) Has been cancelled
🔥 Firmware Build / stable-release (push) Has been cancelled
🔥 Firmware Build / development-release (push) Has been cancelled
modules/py_imageio: Fix stream file mode.
2025-10-12 19:45:39 +03:00
iabdalkader
715c4cbba6
modules/py_imageio: Fix stream file mode.
...
Open for write should truncate the file if exists.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-12 14:15:01 +02:00
Ibrahim Abdelkader
c03964b8af
Merge pull request #2884 from openmv/refactor_ml_packages
...
🔥 Firmware Build / build-firmware (0, ARDUINO_GIGA) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, ARDUINO_NANO_33_BLE_SENSE) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, ARDUINO_NANO_RP2040_CONNECT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, ARDUINO_NICLA_VISION) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, ARDUINO_PORTENTA_H7) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, DOCKER) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV2) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV4) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV4P) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMVPT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV_AE3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV_N6) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV_RT1060) (push) Has been cancelled
🔥 Firmware Build / build-firmware (1, OPENMV_N6) (push) Has been cancelled
🔥 Firmware Build / code-size-report (push) Has been cancelled
🔥 Firmware Build / stable-release (push) Has been cancelled
🔥 Firmware Build / development-release (push) Has been cancelled
scripts/libraries/ml: Split ml module into components.
2025-10-10 21:48:55 +03:00
Ibrahim Abdelkader
1ec8c1df3b
Merge pull request #2885 from openmv/fix_n6_repr
...
🔥 Firmware Build / build-firmware (0, ARDUINO_GIGA) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, ARDUINO_NANO_33_BLE_SENSE) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, ARDUINO_NANO_RP2040_CONNECT) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, ARDUINO_NICLA_VISION) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, ARDUINO_PORTENTA_H7) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, DOCKER) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV2) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV3) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV4) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV4P) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMVPT) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV_AE3) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV_N6) (push) Waiting to run
🔥 Firmware Build / build-firmware (0, OPENMV_RT1060) (push) Waiting to run
🔥 Firmware Build / build-firmware (1, OPENMV_N6) (push) Waiting to run
🔥 Firmware Build / code-size-report (push) Blocked by required conditions
🔥 Firmware Build / stable-release (push) Blocked by required conditions
🔥 Firmware Build / development-release (push) Blocked by required conditions
lib/micropython: Update submodule.
2025-10-10 10:05:29 +03:00
iabdalkader
7641348319
lib/micropython: Update submodule.
...
- Switch N6 to object REPR_C.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-10 08:48:16 +02:00
iabdalkader
f75f86aaec
boards/all: Update manifest files.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-09 17:11:23 +02:00
iabdalkader
4944c157b0
scripts/libraries/ml: Split ml module into components.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-09 09:46:45 +02:00
Kwabena W. Agyeman
1e8eb2ec2f
scripts/libraries: Move _NO_DETECTION into post-processors.
...
MicroPython doesn't import _NO_DETECTION from utils using the wildcard
operator. Importing it by name works, but, only after removing the
const() part in the call.
2025-10-08 08:36:24 +02:00
Ibrahim Abdelkader
c282c9474c
Merge pull request #2881 from openmv/refactor_ml_post_process
...
lib/ml: Refactor postprocessing module into vendor-specific subpackages.
2025-10-08 01:07:26 +03:00
iabdalkader
a4ee9f0a3c
lib/ml: Refactor postprocessing module into vendor-specific subpackages.
...
This commit restructures the ml.postprocessing module for better organization:
- Moved common utility functions (logit, sigmoid, threshold, quantize,
dequantize, mod) from postprocessing.py to utils.py to avoid duplication
- Created vendor-specific subpackages:
- ultralytics.py: YoloV2, YoloLC, YoloV5, YoloV8 classes
- edgeimpulse.py: Fomo class
- mediapipe.py: BlazeFace class
- Converted postprocessing.py file to postprocessing/ package directory
- Updated all class names to follow PascalCase convention
- Maintained full backwards compatibility via aliased imports in __init__.py
New usage:
from ml.postprocessing import ultralytics
ultralytics.YoloV2()
Backwards compatible:
from ml.postprocessing import yolo_v2_postprocess
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-08 00:00:20 +02:00
Ibrahim Abdelkader
f474657718
Merge pull request #2877 from kwagyeman/kwabena/enable_depth_lut_on_n6
...
🔎 Check Code Formatting / formatting-check (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, ARDUINO_GIGA) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, ARDUINO_NANO_33_BLE_SENSE) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, ARDUINO_NANO_RP2040_CONNECT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, ARDUINO_NICLA_VISION) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, ARDUINO_PORTENTA_H7) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, DOCKER) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV2) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV4) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV4P) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMVPT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV_AE3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV_N6) (push) Has been cancelled
🔥 Firmware Build / build-firmware (0, OPENMV_RT1060) (push) Has been cancelled
🔥 Firmware Build / build-firmware (1, OPENMV_N6) (push) Has been cancelled
🔥 Firmware Build / code-size-report (push) Has been cancelled
🔥 Firmware Build / stable-release (push) Has been cancelled
🔥 Firmware Build / development-release (push) Has been cancelled
boards/OPENMV_N6: Enable depth palette on N6.
2025-10-07 11:12:12 +03:00
Kwabena W. Agyeman
c0dfdc7359
boards/OPENMV_N6: Enable ToF module to enable depth LUT.
2025-10-05 13:22:22 -07:00
Ibrahim Abdelkader
814dcb1b9d
Merge pull request #2879 from kwagyeman/kwabena/fix_boson_timespec
...
drivers/boson: Use timespec struct from header.
2025-10-05 23:18:02 +03:00
Kwabena W. Agyeman
b765b478a5
drivers/boson: Use timespec struct from header.
2025-10-05 12:26:39 -07:00
Ibrahim Abdelkader
96034db229
Merge pull request #2878 from openmv/fix_formatting
...
modules: Fix code formatting.
2025-10-05 14:23:16 +03:00
iabdalkader
d7e0a0fc96
misc: Fix code formatting.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-05 13:15:02 +02:00
Ibrahim Abdelkader
0dfaf74e6b
Merge pull request #2854 from openmv/stai_events
...
lib: Poll events during inference.
2025-10-02 19:31:22 +03:00
iabdalkader
5b4035e815
ports/alif: Handle pending events during inference.
...
Ensures pending events get serviced more often.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-02 18:10:35 +02:00
iabdalkader
b99a45a2a1
lib/stai: Poll events during inference.
...
Ensures pending events get serviced more often.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-02 18:10:35 +02:00
iabdalkader
518d946d2f
lib/micropython: Update submodule.
...
- py/scheduler: Allow selective handling in mp_handle_pending.
- stm32/usbd_hid_interface: Add runtime header.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-02 18:10:35 +02:00
Ibrahim Abdelkader
fa625ad6cb
Merge pull request #2859 from openmv/dependabot/github_actions/actions/cache-4.3.0
...
build(deps): bump actions/cache from 4.2.0 to 4.3.0
2025-10-02 10:37:05 +03:00
Ibrahim Abdelkader
53c7806663
Merge pull request #2867 from openmv/update_micropython
...
lib/micropython: Update submodule.
2025-10-01 19:38:18 +03:00
iabdalkader
8b15aa9119
lib/micropython: Update submodule.
...
- stm32/adc: Get ADC working on STM32N6 MCUs.
- alif/machine_spi: Fix init() to only change requested settings.
- alif/boards/OPENMV_AE3: Fix switch name to match OpenMV RT1062 and N6.
- stm32/boards/OPENMV_N6: Define all OpenMV N6 pins.
- stm32/boards: Add PG13 AF7 (USART3_RTS) to N6 AF file.
- stm32/boards/OPENMV_N6: Define RTS pin for UART3.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-10-01 09:29:16 +02:00
Ibrahim Abdelkader
af63e4edb1
Merge pull request #2866 from openmv/fix_formatting
...
misc: Fix formatting.
2025-09-28 21:00:28 +03:00
iabdalkader
f8e110ca91
misc: Format code.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-09-28 19:45:07 +02:00
iabdalkader
8233e03553
github/workflows: Add ST AI backend to formatter.
...
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-09-28 19:22:38 +02:00
Ibrahim Abdelkader
76c87956ad
Merge pull request #2865 from openmv/add_adc_rif_config
...
ports/stm32: Add ADC12 RIF config.
2025-09-27 12:49:31 +03:00