Two IMX477 stereo sync on Jetson NX: driver only supports JetPack 4.5.1

Hi everyone, I’m trying to build a stereo depth setup using two IMX477 camera modules on a Jetson Xavier NX. For accurate stereo depth maps the two cameras really need to be synchronized (hardware sync, not just software timestamps), so I was looking at the master/slave sync driver.

The problem is the sync driver I found only supports up to JetPack 4.5.1, but I’m running JetPack 5.0.2. Has anyone managed to get the IMX477 master/slave mode working on JetPack 5.x?

Hi, thanks for reaching out. To make sure we’re on the same page, can you confirm a couple of things for me?

  1. Which exact camera modules are you using (IMX477, and are they the sync-capable versions with the external trigger pad)?
  2. Which Jetson board exactly - Xavier NX or Orin NX?
  3. Which sync driver/source are you currently referencing? A link would help.

Once I know what you’ve got I can point you in the right direction.

Sure. Two IMX477 modules, both on an NVIDIA Jetson NX. The target platform is JetPack 5.0.2.

The sync driver I’m looking at is the one on GitHub: GitHub - ArduCAM/MIPI_Camera · GitHub - as far as I can tell it supports up to JetPack 4.5.1 only.

I also found this forum thread which seems relevant: Sync Two IMX477 Modules for Stereo Vision

So basically the driver exists but tops out at JetPack 4.5.1, and I need it on 5.0.2.

Got it, that matches what I’m familiar with. The master/slave (external trigger) sync implementation for IMX477 has historically been tied to the older JetPack/L4T kernel versions, which is why the released sync driver caps out at JetPack 4.5.1. On JetPack 5.0.2 the kernel and the sensor driver framework changed quite a bit, so you can’t just drop the 4.5.1 driver in and expect it to build/run.

Can you tell me what you’ve already tried? Have you attempted a straight port of the driver to 5.0.2, and if so did you hit any build errors or log output you can share?

Honestly I haven’t gotten very far. My thinking was to take the existing master/slave driver logic and adapt it for JetPack 5.0.2, but the driver package only covers up to 4.5.1, so I don’t have a 5.x-ready version to start from.

I don’t have meaningful logs yet because I don’t have a build that targets 5.0.2 at all. The blocker right now is really just getting the sync driver onto 5.0.2.

Would it be possible to get the source code of the older version (the 4.5.1 sync driver)? That way I could try to adapt the master/slave mode myself for JetPack 5.0.2.

Understood, that’s a reasonable approach to want to try. Let me be upfront that whether the IMX477 sync driver source can be shared is not my call, so I’ll need to check internally before I can answer that.

Just so I fully capture your setup for the team:

  • Two IMX477 modules
  • NVIDIA Jetson NX
  • Target: JetPack 5.0.2
  • Reference sync driver: ArduCAM MIPI_Camera GitHub, supporting up to JetPack 4.5.1
  • Goal: adapt the IMX477 master/slave mode driver to 5.0.2 for stereo sync

Give me a bit to confirm with the engineering side and I’ll come back to you.

Thanks, I appreciate you looking into it. Just to be clear about why I’m asking: without hardware sync the two streams drift, and the depth maps are basically unusable for my use case. The forum thread I linked seems to describe people getting this working on the older JetPack, which is why I was hoping the source was available somewhere.

Let me know what the team says.

I checked with the chief engineer on this one, and unfortunately I have to give you a no - we can’t share the IMX477 master/slave sync driver source code. That’s a firm decision from the engineering side, so I’m not able to send the older-version source either.

To summarize where things stand: the requested functionality (master/slave sync driver for IMX477) is only officially available up to JetPack 4.5.1, and there is no out-of-the-box support for JetPack 5.0.2. Since we can’t release the driver source, we’re not able to provide the code that would let you adapt the master/slave driver to 5.0.2 as you requested.

Sorry I don’t have a better answer on this one. If your project can run on JetPack 4.5.1 instead, the released sync driver is the supported path there.

That’s disappointing, but I understand it’s out of your hands. Just so I understand the limits: is there any supported route at all for IMX477 hardware sync on JetPack 5.0.2, or is the 4.5.1 driver genuinely the end of the line for the sync feature?

As it stands right now, the sync-capable driver releases target up to JetPack 4.5.1, and we cannot share the source needed to port the master/slave mode to 5.0.2. So there’s no supported 5.0.2 path for the IMX477 sync feature that I can offer you - I’m not going to pretend there’s a workaround I can hand over when the source is off the table.

If anything changes on the driver support side for newer JetPack versions, that would be the thing to watch for. For now, the practical options are to target JetPack 4.5.1 where the sync driver is supported, or look at a different sync strategy that doesn’t depend on this driver. Sorry again that I can’t do more here.