I’m running into a wall with the Jetvariety driver on a Jetson Orin Nano. I need to capture at custom resolutions and framerates — specifically 800×800 at 120fps — but the driver doesn’t seem to expose any way to set these. On Raspberry Pi, the rpicam apps and libcamera stack make this straightforward, but I can’t find anything equivalent in the Jetvariety setup on Jetson. Is there any way to configure custom modes, or am I going to have to dig into the driver source?
Thanks for reaching out. Before diving into source-level changes, could you share a bit more about your setup? Which camera modules are you using with the Jetson Orin Nano, and which version of the Jetvariety driver are you on? That’ll help narrow things down.
Sure — I’m using the Arducam B0223 modules, which have the OV9281 sensor. Driver is whatever the latest Jetvariety release is for the Orin Nano. I’ve been poking around and honestly, I’m at the point where I think I might need to modify the driver source code directly to add the resolution and framerate modes I need. But I’m not really sure where to start with that. Is the source available, and can you point me toward the relevant parts for adding custom modes?
Good question, and I understand the frustration — the rpicam/libcamera flexibility on Pi definitely sets a certain expectation. Here’s the core issue: on the Jetson platform, Jetvariety cameras do not get access to the ISP (Image Signal Processor). Unlike the Raspberry Pi ecosystem, where libcamera and rpicam-apps give you a full camera stack with flexible stream processing, custom resolutions, and framerate control, the Jetson side simply doesn’t have an equivalent camera stack that exposes that level of control through the driver. That’s the fundamental gap you’re hitting. You’re not missing a setting — the pipeline just isn’t there in the same way.
That said, we understand you want to experiment. I’ve sent you the Jetvariety driver source code through private message — please check your messages. You’re welcome to use it as a reference and try adding the modes you need. One thing to keep in mind: even with source-level modifications, the image quality and overall results may not meet your expectations because of that ISP limitation I mentioned. The processing pipeline on Jetson is inherently more constrained than what libcamera provides on the Pi. No guarantees on the outcome, but at least you’ll have the code to work with.
Got it, thanks for sending that over. So just to make sure I understand — even if I hack in the 800×800 120fps mode into the driver, the lack of ISP access means I might have issues with things like exposure, white balance, or frame timing? Is there any workaround on the Jetson side for doing any of that processing in userspace, or is the hardware pipeline just locked down?
You’ve got it exactly right. Without ISP access, tasks like auto-exposure, white balance, and debayering either fall entirely on the CPU/GPU in userspace — which gets expensive fast at 120fps — or simply aren’t available in the same automated way. The hardware pipeline on Jetson doesn’t expose the same hooks that the Pi’s ISP does through libcamera. Some users have experimented with doing basic processing through OpenCV or custom CUDA kernels in userspace, but it’s a significant effort and wouldn’t replicate what the ISP gives you for free on the Pi side. The source code should give you a starting point to see what the driver does expose and where you might be able to insert your own processing. It’s not impossible, just a lot more involved than it would be on a Pi.