Exposure on Microsoft Lifecam HD3000

We’re using the Microsoft Lifecam HD3000 on the NVIDIA Jetson TX1, and using V4L (video for linux), we can get the exposure down to 5. However when we used the Webcam Settings on the Mac App store, we can get the exposure down lower. Attached are the two pictures, on the left is using V4L, and on the right is using the app. How do we get a similar low exposure on the Jetson?


I know this probably isn’t the answer you’re looking for, but taking out sun glass lenses and taping them over the camera works, and could give the result you’re looking for. The only thing I could ever think of being an issue would be polarization - maybe if your led’s or something are extra-special? If that is an issue though, you can always just turn it sideways. Also, that won’t be an issue, and even if it’s not preferable, if it works, it works. It’s not like it’s an unreliable solution (as long as the glass stays attached and un-cracked.)

If you have a look at the source of WPILib, you should find some code to work around the MS LIfeCam bug that causes the exposure to behave oddly.

It seems like MS decided to distribute about thirteen valid values for exposure between 5 and 20,000 and call it an easter egg hunt. The WPILib checks the camera name and a few other values as a trigger for a special lookup table. The 0-100% values are then scaled and used to index the table.

The special values are a roughly geometric progression of

5, 10, 20, 39, 78, 156, 312, 625, 1250, 2500, 5000, 10000, 20000

I suspect that if you use those magic values for your exposure setting, you get control over the setting.

Greg McKaskle

Is it possible to have a lower exposure? On the app, one of us could turn it down to 3.

It’s possible that the Mac app is doing some post-processing on the image to make it look like the exposure is set lower.

Whatever the Mac app is displaying is not going to be the same value used by V4L. 3 is an arbitrary number. As Greg stated, the V4L range is certain discrete values from 5-20000.

Can you run v4l2-ctl -L and post the results? In particular, are you setting both exposure_auto=1 (manual mode) and exposure_absolute=5?

Yeah, the range for the app is 3-15. I did v4l-ctl -L, and I am setting both.

It would be useful to see the v4l2-ctl -L output to see if there’s any oddities. Also, what kernel version is the TX1 running? In general, it sounds like you’ve reached the limit of the V4L interface, and there’s no lower level interface available on Linux. Maybe try tweaking the brightness setting as well? Otherwise it sounds like either the Mac app is doing some kind of postprocessing or there’s a limitation in the Linux drivers vs the Mac drivers (certainly possible).

We tweaked the brightness and it’s working better now. Thank you for the help! :slight_smile:

Brightness works in combination with exposure to help process the image to the bright value. Also, I saw some evidence that setting a custom white balance to whacky numbers, like 42, affected brightness and/or exposure. I haven’t experimented with it after seeing the effect go away.

Greg McKaskle