Hi all, I’m trying to get an Arducam IMX477 camera (with the HDMI adapter) working on a Jetson Orin Nano Dev Kit. The Arducam wiki says it should work with JetPack 35.3.1, but the driver install keeps failing. I also noticed the IMX477 driver folder on GitHub (MIPI_Camera/Jetson/IMX477/driver at master · ArduCAM/MIPI_Camera · GitHub) has no Orin Nano folder, so I’m not sure which driver I’m actually supposed to use.
Can you post your exact install command, the full error output, and your kernel version? That’ll make it easier to see where it’s failing.
My environment: NVIDIA Orin Nano Developer Kit, kernel 5.10.104-tegra-35.3.1-20230319081403. I ran:
cd ~
wget https://github.com/ArduCAM/MIPI_Camera/releases/download/v0.0.3/install_full.sh
chmod +x install_full.sh
./install_full.sh -m imx477
The installer stops with:
Cannot find the corresponding deb package, please send the following information to [email protected]
Looking at that error, the installer can’t find a matching deb package for your Orin Nano kernel, which is why it gives up. That also matches the GitHub repo: there’s no Orin Nano folder under the IMX477 driver directory yet, so the script has nothing to select for your board. Can you try the install-driver steps from the Quick Start guide here:
https://docs.arducam.com/Nvidia-Jetson-Camera/Native-Camera/Quick-Start-Guide/#install-driver
and confirm if you get the same error?
Thanks for the quick reply. I already tried the exact commands from that Quick Start guide install-driver section, and it still produces the same ‘Cannot find the corresponding deb package’ error.
We’ve pushed an update to the driver package for the Orin Nano. Can you try the install again and let me know what you get?
I tried it again just now and it still gives the same error.
Got it. We made another change to the package selection logic after your report. Please delete the old install_full.sh, re-download it from the same release link, and run it again.
After re-downloading the script, the driver install finally completed. So that part is fixed.
New issue: the camera works with gstreamer, but any Python/OpenCV attempt gives a blank or flat green image. The camera shows up as /dev/video0. The working gstreamer pipeline is:
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! glimagesink
For the Python side, use the sample script for the IMX477 AF_LENS as a reference:
It’s gstreamer-based, so it should match what’s already working for you.
I tried that JetsonCamera.py and it fails to open the camera:
orin@orin-nano:~/python$ python JetsonCamera.py
Traceback (most recent call last):
File “JetsonCamera.py”, line 135, in
camera = Camera()
File “JetsonCamera.py”, line 107, in init
self.open_camera()
File “JetsonCamera.py”, line 112, in open_camera
raise RuntimeError(“Failed to open camera!”)
RuntimeError: Failed to open camera!
Run it with python3 instead:
python3 JetsonCamera.py
If it still fails, can you post a screenshot of the blank/green output you’re seeing from OpenCV?
I get the exact same traceback with python3 JetsonCamera.py as with python. The sample you linked uses gstreamer inside Python; the script I’ve been using on other devices is a different OpenCV script. Should that attached OpenCV script be expected to work on the Orin Nano?
The gstreamer-based sample should open /dev/video0 through nvarguscamerasrc, so if that fails there may be a mismatch with how OpenCV was installed. Did you install OpenCV yourself? Try NVIDIA’s packaged build:
sudo apt-get update && sudo apt install nvidia-opencv
Then retry:
python3 JetsonCamera.py
I removed and reinstalled OpenCV with that exact command. The result is the same. gstreamer still works fine; only Python/OpenCV is affected.
Did you install OpenCV through pip at some point? Mixing pip and apt OpenCV on Jetson is a common source of this kind of failure, and getting the environment clean is tricky. If there’s a pip OpenCV in the mix, you may need to remove it. You can also ask on the NVIDIA Jetson Orin Nano forum:
I removed/reinstalled OpenCV with the apt command you gave and the result was the same. I’ve also tried installing OpenCV via pip and by building from source. The camera works fine on a regular Jetson Nano, so for now I’m capturing frames there. Only the Orin Nano Python/OpenCV path is broken.
With that much mixing, the cleanest path is to reburn the OS and install these two packages right after:
sudo apt install nvidia-opencv
sudo apt install nvidia-opencv-dev
If you’re reburning, use the SDK Manager so the OpenCV-related modules, CUDA, and bootloader are set up together.
I’ve already tried pip and building OpenCV from source. The camera works fine on a Jetson Nano, just not this Orin Nano. I’ve written the OS image to an SD card several times instead of using SDK Manager. Is there actually a difference between writing the image to an SD card and using SDK Manager?
Yes. SDK Manager’s OS burn installs OpenCV-related modules, CUDA, and the bootloader as part of the process. A plain SD card image may not include the same OpenCV setup, which can leave you in exactly the state you’re seeing.