Set exposure of OV9281 camera

  1. Where did you get the camera module(s)?
    RobotShop

  2. Model number of the product(s)?
    OV9281 1MP Global Shutter Camera for Raspberry Pi

  3. What hardware/platform were you working on?
    Raspberry Pi 3

  4. Instructions you have followed. (link/manual/etc.)
    Setting up the camera for use (was succesful):
    OV9281 1MP Global Shutter Camera for Raspberry Pi - Arducam

  5. Problems you were having?
    I need to set the exposure time to a certain level (preferably short) and keep it there. I tried observing the camera stream in a window with a simple Python-OpenCV script and then in the command line entering v4l2-ctl -c exposure = xxx, but the values have no influence on the image. Also, values entered below 427 just make the image go black.
    Adding things like cam.set(cv2.CAP_PROP_EXPOSURE, xx) to the Python script
    also has no influence, when I read out those parameters it always returns -1.0.

  6. The dmesg log from your hardware?

  7. Troubleshooting attempts you’ve made?
    see point 5

  8. What help do you need?
    I need to set the exposure time to a fixed value and keep it there, the shorter the better. Ideally, I get a rough idea to which exposure time in µs or ms the set value corresponds, but that is secondary.

So, after playing around some more, I found out that I had to activate Legacy Camera interface because my Raspberry Pi OS doesn’t show it anymore in the preference settings in the GUI. Although I could also receive and save camera images before, now the exposure settings work flawlessly.

What would still be good to know, what is the actual resulting exposure time? I can set with v4l2-ctl -c exposure = xxx values between 4 and 885, but I have no idea what that is in milliseconds. Is there any way to calculate this?