Exposure configuration issues on OV9281-B0225

Having issues setting exposure value using v4l2-ctl on OV9281-B0225 Rev. B (1MP OV9281 Mono Global Shutter MIPI Camera Module with M12 Mount lens for Raspberry Pi - Arducam) with Pi Zero 2W and RasPi OS lite over SSH.

When exposure is changed using “v4l2-ctl --set-ctrl exposure=[VALUE]” no change in image brightness is noted. Further, when the value is set less than 430 (range should be 4-885) the image is blank. Tests have been performed with legacy camera mode on and off (see Set exposure of OV9281 camera) with no difference.

  1. Where did you get the camera module(s)?
  2. Model number of the product(s).
  3. What hardware/platform were you working on?
    RPI Zero 2W
  4. Instructions you have followed. (link/manual/etc.)
    Wiki install instructions on Arducam website (OV9281 1MP Global Shutter Camera for Raspberry Pi - Arducam )
  5. Problems you were having.
    Exposure setting in v4l2 driver does not have an effect, and produces black image for values less than 430.
  6. The dmesg log from your hardware.
    Best way to attach?
  7. Troubleshooting attempts you’ve made.
    Testing various values, setting legacy camera mode on and off.
  8. What help do you need?
    Need assistance configuring exposure setting so it can be set correctly. Thanks!

I want to know what OS you are using. Bullseye or Buster?
You can use the libcamera --shutter to control exposure if you use the Bullseye OS.

Hi Dion,

I’m using Bullseye OS. Unfortunately, as I’m using V4L2 to capture frames, using libcamera capture commands will not work for me in this case. I should have said this in my main post, apologies.

Is there an issue with the ov9281 driver that prevents the exposure setting in V4L2 to apply correctly?

Thanks for your help!

You can try the command below:

v4l2-ctl -d /dev/v4l-subdev0 -l

Hi Dion,

This is the output from the command:

This is as expected, and my issues have been related to the exposure setting in the user controls section. When I run “v4l2-ctl --set-ctrl exposure=[VALUE]”, I can see the exposure value change, but this is not reflected in the image captured, and if the value is set lower than 430 no images can be seen at all. Thanks for your continued help!