Raspberry Pi HQ Camera UVC board exposure/brightness controls not changing image on Jetson/Windows

Hi, I’m stuck with my Raspberry Pi HQ Camera + CSI to UVC USB Board. The product description says exposure, brightness, and white balance should be controllable, but changing them does nothing to the image. Running v4l2-ctl -d /dev/video0 -list shows a lot of parameters, but when I set them the image doesn’t change at all. I also tried on a Windows laptop with AMCap.exe (Options → Video Capture Filter) and the changes have no effect there either. I’m on an NVIDIA Jetson AGX Xavier 32GB Dev Kit (SKU B0278). One more weird thing: I have two orders from different shops, same board marking UC-733 Rev.C1, but they don’t behave the same.

Thanks for the details. The first thing I’d check is the firmware on the adapter board. These CSI-to-UVC boards need firmware burned first, otherwise the control set doesn’t behave as expected. I’ve sent you the guide video link by private message - please follow it to burn the firmware. One important note: the flashing software runs on Windows, so use a Windows PC for that step.

I burned the firmware on Windows and it works great now, the controls are responding. One more question - is there any driver available to control the camera on the NVIDIA Jetson AGX Xavier? I’ve been following your OpenCV Python GStreamer guide on Linux and read through a few references: the OpenCV videoio flags docs, the kurokesu article on UVC exposure timing, a couple of NVIDIA forum threads about v4l2 control in OpenCV/GStreamer, and the Arducam v4l2 exposure thread.

Good to hear the firmware fixed the controls. For the Jetson AGX Xavier, the board enumerates as a standard UVC device, so there’s no special driver - you control it through v4l2/GStreamer/OpenCV like any UVC camera. You mentioned the two orders behave differently - can you describe what you’re seeing? If you’re getting errors or different behavior, paste the details.

The two orders show different behavior even though both boards are marked UC-733 Rev.C1 - is there maybe a different firmware patch between them? The main issue right now: at high resolution, 2 of the cameras show a black screen in the preview window while the 3rd one works fine. Saving images works fine on all 3 cameras.

About the black preview on those 2 cameras - were you running two cameras at the same time, or testing them one by one? Running two UVC cameras at high resolution at the same time can squeeze the USB bandwidth, and that often shows up as a black preview window. Can you test the cameras one at a time to rule out bandwidth contention?

I tested them one by one with only one camera connected at a time. Same result - the preview window only opens for the camera from my first order, the other two give a black window. If I lower the resolution, those two cameras work fine. On Windows with AMCap.exe all three cameras work without any problem. This is Python + OpenCV on the Jetson AGX Xavier.

Let me double-check the firmware on all three modules. Did you burn firmware to all three camera modules, or just the first one? The firmware status matters a lot here.

I can confirm I burned the firmware to all three camera modules.

Since all three cameras work correctly in AMCap.exe, the problem might be in the code rather than the hardware. Can you post the exact code you’re running?

Here’s the code I’m using: ArduCam.py (https://cdn.arducam.com/forum/da10c193f73980991424ff55772e7966/ArduCam.py). The problem is only in the preview window and only on 2 boards - the 3rd board works fine. Frames can be saved on all 3 boards. Screenshots: WorkingOne.png and PreviewNotWorking.png.

Looking at your code, the fixed resize dimensions could be the problem for the preview. Try changing:
frameSmall=cv2.resize(frame,(1008,760))
to:
frameSmall=cv2.resize(frame, (int(dispW/4), int(dispH/4)))
It works on my side, though I’m not sure if it’ll work on yours. Let me know.

I tried the change from (1008,760) to (int(dispW/4), int(dispH/4)) - didn’t work. I also tried removing the resize line entirely, still no luck. The preview window still only opens for one camera, not the other two. Again, testing separately with one camera connected at a time, and saving images works for all 3.

Thanks for trying that. Based on everything we have, I don’t have any further suggestions for the preview issue at this point. Since saving works on all boards and all cameras work in AMCap, it looks specific to the OpenCV preview path on the Jetson, but I don’t have another fix beyond what we’ve tried. If you find anything new or have other questions, feel free to post back.