Hey everyone, I’m trying to get the Arducam ToF camera working on my Jetson Nano but hitting walls. Here’s my setup:
NVIDIA Jetson Nano
Jetson SDK 32.7.6
Tegra 4.9
Python 3.6
OpenCV 9.0 (the pre-installed examples work fine)
I followed the official Getting Started guide at docs.arducam.com for the ToF camera and tried running ./compile.sh from the repo. The build fails because it can’t install the Open3D pointcloud library - seems like libopen3d doesn’t play nice with Python 3.6. Anyone run into this on the Nano with this SDK version?
Thanks for the detailed report. The Python 3.6 / Open3D incompatibility is a known pain point on JetPack 4.x. A couple of questions while we dig into this:
Can you share the exact error output from ./compile.sh? That’ll help narrow it down.
Have you tried importing the ArducamDepth module directly in Python to see what happens?
In the meantime, one thing you could try is installing Open3D through the system package manager instead of pip - sometimes that bypasses the Python version issue:
Looking at those screenshots - thanks for sharing. The “pytron Can’t install header” error is definitely related to the Python 3.6 environment on that SDK version. Here are two approaches to try:
Approach 1 - System Open3D:
sudo apt install libopen3d-dev
This gets around the pip/Python version mismatch by using the system package.
Approach 2 - Alternative repository:
There’s a fork that handles some of these Jetson-specific compatibility issues differently:
Clone that and try building from there - it has some adjustments for older JetPack releases. The examples in that repo should work without the same dependency chain issues.
I’d suggest trying both. Start with Approach 1, then give Approach 2 a shot if you’re still stuck.
Okay, ran sudo apt install libopen3d-dev and it installed without errors this time - that’s progress. Also cloned the alternative repo from antonio-ard and poked around the examples in there.
But I’m still digging into why the ArducamDepth header import keeps failing. The compile.sh from the alternative repo gets further but I’m not out of the woods yet. Something about the header installation step is still unhappy. I’ll keep debugging and post what I find.
Good to hear the apt install went through. For the header import issue - can you check if the ArducamDepth .so or .py files actually got placed in your Python path after the build? Sometimes on the Nano the install step puts them in a directory that Python 3.6 isn’t looking at.
Let me run those find commands and check the paths. Will post the output shortly.
One thing I noticed - when I ran the examples from the alternative repo, they seem to be structured a bit differently than the main one. The build process doesn’t try to pull Open3D through pip at all, which is probably why it gets further. But the header install step still trips up somewhere. Let me trace through exactly what’s happening during that step.
While you’re tracing that, here’s another thing to check - the “pytron Can’t install header” message often means the build script is trying to write to a protected system path without proper permissions, or it’s looking for a Python header directory that doesn’t match your actual Python 3.6 installation layout.
If you look inside the compile.sh or the setup script, you might find it referencing something like /usr/include/python3.x where the x doesn’t match your installed version. On SDK 32.7.6 the Python include path can be in a non-standard location.
I’m looking into this further on my end as well - the Nano + older JetPack combo needs some specific handling. I’ll follow up once I’ve got more concrete steps for you.
Quick update - I went back through the alternative repo’s setup more carefully and tried the examples again after fiddling with the paths. Looks like everything is working now! The ToF camera is streaming depth data and the pointcloud visualization is running.
For anyone else who stumbles on this thread with a Jetson Nano on SDK 32.7.6 / Python 3.6:
The main repo’s pip-based Open3D install will fail, so go the apt route or use the alternative repo
Double-check your Python include paths if the header install step complains