IMX477 PTZ Camera Still Not Working on Jetson Xavier NX After Replacement

Hi everyone, I’m trying to get the Raspberry Pi IMX477 Pan Tilt Zoom Camera working on a Jetson Xavier NX, but the camera just won’t operate. I’ve tested it again and the exact same problem is still there - it simply does nothing on the Xavier NX. I need this working on the Xavier NX for a development project. I’m currently on JetPack 4.6 (L4T 32.6.1) with the Docker image nvcr.io/nvidia/l4t-ml:r32.6.1-py3. Is this camera actually compatible with the Xavier NX? And with this setup, can the Xavier NX control the whole PTZ (pan/tilt), or is it only the camera sensor that’s supported?

Let’s sort this out step by step. The first thing that jumps out: JetPack 4.6 / L4T 32.6.1 is quite old for this camera - we test and recommend L4T 32.7.3 on the Xavier NX. Could you run the following on the board and paste the result?

cat /etc/nv_tegra_release

That confirms the exact L4T version. Also, is the camera currently wired to the pan-tilt gimbal or connected directly? And do you see any error output or logs when you try to access the camera, or does it just do nothing?

Here’s the full environment:

  • Board: Jetson Xavier NX dev kit
  • JetPack: 4.6 (L4T 32.6.1)
  • Docker image: nvcr.io/nvidia/l4t-ml:r32.6.1-py3
  • Host: Ubuntu 18.04 with NVIDIA SDK Manager
  • Connection: Type-C data cable between host and Xavier NX
  • The camera is not attached to the gimbal right now.

The release check shows 32.6.1. There’s no error log I can find - it just never initializes or operates. So, is L4T 32.7.3 confirmed to work with this camera? Could you share the exact install and connection method? And can the JetPack 4.6 Docker image r32.6.1-py3 actually let the Xavier NX control the camera at all?

Thanks for the details. Short answer: yes, L4T 32.7.3 is what we test against and it works on the Xavier NX. L4T 32.6.1 is too old and we can’t reliably support it - that version mismatch is almost certainly the root cause of what you’re seeing. We tested a unit (B0167B12) on the Xavier NX and it operates correctly; the images below show the specific part and cable that need to be correct.
image001.png
image002.jpg

The plan is: flash the board to L4T 32.7.3 first, then wire it strictly according to the official diagram. You’ll need:

  • A host PC running Ubuntu 18.04 or 20.04
  • NVIDIA SDK Manager on the host
  • The Xavier NX dev board
  • A Type-C data cable

To install SDK Manager, download the package from SDK Manager | NVIDIA Developer and then:

chmod +x sdkmanager_[version].deb
sudo apt-get install ./sdkmanager_[version].deb

Then launch SDK Manager.

Got it, I’ll try flashing to 32.7.3. Just to be safe so I don’t brick the board - how exactly do I put the Xavier NX into recovery mode, and which components do I need to select in SDK Manager?

Sure. Flashing steps:

  1. Connect the Xavier NX to the host through the Type-C port.
  2. Force recovery mode: place a jumper between pin 9 (GND) and pin 10 (FC REC), then power the board on - it will boot into forced recovery mode.
  3. Start SDK Manager and log in with your NVIDIA developer account.
  4. Set TARGET HARDWARE to ‘Jetson Xavier NX’.
  5. In the JETPACK VERSION dropdown, pick ‘L4T 32.7.3’.
  6. Under SDK COMPONENTS, select at minimum: OS (32.7.3), CUDA Toolkit (10.2.300), cuDNN (8.2.1), TensorRT (8.0.1).
  7. Click CONTINUE, accept the licenses, then click INSTALL and wait for it to finish - it can take a while.
  8. When done, SDK Manager will prompt you to disconnect and reconnect the board; just follow those prompts.

Afterwards, verify on the Xavier NX:

cat /etc/nv_tegra_release

It should now report 32.7.3.

Flashing completed - the release file now shows 32.7.3. Now for the wiring: how should I connect the camera? Do I need the pan-tilt gimbal attached for the camera itself to be detected, or can I test the sensor alone first?

Good. For the wiring, follow the official diagram exactly - this is important. The camera does not need the pan-tilt gimbal to be detected; you can test the sensor first, but every cable connection has to match the diagram. Make sure you’re using the correct cable - the package includes a labeled cable so you can tell the correct one apart from similar-looking ones. Mixing in the wrong cable is a common cause of ‘camera not detected’.

References:

To summarize where we are: the root cause was the L4T version - 32.6.1 is too old, and the camera should run on L4T 32.7.3, which you’ve now flashed. Next, connect and operate the camera per the official PTZ quick-start guide, and make sure the wiring follows the diagram strictly (correct labeled cable, plus the connections shown in the images above). The gimbal isn’t required for the sensor to be detected. I’ve also sent you a private message about arranging a real-time session if you’d like to walk through the connection together. Let us know how it goes after you test on 32.7.3.