Commit Graph

7011 Commits

Author SHA1 Message Date
Ibrahim Abdelkader
41217395fa
Merge pull request #2733 from openmv/refactor_csi_scan
common/csi: Refactor I2C scanning code.
2025-06-26 20:09:37 +03:00
Ibrahim Abdelkader
eb83986eba
Merge pull request #2730 from openmv/fix_alif_irq
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
micropython: Update submodule.
2025-06-26 10:51:08 +03:00
iabdalkader
1e0281555c micropython: Update submodule.
Fix Alif LPGPIO pin IRQ.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-26 09:41:05 +02:00
iabdalkader
bc2a3372a6 common/csi: Refactor I2C scanning code.
This should be much faster as it starts with the most common
config: power-down active low, reset active low.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-25 21:27:49 +02:00
Ibrahim Abdelkader
190aecc45c
Merge pull request #2691 from openmv/n6_port_dual_csi
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/all: Dual CSI support.
2025-06-25 22:27:25 +03:00
iabdalkader
c7d84b8ca5 lib/imlib: Add deep copy flag to image_copy.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-25 21:16:00 +02:00
iabdalkader
1c47d9bcf0 boards/OPENMV_RT1060: Enable multiple CSIs.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-25 21:15:24 +02:00
iabdalkader
6d4b22a63b boards/OPENMV_N6: Enable multiple CSIs.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-25 21:15:24 +02:00
iabdalkader
b879696248 boards/all: Enable csi-ng API.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-25 21:15:24 +02:00
iabdalkader
02f42b6837 ports/nrf: Add support for multiple CSIs.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-25 21:15:24 +02:00
iabdalkader
be6b3fa80d ports/rp2: Add support for multiple CSIs.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-25 21:15:24 +02:00
iabdalkader
e4ee291028 ports/alif: Add support for multiple CSIs.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-25 21:15:24 +02:00
iabdalkader
668b1c2f74 ports/mimxrt: Add support for multiple CSIs.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-25 21:15:24 +02:00
iabdalkader
25b7b8cbb2 ports/stm32: Add support for multiple CSIs.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-25 21:15:24 +02:00
iabdalkader
452ed2e936 drivers/sensors/lepton: Support nonblocking snapshot.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-25 21:15:24 +02:00
iabdalkader
e4f879c4be drivers/sensors/Lepton: Reduce snapshot timeout.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-25 21:15:24 +02:00
iabdalkader
522560a48e modules/py_csi_ng: Add new CSI API.
A modern API that supports multiple CSI instances.
The API is a work in progress and is not backwards
compatible, but it can be enabled and used at the
same time as the old "sensor" module.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-25 21:15:20 +02:00
iabdalkader
00bfd6f38f drivers/sensors: Support multi-csi for auxiliary sensors.
- Set auxiliary flag.
- Override default abort/config.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-25 10:37:43 +02:00
iabdalkader
3270272e11 common/csi: Add support for non-blocking flag.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-25 10:37:43 +02:00
iabdalkader
72410dfc8c common/csi: Add support for multiple CSIs.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-25 10:37:41 +02:00
iabdalkader
2913d78182 imlib/framebuffer: Support dynamic frame buffers.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-24 20:19:25 +02:00
Ibrahim Abdelkader
acc5edb0fc
Merge pull request #2720 from kwagyeman/kwabena/framebuffer_lepton
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/lepton: Update lepton driver with asynchronous fb.
2025-06-24 21:19:02 +03:00
Kwabena W. Agyeman
c4795d3191 ports/stm32: Increase SPI DMA efficency.
The SPI fifo triggers a request when it has 4-bytes of data allowing
for more efficent bus usage. The same technique is used on the H7
to reduce system bus matrix resources.
2025-06-24 10:19:31 -07:00
Kwabena W. Agyeman
3984ec783f ports/stm32: Move VOSPI memory near DMA controller.
On the STM32N6 the DMA memory meant to be used with the SPI bus is
in the low-performance memory domain. Moving the DMA buffers and
linked list buffers there reduces the AHB cycle time by the DMA
controller making it more stable.
2025-06-24 10:19:31 -07:00
Kwabena W. Agyeman
1321c5d1a1 common: Remove legacy fixed vospi memory. 2025-06-24 10:19:31 -07:00
Kwabena W. Agyeman
fc0cc40a31 drivers/sensors/lepton: Update lepton driver with asynchronous fb.
The FLIR Lepton driver now continously receives frames in the background
that are stored in allocated frame buffers. On snapshot the stored frame
is post-processed to produce a color an image.

* Transpose now works allowing for image rotation with IMU.
* Bilinear scaling is now used when drawing at a higher res.
2025-06-24 10:19:29 -07:00
Kwabena W. Agyeman
c758b71040 drivers/sensors/lepton: Fix refresh and resolution attributes. 2025-06-23 14:49:37 -07:00
Kwabena W. Agyeman
8e543c2a96 lib/imlib: Refactor fill_image_from_lepton out of py_fir_lepton. 2025-06-23 14:49:37 -07:00
Ibrahim Abdelkader
7a9e1f31ac
Merge pull request #2721 from kwagyeman/kwabena/fix_n6_gpu
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/stm32: Fully implement N6 GPU driver for draw_image.
2025-06-24 00:47:49 +03:00
Kwabena W. Agyeman
89d60c8002 ports/stm32: Add missing init bits to fix glitches. 2025-06-23 14:40:11 -07:00
Ibrahim Abdelkader
032a74c64e
Merge pull request #2728 from kwagyeman/kwabena/fix_csi_boson_genx320
drivers/sensors: Update new sensors to use the csi pointer.
2025-06-24 00:34:13 +03:00
Kwabena W. Agyeman
1dece0b461 ports/stm32: Fully implement N6 GPU driver for draw_image. 2025-06-23 14:29:32 -07:00
Kwabena W. Agyeman
9a10186ec4 drivers/sensors: Update GENX320 driver to use csi pointer. 2025-06-23 14:26:48 -07:00
Kwabena W. Agyeman
8f81f16963 ports/stm32: Fix NEMA GPU driver.
* You have to clean and invalidate the destination image so that
  the processor writes out the full image and so that the processor
  doesn't flush cache lines ontop of the GPU writing the image.
* The ICACHE doesn't automatically flush itself after a draw operation.
  Depending on the situation, it will just hold the entire source
  image internally and never read it again. In particular, when
  scaling something like 160x120 it just caches the whole image
  and never reads it again.
2025-06-23 12:34:41 -07:00
iabdalkader
43c6b6c5fd ports/stm32: Fix GPU drawing offset. 2025-06-23 12:34:41 -07:00
Kwabena W. Agyeman
6348cce98e drivers/sensors: Update BOSON driver to use csi pointer. 2025-06-23 12:14:56 -07:00
Ibrahim Abdelkader
899d645e69
Merge pull request #2727 from openmv/refactor_csi_i2c
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
misc: Refactor CSI I2C bus.
2025-06-23 15:23:29 +03:00
iabdalkader
b04f2fcf6a ports/all: Refactor CSI I2C bus.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-23 14:14:02 +02:00
iabdalkader
37327d27da drivers: Refactor CSI I2C bus.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-23 14:14:02 +02:00
iabdalkader
5933198a14 common/csi: Refactor CSI I2C bus.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-23 14:13:57 +02:00
Ibrahim Abdelkader
1701ec941d
Merge pull request #2726 from openmv/stm32_fix_pipes
ports/stm32: Reset pipes states on abort.
2025-06-23 14:22:09 +03:00
iabdalkader
e5178be046 ports/stm32: Reset pipes states on abort.
HAL STOP doesn't seem to do so.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-23 13:04:45 +02:00
Ibrahim Abdelkader
f3f7b0aa06
Merge pull request #2725 from openmv/refactor_csi
ports/all: Refactor CSI drivers.
2025-06-23 13:55:08 +03:00
iabdalkader
19f818c49f ports/alif: Refactor CSI.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-23 12:49:57 +02:00
iabdalkader
fef2e1dc8b ports/stm32: Refactor CSI.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-23 12:41:25 +02:00
iabdalkader
6cfd8dd82b ports/nrf: Refactor CSI. 2025-06-23 12:41:21 +02:00
iabdalkader
f1286053e9 ports/mimxrt: Refactor CSI.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-23 12:41:16 +02:00
iabdalkader
7db2782d4b ports/rp2: Refactor csi.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-23 12:41:16 +02:00
iabdalkader
eccbb62e1d drivers: Rename omv_csi_get_clk_frequency.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-23 12:41:16 +02:00
iabdalkader
fe2e2cd82a common: Rename omv_csi_get_clk_frequency.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-23 12:41:16 +02:00