Hey everyone, I’m stuck trying to get an Arducam IMX219 camera working on my Jetson Orin Nano (tegra194). I’m using an AWM-20624 22-22 pin ribbon cable to connect it. The system just never sees the camera at all.
I’ve probed I2C on buses 9 and 10 at address 0x000c and nothing shows up. Here’s what I’m seeing in journalctl:
Welcome to the forum! Let’s work through this step by step.
First thing I’d check is the ribbon cable orientation. The AWM-20624 can be a bit finicky on the Jetson side. Can you describe or better yet show a photo of how you have the cable connected on both ends? Also, which camera connector on the Orin Nano are you using — CAM0 or CAM1?
Thanks for the quick reply. I’ve been going back and forth on the cable orientation and honestly I think something is off there.
On the camera side, the ribbon contacts face up. But on the Jetson side, the contacts face down. I can’t seem to get both ends oriented the same way — it’s like pin 1 on the camera isn’t lining up with pin 1 on the board no matter how I flip it.
I’ve already tried reseating the cable quite a few times and unfortunately the contacts on the ribbon are starting to get damaged from all the reinsertions. I’m worried I might have a fundamentally wrong cable type.
That does sound like it could be a cable compatibility issue. The 22-22 pin cable should technically work, but if the contacts are facing opposite directions on each end, you might be dealing with a flipped pin mapping.
Since your current cable is showing signs of wear, I’d suggest grabbing a replacement AWM-20624 cable to rule that out. While you’re at it, it wouldn’t hurt to have a spare camera module on hand for testing too — sometimes these things can be defective out of the box.
In the meantime, can you confirm which connector you’re plugged into on the Jetson side?
Yeah I went ahead and ordered a couple of replacement AWM-20624 cables and tried those. Same result — camera still not detected.
I also ordered a second Arducam IMX219 module just in case the first one was a dud. Swapped that in with the new cable and… still nothing. I2C probe on 9 and 10 at 0x000c comes up empty every time.
At this point I’ve ruled out the cable and the camera module itself. Something else has to be going on. I’ve tried both CAM0 and CAM1 connectors, same behavior on both.
Okay, let’s dig deeper then. There’s a diagnostic tool that will help us see exactly what’s happening on your system. Can you run the Arducam camera bug report script? Here’s what to do:
This will generate a file called arducam-bug-report.txt. Please share that here — it’ll give us a complete picture of your driver setup, device tree, and kernel logs all in one place.
Also I wanted to attach a couple photos of my cable setup so you can see what I mean about the orientation:
Camera side:
Jetson side:
As you can see, on the camera the contacts are facing up but on the Jetson they face down. Do I need a reverse cable or one that has exposed contacts on both sides of the ribbon? Or is this actually normal and my problem is elsewhere?
Alright, I’ve gone through your bug report thoroughly and I can tell you the cable orientation is a red herring here — the issue is actually in your driver stack.
Looking at your kernel logs, the problem is clear:
Your system has the Arducam Jetvariety camera driver (arducam-csi2) loaded, and that driver is trying to probe the IMX219 at address 0x000c on both I2C buses. The problem is that the Jetvariety driver does not support the IMX219 camera module. It’s failing because it doesn’t know how to talk to the IMX219’s register map — hence the “Reading register 0x103 failed” error. It’s literally trying to read a register that doesn’t exist on the IMX219.
Oh wow, that actually makes a ton of sense. I had no idea there were different driver stacks for different Arducam modules. So the driver is probing but can’t actually communicate with the sensor because it’s the wrong driver entirely. What do I need to do to fix this?
Exactly right — the driver is knocking on the door but speaking the wrong language. The fix is to switch over to the NVIDIA native IMX219 driver, which is what the IMX219 module is designed to work with on Jetson platforms.
Here’s what you need to do:
First, you’ll want to disable or remove the Arducam Jetvariety driver so it stops trying to claim the camera. Then enable the NVIDIA native IMX219 driver through Jetson-IO. The full step-by-step guide for manually configuring your camera interface is here:
Key takeaway: the Arducam Jetvariety camera driver and the IMX219 are simply not compatible on Jetson. If you’re using an IMX219, you need the NVIDIA native IMX219 driver enabled via Jetson-IO configuration. Once you switch over, the camera should be detected properly on the I2C bus.