Autofocus and motorized focus not working on Arducam IMX519 ak7375 cameras on Raspberry Pi

Hi everyone, I’m having trouble with an Arducam IMX519 camera — the autofocus simply doesn’t work. libcamera-hello and libcamera-still both show a live video stream, but there’s no autofocus and no lens movement at all. I see this on a Raspberry Pi 3 running Bullseye and a Raspberry Pi 5 running Bookworm.

Thanks for the report. To narrow this down, could you share the full environment — exact Pi model/revision, OS, kernel version and libcamera version? Also, can you confirm which lens actuator is on the camera? The IMX519 usually sits with an ak7375 VCM.

Sure. It’s the IMX519 sensor with an ak7375 VCM lens actuator. I’ve tested on a Pi 5, a Pi 3 and a Pi Zero, each with different OS images. On the Pi 3 it’s a Model B Rev 1.2, Linux 6.1.21-v8+ (aarch64) #1642 SMP PREEMPT, libcamera v0.0.0+4367-ad9428b4. The sensor shows up as imx519 10-001a and the actuator as ak7375 10-000c. I’ve got 24 of these units and all of them behave exactly the same.

Could you run libcamera-hello again and paste the terminal output around the error lines? Also check dmesg for anything mentioning ak7375 or a regulator — those two together will tell us a lot.

Here’s the libcamera output:

[0:14:12.999629498] [755] ERROR V4L2 v4l2_device.cpp:93 'ak7375 10-000c': Failed to open V4L2 device '/dev/v4l-subdev1': Invalid argument
[0:14:12.999742987] [755] ERROR CameraSensor camera_sensor.cpp:527 'imx519 10-001a': Lens initialisation failed, lens disabled
[0:14:13.061004611] [755] INFO RPI vc4.cpp:444 Registered camera /base/soc/i2c0mux/i2c@1/imx519@1a to Unicam device /dev/media3 and ISP device /dev/media0
[0:14:13.063100908] [752] INFO Camera camera.cpp:1033 configuring streams: (0) 2048x1536-YUV420
[0:14:13.063983042] [755] INFO RPI vc4.cpp:572 Sensor: /base/soc/i2c0mux/i2c@1/imx519@1a - Selected sensor format: 2328x1748-SRGGB10_1X10 - Selected unicam format: 2328x1748-pRAA

And dmesg:

imx519 10-001a: Device found is imx519
ak7375 10-000c: supply vio not found, using dummy regulator
imx519 10-001a: Consider updating driver imx519 to match on endpoints
ak7375 10-000c: ak7375_vcm_resume I2C failure: -121
hwmon hwmon1: Undervoltage detected! / Voltage normalised

That ‘Lens initialisation failed, lens disabled’ line is the key symptom — the ak7375 subdevice failed to open, so libcamera just disables the lens. Two quick checks: run i2cdetect and look at address 0x0c, then try a manual i2ctransfer to the actuator and tell us what comes back.

i2cdetect shows 0x0C as ‘UU’, which I think means a driver has already claimed it. But a manual i2ctransfer just returns ‘device or resource busy’. I’ve repeated all of this on the Pi 5, Pi 3 and Pi Zero with different OS versions, followed the Arducam support site instructions and read through a bunch of forum threads — nothing changes. I’m starting to suspect the ak7375 actuator isn’t being powered up correctly.

That matches the picture. The ak7375_vcm_resume I2C failure: -121 is a no-ACK on the I2C bus, meaning the focus motor isn’t responding at all — which is exactly why you get ‘Lens initialisation failed, lens disabled’. So the VCM is either not powered or not communicating. One defective unit would be one thing, but all 24 units failing the same way is a very unusual coincidence. I’ve looped in our support team to double-check the root cause. There’s also a related public thread with similar symptoms over here: No Autofocus working IMX519 - #17 by vbuser

Thanks. I’ve also re-tested everything from scratch and I still can’t control focus on any of these systems — Pi 5, Pi 3 or Pi Zero, different OS versions, same result. I’m really hoping there’s a software or firmware fix because I urgently need to drive the focus from the Pi Zero.

Understood. Given that we’ve ruled out the obvious software paths, the next step would be to take a direct look at your setup. I can send you the remote access details privately — would that work for you?

Yes, that works. I have the Pi 5 with the camera connected and a fresh out-of-the-box OS install ready to go. Just let me know how you want to connect.

I’ve sent you the remote support details and the scheduling link in a private message — please check your messages. One heads-up: our support team works on UTC+8, so pick a time slot that fits that time zone.

Scheduled for tomorrow at 5 PM UTC+8. I’ll have the Pi ready with direct access. For reference, the environment is a Pi 5 with the camera attached on a fresh OS, but I’ve previously tested Pi 5, Pi 3 and Pi Zero with different OS versions — libcamera v0.0.0+4367-ad9428b4, Linux 6.1.21-v8+ on the Pi 3. Same logs every time:

[0:14:12.999629498] [755] ERROR V4L2 v4l2_device.cpp:93 'ak7375 10-000c': Failed to open V4L2 device '/dev/v4l-subdev1': Invalid argument
[0:14:12.999742987] [755] ERROR CameraSensor camera_sensor.cpp:527 'imx519 10-001a': Lens initialisation failed, lens disabled

And in dmesg:

imx519 10-001a: Device found is imx519
ak7375 10-000c: supply vio not found, using dummy regulator
ak7375 10-000c: ak7375_vcm_resume I2C failure: -121

i2cdetect still shows 0x0C as ‘UU’, and manual i2ctransfer still gives ‘device or resource busy’.

Thanks, that’s all consistent. Based on everything so far, the ak7375 actuator appears not to be powered up correctly — the ak7375_vcm_resume I2C failure: -121 points to a focus-motor communication/power fault rather than a purely software issue. Since it’s affecting all 24 units, we need the remote session tomorrow to dig deeper into the root cause. We’ll pick it up from there.