Hi, I bought an Arducam IMX219 8MP camera for my Jetson Nano and I can’t get any stream from it at all. I keep getting the same error that’s mentioned in the Arducam guide that came with the camera. This is actually the third camera I’ve tried and they’ve all done the same thing. I’ve unplugged and reconnected the ribbon cable over and over, made sure it’s seated properly, but the issue won’t go away. Running it on a Jetson Nano.
Thanks for the details. Since it’s the same error on multiple cameras, let’s pull a bug report so we can see what’s actually going on under the hood. Could you reboot the device and then run these commands:
wget -O arducam-camera-bug-report-nvidia https://github.com/ketai-dhr/arducam-camera-bug-report/releases/download/tools/arducam-camera-bug-report-nvidia
chmod +x ./arducam-camera-bug-report-nvidia
./arducam-camera-bug-report-nvidia
That will generate an arducam-bug-report.txt file in the current directory. Please send that file to me through private message so we can analyze it.
Okay, will do. I’ll run the tool and get back to you.
Here it is - I’ve sent the bug report file through private message. Please take a look.
Got it, thanks. While we’re going through the report, could you also send pictures of the hardware connection at both ends? One of the camera side and one of the Jetson board side. A ribbon cable that’s slightly off or not fully latched can cause exactly this kind of stream failure.
Sure, I’ve sent the pictures of both connections through private message.
Quick update: I ran ls /dev/video0 and the camera actually shows up now, so the device is being detected. But when I try to run the stream command, it still fails. So the camera is detected but I still can’t get a stream.
Any update on this? Still stuck.
Thanks for the update. Since the camera shows up as /dev/video0 but the stream command still fails, let’s try a direct gst-launch pipeline. Set SENSOR_ID to match the port you’re using and pick a valid FRAMERATE, then run:
SENSOR_ID=0 # 0 for CAM0 and 1 for CAM1 ports
FRAMERATE=60 # Framerate can go from 2 to 60 for 1920x1080 mode
gst-launch-1.0 nvarguscamerasrc sensor-id=$SENSOR_ID ! "video/x-raw(memory:NVMM),width=1920,height=1080,framerate=$FRAMERATE/1" ! nvvidconv ! nvoverlaysink
Let me know what output you get.
I tried the gst-launch command and it failed with ARGUS errors. Here’s the full output:
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
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;
ARGUS_ERROR: Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute: 679 Frame Rate specified is greater than supported
GST_ARGUS: Running with following settings:
- Camera index = 0
- Camera mode = 0
- Output Stream W = 3264 H = 2464
- seconds to Run = 0
- Frame Rate = 21.000000
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
ARGUS_ERROR: Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute: 899 InvalidState.
GST_ARGUS: Cleaning up
Got EOS from element "pipeline0".
Execution ended after 0:00:00.710605500
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
It says “Frame Rate specified is greater than supported” at execute: 679, then “InvalidState” at execute: 899. One thing I noticed - I generated the bug report again with the camera actually connected this time. The previous log file I sent didn’t have the camera connected.
It works now. I adjusted the resolution and the stream finally came up. Looks like the camera was set to a resolution higher than what it supports, and that was preventing the stream. Just to note, the camera is brand new and I didn’t change anything on it.
Glad it’s working. Just to summarize for anyone else hitting this: the stream failure was caused by the camera being configured at a resolution higher than supported. The log shows the telltale error:
ARGUS_ERROR: Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute: 679 Frame Rate specified is greater than supported
For a quick start, you can run start.py from the quick start script, selecting imx219 in the list to preview or save:
Install the pick module first:
sudo pip3 install pick==1.3.0
Then run start.py and choose imx219 in the list. Just keep in mind the IMX219 1920x1080 mode supports framerates from 2 to 60; requesting an unsupported resolution/framerate will cause that “Frame Rate specified is greater than supported” error.