Jetson Orin Nano CSI Cam ports

Hi,

I had a problem issued here in this topic:

I cannot reply anymore, but after successfully patching the driver file and building the kernel, still cannot get the video stream from CAM0, any clue what is the reason that causes CAM1 to work fine but CAM0 is not streaming ???

Thanks

do you have device register to linux kernel correctly? please share the complete logs for reference.

dmesg_log.txt (70.9 KB)
Please find the logs here

hello reem.othman,

there’re probing failures, which means the camera device did not register to linux kernel.

[   17.939546] imx219 9-0010: imx219_board_setup: error during i2c read probe (-121)
[   17.956330] imx219 9-0010: board setup failed
[   17.961038] imx219: probe of 9-0010 failed with error -121
[   17.984058] imx219 10-0010: imx219_board_setup: error during i2c read probe (-121)
[   17.997218] imx219 10-0010: board setup failed
[   18.002347] imx219: probe of 10-0010 failed with error -121

may I know which Jetpack release version, and which camera module you’re working with?
for instance, is it Raspberry pi, imx219? did you have camera device connected before power-on?

hello @JerryChang

The version is 5.1.1

  • I am using the Quad-Camera board from Arducam with SKU B0331

  • Yes the cameras connected before powering jetson on

  • It was mentioned in the Jetson Partner Supported Cameras that this board is supported by Jetson Orin Nano

  • However, By testing, only CAM1 port on jetson was working fine and streaming the video, but CAM0 port was only detecting the board but showing a black screen video stream.

  • I got an access to the driver-source code of the camera board (Jetvariety cameras)

  • I tried to understand the problem from the source_code of the driver, I just found one thing, that port-index was set to 0 not 1 in some instances for serial_b, so I changed it to 1 and I patched the driver file and builded the kernel following the steps you mentioned in my last-topic.

Now, After patching the edited patch driver file, most of the times the board is not detected

I cannot get the livestream neither from CAM1 nor from CAM0 and I get error messages as follows:

You can have a quick look into the patch file:
Orin_NX_l4T35.3.1_Jetpack5.1.1_edited.patch.txt (69.5 KB)

FYI, Arducam cannot support for this CAM0 issue with Jetson, would be really great if you can help with that Jerry.

Thanks!

hello reem.othman,

it looks to me a camera board for using 4-lane CSI,

FYI,
CSI1 is CSIB of J20,
CSI2 is CSIC of J21.

we’re not support CSI-B in 4-lane config because of CSI clock limitations.
only x2 lane mode is supported for J20.

hello @JerryChang

Would you kindly tell me why do you think it uses 4-lane not 2-lane?

As I was thinking the same way!
because the only difference between CAM0 and CAM1 is the 4-lane support.

However, I found on the board specifications that it is for using 2-Lane


Arducam 1MP*4 Quadrascopic Camera Bundle Kit for Raspberry Pi, Nvidia Jetson Nano/Xavier NX, Four OV9782 Global Shutter Color Camera Modules and Camarray Camera HAT

Looking forward to hear back from you regarding this, what do you think?

hello reem.othman,

could you please share the logs of kernel initialization, for instance, did you see any probing related messages for OV9782?

please see-also Topic 252259, comment #19 for code snippets to revise the symbol of NVCSI

besides, since it’s a global shutter camera, could you please try adding set_mode_delay_ms device tree property to configure maximum wait time for the first frame after capture starts.

hello @JerryChang

  1. Here you can find the log in 3 cases:

a) After patching the edited driver file
(The board is not detected and definitely no stream is running)
dmesg_log_afterPatch.txt (69.1 KB)

b) Original setup without patching the edited driver file:
The board is detected, but no example is running in background
dmesg_log_with_original_driver_no_stream.txt (134.5 KB)

c) Original setup without patching the edited driver file:
The board is detected, and the streaming example is running in background
dmesg_log_with_original_driver_streaming.txt (99.6 KB)

  1. I revised the symbol of NVCSI, it was correctly set

  2. I did the set_mode_delay as attached and I wanted to make sure that I am following correct steps:

  3. Edit the arducam.dtsi driver (patch) file

  4. Build

  5. Generate the .dtbo file

  6. command: sudo ./flash.sh -r -k DTB jetson-platform mmcblk0p1

Am I missing any thing in the building process?

Thanks a lot!

hello reem.othman,

it’s a device tree overlay. you may copy the file to Orin Nano, and loading it with Configuring the CSI Connector.

this is incorrect commands, Orin Nano it’s using kernel-dtb partition.
besides, you should running with initrd, for instance, Flashing with initrd.


BTW,
please also note that… there’s polarity swap, i.e. CSI0 D1 and CSI1 D0 P/N will always been swizzled for P/N.
please use device tree property, lane_polarity to configure a polarity swap on any lane.

1 Like

Hi @JerryChang

So the only .dts file that was mentioned in the patch file is tegra234-p3767-camera-p3768-arducam-dual.dts

So I think this the only file I should generate .dtbo file.

I copied the .dtbo to boot as follows:

Now when I try to do so:

I get these options only, no arducam sensor:
image
image

How to know whether the tegra234-p3767-camera-p3768-arducam-dual.dtbo file is loaded or not?

hello reem.othman,

it looks system did not recognize dtbo correctly.
please refer to developer guide, Device-tree overlay for the steps to create and apply dtb overlay file.

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