When a DSLR camera is used for remote shooting, corresponding software usually provides very simple way to change focus position: small, medium and large steps forward or backward. This is how it looks in Canon EOS utility:
As long as I know, there is no way to find out the exact position of the focus plane using Canon SDK. Because hardware of a lens simply doesn't provide the corresponding information.
The same is for focus step. I suppose there is no robust way to determine the exact distance the focus plane is moved when one of these buttons are pressed.
But in our software, we really need to know at least an estimate. We know that we are focused on object, say, 400mm far from the camera. And we need to know, how far will focus plane move when user presses a >>
button to move focus on medium step.
We've done some tests for different cameras and lenses. We determined the size of the step depending on the current focus distance. Here is the plot for two cameras and three lenses:
Here 100mm stands for "Canon EF 100mm f/2.8 Macro USM", 100mm(L) stands for "Canon EF 100mm f/2.8L Macro IS USM".
We can ship the following tables with our software, but we want to reduce their number. For example, I expected that different leses will act the same for different cameras, but as you can see from the plot, it is not true.
Canon 5D Mark III did the same for two different 100mm and 100mm(L) lenses, but Canon 6D have different results for these lenses. In the same time, both cameras did approximately the same with 50mm lens.
So my question is, what factors determine the shape of these functions? Do I have explicitly measure all combinations of cameras and lenes?