Error setting up Jetson Nano with a CSI Camera

The Python SDK requires python 3.7 or more. Can you install a more recent version and try it again?

Aurelien

Oh OK thank you so much it’s working :grin: :sweat_smile:

1 Like

Glad to hear :slight_smile: I added the python version in our doc.

Aurelien

2 Likes

I’m having a similar problem
I have a RPi Cam V2.1 installed on a jetson nano
It works when tested with
nvgstcapture-1.0
and also with
gst-launch-1.0 nvarguscamerasrc …

but invoking edge-impulse-linux gives me:
edge-impulse-linux --disable-microphone
Edge Impulse Linux client v1.2.5

Failed to initialize linux tool Error: Cannot find any webcams, run this command with --disable-camera to skip selection
    at /usr/local/lib/node_modules/edge-impulse-linux/build/cli/linux/linux.js:360:23
    at processTicksAndRejections (internal/process/task_queues.js:93:5)

I did ‘npm update -g edge-impulse-linux’
as suggested but there is no improvement.

Current firmware:
cat /etc/nv_tegra_release
# R32 (release), REVISION: 5.1, GCID: 26202423, BOARD: t210ref, EABI: aarch64, DATE: Fri Feb 19 16:45:52 UTC 2021

edge-impulse-linux --version
1.2.5

Any suggestions?

@gjsmith can you:

  1. Give the output of edge-impulse-linux --verbose
  2. The output of gst-launch-1.0 nvarguscamerasrc

Below are the two outputs you requested.

Note that when I use a USB webcam everything is ok. Just the CSI camera (raspberry V2.1) is not found.

What may be relevant is that this nano dev kit is an A02 board (released earlier), not the B01 board.

The A02 has only one CSI port. However it still displays video from the V2.1 camera fine
when using say:
gst-launch-1.0 nvarguscamerasrc ! nvvidconv ! ximagesink

If you decide that this is an A02 specific issue then that’s ok, I am now using a webcam
for initial evaluation of edge-impulse

gjsmith@nano-1:~$ edge-impulse-linux --disable-microphone --verbose
Edge Impulse Linux client v1.2.5

[GST] gst-launch-1.0 nvarguscamerasrc options GST_ARGUS: Creating output stream
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:
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
GST_ARGUS: Cleaning up
GST_ARGUS: Done Success
[GST] Found devices: []
Failed to initialize linux tool Error: Cannot find any webcams, run this command with --disable-camera to skip selection
at /usr/local/lib/node_modules/edge-impulse-linux/build/cli/linux/linux.js:360:23

gjsmith@nano-1:~$ gst-device-monitor-1.0
Probing devices…

Device found:

name  : Monitor of Built-in Audio Analogue Stereo
class : Audio/Source
caps  : audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
properties:
	device.description = "Monitor\ of\ Built-in\ Audio\ Analogue\ Stereo"
	device.class = monitor
	alsa.card = 1
	alsa.card_name = tegra-snd-t210ref-mobile-rt565x
	alsa.long_card_name = tegra-snd-t210ref-mobile-rt565x
	device.bus_path = platform-sound
	sysfs.path = /devices/sound/sound/card1
	device.form_factor = internal
	device.string = 1
	module-udev-detect.discovered = 1
	device.icon_name = audio-card
gst-launch-1.0 pulsesrc device=alsa_output.platform-sound.analog-stereo.monitor ! ...

Device found:

name  : Built-in Audio Analogue Stereo
class : Audio/Source
caps  : audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
properties:
	alsa.resolution_bits = 16
	device.api = alsa
	device.class = sound
	alsa.class = generic
	alsa.subclass = generic-mix
	alsa.name = ""
	alsa.id = "ADMAIF1\ CIF\ ADMAIF1-0"
	alsa.subdevice = 0
	alsa.subdevice_name = "subdevice\ \#0"
	alsa.device = 0
	alsa.card = 1
	alsa.card_name = tegra-snd-t210ref-mobile-rt565x
	alsa.long_card_name = tegra-snd-t210ref-mobile-rt565x
	device.bus_path = platform-sound
	sysfs.path = /devices/sound/sound/card1
	device.form_factor = internal
	device.string = front:1
	device.buffering.buffer_size = 32768
	device.buffering.fragment_size = 16384
	device.access_mode = mmap+timer
	device.profile.name = analog-stereo
	device.profile.description = "Analogue\ Stereo"
	device.description = "Built-in\ Audio\ Analogue\ Stereo"
	module-udev-detect.discovered = 1
	device.icon_name = audio-card
gst-launch-1.0 pulsesrc device=alsa_input.platform-sound.analog-stereo ! ...

Device found:

name  : Built-in Audio Analogue Stereo
class : Audio/Sink
caps  : audio/x-raw, format=(string){ S16LE, S16BE, F32LE, F32BE, S32LE, S32BE, S24LE, S24BE, S24_32LE, S24_32BE, U8 }, layout=(string)interleaved, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
        audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 32 ];
properties:
	alsa.resolution_bits = 16
	device.api = alsa
	device.class = sound
	alsa.class = generic
	alsa.subclass = generic-mix
	alsa.name = ""
	alsa.id = "ADMAIF1\ CIF\ ADMAIF1-0"
	alsa.subdevice = 0
	alsa.subdevice_name = "subdevice\ \#0"
	alsa.device = 0
	alsa.card = 1
	alsa.card_name = tegra-snd-t210ref-mobile-rt565x
	alsa.long_card_name = tegra-snd-t210ref-mobile-rt565x
	device.bus_path = platform-sound
	sysfs.path = /devices/sound/sound/card1
	device.form_factor = internal
	device.string = front:1
	device.buffering.buffer_size = 32768
	device.buffering.fragment_size = 16384
	device.access_mode = mmap+timer
	device.profile.name = analog-stereo
	device.profile.description = "Analogue\ Stereo"
	device.description = "Built-in\ Audio\ Analogue\ Stereo"
	module-udev-detect.discovered = 1
	device.icon_name = audio-card
gst-launch-1.0 ... ! pulsesink device=alsa_output.platform-sound.analog-stereo

@gjsmith So your FPS settings are denoted with a . as separator, mine are , - and thus the regex that parses the nvarguscamerasrc options fails. Localization issue maybe? I’ll push out a fix for the CLI!

update: CLI v1.2.6 has been released which fixes this issue! Thanks again for reporting!

1 Like

Hello!! I follow all of the above comments try to fix but i have this problem below. I am using Camera Module V1. Thank you :slight_smile:

Failed to initialize linux tool Error: Cannot find any webcams, run this command with --disable-camera to skip selection
at /usr/lib/node_modules/edge-impulse-linux/build/cli/linux/linux.js:435:23