Fails to run GMSL cameras we designed

Hello,

This topic is derived from following.
https://devtalk.nvidia.com/default/topic/1010018/driveworks/failed-to-run-nvmimg_cap-sample/1

Now we are testing GMSL camera module we designed.
It works well with one camera by using code based nvmimg_cap.
In two cameras connected to same camera group, after it works well for around 10 seconds, the following error is displayed and it stops…

=============================================================

nvmedia: _CaptureThreadFunc: VC:0 FPS=12 delta=3066609
nvmedia: _CaptureThreadFunc: VC:0 FPS=12 delta=3066605
nvmedia: _CaptureThreadFunc: VC:0 FPS=12 delta=3066604
nvmedia: ERROR: ExecuteNextCommand: Failed to read commnad
-nvmedia: ERROR: _GetError_max9286:No Link error detected
nvmedia: WARNING: _CaptureThreadFunc: NvMediaICPGetFrameEx timed out
nvmedia: WARNING: _CaptureThreadFunc: NvMediaICPGetFrameEx timed out
nvmedia: _SaveThreadFunc: saveThread input queue 0 is empty
nvmedia: _CompositeThreadFunc: Waiting for input image from queue 0
nvmedia: _DisplayThreadFunc: Display input queue empty
nvmedia: WARNING: _CaptureThreadFunc: NvMediaICPGetFrameEx timed out
nvmedia: WARNING: _CaptureThreadFunc: NvMediaICPGetFrameEx timed out
nvmedia: _DisplayThreadFunc: Display input queue empty
nvmedia: _CompositeThreadFunc: Waiting for input image from queue 0
nvmedia: _SaveThreadFunc: saveThread input queue 0 is empty
nvmedia: WARNING: _CaptureThreadFunc: NvMediaICPGetFrameEx timed out
nvmedia: WARNING: _CaptureThreadFunc: NvMediaICPGetFrameEx timed out
nvmedia: _SaveThreadFunc: saveThread input queue 0 is empty
nvmedia: _CompositeThreadFunc: Waiting for input image from queue 0
nvmedia: _DisplayThreadFunc: Display input queue empty
nvmedia: WARNING: _CaptureThreadFunc: NvMediaICPGetFrameEx timed out
nvmedia: WARNING: _CaptureThreadFunc: NvMediaICPGetFrameEx timed out
nvmedia: _DisplayThreadFunc: Display input queue empty
nvmedia: _CompositeThreadFunc: Waiting for input image from queue 0
nvmedia: _SaveThreadFunc: saveThread input queue 0 is empty
nvmedia: WARNING: _CaptureThreadFunc: NvMediaICPGetFrameEx timed out
nvmedia: WARNING: _CaptureThreadFunc: NvMediaICPGetFrameEx timed out
nvmedia: _DisplayThreadFunc: Display input queue empty
nvmedia: _CompositeThreadFunc: Waiting for input image from queue 0
nvmedia: _SaveThreadFunc: saveThread input queue 0 is empty
nvmedia: WARNING: _CaptureThreadFunc: NvMediaICPGetFrameEx timed out
nvmedia: ERROR: _CaptureThreadFunc: keep failing at NvMediaICPGetFrameEx for 11 times
nvmedia: _CaptureThreadFunc: Capture thread exited
nvmedia: _ErrHandlerThreadFunc: Error Handler thread exited

Error message is “_GetError_max9286: No Link error detected” and “NvMedia ICPGetFrameEx timed out” only,
We checked ICP error status by “NvMediaICPGetErrorInfo” API too, but it was no error(NvMediaICPErrorStatus is 0x0).

Frame capturing in ICP fails after “_GetError_max9286: No Link error detected” is displayed,
I guess there is the cause of this error in ISC.
but, the error information to be displayed is few, and I cannot narrow down the cause of the error anymore.

I am going to check max9286 registers not checked by _GetError_max9286 API,
and I heve no idea to identify the cause of the error other than this.

Could anyone provide me the way to display detailed error information.

Thanks.

Sensor information is below.

  • Sensor: imx 290
  • Resolution: 1920 × 1081
  • Fps: 30

I uses the following customized drive-px2-a.conf.

[capture-params-set 1]
capture-name  = "cxd"
capture-description   = "cxd5700 at csi-ab"
board          = "E2379-c00"
input_device   = "ref_max9286_9271_cxd5700"
input_format   = "raw12"
surface_format = "raw12"
resolution     = "1920x1081"
csi_lanes      = 4
interface      = "csi-ab"
embedded_lines_top = 0
embedded_lines_bottom = 0
i2c_device     = 7
max9271_address = 0x40
max9286_address = 0x48
sensor_address  = 0x1A

About the output result of Dmesg, there is no new message output before and after application execution.

Hi atsutaka,

AFAIK, you also need to add your device to samples/nvmedia/ext_dev_prgm/img_dev/maxim to get your device supported.

Did you create any patch for it?

Dear WayneWWW,

Yes, I have implemented our camera module settings to there.

Hi WayneWWW,
Can you brief me on how to add my device config to samples/nvmedia/ext_dev_prgm/img_dev/maxim ? I am

facing a similar issue with:

nvmedia: ERROR: _CaptureThreadFunc: Keep failing at NvMediaICPGetFrameEx for 11 times

hello atsutaka,

looks you connect two cameras to the same camera group, could you please take a try to access them at the different groups.
thanks

Hi JerryChang and WayneWWW,

This issue have solved.
It works fine on both the same camera group and different groups!!

It was caused by not being able to synchronize between cameras because of wrong setting of deserializer and camera module.

I appreciate your kind advices.