Failed to get frames if more than 3 sensors in single session

Hi, big problem was detected.

It is the continuation of this topic: Solved. Argus library createCaptureSession status=2

Bug tested for Argus 98.3 and for new 6 cameras sync mod for single session.

When capture session created with <=3 cameras then frames ok.

If session created from >3 cameras then all frames comes from 1st sensor.

PS: I refactored code to multisession and it works with same HW setup and new 6sync libs. So it is single session issue.

Please help.

libArgus team can help us?

Anybody can help us?

Have a check the badge and position in device tree for each camera.

https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/camera_sensor_prog.47.1.html

In dts i see all types: bottomleft, bottomright, centerleft, centerright, topleft, and topright.

Order is important?

tree_fixed.dts (277.9 KB)

Can you confirm bug with libargus?

Could you attached the binary and source code here to verify.

Source of my code?
Binary of Leopard Imaging drivers?

The APP to open 4 cameras in single session.

Here m_camerasNum holds cameras number.

Camera.cpp (13.8 KB)

Removed some unused code.

It is enough for you?

Lost some file

[CC] camera/argus/public/samples/syncSensor/main.cpp
/media/snchen/project/project/32.6/camera/argus/public/samples/syncSensor/main.cpp:9:10: fatal error: ../ifc/Camera.hpp: No such file or directory
 #include "../ifc/Camera.hpp"
          ^~~~~~~~~~~~~~~~~~~
compilation terminated.

Please replace it with syncSensor main.cpp.
bug reproduced.
3 cam - ok
4+ failed.

main.cpp (10.2 KB)

At the top you can set camerasNum and path to store images.

Did you reproduce the bug?

Yes, current able repo it.

Can you give some comments? It is Nvidia issue or Leopard Imaging? Did you fix it?

Suppose it’s nvidia issue.
Need take time to debug it.

Thanks.
Looking forward to a fix.

Hi @vsw can you share your working multisession approach for reference? Thanks!

Here is it.
You need m_triggerMode = false and m_singleSessionMode = false.

config.json:

// config for imx577
{	
	"recordPath": "/home/ubuntu/dcim",
	"frameResolution":
	{
		"width": 4032, 
		"height": 3040
	},
	"camerasNum": 6,
    "debug": 0,
    "fps": 10.0,     
    "exposureTime": 1000000.0,
    "expoCompensation": 0,
    "analogGain": 1.0,
    "digitalGain": 1.0,
    "awbAuto": 1,
    "expoAuto": 1,
    "wbGains":  [2.42856, 1, 1, 1.54754], 
    "useCCM": 0,
    "ccm": [ 1.58448000,-0.26631000, 0.03009000, -0.42808000, 1.53820000,-0.66577000, -0.15640000,-0.27189000, 1.63568000 ],
		
	"captureEveryFrameN": 1,	
	"framesNumber": 1,
	"skipFrames": 0,
	"triggerMode": 0,
	"singleSessionMode": 0,

	
}


Camera.hpp (6.2 KB)
Camera.cpp (39.1 KB)

@shaneccc Do you have news?