Hi everyone, I’m just getting started testing and I’ve finished putting the cameras into my UAV. I’m getting a black screen with the Arducam 64MP quad camera kit — honestly it’s exactly, 100% the same issue as this post: Black image with Arducam 64MP quad-cam setup
My setup: freshly installed Bullseye OS. I previously tested the 16MP camera and was happy with the result. Now I got the quad camera kit / quad interface board and followed all the steps in the manual, but I get a black screen no matter what I try.
My plan is to start with just 1 camera connected to the quad interface board to check speed and resolution, then eventually attach 2 cameras and take a picture with camera1, then camera2, then back to camera1, etc.
Question: will the same 16MP Python script also work for the 64MP quad camera? Here’s the script I used for the 16MP camera:
#!/usr/bin/python3
from ast import main
from gpiozero import Button, LED
import time
from picamera2 import Picamera2, Preview
button = Button(23)
led = LED(18)
start = time.time()
picam2 = Picamera2()
capture_config = picam2.create_still_configuration(main={"size": (4656, 3496)})
picam2.set_controls({"ExposureTime": 500})
picam2.configure(capture_config)
picam2.start()
picam2.set_controls({"AfMode": 0, "LensPosition": 200.0})
open_camera_time= time.time()
i= 1
while True:
button.wait_for_press()
led.on()
time.sleep(0.1)
led.off()
picam2.capture_file('/media/ton/TOP/pic'+str(i)+'.jpg')
button.wait_for_release()
time.sleep(0.2)
i= i+1
print(i)
No error logs right now, just a black image. Any help appreciated.
First, the 16MP picamera2 guide you may have seen is here (for Arducam V1/V2/HQ 16MP AF, 64MP AF, Pivariety cameras): Redirecting...
The main thing for the quad (HAT) setup is that you need the right dependencies installed and a script that can switch between the four cameras. Your 16MP script won’t handle the HAT camera switching on its own.
Step 3 — run it. The script takes a --choose argument where you define the sequence of cameras (a, b, c, d) to switch between and shoot. For example:
python3 hat_switch_camera_to_take_pictures.py --choose a b c d a b
That covers exactly what you want — switching between cameras and taking a picture with each. One important note: connect all four cameras to the HAT board before running it. Give that a go and let me know how it turns out.
Okay, following up. No matter what I try, I just can’t make a 64MP picture out of this. It only works when I drop down to 16MP.
To be clear about my environment: this is the Arducam 64MP quad camera, and it works at 16MP both from Python and on the command line. Anything at 64MP fails.
Thanks for the log. So to confirm the split you’re seeing: 16MP captures succeed from both picamera2 (Python) and the libcamera command line, but any 64MP capture fails. Can you tell me a couple of specifics so I can narrow it down?
The exact command line you used for the 64MP attempt (and the 16MP one that worked), so I can compare.
What the failure looks like — does it hang, exit with an error, or produce a black/broken file? If there’s an error string, paste it verbatim.
Which sensor you currently have on the HAT and which port (a/b/c/d) it’s plugged into.
Once I can see the exact 64MP command and its output, I can compare it against the log.
The failing 64MP attempt basically comes down to this — the command line produces the log in cmd.txt (link above). It’s the same outcome each run: at 16MP I get a usable image, at 64MP it does not work regardless of what I change. I don’t get a good 64MP file at all. I’ve tried it both through the Python path and the command line.
Got it, thanks for confirming. Quick summary of where we’re at:
The quad HAT switching workflow itself is set up correctly now — you’re on the pivariety dependencies plus the hat_switch_camera_to_take_pictures.py script, and the --choose a b c d ... argument handles the camera sequence you wanted (camera1 → camera2 → back, etc.).
The unresolved part is the 64MP capture specifically. 16MP works from both Python and the command line, but 64MP fails no matter which path you take, and the cmd.txt log shows the same failure each run.
So right now the practical workaround on your side is to run the captures at 16MP, which is confirmed working. The 64MP failure is still open — I’ll need the exact 64MP command and its raw output to compare against the log and figure out why that mode is failing. Paste those here when you can and we’ll keep digging.