IMX586 .cfg file missing for Arducam B0478 in GitHub Config

Hi everyone, I just got an Arducam USB 3.0 Camera Module (model B0478) with the IMX586 sensor — the 48MP one with motorized focus. I’m trying to get it working with the Python SDK for high-res capture and autofocus control.

I’ve been going through the official GitHub repo (ArduCAM_USB_Camera_Shield) and I can’t seem to find a .cfg configuration file for the IMX586 sensor. I checked the Config directory at ArduCAM_USB_Camera_Shield/Config at master · ArduCAM/ArduCAM_USB_Camera_Shield · GitHub and there’s nothing in there for IMX586. Without the right .cfg file, I’m stuck — the Python SDK examples seem to need one to initialize the camera. Does anyone know where I can find the IMX586 config, or am I missing something obvious?

Welcome to the forum! Before we dig too deep — can you clarify which Python SDK you’re referring to? Are you trying to use the ArducamSDK library from that same ArduCAM_USB_Camera_Shield repo, or were you looking at something else? Also, what OS are you running?

Yeah, I was following the ArducamSDK Python examples from the ArduCAM_USB_Camera_Shield repo. A lot of the sample scripts seem to reference a .cfg file for camera initialization, so I assumed I needed one for the IMX586. I’m on Ubuntu 22.04.

I spent a good hour digging through the Config folder and even checked some forks and older releases, but no luck. The camera does show up when I plug it in — I can see it in lsusb and /dev/video — but I figured I needed the proper config to unlock the full resolution and autofocus via the SDK.

Ah, I think I see where the confusion is. The B0478 camera module actually works differently from some of the other Arducam models. It operates as a standard UVC (USB Video Class) device, so it does NOT require any .cfg configuration file at all. Those .cfg files in the ArduCAM_USB_Camera_Shield repo are for other camera models that use a different communication protocol — they’re not applicable to the B0478.

Since the B0478 presents itself as a standard UVC device, the kernel handles all the low-level communication for you. You don’t need the ArducamSDK with a .cfg file for this camera. Instead, you’ll want to go the standard UVC route, which is actually simpler in most cases.

Oh wow, that’s a relief! I was going in circles trying to find something that doesn’t exist. So if I’m not using ArducamSDK and a .cfg file, how do I actually control the camera then? Specifically I need to capture at the full 48MP resolution and use the motorized focus. Can I still do that through regular UVC?

Good question. For the UVC approach, you’ll want to use the Python OpenCV demo that Arducam provides for their USB3 UVC camera kits. OpenCV can talk to the camera through the standard V4L2 / UVC interface, and the motorized focus control is exposed through standard UVC controls. You can access those via OpenCV’s cv2.CAP_PROP_FOCUS property or through v4l2-ctl commands.

Check out the official documentation here: Start USB3 UVC Camera on Linux - Arducam Wiki — that page has a Python OpenCV demo that’s specifically designed for these USB3 UVC cameras. It should cover capture, resolution settings, and focus control without needing any custom .cfg files.

That makes a lot of sense now. I was trying to force the ArducamSDK approach when the camera was already working as a plain UVC device this whole time. I’ll go through that OpenCV demo and report back. Thanks for clearing that up — hopefully this helps anyone else who picks up a B0478 and goes down the same rabbit hole!

No worries — it’s an easy mistake to make since Arducam has a few different product lines with different software stacks. Just to recap for anyone else who finds this thread: the B0478 (IMX586, USB 3.0) is a UVC-compliant device. No .cfg file from the ArduCAM_USB_Camera_Shield repo is needed. Use the standard UVC path with OpenCV and the demo from the docs site. If you run into any issues with resolution modes or focus control in the OpenCV demo, feel free to post back here.