No Detection: OV7670 on Arduino Nano RP2040 Connect

I ran the following code on my Arduino Nano RP2040 Connect.

# Hello World Example
#
# Welcome to the OpenMV IDE! Click on the green run arrow button below to run the script!

import sensor, image, time

sensor.reset()                      # Reset and initialize the sensor.
sensor.set_pixformat(sensor.RGB565) # Set pixel format to RGB565 (or GRAYSCALE)
sensor.set_framesize(sensor.QVGA)   # Set frame size to QVGA (320x240)
sensor.skip_frames(time = 2000)     # Wait for settings take effect.
clock = time.clock()                # Create a clock object to track the FPS.

while(True):
    clock.tick()                    # Update the FPS clock.
    img = sensor.snapshot()         # Take a picture and return the image.
    print(clock.fps())              # Note: OpenMV Cam runs about half as fast when connected
                                    # to the IDE. The FPS should increase once disconnected.

But the camera cannot be found as in the following message.

RuntimeError: Failed to detect the image or image sensor is detached.

I have one more question. When I connected the same camera to the my Nano 33 BLE Sense, the camera was recognized, but it also showed the following error message.

Traceback (most recent call last):

File “”, line 10, in

RuntimeError: Frame buffer overflow, try reducing the frame size.

MicroPython: v1.18-omv OpenMV: v4.3.0 HAL: v2.0.0 BOARD: Arduino Nano 33 BLE SENSE-NRF52840

Type “help()” for more information.

On the RP2040 the camera I2C needs to be connected to these pins:

SCL_PIN         (13)
SDA_PIN         (12)

RuntimeError: Frame buffer overflow, try reducing the frame size.

This is very self-explanatory, but anyway you need to use a smaller frame or switch to grayscale.

I further checked the i2c pins you mentioned.
But it still doesn’t work. It’s strange, but it works on the nano33 ble sense board.
Can you please check the following picture?

I connected only scl, sda, power, gnd, and clock pins,
but the result is the same even if I connect all pins and test.

Do you connect the external clock pin ? pin (28)

You should connect XCLK, power down and reset:

#define DCMI_XCLK_PIN           (28)
#define DCMI_PWDN_PIN           (0)
#define DCMI_RESET_PIN          (1)

And note the I2C pins already have pull-ups on board.