'Arducam driver install fails: No DTB found on Jetson Xavier NX custom board'

Hey everyone, I’m trying to get an Arducam IMX477 working on my Jetson Xavier NX. I’m using a custom third-party carrier board (not the official NVIDIA dev kit). The camera was actually working before at some point, but I had to reinstall everything and now the Arducam driver .deb package fails during installation.

The error I keep getting is:

No DTB found for Jetson Xavier NX module

Weird thing is, the DTB file is right there in /boot/dtb/:

tegra194-p3668-0000-p3509-0000.dtb

I’ve attached the full error log:
driver_error.txt

Anyone run into this before? The board and camera combo was literally streaming fine a while back so I’m a bit stumped.

Quick update – I did a bit of digging into the driver scripts myself.

I found the DTB check happening in /opt/arducam/jetson-io/Jetson/board.py at line 112. Looks like it’s iterating through a list of known DTB names and none of them match what my board reports.

I tried a workaround: I manually hardcoded the DTB path right there at line 112 to point to my dtb file. But here’s the thing – when I run the .deb installation again, it wipes and replaces the entire /opt/arducam/* directory tree, so my edit gets blown away and the same error comes back.

So the check is baked into the package and I can’t get around it by editing post-install since the install itself triggers the check. Kind of stuck in a loop here.

Thanks for the detailed report and the log – that’s really helpful.

Looking at this, the root cause is that the board detection logic in /opt/arducam/jetson-io/Jetson/board.py doesn’t have a matching DTB entry for your custom third-party carrier board. The script has a known set of DTB identifiers that correspond to official NVIDIA developer kits, and when it can’t find a match, it throws the “No DTB found” error and halts the installation.

Unfortunately, Arducam drivers are designed, tested, and validated only against the official NVIDIA Jetson development kits. Custom carrier boards introduce a lot of variables – different pin mappings, power delivery paths, device tree structures – that we simply can’t account for or validate against.

Here’s what I’d suggest as a next step:

  • If you have access to the official NVIDIA Jetson Xavier NX Developer Kit, try deploying the camera and driver there.
  • Install the same Arducam driver .deb package on that official kit.
  • Verify if the camera streams correctly.

This will at least tell us whether the camera module itself is functional and whether the driver works as expected on supported hardware. If the issue reproduces on the official kit, then we have a different problem to look at. But if it works, it confirms the custom carrier board is the source of the incompatibility.

Alright, I managed to borrow an official Jetson Xavier NX dev kit to test this out.

Good news: the Arducam driver .deb installed without any issues on the official kit, and the IMX477 camera streams perfectly. So the camera hardware itself is fine and the driver works as intended on the supported platform.

That pretty much isolates it to the custom carrier board.

Just to be thorough, I went back and tried the driver install on the custom carrier board one more time. Same result – installation fails. I grabbed a fresh error log this time around:

driver_log.txt

It’s the same DTB detection failure. So the issue is 100% down to the custom third-party carrier board not being recognized by the board detection logic in the driver package.

Thanks for confirming both scenarios – that really narrows things down.

So to summarise where we’ve landed:

  • The Arducam IMX477 camera and the driver .deb package both work correctly on the official NVIDIA Jetson Xavier NX Developer Kit. Camera streams, no install errors – all good.
  • On the custom third-party carrier board, the driver installation consistently fails because the DTB detection logic in board.py doesn’t recognize the board. The script looks for DTB identifiers tied to official NVIDIA kits, and custom carrier boards fall outside that list.

At this point, the limitation is that Arducam drivers are only validated against official NVIDIA development hardware. Custom carrier boards aren’t a supported configuration, and we don’t have a way to guarantee compatibility across the wide range of third-party designs out there – the device tree differences, pin definitions, and power sequencing can all vary significantly between boards.

If you need to use this particular carrier board, you might want to reach out to the board manufacturer to see if they have any guidance on adapting the device tree or if they’ve tested MIPI camera compatibility. But as far as the Arducam driver goes, the supported path is the official dev kit.