Hey everyone, I picked up the quad camera kit B0388 from Amazon and I’m having trouble getting autofocus and manual focus to work. I’m using a Jetson Nano with the latest JetPack. I followed the setup instructions here: Quick start - Arducam Wiki
Weird thing is, I can see the video stream just fine — both from the command line and in a Python program. So the cameras are definitely connected and working. It’s just the focus that’s completely unresponsive. Anyone run into this?
Thanks for the details. Just to confirm — you mentioned the B0388 quad camera kit, and from your description it sounds like these are IMX519 cameras, not IMX219. Can you double-check the model? Also, when you say you followed the quick-start guide, did you use the IMX219 stereo guide you linked, or was there a different one? Just want to make sure we’re troubleshooting the right setup here.
Sorry, yeah — they are the IMX519 cameras. The kit is definitely B0388. And I actually followed that exact link I posted, the IMX219 stereo camera kit quick-start guide. I realize now the guide title says IMX219 but the steps seemed generic enough and they did get the video feed working for all four cameras. Should I have used a different guide?
No worries — that explains the issue. The quick-start guide you followed is designed specifically to get the video stream up and running, which it did successfully. But it doesn’t include any of the specialized scripts needed to actually control the autofocus motor on the IMX519.
So here’s what’s happening: your hardware is connected correctly and the core drivers are working perfectly (that’s why you can see images from all four cameras). You’re just missing the dedicated focus control software.
There’s a separate GitHub repository built specifically for IMX519 focus control:
Clone that repo and check out the example scripts in there. Those scripts talk directly to the autofocus controller chip on the IMX519 cameras. Give it a try and let me know how it goes.
That did it! Focus is working now. Thank you so much — I had no idea there was a completely separate repo just for the focus motor. The quick-start guide got me 90% of the way there but I was banging my head against the wall on that last bit.
Actually, quick follow-up question now that I have everything working: do all four cameras share the same focus setting, or does each camera focus independently? I’m trying to figure out if I need to manage focus separately for each one in my application.
Good question. Each camera calculates and sets its own focus independently — they don’t share the same focus value. So yes, you’ll have individually focused images from each camera.
However, the triggering is synchronized: the camera connected to the RX0 port acts as the master trigger. When that RX0 camera initiates its autofocus routine, it simultaneously signals the other three cameras to start their own autofocus routines at the exact same time.
So in practice: independent focus results, but synchronized start. No extra steps needed on your end — this is just how the quad camera system behaves out of the box.
That makes sense, thanks. One more thing — I noticed the example code in the focus repo only seems to capture processed JPG images. Does this kit support capturing raw images at all? I need raw Bayer data for my use case and the JPG output isn’t going to cut it. Is there a way to get raw frames out of these cameras, or is that a limitation of the quad camera setup?
That’s a valid question. The focus example repository is really just meant to demonstrate autofocus control, so it defaults to simple JPG capture for convenience — it’s not trying to be a comprehensive capture pipeline.
As for raw Bayer capture on the IMX519 cameras through the quad camera kit — this depends on whether the V4L2 driver and the underlying camera interface expose raw pixel formats. On Jetson platforms, you’d typically need to configure the pipeline to request a Bayer format (like BayerRG10 or similar) via the ISP bypass.
Can you share a bit more about how you’re currently capturing? Are you using nvarguscamerasrc in GStreamer, or going through the V4L2 interface directly? That’ll help narrow down whether raw capture is possible with your current setup, or if there’s a different approach you’d need to take.