Arducam 64MP autofocus camera resolution issue on Raspberry Pi 4 and customs clearance

Hi, I’m trying to capture high resolution photos with a 64MP autofocus camera (Arducam) through a Raspberry Pi 4 and I can’t seem to get the resolution I expect. The preview comes up fine, but the image I save doesn’t look anywhere close to 64MP. I sent a couple of technical questions through the online form about a week ago but haven’t got a reply yet, so I’m posting here. Has anyone actually managed to capture full 64MP stills on a Pi 4? What’s the correct way to do it?

Thanks for your updates, we have added our engineer here and you can discuss the technical queries in this thread. @Dion will take it from here.

Thanks for routing me to an engineer. To recap what I’m after: I have a 64MP autofocus camera module running on a Raspberry Pi 4 and I want to grab high resolution (full resolution) stills for a project. Right now the preview looks fine but my captures don’t come out at full resolution at all. Happy to run whatever tests you need, just point me in the right direction.

Hi, Dion here from the support team. A few quick questions so I can point you the right way:

  1. What are you using to capture — libcamera (libcamera-still / libcamera-hello) or our Arducam Python scripts?
  2. What does libcamera-still --list-cameras output? Paste it here if you can.
  3. Which Raspberry Pi OS build and kernel are you on (uname -a and cat /etc/os-release)?

One quick thing to set expectations: the preview/stream is normally a lower (binned) resolution. The sensor only uses the full 64MP for still capture, so if you’re judging by the preview you won’t see 64MP. The saved still should be the full size.

Sorry, I should have posted this from the start. My setup:

  • Raspberry Pi 4, Raspberry Pi OS 64-bit, kernel 5.15.
  • Arducam 64MP autofocus camera.
  • I’m mostly using libcamera-still for captures, but I also have the Arducam Python example from your GitHub repo.

When I run libcamera-still --list-cameras the camera is detected. Running libcamera-still does produce a file, it just doesn’t look like a full 64MP image to me.

OK, that helps. A few things to check:

  • In the --list-cameras output, what resolution/mode does it show for the sensor? Can you paste the line that lists the modes?
  • Are you passing an explicit size like --width 9152 --height 6944, or just running the default? If you don’t specify, it may fall back to a smaller mode.
  • Check the driver is loading cleanly, e.g. dmesg | grep -i ov and look for errors.
  • Also confirm the correct overlay/driver for the 64MP AF module is enabled in your config — this camera needs its own setup, not the generic one.

Paste the list-cameras output and the exact command you’re running and we’ll go from there.

Here’s what I see when I list the cameras — it does detect it, but the modes it reports don’t obviously show me the full resolution one. I tried forcing --width and --height to the big numbers but then it errors out, and if I leave it default the saved image is much smaller than expected. I also tried the Arducam Python example and it throws an error about not being able to set the resolution. Not really sure what I’m doing wrong — is this a driver thing or am I just using the wrong capture command?

Hi, may you post the link here? I seem to have missed it.

No problem — here it is: https://github.com/ArduCAM/Arducam_64MP_Camera — this is the write-up/example I was following when I set it up, and the script I tried to run is from here. Let me know if this is the right one for the 64MP AF module on a Pi 4 or if I should be using something else.

Just to summarize where we are so we don’t lose track:

  • The 64MP AF camera does support full-resolution still capture on the Pi 4, but it has to go through still capture with the correct driver/overlay and an explicit full-res mode — the preview stream is always a lower (binned) resolution, so don’t judge it by the preview.
  • Forcing the large width/height is erroring out for you, and the Python example fails to set the resolution, which usually points to either a mode/driver mismatch or the wrong overlay enabled.
  • Right now I still need your libcamera-still --list-cameras output and the exact command you’re running so I can see why it’s dropping to a smaller resolution.

Post those and we’ll keep going — that output will tell us whether it’s the mode selection or the driver setup.