Commit Graph

7369 Commits

Author SHA1 Message Date
Kwabena W. Agyeman
c601c706fe ports/stm32: Simplify CSI_DMA_MAX_SIZE logic. 2025-08-16 18:50:28 -07:00
Kwabena W. Agyeman
170a7eb107 ports/stm32: Move dma_queue to port bits. 2025-08-16 18:36:29 -07:00
Kwabena W. Agyeman
9778028f40 ports/stm32: Add N6 error message for unsupported modes. 2025-08-16 18:36:12 -07:00
Kwabena W. Agyeman
feaca6af12 ports/stm32: Fix DMA transfer of small buffer sizes.
HAL_DCMI_Start_DMA() only sets up one node in the circular linked-list
when the transfer size is < 64KB. This causes a user setting transfer
error which locks up the DMA hardware.

The fix is to dynamically make the link list linear on smaller sizes
and circular on larger sizes.
2025-08-16 18:36:12 -07:00
Kwabena W. Agyeman
2e525c504b ports/stm32: Fix N6 csi camera config settings.
Fixes support for mono bpp == 2 and rgb/yuv swap.
2025-08-16 18:36:10 -07:00
Ibrahim Abdelkader
00c8ac9483
Merge pull request #2813 from kwagyeman/kwabena/enable_boson_on_h7p
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
boards/OPENMV4P: Enable BOSON on H7 Plus.
2025-08-16 11:23:41 +03:00
Ibrahim Abdelkader
85ab0ebd0f
Merge pull request #2815 from kwagyeman/kwabena/fix_clock_config
ports/stm32: Fix SystemClock_config() hard faulting.
2025-08-16 10:31:18 +03:00
Kwabena W. Agyeman
76fc074c0f ports/stm32: Set oneshot on MDMA snapshot to invalidate. 2025-08-15 18:11:20 -07:00
Kwabena W. Agyeman
2c14af97e7 ports/stm32: Fix JPEG mode 3 support. 2025-08-15 18:11:17 -07:00
Kwabena W. Agyeman
080641c827 ports/stm32: Fix DMA line size error calculation.
The error calculation needs to be on the raw byte size.
2025-08-15 17:29:44 -07:00
Kwabena W. Agyeman
cc137456dc ports/stm32: Only enable frame int manually in jpeg mode.
The frame interrupt was being enabled for non-JPEG transfers,
causing massive image corruption and out-of-sync issues on the M4
and M7. This interrupt only needs to be enabled for JPEG mode
where the size of the image is not known.
2025-08-15 17:29:08 -07:00
Kwabena W. Agyeman
908d612ace ports/stm32: Fix SystemClock_config() hard faulting. 2025-08-15 15:05:16 -07:00
Kwabena W. Agyeman
fb4da36a42 ports/stm32: Fix SystemClock_config() hard faulting. 2025-08-15 13:36:16 -07:00
Kwabena W. Agyeman
a6de586e06 boards/OPENMV4P: Enable BOSON on H7 Plus. 2025-08-15 12:49:44 -07:00
Ibrahim Abdelkader
3b66484f03
Merge pull request #2800 from openmv/dependabot/github_actions/actions/download-artifact-5
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
build(deps): bump actions/download-artifact from 4 to 5
2025-08-15 22:43:58 +03:00
Ibrahim Abdelkader
8217c22fee
Merge pull request #2807 from openmv/update_micropython
lib: Update to MicroPython 1.26.0.
2025-08-15 20:56:08 +03:00
iabdalkader
bb7431cb27 lib: Update to MicroPython 1.26.0.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
e936b69371 lib/stm32/n6: Fix default tick priority.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
941e1996bc lib/stm32: Build hal_uart_ex.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
eae16e4e4b lib/cmsis: Set N6 USART clock source.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
8b1b8e9138 boards/OPENMV_N6: Update board config.
- Use free GPDMA channels.
- Use channels with bigger FIFOs for SPI.
- Set USART clock source.
- Switch SPI to use IC9.
- Disable IC14.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
d30b2e8b71 ports/stm32: Deinit I2C target if enabled.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
75f3ee3caf ports/stm32: Remove HAL_InitTick call.
This is already called from HAL_Init.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
bbfe90aa74 ports/stm32: Configure system clock before HAL_Init.
This ensures SystemCoreClock is updated after the
system clock has been configured.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
49d830d6dc ports/stm32: Fix build.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
18a53b7fee ports/stm32: Use MicroPython GPDMA handles.
Now that MicroPython uses GPDMA for N6, the GPDMA handles
as well as IRQs are shared.

Note: care must be taken when choosing GPDMA channels
to avoid conflicts with MicroPython's channels.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
b435a2d0eb scripts/libraries: Update Alif HP boot script.
Create readme.txt, main.py and openmv_disk.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
ad5d86d37d ports/alif: Add OSPI1 MPU region.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:46 +02:00
iabdalkader
b15cb394ee ports/rp2: Add missing init/deinit calls.
- Add soft-timer init/deinit.
- Add I2C target init/deinit.
- Add thread/uart deinit.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:20:09 +02:00
iabdalkader
b2b310b0d2 ports/nrf: Fix build.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-15 19:02:07 +02:00
Ibrahim Abdelkader
49ea618610
Merge pull request #2805 from kwagyeman/kwabena/rt1062_max_speed
ports/mimxrt: Enable full DMA offload for RT1062.
2025-08-15 17:08:53 +03:00
Ibrahim Abdelkader
20e9b465d5
Merge pull request #2812 from kwagyeman/kwabena/cleanup_post_processing
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: Update to using post_process callback.
2025-08-15 10:35:34 +03:00
Kwabena W. Agyeman
ae8eae9290 drivers/sensors: Update BOSON to using post_process callback. 2025-08-14 14:49:16 -07:00
Kwabena W. Agyeman
5d046e2c92 drivers/sensors: Update PAJ6100 to using post_process callback. 2025-08-14 14:49:09 -07:00
Kwabena W. Agyeman
6d4c5cf19b ports/mimxrt: Enable full DMA offload for RT1062. 2025-08-14 13:05:00 -07:00
Kwabena W. Agyeman
cf2126ecdb ports/mimxrt: Cleanup csi driver for full offload. 2025-08-14 11:47:48 -07:00
Ibrahim Abdelkader
57c6addc76
Merge pull request #2811 from openmv/refactor_resolution
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: Refactor resolution table.
2025-08-14 19:59:39 +03:00
iabdalkader
ae6c9990bf modules: Use private CSI resolution table.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-14 11:40:45 +02:00
iabdalkader
cb50ad479a ports/all: Use private CSI resolution table.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-14 11:40:33 +02:00
iabdalkader
1a1cf29673 drivers/sensors: Use private CSI resolution table.
Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-14 11:40:28 +02:00
iabdalkader
7b4c545b47 common/csi: Move resolution table to csi struct.
This allows drivers to override standard resolutions,
or use custom ones, without affecting other CSIs.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
2025-08-14 11:40:24 +02:00
Ibrahim Abdelkader
b5a7a999a7
Merge pull request #2809 from kwagyeman/kwabena/fix_m4_usb_enumeration
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
lib/alif: Fix Mac M4 USB enumeration.
2025-08-14 11:44:15 +03:00
Kwabena W. Agyeman
c26ed091a1 lib/alif: Fix Mac M4 USB enumeration. 2025-08-13 14:12:16 -07:00
Ibrahim Abdelkader
7682756935
Merge pull request #2806 from kwagyeman/kwabena/accelerate_to_ndarray
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
modules/py_image: Accelerate to_ndarray() with Helium.
2025-08-13 17:33:07 +03:00
Ibrahim Abdelkader
b796a12c9e
Merge pull request #2808 from openmv/dependabot/github_actions/actions/checkout-5
build(deps): bump actions/checkout from 4 to 5
2025-08-13 15:06:16 +03:00
Kwabena W. Agyeman
2c2752f743 modules/py_image: Accelerate to_ndarray() with Helium. 2025-08-12 17:30:14 -07:00
dependabot[bot]
d5a17518d1
build(deps): bump actions/checkout from 4 to 5
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 5.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '5'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-11 19:54:07 +00:00
Ibrahim Abdelkader
72d09d8f61
Merge pull request #2747 from kwagyeman/kwabena/genx320_event_mode
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
drivers/sensors: Add RAW event output mode for the genx320.
2025-08-09 21:14:40 +03:00
Kwabena W. Agyeman
65e7d03c46 drivers/sensors: Switch to custom framesize for 320x320. 2025-08-09 11:07:45 -07:00
Kwabena W. Agyeman
061a0b2b6b scripts/examples: Rename and update histogram mode genx320 scripts. 2025-08-09 11:03:09 -07:00