Only green frames and 2-3 FPS from arducam_demo.py with Arducam B0579 on Jetson Orin NX

Hey everyone, I’m running into a weird issue with my Arducam B0579 (the 2.3MP global shutter one) on a Jetson Orin NX with a Seeed Studio J40 carrier board.

The camera shows up fine at /dev/video0 and the driver install seemed to go through without errors. But when I run arducam_demo.py, all I get is a green frame and the FPS is awful — like 2-3 fps max. I’m passing width and height flags but nothing helps.

I’m on JetPack 36.4.3 (tried 36.4.4 too, same result). Driver was installed following the official Arducam guides. Anyone seen this before? Could it be a pixel format mismatch or something with the CSI lanes on this carrier?

Thanks for the detailed setup info. So the camera being detected at /dev/video0 is a good sign — it means the driver loaded and the kernel sees the device. But the green frame + extremely low FPS you’re describing points to a data stream issue, which in our experience often comes down to carrier board compatibility.

Here’s the thing: the Seeed Studio J40 is a third-party carrier board, and our MIPI/CSI cameras are validated against the official NVIDIA dev kits. The signal routing, clock tree, and MIPI lane assignments on third-party boards can differ enough to cause exactly what you’re seeing — corrupted frames and terrible throughput.

Is there any chance you have access to an official NVIDIA Orin dev kit to test the camera on? That would tell us immediately whether the camera itself is fine and the J40 is the source of the problem.

Unfortunately I don’t have an official dev kit — the J40 is the only carrier I have for this project. I’m kind of stuck with it.

Is there any driver tweak or device tree modification I can try to get the B0579 working on the J40? Even if it’s not officially supported, I’m willing to dig into the kernel side or adjust the MIPI config if there’s anything that might help. The camera is detected, so it feels like I’m close — just something off with how the data is being interpreted.

I understand the frustration, especially when the OS sees the camera but the output is garbled. Unfortunately, at this time we don’t have any driver patches, device tree modifications, or configuration workarounds to offer for third-party carrier boards like the J40.

The CSI/MIPI interface is tightly coupled to the carrier board hardware design — things like lane mapping, I2C bus routing, and clock distribution. Even if /dev/video0 appears, the actual pixel data can arrive malformed if the physical layer isn’t set up the way our driver expects. It’s not something we can fix from the software side.

If you ever do get access to an official carrier and the camera still misbehaves, please let us know and we’ll dig deeper. But for the J40 specifically, there’s just not a path forward with the MIPI-based modules right now.

Fair enough, I appreciate the honesty. Different question then — does Arducam make any global shutter camera that would actually work on the J40? I need global shutter, at least 300 fps capability (or resolution around that ballpark). Basically looking for anything in your lineup that sidesteps the MIPI compatibility problem entirely.

Good question — and yes, there is an option that avoids the MIPI/CSI dependency altogether. We have a USB 3.0 UVC camera module based on the AR0234 sensor: the Arducam 2.3MP Color Global Shutter USB 3.0 Camera Module.

Since it’s a standard UVC (USB Video Class) device, it doesn’t need any specialized MIPI driver or carrier-board-specific configuration. You plug it into a USB 3.0 port on the J40 and it should enumerate as a standard V4L2 device. That completely bypasses the carrier board compatibility constraints you’re hitting with the B0579.

Here’s the product page if you want to check the specs: [Presales] Arducam 2.3MP AR0234 Color Global Shutter USB 3.0 Camera Module — take a look and see if the resolution and frame rate fit what you need. That’s probably the cleanest path forward on the J40.