picamera2 icon indicating copy to clipboard operation
picamera2 copied to clipboard

[BUG] LensPosition control ignored in still configuration with AfMode set to manual.

Open Ataman opened this issue 1 year ago • 14 comments

Describe the bug Setting AfMode = AfModeEnum.Manual and LensPosition = 10.0 (Or anything else between 0 and 10) with Picamera2.set_controls() does not set the lens position on supported cameras.

To Reproduce Script:

from picamera2 import Picamera2
from libcamera import controls

picam2 = Picamera2()
picam2.configure(picam2.create_still_configuration())
picam2.start()

picam2.set_controls({"AfMode" : controls.AfModeEnum.Manual})
picam2.set_controls({"LensPosition" : 10.0})
picam2.capture_file("test.jpg")

picam2.stop()
picam2.close()
picam2 = None

Expected behaviour An image file focused at approx. 10 centimeters when LensPosition is set to 10.0.

Console Output, Screenshots Output looks fine:

[71:09:34.910826613] [7361]  INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f
[71:09:35.219248128] [7362]  INFO RPI vc4.cpp:437 Registered camera /base/soc/i2c0mux/i2c@1/imx708@1a to Unicam device /dev/media3 and ISP device /dev/media0
[71:09:35.221504125] [7362]  INFO RPI pipeline_base.cpp:1101 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml'
[71:09:35.314907978] [7361]  INFO Camera camera.cpp:1033 configuring streams: (0) 4608x2592-BGR888 (1) 4608x2592-SBGGR10_CSI2P
[71:09:35.318746972] [7362]  INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx708@1a - Selected sensor format: 4608x2592-SBGGR10_1X10 - Selected unicam format: 4608x2592-pBAA

Hardware : Raspberry Pi Zero W + Raspberry Camera Module V3

Additional context picamera2 version: 0.3.12-2 libcamera version: 0.0.5+83-bde9b04f Everything works fine using libcamera-apps. The following command produces the expected image focused at 10 centimeters: libcamera-jpeg -n --autofocus-mode manual --lens-position 10.0 -o test.jpg

Ataman avatar Sep 21 '23 12:09 Ataman