64MP - Switching modes locks up

Hello,

We are running a loop that starts of at 1920x1080 takes a picture then switches to 4624x3472 and takes another picture. We are finding that the camera will lock up intermittently. Here is a snippet of our code.

#Start by declaring a preview_config and a still_config:

configPiP = picam2.create_preview_configuration(main={“size”: (1920, 1080)})
configMainCam = picam2.create_still_configuration(main={“size”: 4624, 3472)})

#When changing mode:

    picam2.configure(configPiP)
    picam2.start()

    # looping here
    picam2.stop()
    picam2.configure(configMainCam)
    picam2.start()
    # take picture etc

    picam2.stop()
    picam2.configure(configPiP)
    picam2.start()

@Ross6699

Could you describe it in detail? I can understand it better if there is a video.

Hello Edward,

Sorry I cant make a video of the process, but here is a program that will cause the camera to hang at random times.

Thanks.

Ross.


from datetime import datetime
from picamera2 import *

picam2 = Picamera2()
configPiP = picam2.create_preview_configuration(main={“size”: (1920, 1080)})
configMainCam = picam2.create_still_configuration(main={“size”: (4624, 3472)})
picam2.configure(configPiP)
picam2.start()
picam2.set_controls({“AfMode”: 0, “Brightness”: 0.0, “LensPosition”: 0.5})

while True:
for i in range(150):
picam2.capture_file(“/mnt/ramdisk/PiP.jpg”)
picam2.stop()
picam2.configure(configMainCam)
picam2.start()
picam2.capture_file(“/home/pi/Archive/{}.jpg”.format(datetime.now().strftime(“%Y-%m-%d %H:%M:%S”)))
picam2.stop()
picam2.configure(configPiP)
picam2.start()

@Ross6699

I don’t seem to be reproducing


image

Hello @Edward

When I try to copy your code:

import time
from picamera2 import Picamera2, Preview

picam2 = Picamera2()

preview_config = picam2.create_preview_configuration(main={"size": (1920, 1080)})
config = picam2.create_still_configuration(main={"size": (4624, 3472), })

picam2.configure(preview_config)
picam2.start_preview(Preview.QTGL)

picam2.start()
picam2.set_controls({"AfMode": 2 ,"AfTrigger": 0})
time.sleep(5)
print('still started')
loop = 1
while True:
    picam2.stop()
    print('switching to still')
    picam2.configure(config)
    picam2.start()
    print('Taking picture')
    picam2.capture_file(f'loop_{loop}.jpg')
    loop += 1
    # cv2.imwrite(f"af_test.png_{loop}", cv2.cvtColor(RGB888, cv2.COLOR_RGB2BGR))  # Converting from RGB to BGR for OpenCV compatibility.
    picam2.stop()
    print('switching to preview')
    picam2.configure(preview_config)
    picam2.start()
    print('preview started')
    time.sleep(5)

Or other variations of this code I keep getting this error:

Traceback (most recent call last):
  File "/home/pinlock2/pinlock_production_video_monitor/cam_test_2.py", line 30, in <module>
    picam2.configure(preview_config)
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 1114, in configure
    self.configure_(camera_config)
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 1045, in configure_
    self.check_camera_config(camera_config)
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 836, in check_camera_config
    self.check_stream_config(camera_config["raw"], "raw")
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 797, in check_stream_config
    raise RuntimeError("Unrecognised raw format " + format)
RuntimeError: Unrecognised raw format RGGB16_PISP_COMP1

When trying to switch back to preview mode.

My goal is to keep the preview mode on with continuous focus so that when I want to take a picture it is already focused.

Can you maybe explain to mee why i keep getting the unrecognised raw format error?