I’m working with an Orin NX module on a custom carrier board equipped with two MAX96712 deserializers. Also, the kernel is L4T R36.4.4.
When previewing 8 YUV cameras (ISX021), everything works perfectly—all streams display correctly. However, when using a Bayer format camera (AR0233), the preview window for sensor-id=3 consistently shows a black screen. Interestingly, fpsdisplaysink reports that the stream is running at 30 FPS, but the image remains completely dark.
This issue occurs regardless of whether I run all cameras (sensor-id=0 to 7) or just a single one. Only the camera assigned to sensor-id=3 exhibits this black screen behavior.
may I know how many cameras in your system?
also, which CSI port is this sensor-id=3 camera used? please share the simple hardware connections for reference.
let me have confirmation.
your camera use-case is 8x AR0233, you’ve tested SerDes chip with 8 YUV camera instead, and verified all of YUV camera worked normally?
That’s correct. All 8 YUV cameras are operating normally. Among the 8 AR0233 cameras, only the unit with sensor-id=3 is displaying a black screen; the remaining 7 are functioning as expected.
please give it a try to revise position property in the tegra-camera-platform
for instance,
let’s have multi-camera node definition as below for verification.
all right, please share me the latest device tree.
please also check it’s actually the camera node with position = "topleft"; having black screen failure.
it looks no error logs has reported? is this camera facing to a bright light?
besides.. let’s try dump a frame by setting gain/exposure manually for checking. $ v4l2-ctl --set-fmt-video=width=1920,height=1080,pixelformat=RG10 --set-ctrl bypass_mode=0 --stream-mmap --stream-skip=9 --stream-count=1 --set-ctrl=gain=200 --set-ctrl=exposure=2800 --stream-to=test.raw -d /dev/video0
is it due to incorrect 3A calculation?
let’s try below gst pipeline to capture all the camera frames into jpeg file for examination.
for instance, $ gst-launch-1.0 nvarguscamerasrc sensor-id=0 num-buffers=101 ! 'video/x-raw(memory:NVMM),width=1920, height=1080, framerate=30/1, format=NV12' ! nvvidconv ! jpegenc ! multifilesink location=~/Desktop/tmp/capture%d.jpeg -e
besides..
you’re able to capture validate frame with v4l2 IOCTL setting gain/exposure manually.
you may also try adding the sensor controls to nvarguscamerasrc for confirmation.
for instance, $ gst-launch-1.0 -e nvarguscamerasrc sensor-id=0 num-buffers=1 ispdigitalgainrange='1 1' aelock=true gainrange='1 1' wbmode=3 exposuretimerange="300000000 300000000" ! "video/x-raw(memory:NVMM),width=1920,height=1080,framerate=30/1" ! nvjpegenc ! filesink location=capture-test.jpeg
I ran the following command to capture multiple image frames. However, when using sensor-id=3, all the 101 captured frames are still black. But other sensor-ids are fine.
let’s configure below settings on the target to obtain Argus debug logs.
for instance, $ sudo su # pkill nvargus-daemon # export enableCamCoreLogs=5 # nvargus-daemon
it will output lots of logs. please dig into the AE debug logs,
let’s check the prefix with runBreakDownAlgorithm output for more details.
for instance, runBreakDownAlgorithm output ---: convergenceStatus: 1, framerate 30.00000, requiredCain 0.01330 totalAchievedCGains 0.01330 with AA 0.17361 {step 0, f-Number 2.40000}, ET 0.03333, AG 2.29763, ISPDG 1.00000
The output of runBreakDownAlgorithm for both video2 and video3 is identical.
However, while the preview for video2 displays correctly, video3 shows a black screen.
your debug logs shows convergenceStatus: 1, it meant it’s in the searching state, which has indicate specified algorithm is still searching for an optimal set of values.
besides.. all these cameras they’re sharing the same algorithm.
all these camera should have black screen scenario if that’s software stack issue.
I doubt it might be due to incorrect tuning file has applied, could you please check the badge property within your device tree. let’s try using another unique name that identifies this module.