External hardware trigger for CSI cameras

Hello, I have a use case that I would like to verify should be possible before purchasing hardware.

I have a system with 4 CSI cameras. A separate device (PLC) will output a GPIO signal when a frame should be taken from the cameras. This signal will be wired to the trigger pin of all the cameras, so that they are synchronized at the hardware level.

There will be long periods of time (minutes) without taking any images, and once images start, they will be taken at ~ 30 FPS for 5-10 seconds. I have read about some timeout issues with the camera connection, but I am not sure if this will pose an issue.

Will I be able to continuously listen for these image frames on the Jetson using the OpenCV image capture? Or will I need to read the GPIO signal to trigger the start of receiving frames?

hello tom289,

this will be an issue, capture engine will report timeout failure as it cannot receive frames.

FYI,
the default timeout settings is configured to 2500ms.
you may enabled the enableCamInfiniteTimeout=1 to have application keep waiting for frames, however, application might crash if there has no frames after sometime.

1 Like

I see, thanks for the help.

For my application I’ll know in advance when I will start taking images, so if I run into connection problems, I can reconnect before.

hello tom289,

BTW,
you should stop the default running nvargus-daemon service to enabled infinite timeout.
for example,

$ sudo pkill nvargus-daemon
$ export enableCamInfiniteTimeout=1
$ sudo nvargus-daemon &
1 Like

Great, thank you! I will give this all a try when hardware arrives.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.