Problems initialising custom GMSL camera with MAX96712 deserialiser via i2c Bus

Please provide the following info (check/uncheck the boxes after creating this topic):
Software Version
DRIVE OS Linux 5.2.6
DRIVE OS Linux 5.2.6 and DriveWorks 4.0
DRIVE OS Linux 5.2.0
DRIVE OS Linux 5.2.0 and DriveWorks 3.5
NVIDIA DRIVE™ Software 10.0 (Linux)
NVIDIA DRIVE™ Software 9.0 (Linux)
other DRIVE OS version

Target Operating System

Hardware Platform
NVIDIA DRIVE™ AGX Xavier DevKit (E3550)
NVIDIA DRIVE™ AGX Pegasus DevKit (E3550)

SDK Manager Version

Host Machine Version
native Ubuntu 18.04

We are trying to initialise a custom GMSL camera connected to camera port A0 on the drive AGX by writing to its registers via i2c. I have a few questions regarding this and would appreciate any inputs or clues.

  1. I noticed that the nvmedia sample application img_cc uses i2c config files to enable streaming for the Sekronix SF3325 camera which came with the Drive AGX kit. I would like to take a look at the source code to figure out how they are managing this i2c communication but the source code is missing, both on the host and the target. Could someone please let me know where the .cpp or .c source code is?

  2. When I modify a sample config file to include the proper serialiser and sensor register values for our custom camera and leave the deserialiser config values as it is, running the sample with this modified config file with our custom camera connected results in the error
    nvmedia: ERROR: ProcessCommands: Failed to write to I2C 29 0c08 25.
    This error doesn’t appear with the Sekronix camera and the sample runs properly. I would like to know what device this address belongs to or what role it plays in the sample application, because following the error no values are written to the camera, serdes registers via i2c.

  3. According to the sample config files, the deserialisers reside on address 0x52 on the i2c devices 0, 1 and 7. But when I poll the i2c bus, I see no devices on this address on any i2c device.
    Trying to use linux commands i2cget and i2cset to write to deserialiser registers on address 0x52 in the i2c bus manually result in errors. Could you let me know whether something needs to be done with the deserialisers before trying to write to it via i2c?

My goal is basically to enable streaming for the custom GMSL camera and capture the frames for some processing. We went with this camera because it supports GMSL with the max 96712 des just like the Sekronix sample camera and we assumed this would be the most similar way to capture frames from a camera connected to the nvidia drive AGX kit.

Dear @bala.krishnan.gk,
The img_cc is deprecated. The supported camera modules are listed in DRIVE Ecosystem Hardware and Software Components | NVIDIA Developer .
New camera bring up is not supported via forum. Please contact your NVIDIA representative for support on such issues.

1 Like

And regarding my question 3 in the post, do you know which device address on the i2c bus does the deserialiser have?

When I try to read register 0 of the deserialiser on i2c dev 0 for example:

sudo i2cget -f -y 0 0x52 0x00

I get
Error: Read failed

I would like to set and read some registers on the max96712 deserialiser if possible.

Hi @bala.krishnan.gk
I think max96712 i2c address should be defined in something like max96712.json. But as @SivaRamaKrishnaNV said in the previous post, the custom camera module bring-up is out of the forum support scope. Actually, it’s also out of DRIVE OS SDK scope. You will need PDK and other documentation.

So please contact your NVIDIA rep first. Thanks.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.