Stepper motor questions

Hey guys. I am an alumni of FRC Team 514. I am not completely sure this is the correct location for this thread, if a moderator sees it fit, please go ahead and move it…

So, as part of a college project, we are working on developing a machine that is going to pump a very precise amount of fluid. Our basic design idea is one similar to that of a syringe pump. We are going to take a large syringe, and compress the plunger using a lead screw, which we plan on powering using a stepper motor we purchased.

Now the problem is that none of us have ever used a stepper motor before, and we are having trouble coming by anyone, professor or otherwise, who knows enough about them to recommend what kind of control board we will be needing.

The control of the system is going to be handled entirely within Labview, and we plan to do all of the controlling of the stepper motor using a National Instruments DAQ board (model 180955-01B).

What I am basically trying to learn is whether or not we will be needing a separate control board, and what kind of board we will be needing that would be compatible with our daq board. None of us really have any experience in this, so some basic information to get us started and have a working stepper motor is all I really need.

Here is a link to our motor:


I’ve built a couple CNC machines, and have had good luck with this one:

It’s really easy to use, and has a parallel interface for controlling with a computer. I’ve never used LabView before, but I’m assuming it allows you to interface with the parallel port.

At work, I use peristaltic metering pumps to dose. what volume and and pressure are you looking at?


(google it)

Also, you might try this controller.

@Richard: This isn’t an invention which we plan on applying for a patent with, just a solution to a problem which was assigned to us as a school project. Pumps like this have existed for much longer, such as the syringe pumps commonly used for the gradual injection of small amounts of fluid.

@gdeaver: We are looking to move anywhere between 1 and 1000 ml, with a precision of ±2 ml, We were going to use two 500 ml syringes, and so pressure will be very low. our stepper motor has a far higher torque than we need, we are using it because we got a deal on it.

Basically all I need is what I can do to get this motor turning under control, and I can take it from there.

Your link indicates that the motor came with a motor driver board. The data sheet can be found here…
With stepper motors, you need some feedback mechanism that can sense position and speed and a direction command. For your motor, it will also need a pretty hefty power supply. An FRC battery could supply the needed power or certainly a 12 volt pack of D cells would work as well. In your application, a motion limit might work but something that can sense the actual fluid flow would be better. Then you would just need to command a direction and enable the motor. Disable when the motor reaches the required distance/flow.

Stepper motors are often operated open-loop with a relative position command (relative to the startup position or some stall position established at startup).

If the stepper motor torque capability substantially exceeds the maximum expected load, it is assumed that the motor will step faithfully when commanded, which eliminates the need for feedback. Of course, if safety is paramount then this type of open-loop control may not be appropriate (for example, if something were to jam and the motor was unable to move the load, the controller would not know).

The control algorithm meters the steps at a rate slow enough that the motor will track faithfully (based on motor torque capability and expected maximum load). The algorithm keeps track of the commanded steps so it knows the position of the motor (relative to the startup position previously mentioned), without the need for a feedback sensor.


The stated use requires some form of feedback. The user intends to control a flow of 1-1000ml +/- 2 ml.

Autosyringe (the product associated with the US patent number that I referenced above) was one of Dean Kamen’s early inventions. It uses a step motor in the manner that you described. Dean purchased step motors and controllers from Hurst Mfg. (see the link in my earlier post) during the autosyringe development. When I introduced him to Dennis Hurst, the developer of those step motors and controllers, many years later at an FRC Kickoff, Dean shook his hand and said, “Thank you for making me rich.”

BTW, the Hurst step motor controller still works very well.

That is achievable without feedback, by using the right stepper motor and the right lead screw and the right syringe, which I believe was the OP’s intention. Correct me if I’m wrong Julio.


Al, I have to side with Ether here. I can command a stepper motor to move my PC Board drill machine’s table 0.00025" at a time, repeatably and reliably, over about 10 inches - open loop. I’d have to think I could move a syringe plunger equally as precisely and accurately.

Rich, you might consider Gdeaver’s response more carefully, as a peristaltic pump can do that easily with at least an order of magnitude greater precision.

As there are a number of variables here, atmospheric pressure being one, that influences flow rate, isn’t some feedback needed?

Atmospheric pressure has no effect on the volume or mass of liquid ejected from a syringe for a given plunger displacement, since liquid is effectively incompressible for purposes of this project.


But the syringe is…

That has no effect. As the atmospheric pressure changes, both the inside and outside of the syringe experiences the same change in pressure. This is false only if the liquid is being ejected into a closed system whose absolute pressure is not affected by atmospheric pressure.


A bubble of air in the syringe will affect the dosing. The viscosity of the fluid also has an effect. What fluid is being dispensed?

The effects would be negligible. The assumptions include the syringe being full and of typical construction, and the fluid qualities known.

While I too am a big fan of feedback, I turn again to my CNC-based PC Board drilling machine. It runs open loop - stepper motor motion can be characterized exactly so long as you stay within its capabilities - and holds 0.001 in an inch of travel (20 revolutions of a motor) easily. I can recalibrate it to reduce or eliminate that if desired (but I’m too lazy). It is extremely repeatable: If I command it to run 4000 steps, it runs 4000, never 3999 or 4001. This is the beauty of stepper motors. The downside is needing computational capacity to do the counting, but a 4.77 MHz PC with 640k handles this trivially.

The viscosity affects only the dynamic load on the stepper motor, not the volume dispensed.

It is being assumed that the selected stepper motor’s torque is more than sufficient to push the plunger. If you are trying to push silly putty through a pinhole, all bets are off.


Would the number of people in the room breathing at the same time have an effect on the impulse atmospheric pressure waves which in turn would cause micro oscillations withing the nano nitrogen atoms infused within the substance causing a mild fluxuation in density and volume?

Naa just joshing you!

Stepper motors wil turn an EXACT number of degrees for a set input UNLESS the load exceeds the stall torque.

Stepper motors are more like ac induction motors. If you apply a current accross a coil they WILL NOT continue to rotate. Instead the magnets on the stator will align with the magnetic field produced by the specific coil powered.

Maybe this is a good time to say that stepper motors have multiple coils Some times as few as 4.

So in reality unless a large load was applied there is no need for an encoder as the stepper motor itself is an encoder per say.

If you displace a specific volume of water in a bathtub then that same ammount of water will be displaced with any atmospheric pressure.

Ergo you move the plunger a set amount in the seringe the same ammount of fluid will come out regardless of pressure.

The only situation where atmospheric pressure would be an issue would be if there was a gas within the plunger AND the atmospheric presure changed a large enough amount to cause the gas to expand or compress more then 2 ml.

Now for some actual help

What is the throw on the seringe you are using?

If it is small enough you can use the leadscrew from a cd/dvd drive and hey that already has a stepper motor attached to it. With a handful of transistors and a uC you can drive a small stepper motor from some AA batteries or a computer power supply.

Speaking of power supplies, old laptop chargers are good power supplies with a few added componets (variable voltage regulator and filter caps)

Stepper motors wil turn an EXACT number of degrees for a set input UNLESS the load exceeds the stall torque.

“Stall” torque is not a specification you’ll typically see with stepper motors, because you can’t load a stepper motor smoothly down to zero speed as you can with a DC motor. The speed of a stepper motor is fixed at the step rate and does not depend on applied voltage and torque as does a DC motor. As you apply torque load to a spinning stepper motor, the motor does not slow down. The motor abruptly loses sync and operates erratically (or stops) when you reach the pull-out torque rating for the speed and voltage at which the motor was operating. If a stepper motor is motionless and holding a torque against an external load, and you command the motor to spin at a certain step rate, the motor will follow the command faithfully only if its pull-in torque exceeds the load torque.

Stepper motors are more like ac induction motors. If you apply a current accross a coil they WILL NOT continue to rotate. Instead the magnets on the stator will align with the magnetic field produced by the specific coil powered.

Stepper motors are really not at all like AC induction motors. Their principle of operation is completely different. Steppers are synchronous; AC induction motors are asynchronous. If you apply an AC voltage to an AC induction motor it will spin asynchronously at a speed related to the frequency and the load. Steppers spin synchronously at a rate determined by the commanded step rate. AC induction motors have induction coils on the rotor. Stepper motors typically have an iron rotor.