Portenta H7 and Arducam_dvp support?

I few of us have been playing around with Testing out and hopefully fixing some of the camera support on Zephyr for a few of the Arduino boards,
like the GIGA and Portenta H7.

After running into some issues, thought I would retry on MBED.

Some of the Zephyr issues:
ArduinoCore-zephyr:
Portenta H7: Using SPI with camera on Mid-carrier - Camera FAILS TO START · Issue #151 · arduino/ArduinoCore-zephyr
GIGA: GC2145 fails when attached to the Giga Display Shiedl · Issue #136 · arduino/ArduinoCore-zephyr

Zephyr:
drivers: video: video_stm32_dcmi: Detect and recover from: HAL_DCMI_ErrorCallback · Issue #92354 · zephyrproject-rtos/zephyr

drivers: video: video_stm32_dcmi: More control on memory buffers. · Issue #92352 · zephyrproject-rtos/zephyr

So yesterday: I tried building some of the example sketches that are part of the Arducam_zephyr library to run on the Portenta H7 plugged into a mid carrier board.

And they all fail to start. Looking through the library code, I found that the setup is not configured to use the pinout of the DVP camera connector on the MID carrier board.

My changes so far include:

diff --git a/src/arducam_dvp.cpp b/src/arducam_dvp.cpp
index 69a989d..83473d0 100644
--- a/src/arducam_dvp.cpp
+++ b/src/arducam_dvp.cpp
@@ -34,15 +34,15 @@
 #if defined (ARDUINO_PORTENTA_H7_M7) || defined (ARDUINO_PORTENTA_H7_M4)

 #define DCMI_TIM                    (TIM1)
-#define DCMI_TIM_PIN                (GPIO_PIN_1)
-#define DCMI_TIM_PORT               (GPIOK)
+#define DCMI_TIM_PIN                (GPIO_PIN_8)
+#define DCMI_TIM_PORT               (GPIOA)
 #define DCMI_TIM_AF                 (GPIO_AF1_TIM1)
 #define DCMI_TIM_CHANNEL            (TIM_CHANNEL_1)
 #define DCMI_TIM_CLK_ENABLE()       __TIM1_CLK_ENABLE()
 #define DCMI_TIM_CLK_DISABLE()      __TIM1_CLK_DISABLE()
 #define DCMI_TIM_PCLK_FREQ()        HAL_RCC_GetPCLK2Freq()
-#define DCMI_TIM_FREQUENCY          (6000000)
-#define DCMI_RESET_PIN              (PC_13)
+#define DCMI_TIM_FREQUENCY          (10000000)
+#define DCMI_RESET_PIN               (PE_3) //(PC_13)
 arduino::MbedI2C CameraWire(I2C_SDA, I2C_SCL);

 #elif defined(ARDUINO_NICLA_VISION)

But most of the cameras still have issues starting up as there is nothing
in the code base to handle the power down pin. I believe that
there probably needs to be defines like the DCMI_RESET_PIN as part of
this.

I also have not checked to see the pinouts of the camera if one uses
the Portenta Video shield.

So potentially the setup should have some #defines or the like, where
maybe could act like zephyr where you can define which shield you are
using...

New Arducam issue:
Library does not work with Portenta H7 plugged into portenta mid carrier · Issue #8 · ArduCAM/Arducam_dvp

But my main question is
Who (if anyone) is supporting this?

As This library has only 2 commits (2 years ago).

It hasd 7 active (0 closed) issues and 1 open and 0 closed PRs.
None of which have had any comments on, except by the Issue/Pr Authors.

Thanks
Kurt

1 Like