The-EG / OctoPrint-CameraSettings

An OctoPrint plugin that allows a user to interactively change camera settings.
GNU Affero General Public License v3.0
55 stars 7 forks source link

Exposure Time Absolute adjustment is semi random #143

Closed Brynyard closed 1 year ago

Brynyard commented 1 year ago

Observed behavior Tried to adjust ETA to a precise value to sync with PWM frequency of LED's to avoid flickering. Clicking up/down increase/decrease the value by a random value. The slider is so imprecise it's impossible to set any meaningful value.

Expected behavior Click up/down should increase/decrease by 1 (or any other fixed value)

OctoPrint Version 1.8.7

CameraSettings Plugin Version 0.4.1

Camera Logitech C505

Linux/OctoPi OctoPi, it has versions?

Other Plugins No

The-EG commented 1 year ago

This is not a bug. The sliders move in steps that are reported as supported by your particular camera. Your browser may be overriding this. I have control of neither.

You can always enter a value directly into the box to the left of the slider instead, but again, there's no guarantee that the camera will support the exact value since many report range values with specific steps. It may pick something close, it may do nothing 🤷‍♂️ .

Brynyard commented 1 year ago

Uhm, didn’t know that a random value between 0-20 would be classified as a «step», and if I enter a value it is set to +/- 10. But if that is how it’s supposed to work, then.. erm.. well, then I’d be really carefull using anything else in this plugin.

Brynyard commented 1 year ago

To clarify: I can set it to any int value, and the camera also supports this (easy to test on cmdline), and the ETA slider is the only slider that has this «feature, definetly not a bug». It’s just seriously tedious having to set the value by retrying 5-6 times till the random value matches the expected value.

The-EG commented 1 year ago

Create a debug entry for this plugin in the OctoPrint logging settings, reproduce this behavior and then inspect your octoprint.log.

You'll be able to see the values that it is setting and the values that v4l2-ctl then returns as the current value. You can also attach that here if you'd like.

In any case, I really don't do anything with the sliders other than setting the min, max, step and value based on what v4l2-ctl returns. If it's doing something weird it's because so is v4l2-ctl.

Also, the reason I use the step reported from the camera is that many cameras only support certain values for some settings even though they are reported as ranges. Without using the step that is reported I'd end up with even more "this setting doesn't work" issues.