Raspberry Pi 5 + IMX219 Camera – Camera Working with rpicam-hello but Not Detected by Edge Impulse

Question/Issue:
I am trying to connect an IMX219 camera to a Raspberry Pi 5 to deploy a computer-vision model from Edge Impulse (Project ID 794931 – MLPM).

The camera works perfectly with the Raspberry Pi camera stack (rpicam-hello -t 0 runs fine), but when I run:

edge-impulse-linux

it fails with the message:

“Cannot find any webcams, run this command with –disable-camera to skip selection.”

I’ve verified that the camera hardware, ribbon, and detection under libcamera are all functional, but Edge Impulse doesn’t recognize it—even though the official documentation lists Raspberry Pi 4 & 5 as supported.

Project ID:
794931

Context/Use case:
I previously had this same Edge Impulse project running successfully on a Raspberry Pi 4 with the same IMX219 camera.

However, after transporting the setup, the camera stopped appearing, and raspi-config no longer displayed a “Camera” option.

I then switched to a Raspberry Pi 5 with a fresh install of Raspberry Pi OS Bookworm (64-bit), but encountered an issue—the camera works fine with rpicam-hello, yet Edge Impulse cannot detect it.

I thought the problem might be related to Edge Impulse not yet supporting the new libcamera-based stack that replaced the older V4L2 interface on Pi 4/5 systems.

Steps Taken:

  1. Fresh install Raspberry Pi OS Bookworm (64-bit, non-Legacy).
  2. Install Node & Edge Impulse CLI:
  3. Verify camera: rpicam-hello -t 0 works.
  4. Run Edge Impulse: edge-impulse-linux --api-key camera not found.

Expected Outcome:
Edge Impulse Linux client should detect and use the IMX219 camera on Raspberry Pi 5, as advertised in the documentation.

Actual Outcome:
Camera works with rpicam-hello and other apps but is not recognized by Edge Impulse CLI.

Reproducibility:

  • [ ] Always
  • [ ] Sometimes
  • [ ] Rarely

Environment:

  • Platform: * Raspberry Pi 5

  • Build Environment Details: [e.g., Arduino IDE 1.8.19 ESP32 Core for Arduino 2.0.4]

  • OS Version: * Raspberry Pi OS Bookworm (64bit)

  • Edge Impulse Version (Firmware): latest

  • Edge Impulse CLI Version: latest

  • Project Version: [e.g., 1.0.0]

  • Custom Blocks / Impulse Configuration:
    Untitled 2

Logs/Attachments:

Additional Information:
I have tried using the --gstreamer-camera-pipeline option, but I’d prefer to stay within officially supported configurations—no manual bridges like v4l2loopback unless Edge Impulse recommends it.

Please confirm whether the current Linux SDK fully supports the Raspberry Pi 5 libcamera stack, or if there’s an upcoming update required for camera detection.

Hi @Ejaaz

We do have support for GStreamer on Qualcomm hardware, I would need to test it on the Pi 5 though, not 100% sure if it will work but it should. You can check out our doc here, while i check if it works too. - Run Qualcomm IM SDK GStreamer pipeline - Edge Impulse Documentation

Best

Eoin

1 Like

Thank you so much for taking the time to respond. I really appreciate your help! I know it might take a bit of time, but I’m excited to see what you come up with.

Im also trying to deploy it on my raspberry pi 4 with a raspberry pi cam v2. i am able to connect to edge impulse but i wasn’t able to get edge-impulse-linux-runner to run

Am i supposed to be using a specific Os?

I also wanted to mention that the step in the documentation that says to “go to raspi-config and enable the camera” was a bit confusing. I wasn’t able to find that camera option on either the Pi 4 or the Pi 5. Finding and setting up the camera ended up being the hardest part of the process for me.

IMG_C7779B54-840A-4496-BF2F-BC7A3343ADD3

@Ejaaz,

Can you try the suggestions in this post

Hey, thanks for the response. I looked at the post u directed me to but,I’m having a hard time getting libcamera to work at all, and I think part of the issue is the OS architecture / repo situation.

Here’s what’s going on:

I originally flashed 64-bit Bookworm from the Raspberry Pi Imager, but that version turned out to be the Debian Bookworm ARM64 build, not the official Raspberry Pi OS build. Because of that, the system didn’t include the Raspberry Pi-specific repos that normally provide the libcamera-apps binaries. When I checked, commands like libcamera-hello and libcamera-jpeg were completely missing even though sudo apt install libcamera-apps said it was installed.

I spent a lot of time trying different fixes—adding repos manually, reinstalling packages, trying Docker images, etc.—but Docker containers for libcamera-apps don’t exist for ARM64, so that path failed too. Every attempt to pull an ARM64 image returned “manifests/arm64: denied.”

To try to simplify things, I switched to 32-bit Raspberry Pi OS Bookworm, since that version should have full camera support by default. Unfortunately, even on 32-bit, I’m still running into the same issue:

libcamera-hello and libcamera-jpeg are available in the repo, but the commands themselves do not install to the system path. Running them gives “command not found.”

So right now I’m stuck trying to get any version of libcamera to actually run, even though the package says it’s installed. I’m not sure if this is a repo issue, a path issue, or something related to the specific Bookworm builds on the Imager.

Also, just for context — this is for my senior engineering project, and my deadline is in less than a month. I’ve been troubleshooting this for days and I’m really trying to understand what’s going on so I can keep moving forward with the project. Any help would be massively appreciated
IMG_C5F5FB52-6A5F-4EAE-B57D-0DBAD11073F5

@Ejaaz,

That’s unfortunate. This is a whole new issue. I’d suggest try reinstalling the (64-bit) OS completely. I recently (this week) went through this procedure on the RPi5 and it worked with a CSI camera. I used the latest OS (trixie), but Bookworm should also work.
Once reinstalled

Check Hardaware:

  1. Ensure the CSI camera is connected to the right port and correctly.
  2. Ensure the CSI camera and the ribbon cable is connected correctly.

Verify that rpicam-hello starts and recognizes the camera correctly.

  1. Install edge impulse linux cli tools.
  2. Install gstreamer1.0-libcamera package (required by edge impulse linux cli).

Run edge impulse linux runner and verify that the csi camera is detected.
If it is detected but still fails? Try the suggestion in the previous post I shared/linked.

// Raul

You’ll certainly need to use 64-bit Pi OS if you’re using aarch64 .eim files. If the edge impulse linux CLI is proving difficult with dependencies- I reccomend trying one of our Linux Python SDK examples- they have fewer dependencies and you can adapt the camera capture yourself to fit any camera if required. Also useful if you’re looking to build an application around your model: Linux Python SDK - Edge Impulse Documentation

I’m having a nearly identical issue, except I’m using IMX708; though the issue was the same for IMX219. rpicamera-hello works flawlessly. gstreamer1.0-libcamera is installed. Libcamera is installed yet does not execute commands. I can detect a camera but can’t force edge-impulse-linux to detect it. Any help would be very appreciated. I’m also crunching my senior engineering proj, good luck!

1 Like

Hi everyone,

I wanted to follow up after retrying the full installation multiple times across different operating systems.

Originally, on Raspberry Pi OS Bookworm (32-bit), edge-impulse-linux was at least able to detect my USB UVC camera (which I switched to because another thread suggested USB was easier than CSI). However, the runner still wasn’t working, so I tried reinstalling the system completely to troubleshoot.

I then switched to Debian Trixie 64-bit, but on Trixie things actually got worse:
• edge-impulse-linux cannot detect any camera (USB or CSI)
• the runner still fails
• even though gst-launch and v4l2-ctl both confirm the USB camera works at /dev/video0

I followed all the recommended steps (installing gstreamer1.0-libcamera, v4l-utils, Node 20, all plugins, etc.), but nothing fixed the camera detection.

I believe I found the reason why. The Raspberry Pi engineers have confirmed that Trixie currently has a broken libcamera stack due to a libpisp update, and that libcamera needs to be rebuilt to work correctly. Here is the engineer’s statement:

“Our libcamera package will need to be re-built / re-linked to the latest libpisp package. We are working on this now. Sorry about that!”

IMG_2913

This kind of makes because i had deployed my model fine until i decided to move my project to show my professor one day and it just stopped working which caused me to start over.

Just wanted to clarify that I did follow all of the recommended instructions, but it appears the issue is coming from the OS side rather than my setup.