Hi everyone, I’m having trouble with the Arducam B0579 camera module on a Seeed Studio J4012 carrier board (Jetson Orin NX, JetPack R36, REVISION 4.4). I followed the Arducam tutorial to install the driver, and the camera gets detected at /dev/video0, but all I get is a completely green image — no actual picture at all.
That sounds frustrating. Let’s dig into what’s happening at the driver level. Could you run the following and share the output?
v4l2-ctl --all
Also, any errors from dmesg related to the camera or I2C would be helpful. And can you confirm the exact gst-launch terminal output including any warnings?
Thanks for the detailed dump. There are a few red flags here:
error 22 (EINVAL) on all three extended controls — Sensor configuration, Sensor mode I2C packet, and Sensor control I2C packet are all failing. This means the I2C control path to the sensor isn’t working properly. The driver can see the camera at a basic level, but can’t actually configure it.
“Camera 2: no power” — This is a big one. It suggests a hardware-level power delivery issue.
Before we go further — what carrier board are you using exactly? Could you share a gpioinfo dump? I’m wondering if there’s a regulator or mux issue on the CSI lanes. Also, have a look at dmesg | grep -i regulator for anything related to camera power rails.
The carrier board is the Seeed Studio J4012 (reComputer J4012). Here’s the thing — I was digging through the datasheet and it looks like this board only provides 2-lane CSI, but the B0579 is a 4-lane camera. That seems like it could be the root of the problem.
line 0: "PA.00" "regulator-vdd-3v3-sd" output active-high
line ...: "PI.05" kernel input
line ...: "PM.00" kernel input
line ...: "PX.00" kernel input
line ...: "PX.01" kernel input
line ...: "PL.02" "nvidia,pex-wake"
line ...: "PEE.04" "Power" input active-low
gpiochip1:
line 5: "PAA.05" "regulator-vdd-3v3-pcie" output active-high
line 15: "PCC.03" "mux" output active-high
Do you think rebuilding the kernel with Arducam source code could force the power delivery to work, or is this a fundamental hardware mismatch with the 2-lane vs 4-lane thing?
Good catch on the lane mismatch — that’s very likely contributing to the problem. But the I2C errors and the “no power” status suggest there may be more going on than just lane count.
To summarize what we’re seeing:
The camera is detected at the driver level as arducam-csi2 9-000c on /dev/video0 at 1920x1200@30fps (UYVY)
But all three extended control reads (sensor config, mode, control I2C packets) return error 22 — the I2C control channel to the sensor is failing
The video input status explicitly reports “Camera 2: no power” — this is a hardware-level flag, not a software issue
A kernel rebuild alone likely won’t fix this if the carrier board isn’t providing proper power to the camera rail or if the I2C routing is different from what the device tree expects
Before we go down the kernel route, can you test with the Python demo from the Arducam quick start guide? It uses a simpler pipeline and might give us cleaner diagnostics:
Only getting about 4 fps instead of the 30 fps the driver advertises. So the data is flowing, but something is seriously degraded.
At this point I’m pretty convinced it’s the J4012 carrier board. Since the B0579 expects 4 lanes and the J4012 only routes 2, I’m guessing half the pixel data is just missing — which would explain both the green tint (corrupted/missing color planes in UYVY) and the terrible frame rate.
This is on a Jetson Orin NX with the J4012. Is it possible to configure the B0579 to operate in 2-lane mode? Or would I need a custom device tree / driver build that accounts for the J4012’s CSI routing? If you have compiled .dtb and driver files that would work with this specific board, I’d be happy to test them.
You’ve narrowed it down well. The 4 fps vs 30 fps discrepancy really points toward a CSI lane issue — if only 2 of the 4 lanes are connected, the sensor is likely trying to push data across lanes that don’t physically reach the Orin’s CSI controller, causing massive data corruption and the green output you’re seeing.
Regarding 2-lane operation: the B0579’s sensor should be capable of operating in 2-lane mode — most MIPI sensors support lane count configuration — but it depends on whether it’s been exposed in the current device tree. The default .dtb for the B0579 almost certainly configures it for 4 lanes. Getting it to work in 2-lane mode would require:
Modifying the device tree to set continuous-clock and reduce data-lanes from 4 to 2 in the CSI endpoint node
Possibly adjusting the sensor’s register initialization sequence to switch it to 2-lane output mode
Ensuring the J4012’s pinmux and regulator configuration matches what the modified DT expects
I’ve sent you a private message with some files to try — a modified device tree targeting 2-lane operation for the B0579 on the Orin NX, along with instructions for deploying it. Keep in mind that 2-lane mode will halve the available bandwidth, so you may need to reduce the resolution or frame rate. Let us know how it goes after testing.