Arducam camera not working on Raspberry Pi with Raspbian

Hi, I picked up the 5MP Camera Module for Raspberry Pi (the Motorized Focus Camera). When the Pi powers on I see the camera LED light up once, and then it never lights again. Running any of the programs does nothing - no movement, no focus twitch, nothing at all. Anyone know what’s going on?

Here’s my camera check:

vcgencmd get_camera
supported=1 detected=1, libcamera interfaces=0

What I’ve done so far: cloned the repo, installed opencv, ran sudo apt-get update && upgrade, opened the i2c0 port, and ran sudo python Autofocus.py. It just… doesn’t take any pictures. Stuck on where to go next.

Welcome! That libcamera interfaces=0 line is a hint worth digging into. A few quick questions to narrow it down:

  1. What OS image are you running on the Pi (Bullseye, Buster, something else)?
  2. Are you powering it from a decent supply? Under-voltage can make the motor driver misbehave.
  3. Can you paste the contents of the python folder inside the repo so I can see which scripts you actually have?

Also, when you say the LED blinks once at boot and then nothing - that’s normal boot behavior, so the real issue is likely in software/config rather than the module itself.

Sure, here’s the directory listing. I’m in ~/Python_Files/RaspberryPi/Motorized_Focus_Camera/python:

Autofocus.py
AutofocusTest.py
Focuser.py
FocuserExample.py
libcamera-1.0.1-cp39-cp39-linux_armv7l.whl
libcamera-1.0.2-cp39-cp39-linux_armv7l.whl
multi_cameras_auto_focus.py
RpiCamera.py
__pycache__

For power I was using a 5V 2A 5000mAh battery pack, and then I tried plugging into house power instead. Same result either way.

Ok so I think I found the real problem. When I try to run things I get:

ERROR: the system appears to be configured for the legacy camera stack

Is that what’s breaking it? That sounds like it’s the culprit to me.

That error is the key here. It means your system is set up for the legacy camera stack, which conflicts with the libcamera-based setup this module expects. Two things to sort out:

  1. Do you actually want to use the camera on the Legacy Camera Stack framework? If you don’t need it, we should turn it off.
  2. Otherwise, the intended path for this camera is to run Bullseye OS and access the camera through libcamera.

Which route do you want to take? If you’re not tied to the legacy stack, I’d strongly suggest going the libcamera route on Bullseye.

I’m not trying to use the legacy stack at all - I just want to get the camera working. Googling around is what pointed me at the legacy stack stuff in the first place. I’m going to try disabling the legacy camera support and see if that clears it up.

For reference, I’m on Raspbian since it’s a Raspberry Pi. I’ll be back in town tomorrow and I’ll try to disable the legacy support then. I’ll report back once I’ve made the changes.

Sounds good - that’s the right move. When you’re ready:

  1. Run sudo raspi-config.
  2. Go to Interface Options and select Legacy camera to disable it.
  3. Reboot your Raspberry Pi again.

After the reboot, re-check with vcgencmd get_camera and let me know what it reports. If it still misbehaves we’ll grab a bug report next.

Ok, I disabled the legacy camera and rebooted. Now it’s the opposite problem - the camera isn’t recognized at all:

admin@RPI:~ $ vcgencmd get_camera
supported=0 detected=0, libcamera interfaces=0

Before it showed supported=1 detected=1, now everything reads 0. I definitely don’t want the legacy stack back, I’m just trying to get this thing working. How do I activate the camera with the legacy support turned off?

Good progress - that’s actually the expected intermediate state. Here’s the picture:

Root cause: the system was configured for the legacy camera stack, which conflicts with the libcamera-based setup, hence the legacy camera stack error you saw.

Fix:

  1. Keep the Legacy Camera Stack disabled (that’s what you just did).
  2. Use Bullseye OS and access the camera through libcamera. If you’re still on Buster or an older image, the libcamera path won’t work reliably and you’ll keep seeing zeros from vcgencmd get_camera.

So the two things to confirm: legacy camera is disabled (done) and you’re on Bullseye with libcamera available. Can you tell me which OS release you’re actually on now (cat /etc/os-release)? If you’re not on Bullseye, I’d recommend flashing a fresh Bullseye image.

I’ll check my OS version. Before I go reflashing anything, is there a way to confirm whether the libcamera stack is even present and picking up the camera? I want to be sure it’s a config/OS issue and not a dead module.

Fair question. Two ways to sanity-check it:

First, list the cameras libcamera can see:

libcamera-hello --list-cameras

If it enumerates the sensor, the module is alive and it’s purely a config/OS matter. If it lists nothing, we still can’t rule out config - which is exactly why I’d like a bug report to see the full state of your system:

  1. Reboot your device.
  2. Then run:
wget -O arducam-camera-bug-report https://github.com/ketai-dhr/arducam-camera-bug-report/releases/download/tools/arducam-camera-bug-report
chmod +x ./arducam-camera-bug-report
./arducam-camera-bug-report

That produces an arducam-bug-report.txt in the current directory. Attach that file here and I’ll tell you what’s going on.

Alright, I ran the bug report and I’m attaching arducam-bug-report.txt. I also ran libcamera-hello --list-cameras and it didn’t show anything, which doesn’t fill me with confidence.

Thanks, got the report. Let me summarize where we’ve landed so it’s clear:

Key insight: the legacy camera stack has to be fully disabled via sudo raspi-config → Interface Options → Legacy camera, then rebooted - and you should be on Bullseye OS using libcamera to access the camera.

Status right now:

  • Legacy camera: disabled (good).
  • vcgencmd get_camera: supported=0 detected=0, libcamera interfaces=0.
  • libcamera-hello --list-cameras: no cameras enumerated.

The zeros plus no enumeration tell me the libcamera stack still isn’t properly set up on this install. Next step is to confirm the OS release (cat /etc/os-release) - if it isn’t Bullseye, flash a fresh Bullseye image, keep the legacy camera disabled, and re-run libcamera-hello --list-cameras. If you’re already on Bullseye, send the exact output of that command and I’ll take it from there - we haven’t fully resolved this yet.