AR2020 camera driver not recognized on Windows 11, gain support in OpenCV?

Hey everyone, I’m trying to get an Arducam AR2020 up and running on Windows 11 and running into some issues.

Here’s what’s happening:

  • I installed the cyusb3.inf driver, expecting it would unlock some kind of advanced feature set for the camera.
  • After installation, Device Manager still shows the camera as “B0511 Arducam” and it’s using the standard Microsoft drivers.
  • I tried launching Shield UI but it doesn’t detect the camera at all.

My end goal is to build a C# app that can:

  1. Download RAW sensor data
  2. Set exact exposure time
  3. Set exact gain
  4. Read the sensor temperature

I was planning to use the EVK SDK for this. Has anyone gotten this combo working? Am I missing a step with the cyusb3 driver installation?

I think there’s a fundamental mismatch here that’s causing your problem.

The AR2020 is a UVC (USB Video Class) module — it’s designed to be plug-and-play with the standard OS drivers. That’s why Device Manager is correctly picking it up with the Microsoft driver, even after you tried installing cyusb3.inf.

A few things to clear up:

  • cyusb3.inf is for Cypress FX3-based devices that use a bulk transport — it’s not compatible with UVC cameras. The driver just won’t bind to your device, which is why Device Manager ignores it.
  • Shield UI and the EVK SDK are built for MIPI evaluation kits (the kind that connect via ribbon cable to an ARM board), not for UVC USB cameras. They’re looking for a completely different hardware interface.
  • The UVC standard does not expose RAW sensor data or temperature registers — those are abstracted away by the UVC protocol. So even with the right driver, you won’t get raw Bayer data or temperature readings through UVC.

Here’s what I’d recommend:

  1. Stick with the built-in Microsoft UVC driver — it’s the correct one.
  2. Use OpenCV (or DirectShow if you prefer staying in C#) to access the camera. Both exposure and gain are exposed as standard UVC controls that you can read/write programmatically.

Can you confirm whether RAW sensor access and temperature are hard requirements for your project, or if you can work within what UVC exposes?

That makes sense, thanks for the detailed explanation. I was definitely going down the wrong path with cyusb3 and the EVK SDK.

I’ll pivot to OpenCV for this — at least exposure and gain control through UVC should get me most of the way there.

One thing I want to nail down before I start coding: what gain values does the AR2020 actually support through OpenCV? I want to know the min/max range and the step size so I can build the control properly. The UVC spec allows a pretty wide range and it varies by sensor, so I don’t want to assume anything.

Good question — the gain range is sensor-specific even within UVC, so you’re right not to guess.

Here’s the gain specification for the AR2020, pulled from the sensor datasheet:

AR2020 Gain Ranges

To summarize what’s in that table: the AR2020 supports analog gain from 1x up to 16x, and digital gain can extend that further. When you query the gain control through OpenCV’s CAP_PROP_GAIN (or the DirectShow IAMDroVideoProcAmp interface if you’re in C#), the driver maps the sensor’s native gain steps into the UVC range, so you’ll get discrete steps rather than a continuous slider.

Quick tip: in OpenCV, you can probe the actual range at runtime with:

cap = cv2.VideoCapture(0)
min_gain = cap.get(cv2.CAP_PROP_GAIN)
max_gain = cap.get(cv2.CAP_PROP_GAIN)  # after setting to a high value

That way you’re not hardcoding values in case the driver reports slightly different bounds. Let me know how it goes once you start pulling frames.