B0152 detected on Raspberry Pi Zero 2 W but raspistill command shows message

Hi, I’m having trouble getting cameras to work with my Raspberry Pi Zero 2 W. I ordered a few different camera modules (B0179, B0152, B0406) and I’m trying to get them running, but none of them seem to work properly.

With the B0152 specifically, when I run the camera detection command it looks like the camera IS recognized. But then when I try to run the raspistill command I get a message/error. I’ve attached screenshots of both the detection output and the raspistill run.

I’ve double-checked all the connections and everything looks properly seated. Has anyone run into this before? Attaching photos of the connection too.

Thanks!

Thanks for the detailed report and the screenshots, that helps a lot. A few quick questions so we can narrow this down:

  1. What OS image are you running on the Zero 2 W? The exact version helps (Raspberry Pi OS Bullseye, Bookworm, etc.)
  2. Which camera SKU are you testing with right now? You mentioned B0152 - can you confirm?
  3. Can you copy/paste the exact raspistill command you ran and the error text you got? Screenshots are useful but I want to make sure I’m reading the error correctly.

Also, do you see the camera detected under /dev or via the detection command consistently, or does it come and go?

Sure! Here’s what I’ve got:

  • Board: Raspberry Pi Zero 2 W
  • Cameras I have: SKU B0179, SKU B0152, SKU B0406
  • Right now I’m testing specifically with the B0152

The detection command does show the camera as recognized. But raspistill just throws a message back at me and no image gets captured. That’s the part I don’t understand - detection works but capturing doesn’t.

I’ll try to get the exact error text typed out, but the screenshots I posted show it pretty clearly. Let me know if you need me to run anything else.

Got it, thanks. This behavior (camera shows up in detection but raspistill fails) is usually an OS / camera stack mismatch rather than a dead module. Two things I want to confirm before we go further:

  1. Are you on the latest Raspberry Pi OS Bullseye, or something older/newer? The camera stack changed a lot between releases, and the legacy raspistill path depends on it.
  2. How did you enable the camera? Did you use raspi-config > Interface Options > Camera, or add the entries to config.txt manually?

Also, important one: the B0179 is actually a different platform camera. Can you tell me which board you intended to use it with? It may not be compatible with the Pi at all, so let’s set that one aside for now and focus on the B0152 and B0406 on the Pi.

I’m honestly not 100% sure which OS version is on the card right now - it might be an older image I had lying around. I’ll check.

For the camera enabling, I think I did it through raspi-config and maybe also edited config.txt at some point, I was trying a few things.

As for the B0179 - I actually wanted to use it on my Pi originally, but if it’s not meant for the Pi then that explains that one. What platform is it actually for?

And regarding the B0152, here are the connection photos again. Let me know if the seating looks wrong to you:
IMG_5500 Small.png
IMG_5501 Small.png

Thanks for the photos - the ribbon seating actually looks fine from what I can see, so I don’t think the physical connection is the problem here.

To answer your B0179 question first: that module is designed for NVIDIA Jetson Nano / Xavier NX, not for the Raspberry Pi. So it will never be detected or work on the Zero 2 W - that’s a platform incompatibility, not a fault. Only use that one on a supported Jetson board.

Now for the B0152 and B0406 on the Pi: the most common cause of “detected but raspistill fails” is an outdated OS image combined with the wrong/legacy camera setup. Can you check your OS version and tell me exactly what it reports? You can run:

cat /etc/os-release

and also:

ls /dev/video*

That will tell me which stack you’re on and whether the sensor is actually exposed as a video device.

OK that makes sense about the B0179, good to know it’s for Jetson.

Here’s what I got:

cat /etc/os-release
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"

And:

ls /dev/video*
ls: cannot access '/dev/video*': No such file or directory

So it looks like I’m on Buster, not Bullseye. Could that be the issue? And no /dev/video devices show up at all.

That’s very likely the core of it. Buster is quite old, and the camera stack + drivers these modules rely on work properly on the latest Raspberry Pi OS Bullseye. On Buster you’ll often get exactly what you’re seeing: something partially detected during the probe, but the capture pipeline (raspistill) fails and no /dev/video device is created.

So the plan is:

  1. Reburn the microSD card with the latest Raspberry Pi OS Bullseye (not Buster, and I’d avoid Bookworm too for these modules).
  2. After booting Bullseye, enable the camera and set it up per the documentation for your specific camera model - the setup steps differ between the two models you’re testing.

For the B0152, follow the official Raspberry Pi camera software getting-started guide:
https://www.raspberrypi.com/documentation/computers/camera_software.html#getting-started

For the B0406, that one uses the Pivariety camera path, so follow:
https://docs.arducam.com/Raspberry-Pi-Camera/Pivariety-Camera/Quick-Start-Guide/#pivariety-cameras

I’d do the B0152 first since you already have it mounted, then test the B0406 with its own guide.

Got it, I’ll reflash the card with the latest Bullseye and start over with the B0152 following that Raspberry Pi guide. Then I’ll switch to the B0406 guide after.

One question - after reflashing Bullseye, should raspistill just work, or do I need to change anything in config.txt for the B0152 specifically? I want to avoid repeating the same mistake.

Good question. On Bullseye you generally shouldn’t need to hand-edit config.txt the way you might have on older setups - enable the camera the supported way and follow the guide for the B0152. Keep it simple: fresh Bullseye, enable camera, run the detection, then capture a test image. If detection works but capture still fails, then we’d look at config.txt, but let’s not pre-empt it.

For the B0406 specifically, don’t apply the B0152/Pi camera steps to it - that model needs its own Pivariety setup from the docs link, since the driver installation differs.

Let us know how it goes after the reflash and we can pick it up from there.

Alright, flashing Bullseye now. I’ll report back once I’ve tested the B0152 and then the B0406. Thanks for the clear explanation - the platform mismatch on the B0179 and the old OS were the two things I hadn’t figured out.

Sounds like a plan. To recap where we landed on this thread:

  • The B0179 is not compatible with the Raspberry Pi Zero 2 W - it’s built for NVIDIA Jetson Nano / Xavier NX. Set it aside and only use it on a supported Jetson board.
  • The “detected but raspistill fails” behavior on the B0152 is caused by running an outdated OS (Buster). The cameras need the latest Raspberry Pi OS Bullseye plus the correct camera software/setup for each model.
  • Resolution: reflash the latest Bullseye, then follow the model-specific setup:

Once you’re on Bullseye and following the right guide per model, detection and capture should both work. Post back with the results if anything still misbehaves.