raspberrypi / picamera2

New libcamera based python library

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[HOW-TO] Enable On-Sensor HDR on Pi 5

Simonh98 opened this issue · comments

commented

On the Pi 5, the libcamera apps provide the ability to use on-sensor HDR if available with --hdr auto. How can I use on-sensor HDR with picamera2? The documentation says that only the following modes are available: SingleExposure, MultiExposure, Night and MultiExposureUnmerged.

v4l2-ctl --set-ctrl wide_dynamic_range=1 -d /dev/v4l-subdev0 results in unknown control 'wide_dynamic_range'.

Any ideas?

Hi, thanks for the question. Indeed the subdevice API in V4L2 is a bit of a pain and it's impossible to predict exactly which subdev the sensor will be.

When this was written, we didn't have Pi 5s, so the the camera will generally have been subdev 0. Actually, this sensor has a lens actuator, so I'd have thought there's a chance it could be subdev 1 instead, but I guess we get "lucky".

A Pi 5 has a more complicated architecture in terms of V4L2, and on mine I see that the sensor is showing up as subdev 2. So far as I know, the best way to check is to run something like v4l2-ctl -d /dev/v4l-subdev2 -l to list the controls and see which one looks like a sensor (it will have things like exposure controls and so on). Even the device name doesn't show up when you use --info.

I'm wondering slightly what you would do if you have two imx708s plugged in and wanted to change just one of them. I honestly don't know what you would do, other than trying each one in turn. Though the final gotcha is that there's a chance the sensors could get swapped every time you boot. I think V4L2 needs some work there.

Anyway, I hope that helps. I'll make a point of updating the documentation with some of that information. Thanks!