Commit Graph

7195 Commits

Author SHA1 Message Date
iabdalkader
1f1e2b59e9 common/csi: Add post-processing op.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-09 12:04:05 +02:00
iabdalkader
9112cf2aae misc: Clean-up CSI flags.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-09 12:00:59 +02:00
Ibrahim Abdelkader
3f271393ce
Merge pull request #2802 from openmv/add_custom_res
Some checks are pending
🔥 Firmware Build / build-firmware (ARDUINO_GIGA) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NANO_33_BLE_SENSE) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NANO_RP2040_CONNECT) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NICLA_VISION) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_PORTENTA_H7) (push) Waiting to run
🔥 Firmware Build / build-firmware (DOCKER) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV2) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV3) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV4) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV4P) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMVPT) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_AE3) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_N6) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_RT1060) (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
common/csi: Add support for custom resolutions.
2025-08-08 20:58:35 +03:00
iabdalkader
451c1e7664 common/csi: Add support for custom resolutions.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-08 14:45:23 +02:00
Ibrahim Abdelkader
294eaf309f
Merge pull request #2795 from openmv/fix_dma_sec
Some checks failed
🔥 Firmware Build / build-firmware (ARDUINO_GIGA) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NANO_33_BLE_SENSE) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NANO_RP2040_CONNECT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NICLA_VISION) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_PORTENTA_H7) (push) Has been cancelled
🔥 Firmware Build / build-firmware (DOCKER) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV2) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV4) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV4P) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMVPT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_AE3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_N6) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_RT1060) (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
ports/stm32: Fix N6 DMA security config.
2025-08-03 12:25:55 +03:00
iabdalkader
84b1814ae7 ports/stm32: Fix N6 DMA security config.
Fix DMA security config for non-circular channels.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-03 10:39:51 +02:00
Ibrahim Abdelkader
a04579eec1
Merge pull request #2794 from openmv/kwagyeman-kwabena/enable_n6_spi_dma
boards/OPENMV_N6: Enable triple buffering for the N6.
2025-08-03 10:54:11 +03:00
Kwabena W. Agyeman
0fdd24d75c boards/OPENMV_N6: Enable triple buffering for the N6 by default. 2025-08-03 09:45:47 +02:00
Kwabena W. Agyeman
a15fb0b831 ports/stm32: Add max transfer sizes for the N6. 2025-08-03 09:45:47 +02:00
Ibrahim Abdelkader
62a652044f
Merge pull request #2793 from openmv/fix_lepton_sync
common/vospi: Fix synchronization issues.
2025-08-03 10:19:28 +03:00
iabdalkader
df5c767cb8 common/vospi: Fix synchronization issues.
- Abort if synchronization takes too long.
- Reinit SPI on transfer restart (fixes an issue on N6).
- Clean up vospi code.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-02 13:57:00 +02:00
Ibrahim Abdelkader
a11eb9d6a8
Merge pull request #2787 from openmv/fix_lepton_driver
Some checks are pending
🔥 Firmware Build / build-firmware (ARDUINO_GIGA) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NANO_33_BLE_SENSE) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NANO_RP2040_CONNECT) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NICLA_VISION) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_PORTENTA_H7) (push) Waiting to run
🔥 Firmware Build / build-firmware (DOCKER) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV2) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV3) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV4) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV4P) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMVPT) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_AE3) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_N6) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_RT1060) (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
drivers/sensors: Optimize Lepton delays.
2025-08-02 14:38:04 +03:00
iabdalkader
962bda9b95 drivers/sensors: Optimize Lepton delays.
- Reduce soft-reboot delay to 1000ms (works fine 2.5 and 3.5).
- Replace hard-reset with OemReboot. Hard-reset requires at least
2500ms, while reboot requires only 1000ms.
-Optimize `reset()` delay. reset() delay is calculated based on
the last hard-reset/power-on timestamp

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-02 13:24:12 +02:00
iabdalkader
9bb174454b common/csi: Track elapsed time since last hard-reset.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-02 13:24:12 +02:00
iabdalkader
79d2bf458a drivers/lepton: Fix infinite loops in the SDK.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-02 13:24:12 +02:00
Ibrahim Abdelkader
cfb90a0087
Merge pull request #2792 from openmv/update_micropython
lib/micropython: Update submodule.
2025-08-02 14:20:42 +03:00
iabdalkader
994dee3d2b lib/micropython: Update submodule.
Enable SPI for n6.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-02 13:13:31 +02:00
Ibrahim Abdelkader
a04fb78cab
Merge pull request #2788 from kwagyeman/kwabena/add_transform
Some checks are pending
🔥 Firmware Build / build-firmware (ARDUINO_GIGA) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NANO_33_BLE_SENSE) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NANO_RP2040_CONNECT) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NICLA_VISION) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_PORTENTA_H7) (push) Waiting to run
🔥 Firmware Build / build-firmware (DOCKER) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV2) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV3) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV4) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV4P) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMVPT) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_AE3) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_N6) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_RT1060) (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
ports: Add GPU matrix support.
2025-08-02 13:36:29 +03:00
Kwabena W. Agyeman
c9dfbb7650 ports: Add GPU tranform support. 2025-07-31 13:26:14 -07:00
Kwabena W. Agyeman
e534b48b48 modules/py_image: Add transform support to image operations. 2025-07-31 13:26:14 -07:00
Kwabena W. Agyeman
1c962cb7a6 modules/py_helper: Add transform argument helper. 2025-07-31 13:26:14 -07:00
Kwabena W. Agyeman
47c5618231 lib/imlib: Add transform argument to draw_image. 2025-07-31 13:13:45 -07:00
Kwabena W. Agyeman
20839405a2 lib/imlib: Add transform support to GPU drivers. 2025-07-31 13:12:48 -07:00
Ibrahim Abdelkader
718b4b80a9
Merge pull request #2790 from kwagyeman/kwabena/fix_draw_line
Some checks failed
🔥 Firmware Build / build-firmware (ARDUINO_GIGA) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NANO_33_BLE_SENSE) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NANO_RP2040_CONNECT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NICLA_VISION) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_PORTENTA_H7) (push) Has been cancelled
🔥 Firmware Build / build-firmware (DOCKER) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV2) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV4) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV4P) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMVPT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_AE3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_N6) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_RT1060) (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
lib/imlib: Fix draw line glitch.
2025-07-29 11:16:52 +03:00
Kwabena W. Agyeman
680bd322ce lib/imlib: Fix draw line glitch. 2025-07-28 19:40:35 -07:00
Ibrahim Abdelkader
1ee8711e56
Merge pull request #2785 from openmv/fix_vospi_resync
Some checks failed
🔥 Firmware Build / build-firmware (ARDUINO_GIGA) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NANO_33_BLE_SENSE) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NANO_RP2040_CONNECT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NICLA_VISION) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_PORTENTA_H7) (push) Has been cancelled
🔥 Firmware Build / build-firmware (DOCKER) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV2) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV4) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV4P) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMVPT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_AE3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_N6) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_RT1060) (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
common/vospi: make vospi_restart() non-blocking.
2025-07-27 18:15:41 +03:00
Ibrahim Abdelkader
186b9e671d
Merge pull request #2786 from openmv/fix_stm_systick
ports/stm32: Use HAL_InitTick to init SysTick.
2025-07-27 18:15:28 +03:00
iabdalkader
77289676d5 common/vospi: make vospi_restart() non-blocking.
Check if VOSPI_SYNC_MS has elapsed since the last abort instead
of delaying on every call. This avoids blocking other CSIs on
back-to-back resync's.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-27 15:37:03 +02:00
iabdalkader
60d015c82d ports/stm32: Use HAL_InitTick to init SysTick.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-27 15:35:51 +02:00
iabdalkader
9bcef8e17c common/csi: Add power-on time.
Can be used by driver to check for elapsed time since
power-on.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-27 15:01:45 +02:00
Ibrahim Abdelkader
9f13d487e6
Merge pull request #2784 from openmv/fix_csi_addr
modules/py_csi_ng: Fix printed slave address.
2025-07-27 11:13:42 +03:00
iabdalkader
0b8607307f modules/py_csi_ng: Fix printed slave address.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-27 09:52:15 +02:00
Ibrahim Abdelkader
fe1f36e867
Merge pull request #2782 from openmv/update_mutex
Some checks are pending
🔥 Firmware Build / build-firmware (ARDUINO_GIGA) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NANO_33_BLE_SENSE) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NANO_RP2040_CONNECT) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NICLA_VISION) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_PORTENTA_H7) (push) Waiting to run
🔥 Firmware Build / build-firmware (DOCKER) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV2) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV3) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV4) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV4P) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMVPT) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_AE3) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_N6) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_RT1060) (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
common/mutex: Use C11 atomic operations.
2025-07-26 18:42:35 +03:00
iabdalkader
0458db2130 misc: Use updated mutex API.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-25 20:20:57 +02:00
iabdalkader
2c4b318ff9 common/mutex: Use C11 atomic operations.
Use C11 atomic operations to implement the mutex instead
of hard-coded intrinsics. This generates more efficient
assembly on newer ARM architectures by taking advantage
of the new LDA/STL instructions (and their exclusive variants),
which avoid full memory barriers while still providing
memory ordering guarantees.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-25 20:20:54 +02:00
Ibrahim Abdelkader
040624374a
Merge pull request #2766 from openmv/refactor_framebuffer
Some checks failed
🔥 Firmware Build / build-firmware (ARDUINO_GIGA) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NANO_33_BLE_SENSE) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NANO_RP2040_CONNECT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_NICLA_VISION) (push) Has been cancelled
🔥 Firmware Build / build-firmware (ARDUINO_PORTENTA_H7) (push) Has been cancelled
🔥 Firmware Build / build-firmware (DOCKER) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV2) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV4) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV4P) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMVPT) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_AE3) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_N6) (push) Has been cancelled
🔥 Firmware Build / build-firmware (OPENMV_RT1060) (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
imlib: Rework frame buffer management.
2025-07-24 15:43:42 +03:00
iabdalkader
a88d5e5b0c modules/csi: Add print function.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-23 18:25:01 +02:00
iabdalkader
7e0e004058 ports/nrf: Use the new framebuffer API.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-23 18:25:01 +02:00
iabdalkader
e91878bd7e ports/rp2: Use the new framebuffer API.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-23 18:25:01 +02:00
iabdalkader
63ac8e7c64 ports/alif: Use the new framebuffer API.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-23 18:25:01 +02:00
iabdalkader
00aac23e04 ports/mimxrt: Use the new framebuffer API.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-23 18:24:58 +02:00
iabdalkader
7f20081d9c ports/stm32: Use the new framebuffer API.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-23 18:24:55 +02:00
iabdalkader
ca5dcc8033 drivers: Use the new framebuffer API.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-23 18:24:55 +02:00
iabdalkader
85a1096986 modules: Use the new framebuffer API.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>

modules
2025-07-23 18:24:55 +02:00
iabdalkader
af711cfc90 common: Use the new framebuffer API.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-23 18:24:55 +02:00
iabdalkader
9030b4b8dd common/csi: Refactor snapshot prologue.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-23 18:24:55 +02:00
iabdalkader
5d1f8860b1 imlib: Rework framebuffer management.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-23 18:24:52 +02:00
iabdalkader
50c9be73c8 common: Add SPSC lock-free queue.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-07-23 18:24:52 +02:00
Ibrahim Abdelkader
d4186a4408
Merge pull request #2778 from kwagyeman/kwabena/fix_omv2_fb
Some checks are pending
🔥 Firmware Build / build-firmware (ARDUINO_GIGA) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NANO_33_BLE_SENSE) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NANO_RP2040_CONNECT) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_NICLA_VISION) (push) Waiting to run
🔥 Firmware Build / build-firmware (ARDUINO_PORTENTA_H7) (push) Waiting to run
🔥 Firmware Build / build-firmware (DOCKER) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV2) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV3) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV4) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV4P) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMVPT) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_AE3) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_N6) (push) Waiting to run
🔥 Firmware Build / build-firmware (OPENMV_RT1060) (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
boards/OPENMV2: Fix QVGA RGB565 support.
2025-07-23 17:22:17 +03:00
Ibrahim Abdelkader
471ac9958a
Merge pull request #2777 from kwagyeman/kwabena/polarity_configs
boards: Add fixed sensor polarity configs.
2025-07-23 17:21:48 +03:00