(Copied over from Discord as I realize that's now not officially supported)

Curious if you guys have some information on the OV9782 / OV9282 models from Arducam listed as "drop in replacements for the OAK-D".

I have a design where I use both cameras, some connected to a OAK SOM and some connected to my own processor.

I'm not seeing the cameras popup on the i2c bus at the address I'd expect (0x60). I'm curious if there is some bespoke configuration loaded onto these sensors for use with the OAk that would make them show up as address 0x50 and 0x58? Thanks!

Yes, on OAK devices some I2C pre-configuration of the sensors is done during probing, where the I2C addresses of the sensors is changed (OV9282/9782 supports this). This is mainly to be able to address them separately on shared I2C bus scenarios (CAM-B/Left and CAM-C/Right). For multiple sensors it's done by controlling the power/reset lines: first sensor is enabled and its address is changed, while the others on the bus are kept disabled (in reset).

Initially the sensors are checked at 7-bit addresses 0x60 and 0x10. This is the main address, and the sensor replies to one of these, depending on SLASEL pin config. May be different from module to module.
(The sensor would by default reply also to 0x70 - secondary address, bu this isn't checked currently.)

Then the addresses are changed, by writing to special registers, as:
- primary to 0x62, 0x53, 0x64, 0x65… (different address per sensor on shared bus)
- secondary to 0x68 (used for broadcast writes)
(the new programmed addresses are subject to change in future FW updates, if any conflicts need to be resolved).

@brianj For your case and camera I2C enumeration to succeed, check also that the sensor is enabled (not in reset) and MCLK is provided to the sensor if a dedicated oscillator is not present on the Arducam module. Usually its 24MHz.

    Luxonis-Alex

    This is exceedingly helpful, thank you. I'm guessing that these addresses are in volatile memory, so a power cycle would reset it.

    Thanks as well for your advice on the reset / MCLK signals.

    Right, the I2C address change is volatile, a power cycle (or just sensor reset -- low level on RST/PWDN pin) will make it go back to defaults.

    Thank you kindly for this information. This is very helpful for our integration with the OAK ecosystem.