Commit Graph

6992 Commits

Author SHA1 Message Date
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
Ibrahim Abdelkader
696c68c9af
Merge pull request #2719 from openmv/fix_n6_port
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 support.
2025-06-20 15:31:01 +03:00
iabdalkader
795a86e39d micropython: Update submodule.
Fix N6 flash layout.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-20 14:20:55 +02:00
iabdalkader
f2823a53c1 misc: Disable rtl-loop2_doloop for M55.
Current toolchains are broken.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-20 14:20:55 +02:00
iabdalkader
1864a85396 boards/OPENMV_N6: Reduce GC block size. 2025-06-20 14:20:55 +02:00
iabdalkader
b95089acac boards/OPENMV_N6: Update GPDMA channels.
MicroPython uses the first 7 channels (so far).

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-20 14:20:55 +02:00
Kwabena W. Agyeman
acd4506e5a ports/stm32: Fix missing sleep clocks.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-20 14:20:52 +02:00
Kwabena W. Agyeman
80f8b47526 boards/OPENMV_N6: Move memory addresses to secure memory. 2025-06-19 22:22:36 -07:00
Kwabena W. Agyeman
2297dedd80 boards/OPENMV_N6: Update MSC_BUF size to 4KB. 2025-06-19 20:07:28 -07:00
Ibrahim Abdelkader
5534b34880
Merge pull request #2603 from openmv/n6_port
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: Add N6 support.
2025-06-19 17:47:33 +03:00
iabdalkader
deba7c05a6 modules/py_audio: Add support for MDF. 2025-06-19 16:24:38 +02:00
iabdalkader
2359a5c6d4 lib/stm32: Update N6 HAL conf.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-19 16:24:38 +02:00
iabdalkader
89f8bf5366 lib/cmsis/stm32: Load ram function section.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-19 16:24:38 +02:00
iabdalkader
6ac86edc64 lib/cmsis: Update N6 clock sources.
- Add MDF clock source.
- Set SDMMC1/2 clock source.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-19 16:24:38 +02:00
iabdalkader
c89e2c33a3 boards: Add OPENMV_N6 board.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-19 16:24:33 +02:00
iabdalkader
6793761eb8 ports/stm32: N6 support.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-19 16:13:14 +02:00
Ibrahim Abdelkader
18668c4d43
Merge pull request #2717 from openmv/update_micropython
micropython: Update submodule.
2025-06-19 17:13:00 +03:00
iabdalkader
cb253c7ce4 micropython: Update submodule.
Add N6 support.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-06-19 16:05:42 +02:00
Ibrahim Abdelkader
5c5946a944
Merge pull request #2713 from kwagyeman/kwabena/oled_display
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_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
scripts/libraries: Add support for the SSD1351 OLED display.
2025-06-18 22:54:11 +03:00
Kwabena W. Agyeman
d4ecba464c boards/OPENMV_RT1060: Enable ssd1351 driver for the RT1062. 2025-06-18 12:41:37 -07:00