Arducam SKU B0183 camera not detected on Jetson Nano while other camera works

Hi, I’ve got an Arducam camera (SKU B0183) on a Jetson Nano and I can’t get it to work at all. I tested a different camera on the same Nano and it works fine, so the board itself seems okay. Host is jetbot@nano-4gb-jp45.

When I run gst-launch-1.0 nvarguscamerasrc ! fakesink I get:

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:645 No cameras available
(gst-launch-1.0:7512): GStreamer-CRITICAL **: 16:34:31.179: gst_mini_object_set_qdata: assertion 'object != NULL' failed
Got EOS from element "pipeline0".
Execution ended after 0:00:00.207888177

I also tried DISPLAY=:0.0 gst-launch-1.0 nvarguscamerasrc! and got nvbuf_utils: Could not get EGL display connection then ERROR: pipeline could not be constructed: syntax error.

And a v4l2src pipeline with device=/dev/video0 fails with:

WARNING: erroneous pipeline: could not link v4l2src0 to videoconvert0, neither element can handle caps video/x-raw, format=(string)GAY8, width=(int)2560, height=(int)800

I cloned the Nvidia_Jetson repo from the ArduCAM GitHub too. Any idea what’s going on?

Thanks for the details. Before we dig further, can you generate a bug report so I can see the full camera and bus state? Reboot first, then run:

wget -O arducam-camera-bug-report-nvidia https://github.com/ketai-dhr/arducam-camera-bug-report/releases/download/tools/arducam-camera-bug-report-nvidia
chmod +x ./arducam-camera-bug-report-nvidia
./arducam-camera-bug-report-nvidia

That produces an arducam-bug-report.txt file in the current directory. Since it includes system details, send it to me via private message and we’ll go from there.

Done. I rebooted, ran the tool, and sent you the arducam-bug-report.txt in a private message. The errors I keep seeing are the No cameras available from nvarguscamerasrc and the v4l2src pipeline failing to link with the GAY8 2560x800 caps.

Got it. Can you also take some photos of the physical connection? I’d like to see both ends - the Jetson CSI connector and the camera end of the ribbon cable.

Sure, I’ve sent photos of both ends via private message - the Jetson side and the camera side.

Thanks, from the photos the cable on the Jetson side looks like it’s inserted the wrong way. The flex cable needs to be flipped - the end with the copper pins should face back toward the retainer clip. I’ve sent you a reference image privately showing the correct orientation. Flip it and re-run the bug report tool so we can check whether it’s detected now.

I flipped the Jetson-side connector so the copper pins face back toward the retainer and re-ran the bug report, but still nothing. Sent you the updated report and a photo of the new connection.

The new bug report shows the camera is actually detected by the Nano now, so the orientation fix helped. But gstreamer still isn’t streaming. Let’s try streaming directly with v4l2:

v4l2-ctl --set-fmt-video=width=3280,height=2464,pixelformat='RG10' --stream-mmap --stream-count=-1

If that doesn’t work, open a second terminal and run sudo dmesg -w, then run the v4l2-ctl command again. If dmesg prints an error while streaming, paste it here. If you happen to have a Raspberry Pi, you could also test the module on it following the Raspberry Pi camera docs.

Tried, but v4l2-ctl isn’t installed - I get -bash: v4l2-ctl: command not found. I did run sudo dmesg -w and saw these imx219 lines:

imx219 7-0010: tegracam sensor driver:imx219_v2.0.6
tegra-vii2c 546c0000.i2c: no acknowledge from address 0x10
imx219 7-0010: imx219_board_setup: error during i2c read probe (-121)
imx219 7-0010: board setup failed
imx219: probe of 7-0010 failed with error -121
imx219 8-0010: tegracam sensor driver:imx219_v2.0.6
vi 54080000.vi: subdev imx219 8-0010 bound

For reference this Nano is on kernel 4.9.140-tegra, DTS tegra210-p3448-0000-p3449-0000-a02.dts, host jetbot@jetson-4-3. No Raspberry Pi available.

v4l2-ctl comes from the v4l-utils package. Install it first:

sudo apt install v4l-utils

Then re-run the stream command from before, and if it fails capture the sudo dmesg -w output while streaming.

Installed v4l-utils and ran the v4l2-ctl stream command, but no image comes through. While streaming, dmesg is full of:

[  564.171084] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 4432

repeated for frames 4432 through 4830, then later:

[  793.327513] vi 54080000.vi: tegra_channel_error_status:error 4000 frame 0

repeated for frames 0 through 623.

Honestly I haven’t seen that error 4000 before. Your JetPack version looks quite old, which may be a factor here. If you can, test the camera on a Raspberry Pi to rule out the module. Otherwise I’d suggest flashing a newer JetPack, like 32.7.3.

I flashed JetPack 32.7.3 and the same tegra_channel_error_status:error 4000 keeps happening during streaming. I don’t have a Pi to test with. Is it possible the camera module itself is just defective?

At this point the module is detected and the cable orientation is fixed, but streaming still fails with the same tegra_channel_error_status:error 4000 even on JetPack 32.7.3. That points more toward a hardware problem with the module, but without a Raspberry Pi (or a second Jetson) to test on, we can’t fully confirm it. If you can get access to a Pi, run the camera through the standard Raspberry Pi camera setup - if it fails there too, that would strongly suggest the module itself is faulty.