Raspberry Pi 5MP AutoFocus camera blurry, not detected on I2C, Pi Zero 2 W

Hi, I’m having a really frustrating time with a 5MP AutoFocus camera on my Pi Zero 2 W. I can take photos and videos with it, but they’re super blurry - it just won’t focus. I also noticed the camera doesn’t seem to show up on the i2c bus at all. Honestly I’ve never gotten it to work properly.

Hi, sorry to hear that. Let’s try to narrow it down. First thing - you said it’s not showing up on i2c. Can you confirm: you can’t detect the motor in the i2c at all?

If so, can you run this command and share a screenshot of the i2c detection results:

i2cdetect -y 10

Also, please tell me your camera SKU so I can confirm which model you have.

Yeah, the motor doesn’t show up in the i2c detection. I’ll run the command and post a screenshot shortly.

On the SKU - where do I find that exactly? I don’t have it handy right now.

The SKU is usually printed on the camera board itself, or on the ribbon/box it came in. Just a small label - something like B0xxxx. That’ll help me confirm you have the 5MP AutoFocus and not another variant.

While you’re at it, tell me what you’ve already tried so far so we don’t go in circles.

Here’s what I’ve done so far:

  • Reinstalled the OS from scratch
  • Double-checked that the ribbon cable connection was proper
  • Followed the link in the manual for setup

Still ends up blurry. I ran i2cdetect -y 10 but the camera isn’t being detected on the bus. No logs to share right now, I didn’t capture any.

OK, thanks. Since the photos come out blurry but do save, that points at the autofocus motor not being driven - which lines up with it not showing on i2c.

A screenshot of the i2cdetect -y 10 output would help a lot here. Even if it shows all dashes, that tells us something. Can you paste the raw output or a screenshot?

Here’s roughly what I get from i2cdetect -y 10:

     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:                         -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --

Nothing is showing up. It’s all dashes.

Thanks, that’s actually useful. All dashes means the bus itself is scanning but nothing is answering at the expected address. That can be the camera, but it can also be the host side not coming up cleanly.

Before we suspect the camera hardware, let’s rule out the Pi setup:

  1. Make sure i2c is actually enabled (sudo raspi-config → Interface Options → I2C → Enable), then reboot.
  2. Confirm the ribbon is seated fully and the right direction on both ends (contacts facing the right way).
  3. Try a fresh, known-good SD card with a clean OS install and run i2cdetect -y 10 again.

Sometimes a flaky boot medium throws off the whole peripheral init. Can you try those?

I figured it out. It seems to work now. It was an issue with a dead SD card.

Nice, glad you got it sorted! So for the record: the setup was a 5MP AutoFocus on a Pi Zero 2 W, camera wouldn’t focus and wasn’t detected on the i2c bus (all dashes from i2cdetect -y 10), and it could save photos/video but they came out blurry. After reinstalling the OS, verifying the ribbon connection, and following the manual, the fix turned out to be swapping out a dead SD card - with a working card the camera now detects and focuses properly.

So the root cause was the dead SD card, not the camera module. If anything else comes up down the line, just reply here and we’ll dig back in.