Custom Extender board for OV3660,OV2640,OV5640

I have created a custom board that plugs into the OpenMV camera header. It works with the OV2640 standard camera flex modules used with ESP32-CAM. We are designing a custom product using the OpenMV board but the camera needs to be on a flexible cable to a custom lens system. I would like to get the other camera sensors working as well, as we are in the middle of selecting for best resolution and performance. I need information on how the OpenMV code determines the sensor that is plugged in. Thanks in advance. the OV5640 and OV3660 are not detected by the firmware. These are all detected when using the Arduino and ESP32-CAM code so, it does not seem to be bad components.

image

We probe the I2C bus… so, it should be found. Defiantly the OV5640.

Check this schematic, they use the same connector. https://groupgets-files.s3.amazonaws.com/OpenMV/PTOMV_Schematics_revE_prelim.PDF

Looks like I can see the Sensor now but image is scrambled. I will try all the resolutions. All resolution are scrambled. Can the clock speed for the imager be reduced? Thanks again!

Yes, you can edit the firmware. The clock speed is set in a very obvious command… in that same file I linked to.

You also may need to change the PLL setting on the camera.

Regarding help. If you have a question about something particular in the firmware please ask. However, please put effort in on finding what you need help with. Asking if the clock speed can be reduced is not a good question.

I was just asking if there is a simple way to change the imager or cpu pixel clock signal without having to recompile the code. If it was available via python interface, etc. It seems that you have a sensor.__write_reg that works for changing the clkrc reg 0x11 on the OV2640.

This works for OV2640

sensor.__write_reg(0xff,0x01) select 2nd page
sensor.__write_reg(0x11,0x1F) change divider value
I will see if OV5640 has a similar feature.
I will review the link you provided.
Thanks again! You are the Expert! I am just trying to get to a solution quickly.

I have it working now with changes to the clks divider on the OV5640

This works for OV5640

address 0x3035 sc pll control1 bits[7:4] default 0x11

sensor.__write_reg(0x3035,0x41)

Great!

Yeah, we run quite a bit faster than the ESP32… we’re doing 80 MHz on PIXCLK for 80 MB/s of data.

Looks like I am all set for my prototype. Being able to write to the registers of the image sensors from Python is great! I have ordered 4 more module, 2 H7 R2 and 2 H7 Plus, also the WIFI shields.

Thanks

Daniel