We’re trying to move to Orin Nano and Orin NX from Xavier NX and the CSI cameras that work fine with Xavier NX does not work with the Orins. We’re currently using Orin Nano Dev Kit (from Seeed Studio), Orin NX 8GB module on an A603 carrier board (from Seeed), and a Xavier NX module on an A203 carrier board (from Seeed).
To simplify the comparison of the working system (Xavier NX) with the two non-working systems (Orin Nano and Orin NX), we’ve installed jetpack 5.1.1 (rev 1) on each system from scratch using sdkmanager, then installed v4l-utils (sudo apt install v4l-utils), and then run v4l2-ctl commands.
v4l2-ctl --list-devices
The output for the Xavier NX is:
NVIDIA Tegra Video Input Device (platform:tegra-camrtc-ca): /dev/media0 vi-output, imx219 9-0010 (platform:tegra-capture-vi:0): /dev/video0
The output for both the Orins is:
NVIDIA Tegra Video Input Device (platform:tegra-camrtc-ca): /dev/media0 vi-output, imx219 9-0010 (platform:tegra-capture-vi:1): /dev/video0
v4l2-ctl -d /dev/video0 --stream-count=1 --stream-mmap --stream-to=frame.raw --verbose The output to stdout/stderr starts the same for all 3 devices:VIDIOC_QUERYCAP: ok VIDIOC_REQBUFS returned 0 (Success) VIDIOC_QUERYBUF returned 0 (Success) VIDIOC_QUERYBUF returned 0 (Success) VIDIOC_QUERYBUF returned 0 (Success) VIDIOC_QUERYBUF returned 0 (Success) VIDIOC_QBUF returned 0 (Success) VIDIOC_QBUF returned 0 (Success) VIDIOC_QBUF returned 0 (Success) VIDIOC_QBUF returned 0 (Success) VIDIOC_STREAMON returned 0 (Success)However, at this point the behavior of the Xavier and the Orins diverges. On the Xavier the final stdout/stderr output is:
cap dqbuf: 0 seq: 0 bytesused: 16163840 ts: 2880.964110 (ts-monotonic, ts-src-eof)and it writes out a single image to frame.raw.
On the Orins, no image is written and the output to stdout/stderr repeats the following 5 lines forever:
cap dqbuf: 0 seq: 0 bytesused: 16163840 ts: 0.000000 (error, ts-monotonic, ts-src-eof) cap dqbuf: 0 seq: 0 bytesused: 16163840 ts: 0.000000 (error, ts-monotonic, ts-src-eof) cap dqbuf: 1 seq: 1 bytesused: 16163840 ts: 0.000000 (error, ts-monotonic, ts-src-eof) cap dqbuf: 2 seq: 2 bytesused: 16163840 ts: 0.000000 (error, ts-monotonic, ts-src-eof) cap dqbuf: 3 seq: 3 bytesused: 16163840 ts: 0.000000 (error, ts-monotonic, ts-src-eof)On the Orin Nano Development Kit there are 2 CSI connectors and if the camera is plugged in to the 2nd connector then it works correctly and similarly to the Xavier NX. However, on both Orins the camera does not work (per the behavior described above) if the camera is plugged into the 1st connector (and the Orin NX has only 1 CSI connector).
How can get the camera to work when connected to the 1st (and often only CSI connector)?
P.S. A saw suggestions to use /opt/nvidia/jetson-io/jetson-io.py. I did this and it didn’t help.