OV9281 Arducam B0162 not working on Raspberry Pi 4, same as GitHub issue #126

OV9281 on RPi 4B cannot capture

Hi, I’ve got an OV9281 Arducam module (model B0162) hooked up to a Raspberry Pi 4 and I just can’t get it to capture anything. I followed the instructions in the MIPI_Camera RPI guide here: MIPI_Camera/RPI at master · ArduCAM/MIPI_Camera · GitHub but it doesn’t work at all. It looks like the exact same situation people are describing in OV9281 on RPi 4B cannot capture · Issue #126 · ArduCAM/MIPI_Camera · GitHub.

I attached a couple of screenshots of my RPi4 setup below with the system/environment details:

2022-09-15-143706_1920x1080_scrot.png
2022-09-15-143814_1920x1080_scrot.png

Anyone know what I’m doing wrong? Thanks.

Hi, thanks for the detailed report and the screenshots. A couple of quick questions so I can narrow this down:

  1. Which OS release are you running on the Pi? Can you paste the output of cat /etc/os-release and uname -a?
  2. Did you enable the camera interface and reboot before running anything?
  3. What exactly happens when you try to capture — no device found, blank/green frames, or an error from the test app?

The issue #126 you linked is a useful reference, so let’s see if your case matches.

Sure. Here’s what I get:

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

$ uname -a
Linux raspberrypi 5.10.63-v7l+ #1459 SMP Wed Oct 6 16:41:41 BST 2021 armv7l GNU/Linux

Yes I enabled the camera interface and rebooted. When I run the test, I just get no image at all — the demo app doesn’t throw anything obvious, it just doesn’t capture. That’s basically what the people in #126 are seeing too.

That output is the key part. You’re on Raspbian 10 (Buster) and the repo you followed — MIPI_Camera — is the old/deprecated path. MIPI_Camera is no longer supported on BusterOS, so the whole ./RPI build-and-run workflow from that guide won’t work on your system no matter how many times you rebuild it.

The current supported path for these camera modules is:

  1. Re-burn the latest BullseyeOS.
  2. Install libcamera.
  3. For the Pivariety camera, install the kernel driver following the guide here: Redirecting...

Can you move to a fresh Bullseye image and let me know how the libcamera detection goes?

Ah, that explains it — I was banging my head against the MIPI_Camera build for hours. So Buster is basically a dead end for this camera, got it.

I’ll grab a fresh BullseyeOS image and re-flash. I’ll install libcamera and then follow the Pivariety kernel driver guide you linked. I’ll report back what happens after the driver install and reboot.

Sounds good. When you’re back up on Bullseye, a good first check is to list the detected cameras:

libcamera-hello --list-cameras

and then do a quick test capture:

libcamera-still -o test.jpg

If the sensor shows up in the list, you’re on the right track. If it still doesn’t appear, paste the output and also check dmesg | grep -i -e ov9281 -e imx -e arducam so we can see whether the kernel driver is binding to the module. Don’t worry,'t worry about the old MIPI_Camera repo anymore — that’s the deprecated route.

OK, re-flashed with BullseyeOS, installed libcamera, and followed the Pivariety kernel driver guide. After reboot:

$ libcamera-hello --list-cameras
Available cameras
-----------------
0 : ov9281 [1280x800] (/base/soc/i2c0mux/i2c@1/ov9281@60)

And libcamera-still -o test.jpg produced an actual image this time. Nothing like the dead MIPI_Camera demo on Buster. Two full days of fighting the wrong repo, ha.

So it looks like moving to Bullseye + libcamera is what fixed it. Thanks!

Great, that confirms it. The sensor being enumerated as ov9281 and a real JPEG out of libcamera-still means the driver is bound and the pipeline is working.

To wrap up for anyone else reading this thread: the root cause was that MIPI_Camera is no longer supported on BusterOS, and the old MIPI_Camera/RPI at master · ArduCAM/MIPI_Camera · GitHub workflow (the same one behind issue #126) simply won’t work there. The supported route is to re-burn the latest BullseyeOS, install libcamera, and follow the official Pivariety kernel driver install guide: Redirecting...

If you hit anything else after the update, just reply here and we’ll take a look.