Arducam B0444 IMX462 video0 missing when serial0 UART enabled on Pi Zero 2 W

Hi everyone, I’m running into a strange issue with my Arducam B0444 (IMX462) camera on a Raspberry Pi Zero 2 W. When I disable serial0 (UART), the camera is detected as video0 and works normally. But as soon as I enable serial0, video0 just disappears and the camera isn’t recognized at all. For my project I need both the camera and UART working at the same time. Interestingly, my Arducam ToF camera doesn’t have this problem on the same setup. I came across this related thread (IMX462 B0444 Camera is not recognized by kernel) but it doesn’t really cover my serial conflict. Has anyone figured out what’s going on?

That’s an unusual one. Could you share a bit more about your environment so we can narrow it down? Which OS image are you running (32-bit or 64-bit), and did you follow the Pivariety quick start guide? Also, how exactly are you enabling and disabling serial0 - through raspi-config, or by editing config.txt manually? If you can grab any dmesg output from when the camera fails to show up, that would help a lot too.

Sure. I’ve tested with both Bullseye 2023-05-03 64-bit Full and 2023-05-03 32-bit Full. I followed the software section of the quick start guide here: Quick Start Guide - Arducam Wiki. I’m toggling serial0 through raspi-config. The weird part is this camera actually worked before and then somehow just quit working. I don’t have a dmesg log captured yet, sorry. For reference, the setup in the thread I linked was a Pi 4 B running Debian 11 bullseye aarch64 with kernel 6.1.21-v8+, which is pretty close to what I’m using.

No problem on the logs, but if you can capture them later it’ll really help. When you enable serial0 through raspi-config, it sets enable_uart=1 in config.txt. Could you check your /boot/config.txt and confirm what’s actually set there? Also, try running vcgencmd get_camera and ls /dev/video* with serial enabled versus disabled, so we can compare the two states directly.

Here’s what I’m seeing consistently: with serial0 disabled, /dev/video0 is present and vcgencmd get_camera reports the camera as detected. With serial0 enabled (enable_uart=1 in config.txt), /dev/video0 is gone after reboot and vcgencmd reports no camera. Toggling serial0 back off brings video0 back every time. It’s completely reproducible on my Zero 2 W.

Thanks for testing both states. Based on what you’re describing, the camera itself doesn’t occupy any UART/serial resources - the IMX462 B0444 talks over the camera CSI/I2C interface, not the serial pins. So using the camera shouldn’t affect serial0 at all. If there’s a conflict, it would point to a system-level issue on the Pi side, and an official Raspberry Pi camera would likely hit the same conflict in that configuration. The fact that video0 works fine with serial0 disabled tells us the camera hardware and driver are functioning properly. You can also check the troubleshooting section for IMX462/B0444 detection issues here: Troubleshooting - Arducam Wiki

Thanks, that makes sense. So the camera is fine, but I still need serial0 and the camera running at the same time for my use case. Is there any known fix or workaround for getting both working together on the Zero 2 W? The ToF camera coexists with UART fine, so I was hoping the B0444 would too.

Glad that helped clarify things. To be upfront, running video0 and serial0 simultaneously in this specific setup isn’t a scenario we’ve tested on our side, so I don’t have a confirmed workaround from our end. Since the camera works normally when serial is disabled, the camera is functioning correctly - the conflict only appears when serial0 is enabled, which points to how the Pi system is handling those resources together. I’d recommend posting this on the Raspberry Pi forums with your exact config, since they’ll have more insight into serial/camera resource interaction on the Zero 2 W. For reference, here’s the detection troubleshooting doc again (Troubleshooting - Arducam Wiki) and the related thread: IMX462 B0444 Camera is not recognized by kernel