Problem with connecting arduino uno Q to project

Question/Issue:
Problem with edge-impulse-linux

Project ID:
923373

Context/Use case:
i cant connect arduino uno q 4gb to project becouse i have issues with camera logitech c270

Steps Taken:

aster using command i got information:
? To which project do you want to connect this device? (:mag: type to search) 92337
3
? Select a microphone qcm2290 - Arduino-Imola-HPH-LOUT
[SER] Using microphone hw:1,0
[GST] checking for /etc/os-release
Failed to initialize linux tool Capture process failed with code 1

GStreamer (gst-launch-1.0) stopped before emitting any images. This most likely means that the launch command is incorrect or that your camera is unresponsive. Here is the launch command:

gst-launch-1.0 libcamerasrc camera-name=“/base/soc@0/usb@4ef8800/usb@4e00000-1.2:1.0-046d:0825” ! video/x-raw,width=648,height=480 ! videoconvert ! jpegenc ! multifilesink location=resized%05d.jpg post-messages=true sync=false

You can try one of the following:

  • If your camera used to work:
    • Disconnect and reconnect the camera (if you use an external camera)
    • Kill all other GStreamer commands, via: ‘sudo killall gst-launch-1.0’
  • Run with ‘–verbose’ to see the raw GStreamer output. It might contain a hint why the process fails.
  • Run with ‘–dont-output-rgb-buffers’ - this will disable RGB output buffer creation which can help with targets that advertise RGB capabilities on the video source, but don’t actually support this.

If this does not resolve your issue, then please open a forum post at https://forum.edgeimpulse.com and include:

  • Your device, operating system, what camera you’re using, and how the camera is connected (e.g. USB, CSI)
  • The launch command (above)
  • The verbose output (run this application with --verbose)
  • The output of ‘gst-device-monitor-1.0’
  • The output of ‘gst-inspect-1.0’
    Re-run this command with --verbose to enable debug logs

Expected Outcome:
Connecting arduino uno@ to project in edge impulse

Actual Outcome:
[Describe what actually happened]

Reproducibility:

  • [ ] Always

Hi @Leszek - have the camera worked in the past or has it always failed?

How is the camera connected to the UNO Q, e.g., what type of USB hub are you using? I know that sometimes the UNO Q can be particular about what hub is being used.

Hello @Leszek could you please reply these questions? Thanks!

  • How the camera is connected (e.g. USB, CSI)?
  • Share the exact launch command
  • The verbose output (run this application with --verbose)
  • The output of ‘gst-device-monitor-1.0’
  • The output of ‘gst-inspect-1.0’

Re-run this command with --verbose to enable debug logs and share the logs!

Thanks!

i use u green cm512. it was working in the past. I am using arduino uno q 4Gb. It works fine in other projects (id of working project 822587).

Camera its connecteg by usb and dongle ugreen cm512. It works fine on other projects (id 822587).
i start edge impulse on ssh by command “edge-impulse-linux”.

result of :
arduino@cornie:~$ edge-impulse-linux --verbose
Edge Impulse Linux client v1.24.2

[SER] Using microphone hw:1,0
[GST] checking for /etc/os-release
[GST] Found devices: [
{
“id”: “”,
“name”: “/base/soc@0/usb@4ef8800/usb@4e00000-1.2:1.0-046d:0825”,
“caps”: [
{
“type”: “video/x-raw”,
“width”: 160,
“height”: 120,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 176,
“height”: 144,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 320,
“height”: 176,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 320,
“height”: 240,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 352,
“height”: 288,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 432,
“height”: 240,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 544,
“height”: 288,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 640,
“height”: 360,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 640,
“height”: 480,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 752,
“height”: 416,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 800,
“height”: 448,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 864,
“height”: 480,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 800,
“height”: 600,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 960,
“height”: 544,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 1024,
“height”: 576,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 960,
“height”: 720,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 1184,
“height”: 656,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 1280,
“height”: 720,
“framerate”: 0,
“formats”: [
“YUY2”
]
},
{
“type”: “video/x-raw”,
“width”: 1280,
“height”: 960,
“framerate”: 0,
“formats”: [
“YUY2”
]
}
],
“videoSource”: “libcamerasrc”
}
]
[GST] Temp directory is /dev/shm/edge-impulse-clij7am6G
[GST] Starting gst-launch-1.0 libcamerasrc camera-name=“/base/soc@0/usb@4ef8800/usb@4e00000-1.2:1.0-046d:0825” ! video/x-raw,width=648,height=480 ! videoconvert ! jpegenc ! multifilesink location=resized%05d.jpg post-messages=true sync=false
[GST] Setting pipeline to PAUSED …

[GST] [0:05:48.717139700] [1621] INFO Camera camera_manager.cpp:327 libcamera v0.4.0

[GST] [0:05:48.733499604] [1625] ERROR DmaBufAllocator dma_buf_allocator.cpp:119 Could not open any dma-buf provider

[GST] Pipeline is live and does not need PREROLL …

[GST] Pipeline is PREROLLED …
Setting pipeline to PLAYING …
New clock: GstSystemClock

[GST] Execution ended after 0:00:00.002865845
Setting pipeline to NULL …

[GST] ERROR: from element /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0: Internal data stream error.
Additional debug info:
…/src/gstreamer/gstlibcamerasrc.cpp(662): gst_libcamera_src_task_enter (): /GstPipeline:pipeline0/GstLibcameraSrc:libcamerasrc0:
streaming stopped, reason not-negotiated (-4)

[GST] Freeing pipeline …

Failed to initialize linux tool Capture process failed with code 1

GStreamer (gst-launch-1.0) stopped before emitting any images. This most likely means that the launch command is incorrect or that your camera is unresponsive. Here is the launch command:

gst-launch-1.0 libcamerasrc camera-name=“/base/soc@0/usb@4ef8800/usb@4e00000-1.2:1.0-046d:0825” ! video/x-raw,width=648,height=480 ! videoconvert ! jpegenc ! multifilesink location=resized%05d.jpg post-messages=true sync=false

You can try one of the following:

  • If your camera used to work:
    • Disconnect and reconnect the camera (if you use an external camera)
    • Kill all other GStreamer commands, via: ‘sudo killall gst-launch-1.0’
  • Run with ‘–verbose’ to see the raw GStreamer output. It might contain a hint why the process fails.
  • Run with ‘–dont-output-rgb-buffers’ - this will disable RGB output buffer creation which can help with targets that advertise RGB capabilities on the video source, but don’t actually support this.

If this does not resolve your issue, then please open a forum post at https://forum.edgeimpulse.com and include:

  • Your device, operating system, what camera you’re using, and how the camera is connected (e.g. USB, CSI)
  • The launch command (above)
  • The verbose output (run this application with --verbose)
  • The output of ‘gst-device-monitor-1.0’
  • The output of ‘gst-inspect-1.0’

arduino@cornie:~$ gst-device-monitor-1.0
Probing devices…

[0:11:14.280151540] [1832] INFO Camera camera_manager.cpp:327 libcamera v0.4.0
[0:11:14.853142769] [1836] ERROR DmaBufAllocator dma_buf_allocator.cpp:119 Could not open any dma-buf provider

Device found:

    name  : /base/soc@0/usb@4ef8800/usb@4e00000-1.2:1.0-046d:0825
    class : Source/Video
    caps  : image/jpeg, width=160, height=120
            image/jpeg, width=176, height=144
            image/jpeg, width=320, height=176
            image/jpeg, width=320, height=240
            image/jpeg, width=352, height=288
            image/jpeg, width=432, height=240
            image/jpeg, width=544, height=288
            image/jpeg, width=640, height=360
            image/jpeg, width=640, height=480
            image/jpeg, width=752, height=416
            image/jpeg, width=800, height=448
            image/jpeg, width=864, height=480
            image/jpeg, width=800, height=600
            image/jpeg, width=960, height=544
            image/jpeg, width=1024, height=576
            image/jpeg, width=960, height=720
            image/jpeg, width=1184, height=656
            image/jpeg, width=1280, height=720
            image/jpeg, width=1280, height=960
            video/x-raw, format=YUY2, width=160, height=120
            video/x-raw, format=YUY2, width=176, height=144
            video/x-raw, format=YUY2, width=320, height=176
            video/x-raw, format=YUY2, width=320, height=240
            video/x-raw, format=YUY2, width=352, height=288
            video/x-raw, format=YUY2, width=432, height=240
            video/x-raw, format=YUY2, width=544, height=288
            video/x-raw, format=YUY2, width=640, height=360
            video/x-raw, format=YUY2, width=640, height=480
            video/x-raw, format=YUY2, width=752, height=416
            video/x-raw, format=YUY2, width=800, height=448
            video/x-raw, format=YUY2, width=864, height=480
            video/x-raw, format=YUY2, width=800, height=600
            video/x-raw, format=YUY2, width=960, height=544
            video/x-raw, format=YUY2, width=1024, height=576
            video/x-raw, format=YUY2, width=960, height=720
            video/x-raw, format=YUY2, width=1184, height=656
            video/x-raw, format=YUY2, width=1280, height=720
            video/x-raw, format=YUY2, width=1280, height=960
    gst-launch-1.0 libcamerasrc camera-name="/base/soc\@0/usb\@4ef8800/usb\@4e00000-1.2:1.0-046d:0825" ! ...

Device found:

    name  : Webcam C270 Mono
    class : Audio/Source
    caps  : audio/x-raw, format={ (string)S16LE, (string)S16BE, (string)F32LE, (string)F32BE, (string)S32LE, (string)S32BE, (string)S24LE, (string)S24BE, (string)S24_32LE, (string)S24_32BE, (string)U8 }, layout=interleaved, rate=[ 1, 768000 ], channels=[ 1, 32 ]
            audio/x-alaw, rate=[ 1, 768000 ], channels=[ 1, 32 ]
            audio/x-mulaw, rate=[ 1, 768000 ], channels=[ 1, 32 ]
    properties:
            alsa.card = 0
            alsa.card_name = C270 HD WEBCAM
            alsa.class = generic
            alsa.components = USB046d:0825
            alsa.device = 0
            alsa.driver_name = snd_usb_audio
            alsa.id = USB Audio
            alsa.long_card_name = C270 HD WEBCAM at usb-xhci-hcd.2.auto-1.2, high speed
            alsa.mixer_name = USB Mixer
            alsa.name = USB Audio
            alsa.resolution_bits = 16
            alsa.subclass = generic-mix
            alsa.subdevice = 0
            alsa.subdevice_name = subdevice #0
            alsa.sync.id = 00000000:00000000:00000000:00000000
            api.alsa.card.longname = C270 HD WEBCAM at usb-xhci-hcd.2.auto-1.2, high speed
            api.alsa.card.name = C270 HD WEBCAM
            api.alsa.path = hw:0
            api.alsa.pcm.card = 0
            api.alsa.pcm.stream = capture
            audio.channels = 1
            audio.position = MONO
            card.profile.device = 1
            device.api = alsa
            device.class = sound
            device.icon_name = audio-card-analog
            device.id = 48
            device.profile.description = Mono
            device.profile.name = mono-fallback
            device.routes = 1
            factory.name = api.alsa.pcm.source
            media.class = Audio/Source
            device.description = Webcam C270
            node.name = alsa_input.usb-046d_C270_HD_WEBCAM_200901010001-02.mono-fallback
            node.nick = C270 HD WEBCAM
            node.pause-on-idle = false
            object.path = alsa:acp:WEBCAM:1:capture
            port.group = capture
            priority.driver = 2000
            priority.session = 2000
            factory.id = 19
            clock.quantum-limit = 8192
            client.id = 47
            node.driver = true
            node.loop.name = data-loop.0
            library.name = audioconvert/libspa-audioconvert
            object.id = 50
            object.serial = 50
            api.acp.auto-port = false
            api.acp.auto-profile = false
            api.alsa.card = 0
            api.alsa.split-enable = true
            api.alsa.use-acp = true
            api.dbus.ReserveDevice1 = Audio0
            api.dbus.ReserveDevice1.Priority = -20
            device.bus = usb
            device.bus-id = usb-046d_C270_HD_WEBCAM_200901010001-02
            device.bus_path = platform-xhci-hcd.2.auto-usb-0:1.2:1.2
            device.enum.api = udev
            device.form_factor = webcam
            device.name = alsa_card.usb-046d_C270_HD_WEBCAM_200901010001-02
            device.nick = C270 HD WEBCAM
            device.plugged.usec = 12274633
            device.product.id = 0x0825
            device.product.name = Webcam C270
            device.serial = 046d_C270_HD_WEBCAM_200901010001
            device.subsystem = sound
            sysfs.path = /devices/platform/soc@0/4ef8800.usb/4e00000.usb/xhci-hcd.2.auto/usb1/1-1/1-1.2/1-1.2:1.2/sound/card0
            device.vendor.id = 0x046d
            device.vendor.name = Logitech, Inc.
            spa.object.id = 2
            device.string = 0
            is-default = true
    gst-launch-1.0 pulsesrc device=alsa_input.usb-046d_C270_HD_WEBCAM_200901010001-02.mono-fallback ! ...

Device found:

    name  : Monitor of Built-in Audio HDMI Digital Stereo Output
    class : Audio/Source
    caps  : audio/x-raw, format={ (string)S16LE, (string)S16BE, (string)F32LE, (string)F32BE, (string)S32LE, (string)S32BE, (string)S24LE, (string)S24BE, (string)S24_32LE, (string)S24_32BE, (string)U8 }, layout=interleaved, rate=[ 1, 768000 ], channels=[ 1, 32 ]
            audio/x-alaw, rate=[ 1, 768000 ], channels=[ 1, 32 ]
            audio/x-mulaw, rate=[ 1, 768000 ], channels=[ 1, 32 ]
    properties:
            alsa.card = 1
            alsa.card_name = Arduino-Imola-HPH-LOUT
            alsa.class = generic
            alsa.device = 3
            alsa.driver_name = snd_soc_sm8250
            alsa.id = MultiMedia4 (*)
            alsa.long_card_name = Arduino-Imola-1.0
            alsa.mixer_device = _ucm0003.hw:ArduinoImolaHPH
            alsa.name =
            alsa.resolution_bits = 16
            alsa.subclass = generic-mix
            alsa.subdevice = 0
            alsa.subdevice_name = subdevice #0
            alsa.sync.id = 00000000:00000000:00000000:00000000
            api.alsa.card.longname = Arduino-Imola-1.0
            api.alsa.card.name = Arduino-Imola-HPH-LOUT
            api.alsa.open.ucm = true
            api.alsa.path = hw:ArduinoImolaHPH,3
            api.alsa.pcm.card = 1
            api.alsa.pcm.stream = playback
            audio.channels = 2
            audio.position = FL,FR
            card.profile.device = 0
            device.api = alsa
            device.class = monitor
            device.icon_name = video-display
            device.id = 49
            device.profile.description = HDMI Digital Stereo Output
            device.profile.name = HDMI: HDMI: sink
            device.routes = 1
            factory.name = api.alsa.pcm.sink
            media.class = Audio/Sink
            device.description = Built-in Audio
            node.name = alsa_output.platform-sound.HDMI__HDMI__sink
            node.nick = HDMI Digital Stereo Output
            node.pause-on-idle = false
            object.path = alsa:acp:ArduinoImolaHPH:0:playback
            port.group = playback
            priority.driver = 696
            priority.session = 696
            factory.id = 19
            clock.quantum-limit = 8192
            client.id = 47
            node.driver = true
            node.loop.name = data-loop.0
            library.name = audioconvert/libspa-audioconvert
            object.id = 51
            object.serial = 51
            api.acp.auto-port = false
            api.acp.auto-profile = false
            api.alsa.card = 1
            api.alsa.split-enable = true
            api.alsa.use-acp = true
            api.dbus.ReserveDevice1 = Audio1
            api.dbus.ReserveDevice1.Priority = -20
            device.bus_path = platform-sound
            device.enum.api = udev
            device.form_factor = internal
            device.name = alsa_card.platform-sound
            device.nick = Arduino-Imola-HPH-LOUT
            device.plugged.usec = 12297647
            device.subsystem = sound
            sysfs.path = /devices/platform/sound/sound/card1
            spa.object.id = 4
            device.string = 1
            is-default = false
    gst-launch-1.0 pulsesrc device=alsa_output.platform-sound.HDMI__HDMI__sink.monitor ! ...

Device found:

    name  : Built-in Audio HDMI Digital Stereo Output
    class : Audio/Sink
    caps  : audio/x-raw, format={ (string)S16LE, (string)S16BE, (string)F32LE, (string)F32BE, (string)S32LE, (string)S32BE, (string)S24LE, (string)S24BE, (string)S24_32LE, (string)S24_32BE, (string)U8 }, layout=interleaved, rate=[ 1, 768000 ], channels=[ 1, 32 ]
            audio/x-alaw, rate=[ 1, 768000 ], channels=[ 1, 32 ]
            audio/x-mulaw, rate=[ 1, 768000 ], channels=[ 1, 32 ]
    properties:
            alsa.card = 1
            alsa.card_name = Arduino-Imola-HPH-LOUT
            alsa.class = generic
            alsa.device = 3
            alsa.driver_name = snd_soc_sm8250
            alsa.id = MultiMedia4 (*)
            alsa.long_card_name = Arduino-Imola-1.0
            alsa.mixer_device = _ucm0003.hw:ArduinoImolaHPH
            alsa.name =
            alsa.resolution_bits = 16
            alsa.subclass = generic-mix
            alsa.subdevice = 0
            alsa.subdevice_name = subdevice #0
            alsa.sync.id = 00000000:00000000:00000000:00000000
            api.alsa.card.longname = Arduino-Imola-1.0
            api.alsa.card.name = Arduino-Imola-HPH-LOUT
            api.alsa.open.ucm = true
            api.alsa.path = hw:ArduinoImolaHPH,3
            api.alsa.pcm.card = 1
            api.alsa.pcm.stream = playback
            audio.channels = 2
            audio.position = FL,FR
            card.profile.device = 0
            device.api = alsa
            device.class = sound
            device.icon_name = video-display
            device.id = 49
            device.profile.description = HDMI Digital Stereo Output
            device.profile.name = HDMI: HDMI: sink
            device.routes = 1
            factory.name = api.alsa.pcm.sink
            media.class = Audio/Sink
            device.description = Built-in Audio
            node.name = alsa_output.platform-sound.HDMI__HDMI__sink
            node.nick = HDMI Digital Stereo Output
            node.pause-on-idle = false
            object.path = alsa:acp:ArduinoImolaHPH:0:playback
            port.group = playback
            priority.driver = 696
            priority.session = 696
            factory.id = 19
            clock.quantum-limit = 8192
            client.id = 47
            node.driver = true
            node.loop.name = data-loop.0
            library.name = audioconvert/libspa-audioconvert
            object.id = 51
            object.serial = 51
            api.acp.auto-port = false
            api.acp.auto-profile = false
            api.alsa.card = 1
            api.alsa.split-enable = true
            api.alsa.use-acp = true
            api.dbus.ReserveDevice1 = Audio1
            api.dbus.ReserveDevice1.Priority = -20
            device.bus_path = platform-sound
            device.enum.api = udev
            device.form_factor = internal
            device.name = alsa_card.platform-sound
            device.nick = Arduino-Imola-HPH-LOUT
            device.plugged.usec = 12297647
            device.subsystem = sound
            sysfs.path = /devices/platform/sound/sound/card1
            spa.object.id = 4
            device.string = 1
            is-default = true
    gst-launch-1.0 ... ! pulsesink device=alsa_output.platform-sound.HDMI__HDMI__sink

Device found:

    name  : llvmpipe (LLVM 19.1.7, 128 bits)
    class : Video/Sink
    caps  : video/x-raw(memory:VulkanImage)
    properties:
            vulkan.name = llvmpipe (LLVM 19.1.7, 128 bits)
            vulkan.type = CPU
            vulkan.api.version = 1.4.318
            vulkan.api.version.major = 1 (0x00000001)
            vulkan.api.version.minor = 4 (0x00000004)
            vulkan.api.version.patch = 318 (0x0000013e)
            vulkan.driver.version = 25.2.6
            vulkan.driver.version.major = 25 (0x00000019)
            vulkan.driver.version.minor = 2 (0x00000002)
            vulkan.driver.version.patch = 6 (0x00000006)
            vulkan.vendor.id = 65541 (0x00010005)
            vulkan.device.id = 0 (0x00000000)
            vulkan.memory.n_heaps = 1 (0x00000001)
            vulkan.memory.heaps.0.size = 3848212480
            vulkan.memory.heaps.0.flags = 1 (0x00000001)
            vulkan.memory.heaps.0.flags.str = device-local
            vulkan.memory.n_types = 1 (0x00000001)
            vulkan.memory.types.0.heap = 0 (0x00000000)
            vulkan.memory.types.0.flags = 15 (0x0000000f)
            vulkan.memory.types.0.flags.str = device-local|host-visible|host-coherent|host-cached
            vulkan.n_queue_families = 1 (0x00000001)
            vulkan.queue_family.0.n_queues = 1 (0x00000001)
            vulkan.queue_family.0.flags = 15 (0x0000000f)
            vulkan.queue_family.0.flags.str = graphics|compute|transfer|sparse-binding
            vulkan.queue_family.0.timestamp_resolution = 64 (0x00000040)
            vulkan.queue_family.0.min_image_transfer_granuality.width = 1 (0x00000001)
            vulkan.queue_family.0.min_image_transfer_granuality.height = 1 (0x00000001)
            vulkan.queue_family.0.min_image_transfer_granuality.depth = 1 (0x00000001)
            is-default = false
    gst-launch-1.0 ... ! vulkansink

Device found:

    name  : Turnip Adreno (TM) 702
    class : Video/Sink
    caps  : video/x-raw(memory:VulkanImage)
    properties:
            vulkan.name = Turnip Adreno (TM) 702
            vulkan.type = integrated
            vulkan.api.version = 1.0.318
            vulkan.api.version.major = 1 (0x00000001)
            vulkan.api.version.minor = 0 (0x00000000)
            vulkan.api.version.patch = 318 (0x0000013e)
            vulkan.driver.version = 25.2.6
            vulkan.driver.version.major = 25 (0x00000019)
            vulkan.driver.version.minor = 2 (0x00000002)
            vulkan.driver.version.patch = 6 (0x00000006)
            vulkan.vendor.id = 20803 (0x00005143)
            vulkan.device.id = 117441024 (0x07000200)
            vulkan.memory.n_heaps = 1 (0x00000001)
            vulkan.memory.heaps.0.size = 1924106240
            vulkan.memory.heaps.0.flags = 1 (0x00000001)
            vulkan.memory.heaps.0.flags.str = device-local
            vulkan.memory.n_types = 2 (0x00000002)
            vulkan.memory.types.0.heap = 0 (0x00000000)
            vulkan.memory.types.0.flags = 7 (0x00000007)
            vulkan.memory.types.0.flags.str = device-local|host-visible|host-coherent
            vulkan.memory.types.1.heap = 0 (0x00000000)
            vulkan.memory.types.1.flags = 11 (0x0000000b)
            vulkan.memory.types.1.flags.str = device-local|host-visible|host-cached
            vulkan.n_queue_families = 1 (0x00000001)
            vulkan.queue_family.0.n_queues = 1 (0x00000001)
            vulkan.queue_family.0.flags = 7 (0x00000007)
            vulkan.queue_family.0.flags.str = graphics|compute|transfer
            vulkan.queue_family.0.timestamp_resolution = 48 (0x00000030)
            vulkan.queue_family.0.min_image_transfer_granuality.width = 1 (0x00000001)
            vulkan.queue_family.0.min_image_transfer_granuality.height = 1 (0x00000001)
            vulkan.queue_family.0.min_image_transfer_granuality.depth = 1 (0x00000001)
            is-default = true
    gst-launch-1.0 ... ! vulkansink

arduino@cornie:~$ gst-inspect-1.0
1394: dv1394src: Firewire (1394) DV video source
1394: hdv1394src: Firewire (1394) HDV video source
aasink: aasink: ASCII art video sink
aasink: aatv: aaTV effect
accurip: accurip: AccurateRip™ CRC element
adaptivedemux2: dashdemux2: DASH Demuxer
adaptivedemux2: hlsdemux2: HLS Demuxer
adaptivedemux2: mssdemux2: Smooth Streaming demuxer (v2)
adder: adder: Adder
adpcmdec: adpcmdec: ADPCM decoder
adpcmenc: adpcmenc: ADPCM encoder
aes: aesdec: aesdec
aes: aesenc: aesenc
aiff: aiffmux: AIFF audio muxer
aiff: aiffparse: AIFF audio demuxer
alaw: alawdec: A Law audio decoder
alaw: alawenc: A Law audio encoder
alpha: alpha: Alpha filter
alphacolor: alphacolor: Alpha color filter
amrnb: amrnbdec: AMR-NB audio decoder
amrnb: amrnbenc: AMR-NB audio encoder
amrwbdec: amrwbdec: AMR-WB audio decoder
analyticsoverlay: objectdetectionoverlay: Object Detection Overlay
:
1394: dv1394src: Firewire (1394) DV video source
1394: hdv1394src: Firewire (1394) HDV video source
aasink: aasink: ASCII art video sink
aasink: aatv: aaTV effect
accurip: accurip: AccurateRip™ CRC element
adaptivedemux2: dashdemux2: DASH Demuxer
adaptivedemux2: hlsdemux2: HLS Demuxer
adaptivedemux2: mssdemux2: Smooth Streaming demuxer (v2)
adder: adder: Adder
adpcmdec: adpcmdec: ADPCM decoder
adpcmenc: adpcmenc: ADPCM encoder
aes: aesdec: aesdec
aes: aesenc: aesenc
aiff: aiffmux: AIFF audio muxer
aiff: aiffparse: AIFF audio demuxer
alaw: alawdec: A Law audio decoder
alaw: alawenc: A Law audio encoder
alpha: alpha: Alpha filter
alphacolor: alphacolor: Alpha color filter
amrnb: amrnbdec: AMR-NB audio decoder
amrnb: amrnbenc: AMR-NB audio encoder
amrwbdec: amrwbdec: AMR-WB audio decoder
analyticsoverlay: objectdetectionoverlay: Object Detection Overlay

Thanks for the additional information. I will pass along to our engineering team for some help. Stay tuned!

@Leszek - to be clear, when you say it works fine in other projects, you mean that you can access the camera and the GStreamer pipeline initializes without issue in other projects and that it is only project ID: 923373 that has a problem?

Hi @Leszek
Could you try to run our CLI like this:

edge-impulse-linux --gst-launch-args 'libcamerasrc camera-name=“/base/soc@0/usb@4ef8800/usb@4e00000-1.2:1.0-046d:0825” ! video/x-raw,width=640,height=480 ! videoconvert ! jpegenc'

Besrt regards,
Mateusz

1 Like

i tried run cli like you suggested and i get error:

arduino@cornie:~$ edge-impulse-linux --gst-launch-args ‘libcamerasrc camera-name=“/base/soc@0/usb@4ef8800/usb@4e00000-1.2:1.0-046d:0825” ! video/x-raw,width=640,height=480 ! videoconvert ! jpegenc’
Edge Impulse Linux client v1.24.2

[SER] Using microphone hw:1,0
[GST] checking for /etc/os-release
Failed to initialize linux tool Capture process failed with code 255

GStreamer (gst-launch-1.0) stopped before emitting any images. This most likely means that the launch command is incorrect or that your camera is unresponsive. Here is the launch command:

gst-launch-1.0 libcamerasrc camera-name=“/base/soc@0/usb@4ef8800/usb@4e00000-1.2:1.0-046d:0825” ! video/x-raw,width=640,height=480 ! videoconvert ! jpegenc ! multifilesink location=resized%05d.jpg post-messages=true sync=false

You can try one of the following:

  • If your camera used to work:
    • Disconnect and reconnect the camera (if you use an external camera)
    • Kill all other GStreamer commands, via: ‘sudo killall gst-launch-1.0’
  • Run with ‘–verbose’ to see the raw GStreamer output. It might contain a hint why the process fails.
  • Run with ‘–dont-output-rgb-buffers’ - this will disable RGB output buffer creation which can help with targets that advertise RGB capabilities on the video source, but don’t actually support this.

If this does not resolve your issue, then please open a forum post at https://forum.edgeimpulse.com and include:

  • Your device, operating system, what camera you’re using, and how the camera is connected (e.g. USB, CSI)
  • The launch command (above)
  • The verbose output (run this application with --verbose)
  • The output of ‘gst-device-monitor-1.0’
  • The output of ‘gst-inspect-1.0’
    Re-run this command with --verbose to enable debug logs

Hi @Leszek
I went through your logs, and probably fount the root cause:

Could you check with groups if you are a member of the kvm group on UNOQ?

arduino@edge:/dev$ groups | grep kvm
arduino adm dialout sudo audio video users netdev bluetooth docker sysupgrade render kvm input gpiod

If not, then add the arduino user:

sudo usermod -a -G kvm arduino

Also, please update our CLI tools to the latest version (1.24.3)

npm update -g edge-impulse-linux

Best regards,
Mateusz