I have no idea about your question, but it appears you are using ArduCam with the Balena Fin. Do you mind sharing which version (1.0 or 1.1) of the fin, and which ArduCam? I have not managed to get the ov9281 ArduCam working with v1.1 and would be interested in learning from someone who has.
Hi @sicabboy, unfortunately no one in the team has tried setting up 3 concurrent cameras on the fin. I have asked the team internally if they have any ideas why adding the 3rd camera would disable one of the CSI cams. In the mean time could you give us an exact rundown of the hardware you are using. Fin version (1.0 or 1.1) and links to the various cameras you are using. It might be possible for our team to quickly source these and do some testing on it, to see if we can reproduce the behaviour.
So far the only try we had tested was with 2 CSI Fin ports and a USB. When connecting the USB, CAM1 CSI stopped working.USB and CAM0 were working good. In the above configuration ArduCam adapter was NOT used.
When not using the multi-camera adapter there is no point in scanning for I2C devices, isn’t it?
As an extra comment, we are also trying to connect 3 cameras using V.2.2 multi-camera board module. with no success so far. So if you guys around know some resources regarding this, it will be helpful.
I’ll get some HW to test this setup and see if I can reproduce the issue. In the meantime, if you only have CAM1 connected, does it also stop working when connecting the USB camera?
Even if when using vcgencmd get_camera I get supported=2 detected=2,
writing a script like this and replacing the X with 0, 2, or 3 worked to display the images from all 3 cameras (2xCSI and 1xUSB) when running the script for one camera at a time.
Can you find a reason why the regular notation like 0, 1, 2 doesn’t work in this case?
import cv2
try:
cap = cv2.VideoCapture(X)
cap.release()
cv2.destroyAllWindows()
cap = cv2.VideoCapture(X)
except Exception as error:
print(error)
while True:
try:
print('Capturing ....')
_,img = cap.read()
cv2.imshow("frame",img)
wait_key = cv2.waitKey(1)
except Exception as error:
print(error)
cap.release()
cv2.destroyAllWindows()
I’m not sure I fully understand your last comment. You mean that running that code with three cameras connected gets you images for all of them (using X = 0, 2 and 3)? And it doesn’t work if you use X= 0, 1 and 2?
I’ll try running that code in my local setup to see the results.
I’ve tried running your script and am getting the right output for X = 0, 1 and 2 (2 being the USB camera). What cameras correspond to X = 0, 2 and 3 in your setup?