Is Sony IMX500 compatible with Arducam Multi Camera Adapter V2.2 on Pi 4?

Hey folks, I’m trying to get a Sony IMX500 camera module working with an Arducam Multi Camera Adapter Module V2.2 on a Raspberry Pi 4B (8GB). I know the IMX500 isn’t on the official supported list for this adapter, but I was hoping someone here might have found a workaround or some driver-level hack to make it cooperate. Anyone had any luck with this combo? Or any pointers on where to even start poking around?

Welcome. So the Sony IMX500 is a bit of an odd duck — it’s not a plain MIPI CSI-2 camera sensor. It’s an intelligent vision sensor with its own onboard processing and AI capabilities, which means it uses a fairly complex, dedicated driver stack. That’s quite different from what you’d see with something like an IMX219 or OV5647. Before we go too deep — what have you tried so far? Any dmesg output when the camera is connected through the adapter? Does the IMX500 work if you plug it directly into the Pi’s CSI port without the adapter in the mix?

Yeah, the IMX500 works fine when connected directly to the Pi — no issues there. And the adapter itself is fine too, I’ve tested it with a Pi Camera V1 and V2 and both switch properly. But when I put the IMX500 on the adapter, it just never shows up. i2cdetect doesn’t see it, nothing in dmesg. It’s like it’s not even there. I was hoping maybe there was some device tree overlay trick or a way to force the driver to re-initialize after the mux switches channels.

Right, so the adapter uses a multiplexer to switch between multiple camera channels. When it flips from one camera to another, it has to tear down the active camera driver and re-initialize the driver for the newly selected sensor. That re-initialization step is non-negotiable — the mux can’t just pass signals through transparently.

And that’s where the problem is. The IMX500 driver stack fundamentally doesn’t support that kind of hot re-initialization pattern. A standard MIPI camera driver is relatively simple — unload, reload, initialize the sensor over I2C, start the stream. But the IMX500 has all that onboard processing that needs a much more involved init sequence. The driver isn’t designed to be torn down and brought back up on demand through a mux channel switch. This isn’t a missing config option or something you can fix with a custom overlay — it’s an architectural mismatch between how the V2.2 adapter operates and what the IMX500 driver expects.

For comparison, here’s what a compatible camera overlay looks like — the Arducam 64MP, which follows the standard V4L2/MIPI CSI-2 pattern that the multiplexer can handle cleanly:

You can see it’s a fairly straightforward sensor overlay. The IMX500 overlay is structured very differently because of that onboard AI processor.

Bottom line: unfortunately there’s no workaround or solution for this right now. The Sony IMX500 remains incompatible with the Arducam Multi Camera Adapter Module V2.2, and it’s not something that can be resolved through configuration changes or minor driver tweaks. If you need multi-camera with the IMX500, you’d likely need to look at a different architecture entirely — like multiple Pi boards or a different switching approach.