Jetson Nano - multiple cameras with arducam - nvarguscamerasrc issue

I am looking for a stereo camera solution for use with opencv on the nano. The end goal is to have two calibrated cameras for computer vision experimentation.

Since the developer kit only has a single CSI connector I am attempting to use the Arducam Multi Camera Adapter board. A demo python script seems to work fine.

https://github.com/ArduCAM/Nvidia_Jetson/tree/master/Multi_Camera_Adapter

It uses nvgstcapture-1.0 and captures images from the two cameras I have attached and saves JPGs.
(I slightly modified the script to only switch between camera A and camera C as those are the only two connectors that are filled on the Multi Camera Adapter)

I would like to be able to switch between cameras like in the following:
https://github.com/ArduCAM/RaspberryPi/blob/master/Multi_Camera_Adapter/Multi_Adapter_Board_4Channel/Multi_Camera_Adapter_V2.1/4cam_cv3.py

But when I setup cv2.VideoCapture() similar to JetsonHacksNano CSI-Camera simple_camera.py with nvarguscamerasrc, it crashes.
https://github.com/JetsonHacksNano/CSI-Camera/blob/master/simple_camera.py

My question is, why does nvgstcapture-1.0 work and nvarguscamerasrc fail? Is there something fundamental I am doing wrong or should this methodology work in theory?

You may need to install the openCV. Have reference to below link to install the necessary utilities.

https://jkjung-avt.github.io/opencv-on-nano/

Thank you for your response.
I have opencv 4.1.1 installed.

I should clarify that nvarguscamerasrc works fine if I don’t switch between cameras with Arducam.

The Arducam looks link USB camera not MIPI CSI camera.

https://github.com/ArduCAM/RaspberryPi/blob/master/Multi_Camera_Adapter/Multi_Adapter_Board_4Channel/Multi_Camera_Adapter_V2.1/4cam_cv3.py

The Arducam Multi Adapter Board is a type of MIPI CSI multiplexer. It is hardware with one MIPI CSI connector input and 4 output. It is not capable of USB.

https://www.arducam.com/multi-camera-solutions-for-nvidia-jetson-nano/

OK, and now I think you have to break down the what pipeline to check what cause the issue.
Like gst-launch-1.0 nvarguscmaerasrc ! …

Hello @mattlikens I connected Arducam Multiplier with 2 Pi cameras v2.1 to jetson nano and when I run the 4cam_cv3.py i got these output no camera streams recieved
“”"
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to ‘/tmp/runtime-root’
[ WARN:0] global /home/ivsys-jetsonnano/opencv/modules/videoio/src/cap_gstreamer.cpp (1759) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Internal data stream error.
[ WARN:0] global /home/ivsys-jetsonnano/opencv/modules/videoio/src/cap_gstreamer.cpp (888) open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:0] global /home/ivsys-jetsonnano/opencv/modules/videoio/src/cap_gstreamer.cpp (480) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
unknown control ‘brightness’
unknown control ‘contrast’
unknown control ‘saturation’
unknown control ‘rotate’
unknown control ‘auto_exposure’
unknown control ‘exposure_time_absolute’
unknown control ‘brightness’
unknown control ‘contrast’
unknown control ‘saturation’
unknown control ‘rotate’
unknown control ‘auto_exposure’
unknown control ‘exposure_time_absolute’
[ WARN:0] global /home/ivsys-jetsonnano/opencv/modules/videoio/src/cap_v4l.cpp (998) tryIoctl VIDEOIO(V4L2:/dev/video0): select() timeout.
unknown control ‘brightness’
unknown control ‘contrast’
unknown control ‘saturation’
unknown control ‘rotate’
unknown control ‘auto_exposure’
unknown control ‘exposure_time_absolute’
unknown control ‘brightness’
unknown control ‘contrast’
unknown control ‘saturation’
unknown control ‘rotate’
unknown control ‘auto_exposure’
unknown control ‘exposure_time_absolute’
[ WARN:0] global /home/ivsys-jetsonnano/opencv/modules/videoio/src/cap_v4l.cpp (998) tryIoctl VIDEOIO(V4L2:/dev/video0): select() timeout.
Traceback (most recent call last):
File “4cam_cv3.py”, line 171, in run
h, w, c = frame.shape
AttributeError: ‘NoneType’ object has no attribute ‘shape’
Aborted
“”"

How can I get it working on jetson nano ?
Note that when I run the cameras one by one each time without the multiplier it works