Arducam B0478 exposure time changes don't affect brightness on Linux V4L

Hi all, I’m testing the Arducam 64MP Quad Camera Kit on a Raspberry Pi 5 with picamera2 and the capture times are nowhere near the spec sheet. What I measured:

9152x6944 → still: 1483–1505 ms, video: memory error
4624x3472 → still: 169–237 ms, video: 200 ms

The module is rated at [email protected] and 4624x3472@10fps, so I was expecting roughly 1.7–2 fps at full resolution. Am I doing something wrong?

Those spec numbers are the rate at which the sensor outputs RAW. Once the frame goes through the ISP, the capture speed drops quite a bit — that’s expected. The ISP is the bottleneck here, so shooting speed won’t match the sensor spec directly.

To get closer to the sensor’s native speed you need to skip the ISP and capture in RAW. Arducam has a raw converter utility that helps with this:

Capture RAW and convert with that tool instead of the standard picamera2 JPEG/YUV path.

Separately, for the memory error in 9152x6944 video mode, I’ve sent you a form via private message to record the error and your setup details so our engineers can check and confirm it.

Thanks, that explains the gap. One more thing while I’m here — I’d originally asked about a 120° diagonal lens and M12/C-mount compatibility. Is the OV64A40 wide angle version an option for that?

The OV64A40 wide angle variant is difficult to source because of lens limitations, so for a wide angle build we’d suggest the standard 64MP wide angle version instead. On the M12/C-mount compatibility side, that’s a custom lens question — I’ve PM’d you a form so our engineers can capture the exact requirements.

Sorry to jump into this thread, but it looks like the right place for Arducam questions. I bought the B0478 (IMX586 48MP motorized focus USB 3.0 camera) and I’m having an exposure problem on Linux. Using V4L I disabled auto exposure and set the exposure time without any errors, but the picture brightness stays exactly the same.

Also, on a previous camera I could only get compressed image data, which I suspected was because the image buffer was too small. Is the B0478 safe to send uncompressed 48MP frames to the PC?

Welcome. Yes, the B0478 can output uncompressed frames over USB 3.0 in YUY2 format, so uncompressed 48MP to the computer is fine — the buffer isn’t the issue there.

For the exposure problem, can you post the v4l2-ctl commands you used and the output of v4l2-ctl --list-ctrls? Usually when brightness doesn’t change after setting exposure, auto exposure is still kicking back in or the manual value isn’t actually being applied to the sensor.

Here’s the setup:

  • Camera: Arducam B0478 (IMX586 48MP motorized focus USB 3.0)
  • OS: Linux, V4L
  • Backend processor: RevPi
  • Preferred interface: USB 3 or GigE
  • Colour, sensor output any near-lossless format

The application is product photography of smartphones. We photograph all sides of the phone and need scratches and details clearly visible. Requirements: at least 30MP, frame rate doesn’t matter, cover a 20x20 cm area at about 1 m (distance adjustable), and ideally a zoom objective to cover 20x20 cm from about 50 cm. IMX586 is the likely sensor. I’ve attached a photo from the current setup:

Canon 90D.jpg

I also filled in the contact form to get an idea of what a custom solution would cost.

Thanks, that context helps. Did the exposure issue get resolved, or is it still not responding to exposure_time_absolute? If it’s still stuck, paste the exact control values you’re setting and I’ll dig in.