Stepper Motor Choice For DSLR Follow Focus System

Hi Everyone

Just wanted to ask for any opinions regarding which stepper motors might be best suited for a DSLR follow focus system. I want to run two motors simultaneously but at varying speeds. This is to enable two lenses to be focused to the same focal distance at the same time. Decent speed range will be required. Lens throw variation makes a wide, variable speed a necessity. I also require decent torque (not massive amounts) as some of the focus rings are relatively stiff. Obviously, the smaller the overall size the better. The maximum voltage would probably be 12v. Any opinions of or experience with any particular motors would be much appreciated.

Cheers

You should provide numbers, not vague terms like "decent torque (not massive amounts)"
which are essentially meaningless (especially to someone who hasn't seen a DSLR follow
focus system).

Any mechanical drive system can benefit from gearing too, as a way to boost torque,
although this can negatively affect backlash.

Again "decent speed range" - says nothing, ">= 3 rad/s" for instance would be meaningful

Steppers are perfect for this because they can create a lot of torque with little or no gearing, yet they can be controlled precisely. Tiny steppers will probably work. I think you will spend more time looking at the motor catalogs picking out one to fit your space available.

The Thread stepper motor basics may have some useful info.

You need to measure the torque needed to rotate the stiffest focus ring. Mount the camera with the lens horizontal. Wrap some thread around the ring so it can’t slip and hang a small container from the string. Add just enough pennies to the container to make the ring move. Weigh the container and measure the radius of the ring where the thread is. Suppose the container + pennies weighs 200 gm and the radius is 2cm. Then the torque is 200gm @ 2cm or 400gm - cm. Repeat the measurement several times to verify the result. Choose a stepper with at least twice that much torque.

…R

Hi Mark

I apologize for the vagueness regarding detail in my initial post. I'm well outside my knowledge base as far as these kind of calculations are concerned, but I will give it go. If by “rads” you mean radians, and “>= 3 rad/s “ you mean radians per second, then I hope the following details help. I am using a simple 2:1 gear ratio on this first attempt, made out of a few old printer parts. The measurements below are based on my current setup but this might change to a 3:1 in the future. The lens rotated at 400g at 3cm. If my calculations are correct, the following requirements should suffice. Please feel free to correct any errors.

Torque 1200gmcm or 0.12Nm
Radians: 3 to 4 rads/s
2:1 Gear Ratio
12v supply (less if practical)

Cheers

P.S. Thanks Robin. I used a slightly different method first and then used your system to verify it. Same results on both tests so I'm reassured. I tried the link that you posted but it directed me to a Serial Basics Input page.

neospartacus100:
I tried the link that you posted but it directed me to a Serial Basics Input page.

Sorry about that I have corrected it in the earlier post and here it is again to save you going back stepper motor basics.

Thanks for telling me.

...R

Hi, Robin.

A very useful mini guide. I think it has already answered the question regarding why my two 28BYJ-48 motors (RED COM Wire unused in this instance) controlled via two L293 ICs from a 9v power supply are performing so poorly. It seems that your opinion would be that I have chosen to use the worst possible combination as a starting point. Hence I have a need to upgrade sooner rather than later. Given the spec details that I stated in my previous post, have you used or have knowledge of any suitable steppers?

Thanks.

I don't have any experience of the 28byj motors. If they are 5-wire motors I believe you MUST use all 5 wires. It may be possible to drive them with an L293 - I don't think it is substantially different from a ULN2003.

What sort of 9v power supply? A PP3 type of battery is absolutely useless. You need a power supply that can provide about 2 amps current.

I don't have any recommendations about motors. The motors I have should be strong enough but they are probably much too large for your project. The Nema 17 size means the front face si 1.7 inches square.

...R

Is the 0.12Nm torque at the motor or at the output of its 2:1 reduction gear?

I'd suggest a NEMA17 or NEMA14 stepper is likely to give sufficient torque, and with
fairly low speed requirements unipolar / high impedance windings would be simplest to drive,
but you have to choose the windings to match the supply voltage.

Low impedance bipolar motors would require a chopper-driver like the A4988 boards,
and could be powered from 12V up.

Hi Robin

The combination of 28BYJ motors/L293/PP3 battery does work using only 4 wires from the stepper, but as you say, just not very well. I will no doubt have to upgrade all components to achieve the performance I'm looking for. Thanks for your opinion. Each piece of advice helps immensely.

Cheers

Hi Mark

Lots of useful info in your post. That's exactly what I was looking for. The 0.12Nm figure I quoted was derived by using the method Robin described earlier. Obviously, the lens is rotated via the barrel and not the centre point about which it rotates. This being the case, in reality I probably require less torque due to the gear reduction, plus the point of contact being at 3cm out from the centre. At the point where the driven gear meets the lens, 0.04Nm was applied to achieve rotation. My lens is a bit sticky at the start so I was giving myself a little extra torque to compensate for this. Over time it will loosen and it shouldn't be a problem.

I was looking at the NEMA 14 or 11 sizes. They would seem to be the most appropriate for this kind of project. As I wish to control the speed of the motors by varying the voltage, does this impact on whether a Bipolar or Unipolar stepper would be the best suited for the job? Just two further questions: when a motor's amps rating is say 0.5A, this means per phase and therefore has a maximum 2 amp rating over all 4 phases? Also, which motors -Bi or Uni- produces the least amount of vibration or jitter? Thanks for your help.

Cheers.

neospartacus100:
The combination of 28BYJ motors/L293/PP3 battery does work using only 4 wires from the stepper, but as you say, just not very well.

I just meant that you should see what is the best perfomance you can get from the existing motors with proper wiring and power supply before you abandon them.

...R

neospartacus100:
Hi Mark

Lots of useful info in your post. That's exactly what I was looking for. The 0.12Nm figure I quoted was derived by using the method Robin described earlier. Obviously, the lens is rotated via the barrel and not the centre point about which it rotates. This being the case, in reality I probably require less torque due to the gear reduction, plus the point of contact being at 3cm out from the centre. At the point where the driven gear meets the lens, 0.04Nm was applied to achieve rotation. My lens is a bit sticky at the start so I was giving myself a little extra torque to compensate for this. Over time it will loosen and it shouldn't be a problem.

I was looking at the NEMA 14 or 11 sizes. They would seem to be the most appropriate for this kind of project. As I wish to control the speed of the motors by varying the voltage, does this impact on whether a Bipolar or Unipolar stepper would be the best suited for the job? Just two further questions: when a motor's amps rating is say 0.5A, this means per phase and therefore has a maximum 2 amp rating over all 4 phases? Also, which motors -Bi or Uni- produces the least amount of vibration or jitter? Thanks for your help.

Cheers.

The current rating is one winding driven normally, there are two windings driven at most,
or just one, depending on step mode.

You don't vary the speed by varying the voltage, you change the rate steps are generated...
Higher supply voltage to a chopper driver allows faster stepping, but doesn't control
speed.

Hi Mark

You seem to be very knowledgeable on the subject of motors. I am coming from an almost zero knowledge background. I devised a system that I thought was achievable for me to build. Given what you have said about how steppers are driven by increasing steps rather than increasing voltage, do you think my forward/reverse button/potentiometer combination is a poor choice to control steppers in the way I require? Maybe some kind of rotary encoder and program to drive each lens to the same focal distance simultaneously would be a better solution?

Thanks.

neospartacus100:
Maybe some kind of rotary encoder and program to drive each lens to the same focal distance simultaneously would be a better solution?

I don't immediately see any advantage having an encoder.

How will you know when a focus ring is at the correct position?
If that can be achieved using a known number of steps then all you need is a table representing the number of steps for each position and you can arrange for a couple of push-buttons to signal the need to move to the next or the previous position.

If each focus ring has (say) 10 positions you could have a pair of arrays with the appropriate number of steps for each ring and the buttons would signal (e.g.) move from position 6 to position 7 and the Arduino would know get the step values from the array and command the two motors to move.

If that is not what you have in mind let us know what you do require.

...R

Hi Robin

Yes, that is exactly the kind of system I was thinking of. The rotary encoder would have predetermined points that it moved to. Like you suggest, say 10 points denoting 10 different distances from 5ft to infinity. I would have to define the steps to each given focal distance on each lens, plus, due to the different throw lengths of each lens, the time it takes each lens to reach the given focal length. Forward and reverse direction could be controlled via two momentary switches. It would be helpful to include an option on say three different focus speeds too: slow, medium and fast. And if I was really being ambitious, I would include a way to include five or six different lenses configurations, maybe by having a further 5 or 6 buttons marked Button 1= 55mm lens, Button 2 = 85mm lens, Button 3 = 105mm lens and so on. I think this might be a more accurate way to achieve critical focus, but I imagine it to be beyond my programming skills. Of course, if you know of a sketch that already exists and operates in such a fashion, and that I would only have to configure the steps particular to my lenses, that would be fantastic.

neospartacus100:
The rotary encoder would have predetermined points that it moved to.

The comments I made in Reply #14 assumed there was NO rotary encoder so I am a little confused.

AFAIK rotary encoders don't have pre-determined points. They just produce pulses that you can count to figure out how far something has rotated.

What I have in mind is that you store the relevant data for the positions in an array. For example 4 positions at steps 0, 47, 97, 135. Then selecting the 3rd position would move the motor to step 97.

It would be quite practical to have sets of positions for several lenses.

One thing you will need with stepper motors is a means to tell the Arduino that the lens is at step 0. Perhaps rotate all lenses to one extreme when they are attached and press a "set zero" button.

...R

Hi Robin

Okay. Now I understand a little more about how a rotary encoder functions, but I am a little confused myself. In your system, how would you tell the motors to move to a particular focal length? Via switches? I understand that the Arduino will know where the focal points are from the array within the sketch, but can you describe how I physically control the motors movement between different focus points? Say, for instance, that 0 = 5ft, 47 = 15ft, 97 = 50ft and 135 = Infinity, what device would I be using to make the motors move from Infinity and 5ft? I would not want the lens to just travel to a predefined position. I need subtle control over how it moves.

Cheers

Anthony

I had the idea from your earlier posts that you envisaged having a pair of "up" and "down" buttons. Press the up button and it moves to the next position in one direction, push the down button and it moves in the other direction. In effect the buttons select the index into the array.

If that is not suitable another option might be a multi-position rotary switch. You can easily get 12 position switches.

In either case you would probably have another switch to allow you to tell the Arduino which lense is attached.

After that, tell me how you would like it to work.

...R