Relative Linux noob here so please be gentle.
The AR0234CS isn't working on our Jetson Nano. Other cameras work, even other cameras connected to port 1 while the AR0234CS is on port 0 (and vice-versa).
v4l sees it:
$ v4l2-ctl --list-devices
vi-output, imx219 7-0010 (platform:54080000.vi:0):
/dev/video0
$ v4l2-ctl --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
Index : 0
Type : Video Capture
Pixel Format: 'RG10'
Name : 10-bit Bayer RGRG/GBGB
Size: Discrete 3264x2464
Interval: Discrete 0.048s (21.000 fps)
Size: Discrete 3264x1848
Interval: Discrete 0.036s (28.000 fps)
Size: Discrete 1920x1080
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 1640x1232
Interval: Discrete 0.033s (30.000 fps)
Size: Discrete 1280x720
Interval: Discrete 0.017s (60.000 fps)
But simple_camera.py throws errors:
$ /usr/bin/python3 /home/edge/CSI-Camera/simple_camera.py
nvarguscamerasrc sensor-id=0 !video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)20/1 ! nvvidconv flip-method=0 ! video/x-raw, width=(int)1280, height=(int)720, format=(string)BGRx ! videoconvert ! video/x-raw, format=(string)BGR ! appsink
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected...
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 3264 x 2464 FR = 21.000000 fps Duration = 47619048 ; Analog Gain range min 1.000000, max 10.625000; Exposure Range min 13000, max 683709000;
GST_ARGUS: 3264 x 1848 FR = 28.000001 fps Duration = 35714284 ; Analog Gain range min 1.000000, max 10.625000; Exposure Range min 13000, max 683709000;
GST_ARGUS: 1920 x 1080 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 1.000000, max 10.625000; Exposure Range min 13000, max 683709000;
GST_ARGUS: 1640 x 1232 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 1.000000, max 10.625000; Exposure Range min 13000, max 683709000;
GST_ARGUS: 1280 x 720 FR = 59.999999 fps Duration = 16666667 ; Analog Gain range min 1.000000, max 10.625000; Exposure Range min 13000, max 683709000;
GST_ARGUS: 1280 x 720 FR = 120.000005 fps Duration = 8333333 ; Analog Gain range min 1.000000, max 10.625000; Exposure Range min 13000, max 683709000;
GST_ARGUS: Running with following settings:
Camera index = 0
Camera mode = 5
Output Stream W = 1280 H = 720
seconds to Run = 0
Frame Rate = 120.000005
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
nvbuf_utils: Can not get HW buffer from FD... Exiting...
CONSUMER: ERROR OCCURRED
[ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (1757) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module nvarguscamerasrc0 reported: CANCELLED
GST_ARGUS: Cleaning up
(Argus) Error EndOfFile: Unexpected error in reading socket (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 266)
(Argus) Error EndOfFile: Receive worker failure, notifying 1 waiting threads (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 340)
(Argus) Error InvalidState: Argus client is exiting with 1 outstanding client threads (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadCore(), line 357)
(Argus) Error EndOfFile: Receiving thread terminated with error (in src/rpc/socket/client/ClientSocketManager.cpp, function recvThreadWrapper(), line 368)
(Argus) Error EndOfFile: Client thread received an error from socket (in src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 145)
(Argus) Error EndOfFile: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 91)
(Argus) Error InvalidState: Receive thread is not running cannot send. (in src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 96)
(Argus) Error InvalidState: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 91)
[ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (886) open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:0] global /home/nvidia/host/build_opencv/nv_opencv/modules/videoio/src/cap_gstreamer.cpp (480) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
Error: Unable to open camera
(Argus) Error InvalidState: Receive thread is not running cannot send. (in src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 96)
(Argus) Error InvalidState: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 91)
Been at this for hours now but nothing I've found on Google is helping. Even did a system update in case anything was out-of-date - no dice.
HELP?!?
Hello Robert,
First of all, welcome to the Linux world🤗, and nice question post❤️.
Regarding your question, first please allow me to figure out the exact camera module product you are using.
Totally we have two AR0234CS based camera modules:
One is CS-EYECLOUDAI-04 which was sold in Crowd Supply, and now is selling on Mouser;
Another is the AR0234CS camera module with a daughterboard for Raspberry Pi and Jetson Nano, which is selling in our OpenNCC online shop.
Which one were you using with your Jetson Nano?
The right option for you to work with Nano is Option #2.
Assume you were using the right option, the AR0234CS camera module with a daughterboard for Raspberry Pi and Jetson Nano, since this product is a hardware-ready product, to work it with Jetson Nano, users need to develop the camera driver for it.
Below are some suggestions on how to develop the camera driver:
I see from your post above that you have successfully run imx219 based camera:
$ v4l2-ctl --list-devices vi-output, imx219 7-0010(platform:54080000.vi:0): /dev/video0
To develop the driver for the AR0234CS camera module, you can refer to the one you already have for your imx219 camera. Normally there are two tasks you need to do:
Replace the imx219 configuration file with the one for AR0234CS(I will attach those files below).
Request datasheet of AR0234CS from On semi(On semi requires confidentiality for this datasheet, so users have to request it from On semi by themselves). Modify the driver with the AR0234CS datasheet.
AR0234CS configuration file @60Hz
AR0234CS configuration file @120Hz
Above are the information and suggestions I can provide now. Please take a look and feel free to let me know if you have any other questions.
Support and encouragement from me,
Johanna