Hi all. I’m running three Arducam 16MP IMX298 UVC cameras and I need to pull individual frames/images rather than full video streams. The spec docs mention output formats like JPG, YUV420, RAW and DNG, and I’d like to get raw sensor data if at all possible. My USB setup doesn’t have enough bandwidth to read three 1080p-or-higher streams in parallel, and I only actually need a portion of each image at high resolution. So getting the raw image would cut the bandwidth I need several times over. Is there any way to bypass the ISP or get at the lower layers to read raw data from the camera?
Thanks for laying that out. To set expectations: the UVC camera doesn’t support capturing RAW images. At the USB/UVC level the firmware only exposes YUV and MJPG formats, even though the sensor itself can do more. There’s also no single-shot function — the camera runs in streaming mode only. And bypassing the ISP isn’t a viable route from the host side. For your bandwidth constraint, the realistic levers are lowering the frame rate and selecting the compressed MJPG format, which will cut the USB payload substantially compared to uncompressed YUV.
Thanks. For reference, my platform is a Raspberry Pi 4 with the Arducam 16MP IMX298 USB camera with autofocus lens, and I followed the IMX298 native camera guide on the Arducam docs site. Oddly, the camera did work initially, then somehow quit working after a while. I did manage to get the system set up so the focus controls are registered correctly — and OpenCV is the only way I’ve found so far to actually drive the motorized lens. Any idea why it stopped, and can I still lower the frame rate on this thing?
Just to re-confirm the format situation: this UVC camera only supports YUV and MJPG output, and it has no single-shot capture mode, so streaming via V4L2/OpenCV is the expected path. The fact that OpenCV exposes the focus control is normal — that’s the UVC control interface for the motorized lens. For the ‘quit working’ part, can you check whether the device still shows up under lsusb and what v4l2-ctl --list-formats-ext reports? That’ll tell us whether it dropped off the bus or just the negotiated format changed.
I checked, and I can only ever negotiate YUV and MJPG — no RAW, and no way to trigger a single frame capture. So I’m stuck streaming all three cameras and the bandwidth still doesn’t fit at the resolution I need. I only need part of the frame, but I can’t seem to get just the raw portion either.
So to wrap this up: RAW capture and ISP bypass are not supported on this UVC camera — the hardware/firmware only exposes YUV and MJPG formats, and there’s no single-shot mode, so it’s streaming-only. The way to reduce USB bandwidth with this camera is to lower the frame rate where possible and select the compressed MJPG format instead of uncompressed YUV. That’s the available workaround given the firmware’s limitations.