Arducam 108MP camera: Cannot open /dev/video0, undefined symbol on RPi 4B

Hi everyone, I’m trying to set up an Arducam 64MP camera (Model B0399) on a Raspberry Pi 4B. I followed the official guide at the Arducam docs site for the 64MP camera on Raspberry Pi, but when I run libcamera-still I’m getting this error:

libcamera-still: symbol lookup error: /usr/local/lib/libpreview.so: undefined symbol: _ZN9libcamera10ColorSpace4JpegE

Anyone know what’s going on here? Looks like a symbol mismatch in libcamera but I’m not sure how to fix it.

That error usually points to a version mismatch with the libcamera installation. Can you try reinstalling the pivariety packages with these commands:

./install_pivariety_pkgs.sh -l
./install_pivariety_pkgs.sh -p libcamera0
./install_pivariety_pkgs.sh -p libcamera_apps

Also, it would help to get a full picture of your setup. Please run this diagnostic script and share the output:

wget -O arducam-camera-bug-report https://github.com/ketai-dhr/arducam-camera-bug-report/releases/download/tools/arducam-camera-bug-report
chmod +x ./arducam-camera-bug-report
./arducam-camera-bug-report

That’ll give us a better idea of what’s happening on your system.

Thanks for the suggestions. I ran the updated install commands but I’m still running into issues with the 64MP. In the meantime, I also have an Arducam 108MP camera (UC-593 Rev.D) that I’d like to try on the same Pi 4B, but when I attempt to open it I get:

Cannot open device /dev/video0, exiting.

So it looks like the device node isn’t even showing up properly. Any pointers on getting the 108MP recognized?

For the 108MP camera (UC-593 Rev.D), the approach is a bit different. You’ll want to use the ArduCam EVK Demo instead of the standard libcamera pipeline. Head over to this repo:

Clone that and build it on your Pi, and it should give you direct access to the camera. That /dev/video0 issue is likely because the 108MP isn’t using the standard V4L2 driver path — the EVK demo talks to it directly. Give that a shot and let us know what output you get.

Alright, I built and ran the EVK Demo with the 108MP connected. Here’s what I’m getting:

Select Device ID: 0
Serial: AU3S-2338-0028
CPLD version: v3.1 year: 23 mouth: 5 day: 10
fw_version: v3.20 interface_type: 3 device_type: 3
Capture began, rtn_val = 0
read frame failed.
read frame failed.
read frame failed.
Error capture image, rtn_val = 65318
Error capture image, rtn_val = 65318
Error capture image, rtn_val = 65318
Error capture image, rtn_val = 65318

The “Error capture image, rtn_val = 65318” line just keeps repeating (about 30 times or so) and then more “read frame failed” messages. The camera is detected — serial and firmware version show up fine — but it can’t actually pull any frames. Any idea what rtn_val 65318 means?

One more thing — is there any way to get this working on a Windows platform as well? My use case eventually requires Windows integration for the capture pipeline, so if there’s any SDK or approach for that I’d appreciate any leads.

Separate question — I’m also on the lookout for a global shutter camera, something around 50 megapixels or higher resolution. Does Arducam offer anything like that? If so, could someone point me toward a quotation or specs?

Regarding the rtn_val 65318 errors — that return code typically indicates a frame read timeout or data transfer issue between the camera and the host. Since the camera is being detected (serial, firmware, CPLD all report fine) but frame capture fails repeatedly, this could be a cabling/connection problem, insufficient power delivery to the camera, or a signal integrity issue at the higher data rate the 108MP requires. A few things to check:

  • Make sure you’re using a good quality, short ribbon cable
  • Verify your Pi’s power supply can handle the 108MP’s peak draw (these sensors pull quite a bit)
  • Try lowering the capture resolution or frame rate in the EVK demo to see if it stabilizes at a less demanding setting

As for Windows support, the EVK Demo does have some cross-platform support — check the same repo for any Windows build instructions or related SDKs. It’s not as mature as the Linux path but there are options there.

On the global shutter front — unfortunately Arducam doesn’t carry a global shutter camera at 50MP or higher in the standard product lineup. That’s a pretty specialized combination. For a customized solution, I’d recommend reaching out to the sales team at [email protected] — they can discuss whether a custom build or OEM option is feasible for your requirements.