I recently picked up an Arducam IMX662 ultra-low-light USB2 UVC camera (the 2MP one) and I’m running into a fundamental problem. No matter what I set the exposure time to in software, the camera never goes above 33.3 milliseconds. I’m targeting low-light scenes and need exposures in the 100–200 ms range, but when I set exposure values above 33.3 ms, nothing changes — no error is thrown, but the framerate doesn’t drop either. On every other UVC camera I’ve used, requesting a longer exposure naturally lowers the FPS. Here it’s like there’s a hard ceiling at 30 FPS / 33.3 ms and the camera simply ignores any exposure request beyond that.
This is the product page: https://www.arducam.com/2mp-imx662-ultra-low-light-usb2-uvc-camera.html — the marketing says “delivering vivid details even in near-total darkness.” At 33 ms max exposure, that’s just not happening. The camera is basically useless for my low-light application.
Has anyone else hit this? Is there a firmware setting or a different UVC mode that unlocks longer exposures?
Thanks for reaching out. What you’re seeing is actually expected behavior for this camera in standard UVC mode. The UVC controller enforces a 30 FPS cap, which means the maximum exposure time is locked at ~33.3 ms (1/30s) to maintain a stable video stream. This is a UVC-level limitation, not a sensor limitation per se.
The low-light performance mentioned in our marketing refers to the built-in “Low Light Compensation” feature. Rather than relying on long hardware exposure times, it digitally brightens the image by increasing gain and applying image processing. It’s designed to improve visibility in dim conditions without dropping the framerate.
I’d suggest enabling Low Light Compensation and seeing if that gets you acceptable results before we dig further.
Under the camera control settings in your UVC viewer (e.g., Arducam’s Windows tool or any UVC-compatible app), you should see a “Low Light Compensation” toggle. I’ve attached a screenshot showing exactly where to find it. Flip that on and the camera will automatically boost the image in low-light conditions.
Give that a try and let me know if the low-light performance improves for your use case.
I appreciate the response, but gain and digital brightness can’t break physics. No amount of gain is going to recover detail that the sensor never captured in the first place because the shutter wasn’t open long enough. At 33 ms, the signal-to-noise ratio in my lighting conditions is abysmal. Cranking gain just amplifies noise — I need actual integration time on the sensor.
I haven’t bothered enabling Low Light Compensation because that’s not a solution to the exposure cap problem. It’s a post-processing band-aid.
The IMX662 sensor itself is capable of much longer exposures. The issue is the UVC firmware. Is there a firmware build or an alternate UVC mode that removes the 30 FPS floor and lets the exposure go longer?
Also — could I get some actual UVC documentation for this camera? I’m talking about the supported UVC control units, auto-exposure modes, the extension unit layout, that sort of thing. If there’s a way to talk to the camera at a lower level and bypass whatever’s capping the exposure, I’d rather go that route than mess with digital gain. Do you have a UVC descriptor dump or a spec sheet for what controls are actually exposed?
Before I dive into pulling together low-level UVC documentation, would you mind filling out a quick project evaluation form? It helps us understand your use case better and makes sure we’re pointing you in the right direction. I’ve sent you the form via private message — please take a look when you get a chance.
Regarding the exposure cap, I should reiterate that the standard UVC firmware for this module is designed around a fixed 30 FPS pipeline. There isn’t currently an alternate firmware build that removes that floor. I understand that doesn’t align with what you need, and I’ll pass the feedback along to the engineering team.
Honestly, at this point I’m going to move forward with another supplier’s module. I asked for technical documentation on the UVC interface and instead got asked to fill out evaluation paperwork — that tells me what I need to know about how far this is going to get.
Just to summarize for anyone who finds this thread later: the Arducam IMX662 USB UVC camera has a hard exposure ceiling of ~33.3 ms imposed by the UVC controller’s 30 FPS pipeline. There’s no way to get longer sensor integration times through standard UVC controls, and the suggested workaround (Low Light Compensation) is a digital gain feature, not a true long-exposure mode. If your application needs actual multi-hundred-millisecond exposures, this module in its current firmware state probably isn’t the right fit.