Arducam IMX519 camera on Raspberry Pi 4: V4L2 failed to start streaming input/output error

Hi everyone. I’ve got an Arducam IMX519 on a Raspberry Pi 4 and I’ve never managed to get it working. The camera is detected, but as soon as it tries to stream it dies with this:

ERROR V4L2 v4l2_videodevice.cpp:1906 /dev/video0[17:cap]: Failed to start streaming: Input/output error
ERROR: *** failed to start camera ***

Has anyone run into this? It never actually streams a frame.

Can you post a bit more about your setup? Which Pi, which libcamera build, and does the sensor actually enumerate? If you run libcamera-hello --list-cameras, the registration line should show the sensor node. It would also help to know which /dev/media devices map to unicam and ISP.

Sure. Raspberry Pi 4, Arducam IMX519 (the Raspberry Pi Cameras version). libcamera is v0.0.0+4186-d1dc0373. The sensor shows up as /base/soc/i2c0mux/i2c@1/imx519@1a. Unicam is /dev/media3 and ISP is /dev/media0.

Thanks, that all looks normal so far. Let’s rule out a stale or mismatched libcamera build first. Reinstall libcamera following the Arducam guide here:

https://docs.arducam.com/Raspberry-Pi-Camera/Native-camera/Libcamera-User-Guide/

After that, try the camera again and paste the full output.

Okay, I installed libcamera from the Arducam website per that guide and got back into the camera. It still sees the sensor.

Good. Run libcamera-hello again and paste the whole output from start to the failure.

Tried libcamera-hello again. It gets as far as configuring the stream, then fails:

Made X/EGL preview window
[1:53:17.464068434] [2778] INFO Camera camera_manager.cpp:299 libcamera v0.0.0+4186-d1dc0373
[1:53:18.044587272] [2780] WARN RPI raspberrypi.cpp:1308 Mismatch between Unicam and CamHelper for embedded data usage!
[1:53:18.047090312] [2780] INFO RPI raspberrypi.cpp:1425 Registered camera /base/soc/i2c0mux/i2c@1/imx519@1a to Unicam device /dev/media3 and ISP device /dev/media0
[1:53:18.048661572] [2778] INFO Camera camera.cpp:1028 configuring streams: (0) 2328x1748-YUV420
[1:53:18.049391845] [2780] INFO RPI raspberrypi.cpp:805 Sensor: /base/soc/i2c0mux/i2c@1/imx519@1a - Selected sensor format: 2328x1748-SRGGB10_1X10 - Selected unicam format: 2328x1748-pRAA
[1:53:19.236367689] [2780] ERROR V4L2 v4l2_videodevice.cpp:1906 /dev/video0[17:cap]: Failed to start streaming: Input/output error
ERROR: *** failed to start camera ***

Thanks, that’s the exact output I reproduced here. The important part is that the IMX519 is detected, registered to /dev/media3, and the pipeline configures 2328x1748-SRGGB10_1X10 / pRAA — but the V4L2 device fails with an I/O error the moment unicam tries to start streaming. So it’s not getting frames at all.

Let’s collect a diagnostic bug report so we can see the full state. Run these:

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

It’ll drop an arducam-bug-report.txt in the current directory. Attach that here.

Done. I ran the tool and it produced arducam-bug-report.txt in the current directory. I’ve attached it.

I went through the bug report and the screenshot you attached. The failure points to cold solder joints (虚焊) on components on the camera board. The IMX519 is detected and registered by libcamera, and the stream configuration completes, but streaming fails at the V4L2 level — that’s consistent with a hardware soldering defect on the board rather than a software or configuration issue.

If you have soldering capability, re-solder the components at the circled red position shown in the image. If you’d rather not do that, reply back and we’ll go from there.