Arducam camera driver install fails on Jetson Orin Nano: cannot find corresponding deb package

Hey everyone, I’m trying to get an Arducam stereo camera (B0266) working on a Jetson Orin Nano Super but I’m stuck right at the beginning. There are no /dev/video* devices showing up at all. I need to get synchronized streaming from both cameras on the stereo HAT. Has anyone gotten this combination working? Any pointers on where to start?

Sounds like the camera driver hasn’t been installed yet on your Jetson. That’s the first thing to sort out — without the driver the kernel won’t create any /dev/video nodes for the cameras. You’ll want to follow the Arducam JetVariety Cameras quick start guide here: Quick start - Arducam Wiki

Basically run the install_full.sh script with the -m arducam flag. Give that a shot and let us know how it goes.

Thanks for the link. I tried running the install script but it’s failing. Here’s what I’m on:

  • Platform: NVIDIA Jetson Orin Nano Engineering Reference Developer Kit Super
  • Kernel: 5.15.148-tegra-36.4.7-20250918154033
  • L4T: 36.4.7
  • NVIDIA-SMI 540.4.0, Driver Version: 540.4.0, CUDA 12.6

Ran:

./install_full.sh -m arducam

And got this:

./install_full.sh: line 19: warning: command substitution: ignored null byte in input
NVIDIA Jetson Orin Nano Engineering Reference Developer Kit Super
--2025-10-22 09:46:27-- https://github.com/ArduCAM/MIPI_Camera/releases/download/v0.0.3/arducam_links.txt
Resolving github.com... 20.217.135.5
Connecting to github.com|20.217.135.5|:443... connected.
HTTP request sent, awaiting response... 302 Found
--2025-10-22 09:46:27-- (following redirect to release-assets.githubusercontent.com)
Resolving release-assets.githubusercontent.com... 185.199.110.133, 185.199.109.133, 185.199.108.133
HTTP request sent, awaiting response... 200 OK
Length: 21594 (21K) [application/octet-stream]
arducam_links.txt 100% 21.09K in 0.008s (2.63 MB/s)

Cannot find the corresponding deb package, please send the following information to [email protected]
Kernel version: 5.15.148-tegra-36.4.7-20250918154033
Jetson type: NVIDIA Jetson Orin Nano Engineering Reference Developer Kit Super

Seems like it can’t find a matching .deb for my kernel version. Any ideas?

Yeah, that’s a kernel version mismatch. The online repo that install_full.sh pulls from doesn’t have a pre-built .deb for your specific kernel build (5.15.148-tegra-36.4.7-20250918154033 on the Orin Nano Super). The script downloads an index file (arducam_links.txt), looks for a matching entry, and comes up empty.

I’ve sent you a compatible driver package via private message — it’s built specifically for your kernel version. Once you’ve got it downloaded, install it with:

sudo dpkg -i arducam-nvidia-l4t-kernel-t234-nx-5.15.148-tegra-36.4.7-20251024085551_arm64.deb

Please check your messages and give that a try.

So I ended up freshly flashing the latest Jetpack 6.2 (L4T 36.4.3) for the Orin Nano Super before trying your .deb. Thought it’d be cleaner to start fresh. But now dpkg is complaining about a dependency conflict:

$ sudo dpkg -i arducam-nvidia-l4t-kernel-t234-nx-5.15.148-tegra-36.4.7-20251024085551_arm64.deb
Selecting previously unselected package arducam-nvidia-l4t-kernel.
(Reading database ... 206329 files and directories currently installed.)
Preparing to unpack arducam-nvidia-l4t-kernel-t234-nx-5.15.148-tegra-36.4.7-20251024085551_arm64.deb ...
Unpacking arducam-nvidia-l4t-kernel (5.15.148-tegra-36.4.7-20251024085551) ...
dpkg: dependency problems prevent configuration of arducam-nvidia-l4t-kernel:
 arducam-nvidia-l4t-kernel depends on nvidia-l4t-kernel (= 5.15.148-tegra-36.4.7-20250918154033); however:
  Version of nvidia-l4t-kernel on system is 5.15.148-tegra-36.4.3-20250107174145.

dpkg: error processing package arducam-nvidia-l4t-kernel (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 arducam-nvidia-l4t-kernel

So the .deb you sent wants L4T 36.4.7 but Jetpack 6.2 ships with 36.4.3. My nvidia-smi still shows Driver 540.4.0 / CUDA 12.6 though.

Right, that makes sense. The .deb I sent was built against L4T 36.4.7 (your original kernel), but Jetpack 6.2 runs L4T 36.4.3 — the nvidia-l4t-kernel package versions have to match exactly for the camera driver to link properly.

The good news is that now you’re on a standard Jetpack 6.2 release, the install_full.sh script should actually have a matching .deb in its repository. Let’s go back to the script approach — it auto-detects your kernel version and fetches the right package:

wget https://github.com/ArduCAM/MIPI_Camera/releases/download/v0.0.3/install_full.sh
chmod +x install_full.sh
./install_full.sh -m arducam

Since you’re now on the stock 36.4.3 kernel the script should find a match this time.

That did the trick — the driver installed cleanly this time and I’m finally getting a stream. But the image is completely blown out, like extremely overexposed. It’s just really white, I can barely see anything. Here’s the command I’m using:

python3 arducam_displayer.py -f GREY --width 3200 --height 1300 -d 0 --fps

And this is what it looks like:

image

Is there a way to dial this back? The camera’s basically unusable like this.

Glad the driver is working now. The overexposure is just the camera’s default exposure setting being way too high for your lighting conditions — this is actually pretty common with these sensors at default values.

You can adjust the exposure through v4l2 controls before launching the display script. First, list all available controls to see what you’re working with:

v4l2-ctl -d 0 --list

Look for the exposure control in that output. Then set a lower value — lower numbers mean less exposure and a darker image:

v4l2-ctl -c exposure=5000

Set the exposure in the terminal first, then run your arducam_displayer.py command and it’ll pick up the new setting. You’ll probably need to experiment with the value — try 5000 as a starting point, go lower if it’s still too bright, or bump it up a bit if it gets too dark. The right number depends entirely on your lighting setup.

Thanks, the exposure adjustment helped a lot. Different question now — I’m thinking about swapping out the stock OV9281 camera modules that came with the stereo HAT for something else. I was looking at the IMX708 autofocus module (https://www.arducam.com/12mp-imx708-autofocus-camera-module-3-noir-for-raspberry-pi-hdr-mode-and-pdaf-supported.html) or really any alternative global shutter camera in a small form factor without a big lens. Would that work while still keeping the frame synchronization between the two cameras? That sync feature is critical for my application.

That’s an interesting idea, but unfortunately it won’t work with off-the-shelf camera modules — here’s why. The camera modules that ship with the B0266 stereo HAT have a hardware-level modification: the crystal oscillator has been physically removed from each module. This is a deliberate change specific to the stereo HAT design and it’s what enables the frame-level synchronization between the two cameras.

Standard camera modules (like the IMX708 you linked, or any other retail module) will still have their onboard crystal oscillators intact, which means they won’t play nicely with the stereo HAT’s sync mechanism. The two cameras would operate independently rather than in lockstep.

If you need a customized setup with different image sensors while still maintaining frame sync and the small form factor, this would need to be handled as a custom solution. I’d recommend reaching out to [email protected] — they can discuss what sensor options are feasible and what a customized stereo HAT build would involve.