Jetson Nano: nvarguscamerasrc fails when capturing simultaneously with v4l2-ctl on second camera

I am using Jetson Nano (kernel 5.15.148-tegra) with two cameras connected to CSI ports:

  • CAM0: Arducam AR0234 (captured using nvarguscamerasrc in GStreamer)

  • CAM1: captured using v4l2-ctl

When I start capturing from both cameras at the same time, the pipeline using nvarguscamerasrc fails unexpectedly. After this failure, the nvarguscamerasrc pipeline cannot recover, and the only way to restore functionality is to reboot the device.

pipeline:
gst-launch-1.0 -e nvarguscamerasrc num-buffers=1 sensor-id=0 ! “video/x-raw(memory:NVMM),width=1920,height=1200,framerate=60/1” ! nvvidconv ! “video/x-raw, format=NV12” ! multifilesink location=“AR0234_1920x1200_rgb_raw.bin”

Is simultaneous capture from two CSI cameras supported on Jetson Nano using mixed APIs (nvarguscamerasrc + V4L2`)

Are there known limitations or conflicts between libargus and direct V4L2 access?

Any recommended approach to achieve dual-camera capture without reboot issues?

*** Please note that this reply is generated by LLM automatically ***

The question revolves around the Jetson Orin Nano and its compatibility with simultaneous capture from two CSI cameras using mixed APIs (libargus and direct V4L2 access).

Firstly, it’s essential to note that the Jetson Orin Nano supports multiple camera interfaces, including CSI (Camera Serial Interface) and MIPI CSI-2. However, the simultaneous capture from two CSI cameras might be limited by the hardware capabilities and software configurations.

According to the provided context, the Jetson Orin Nano and Jetson Orin NX series support the CSI connector, but the pin count might vary on each platform. This suggests that the hardware is capable of supporting multiple cameras, but the actual implementation might depend on the specific camera modules and software configurations.

Regarding the use of mixed APIs (libargus and direct V4L2 access), there might be known limitations or conflicts between these two approaches. Libargus is a camera API provided by NVIDIA for their Jetson platforms, which offers a more abstracted and user-friendly interface for camera control and image capture. On the other hand, direct V4L2 access provides a more low-level interface for controlling the camera and capturing images.

The provided context does not explicitly mention the compatibility of simultaneous capture from two CSI cameras using mixed APIs. However, it does provide information on verifying the V4L2 sensor driver, which might be relevant to the issue at hand.

To achieve dual-camera capture without reboot issues, the following approaches can be considered:

  1. Use a single API: Instead of using mixed APIs, try using a single API (either libargus or direct V4L2 access) for both cameras. This might help avoid potential conflicts between the two APIs.
  2. Configure the cameras separately: Ensure that each camera is properly configured and initialized before attempting to capture images simultaneously. This might involve setting the camera modes, resolutions, and frame rates separately for each camera.
  3. Use a camera multiplexer: If the Jetson Orin Nano supports camera multiplexing, consider using a camera multiplexer to switch between the two cameras. This might help avoid conflicts between the two cameras and allow for simultaneous capture.
  4. Check the camera modules: Verify that the camera modules (Arducam AR0234) are compatible with the Jetson Orin Nano and that they are properly connected to the CSI ports.
  5. Update the kernel and software: Ensure that the kernel and software are up-to-date, as newer versions might include bug fixes and improvements for camera support.

In summary, while the Jetson Orin Nano supports multiple camera interfaces, the simultaneous capture from two CSI cameras using mixed APIs might be limited by hardware capabilities and software configurations. To achieve dual-camera capture without reboot issues, consider using a single API, configuring the cameras separately, using a camera multiplexer, checking the camera modules, and updating the kernel and software.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

There’s no limitation for mixing usage.

It could be the sensor driver affect each other cause the problem.

Thanks