MC_844_Rev.B OV2311 camera: missing .cfg file and USBtest won't connect on Windows

Hey folks, I’m trying to get an Arducam MC_844_Rev.B with the OV2311 monochrome sensor working on Windows for a secondary development project. I need to control it from Python.

I’ve been banging my head against this for a bit:

  1. I downloaded the USBtest tool from Arducam’s site hoping it would let me configure the camera, but it just won’t connect — can’t see the camera at all.
  2. I searched through GitHub looking for a .cfg configuration file for this specific camera model (MC_844) but came up completely empty.

I’m assuming I need a .cfg file to initialize the sensor properly, and then some kind of SDK to control it with Python. Has anyone worked with this module before? Where do I even find the right config file?

Before I point you in the wrong direction, can you confirm which exact product you have? There are a few different Arducam OV2311 kits floating around.

Is it this evaluation kit?

Or is it a different SKU? I ask because the configuration approach differs significantly between their USB3 shield-based kits and their standalone USB camera boards. Once I know for sure, I can tell you exactly what you need.

Thanks for the quick reply. Mine is actually this one — the standalone board, not the evaluation kit:

Arducam 2MP Global Shutter USB Camera Board for Computer, 50fps, OV2311

The board says MC_844_Rev.B on the silkscreen. Same OV2311 monochrome sensor though.

So yeah, to reiterate — I need to grab frames from this thing in Python. What’s the right .cfg file and SDK for this particular board?

Ah, that explains a lot — and I have good news: you’ve been chasing the wrong path entirely.

The MC_844_Rev.B board you have is a UVC (USB Video Class) device. That means it’s designed to be fully plug-and-play — Windows already has the driver for it, and it shows up as a standard webcam/camera device. No .cfg files, no proprietary SDK needed.

Here’s why your earlier attempts didn’t work:

  • USBtest tool — This is for Arducam’s non-UVC camera modules that use their USB3 shield with a separate bridge chip. It talks to the shield’s firmware, not a UVC camera. Your board doesn’t use that architecture at all, which is why USBtest couldn’t find anything.
  • .cfg files — Also specific to the non-UVC product line. UVC cameras handle all their internal configuration over standard UVC control protocols. There’s nothing to configure externally.

You can literally control this camera from Python with plain OpenCV — nothing else is needed.

Oh wow, okay — I had no idea. I just assumed all Arducam modules needed that toolchain since that’s what kept coming up in searches.

So just to make sure I understand: I can just do cv2.VideoCapture(0) and it’ll work out of the box? Don’t I at least need some reference for what UVC controls are available — exposure, gain, that kind of thing — for the OV2311 specifically?

Yeah, cv2.VideoCapture(0) (or whatever index Windows assigns it) will get you frames right away — the camera enumerates as a standard UVC device, so OpenCV’s VideoCapture picks it up natively.

For reference, here are two good starting points:

  1. OpenCV’s Python video tutorial — covers the basics of opening a camera, reading frames, and setting properties: OpenCV: Getting Started with Videos

  2. Arducam UVC Python Demo on GitHub — this is specifically for their UVC camera line. It has examples for listing available cameras, setting resolutions, and controlling UVC properties (brightness, contrast, exposure, gain, etc.) using OpenCV’s cv2.CAP_PROP_* constants: GitHub - ArduCAM/ArducamUVCPythonDemo · GitHub

That second repo should be exactly what you need — it’ll show you how to enumerate the camera and tweak the sensor controls programmatically without any .cfg files or proprietary SDK. The OV2311 on this board exposes its controls through standard UVC extensions, so the usual OpenCV property getters/setters should work for exposure, gain, and so on.

Give those a try and let us know how it goes. If the camera doesn’t show up at all in OpenCV, we can troubleshoot from there, but it should just work.