Merging modern software development with electrons and metal
Random header image... Refresh for more!

Robot Primer 4: Motion Technologies

Before digging into robotics, I am going to take a short detour to look at typical ways to move (motion technologies) and common ways to control (automation controllers).  This sidetrack will help place robots into the wider automation world.

I am going to be pretty brief; for more information, start with wikipedia, internet searches, or books such as Industrial Automation: Hands On.


Pneumatic motion systems use compressed air to extend and retract cylinders. Pneumatic motion systems are easy to control (just turn the valve off or on), and are inexpensive to build. Providing a desired force is easy too: just use a regulator to control the pressure and use F=PA (force = pressure x area). On the downside, pneumatic cylinders are normally limited to two fixed positions (extend or retract), and compressed air can be expensive.

Stepper Motors

Stepper motors are brushless DC motors with rotors and stators designed so that a full rotation is divided into a number of equal steps. Since the stepper motor can move a step at a time or hold a position (assuming the motor has enough torque for the application), they can be run open loop (without feedback).

Since no feedback such as an encoder or resolver is required, stepper motors can be significantly cheaper than servo motors, they do not have servo dither (when the servo motor keep moving back and forth and never settles into position) and they are easy to control. You can buy a single IC stepper driver (from Allegro Microsystems, ST, TI, etc), connect it to power and the step motor, and get moving by giving the driver step and direction commands.

On the other hand, with standard drive technology, stepper motors quickly loose torque at higher speeds, waste energy (because the same amount of power is always used; it does not depend on the load), cannot dynamically respond to the load, and can lose position without warning.

Servo Motors

Servo motors are brushed or brushless DC motors with feedback, typically encoder or resolver. They can be rotary or linear motors. They require a complex closed loop control algorithm (such as the classic PID method). Normally the control loop has to be tuned, and servo dither can be a problem.. Due to the added control and feedback, typically servo systems are more expensive than stepper systems.

Servo motors typically have a peak torque of 3-10x the continuous torque, their torque curve is much flatter than the stepper curve, and the maximum speeds are much higher. Peak torque is a great thing; often, a system just needs extra power for a short time to accelerate, overcome friction, or such.

Other Options

Of course, there are other options such as hydraulics, proportional pneumatics, piezo motors, solenoids, and voice coils.

July 18, 2013   No Comments

Stepper Vs Servo Motor Torque Curves Part IV

NEMA17 Torque CurvesNEMA17 Torque Curves

My final look is at NEMA17 motors.  Today’s contestants are:

  • In yellow, the IMS (now Schneider) MDI1PRL17C4x triple stack NEMA stepper motor with integrated driver and controller.  I’ve used these cute little motors before; they are a great fit for the right application.  As normal, the programming language sucks, but a CANOpen version is available.
  • In red and blue, a Panasonic MUMS011A1 NEMA 17 servo motor.  These motors have unfortunately been out of production for years; I loved their performance, encoder (10000 cpr), good looks, and price (about $250).
  • In green, a Quicksilver Controls QCI-A17H3 stepper motor with encoder that’s driven like a servo.  I’m including it to show how much improvement you can get from closed loop stepper control.


  1. The MDI1PRL17C4 shows typical stepper characteristics, with torque rapidly dropping off; it can’t even reach 2500 RPM.
  2. The MUMS011A1 shows typical servo performance, with a pretty flat torque curve, 3:1 peak to continuous torque, and compared to the steppers:  higher speeds, less continuous torque at low speeds, more continuous torque at high speeds, and much higher maximum torque.
  3. The QCI-A17H3 doesn’t turn the stepper into a servo, but compared to an open loop stepper, it has substantially higher maximum speed (4000 RPM – the highest of any stepper I’ve looked at), and offers significantly higher torque at higher speeds — in exchange for a higher price, of course.

Some General Stepper & Servo Notes

  1. Steppers are much simpler to drive: you can easily build a low cost drive using an integrated chip (e.g. from Allegro Microsystems, ST, or TI) or buy a commercial driver for $100-$150 (from Automation Direct, Gecko Drive, etc).  Many low cost PLC’s such as Panasonic’s FP0/FPG have built-in step/direction outputs.
  2. But open loop steppers are very annoying, because you have to figure out your needs before start: you have to specify fixed currents for holding and running torque.  If your current is too low, the motor will miss steps.  If your current and duty cycle are too high, the motor will get hot – and if a bit of extra torque is needed to overcome something unexpected, you’re out of luck.
  3. Closed loop steppers still aren’t servo motors.  However, I’m looking forward to affordable sensorless closed loop control (available or coming from Trinamic, TI, and probably others), which will improve stepper performance and minimize stepper heat generation.
  4. I think servo motors’ torque curve fits well with many applications: a lot of time you just need maximum torque for a short time period.  Servo motor system prices are also coming down (OK, not the basic motor, but there are affordable encoder, drive, and controller choices).


April 26, 2013   No Comments

Stepper Vs Servo Motor Torque Curves Part III

NEMA23 Single Stack Motors

In this post, I’m going to look at some fun NEMA23 single stack servo motors and a single stack stepper motor.  The entrants are:

  • In brown, the PacSci M21 with Sigmax technology.  The M21 has a lot more torque than many (most?) NEMA23 single stack steppers.
  • In blue and red, one of my favorite motors: the BH02300 servo motor.  I’ve spun one of mine at 20,000 RPM.  Like the Emoteq QB series, the BH series has great peak torque.
  • In yellow and green, the MCG (now Ametek) I2351014NC servo motor.  After all the high end motors, I decided it was time to feature a non-exotic and affordable (if you can get it) motor.


  1. The difference between the I2351014NC and the BH02300 is the peak torque (the BH02300 has much more) and maximum speed (20,000 RPM vs 12,000) and, of course, price; continuous torque is about the same.
  2. Both servos are can go much, much faster than the M21 stepper (although at 3000RPM, it’s pretty fast for a stepper motor).
  3. The M21’s continuous torque looks pretty good; it always has more continuous torque than either servo, and below about 2000 RPM has more continuous torque than the I2351014NC has peak torque.
  4. OK, it’s not really far to compare these motors — they obviously have their own areas (low end torque and low cost for the M21, high speed and moderate cost for the I2351014NC, and high speed, high peak torque, and high cost for the BH02300) but it’s fun to see big differences between motors that are all about the same size.


April 25, 2013   No Comments

Stepper Vs Servo Motor Torque Curves Part II

NEMA34 Torque Curves

NEMA34 Torque Curves

Today I am examining some interesting NEMA34 motors’ torque curves.  The graph is a bit complex because I want to show a variety of motors on one graph; to make it a bit simpler, I am using dashed lines for servo continuous torque, and solid lines for servo motor peak torque.

I chose motors that are all roughly the same size.

The motors and their colors are:

  • Burgandy Red – PacSci N32 PowerPac double stack NEMA34 stepper motor at 75V.  I choose this motor because it’s a high end stepper, and I own a couple.
  • Red – PacSci K32 PowerPac double stack NEMA34 stepper motor with Sigmax technology, also at 75V.
  • Yellow – Emoteq QB03402 double stack NEMA34 servo motor.  I own a similar motor (QB03403), plus the peak torque is very high.
  • Green – Parker Compumotor BE342H double stack NEMA34 servo motor at 170V.  Parker makes some really nice servo motors; the BE series has a lot of torque, and I want to look at the effects of voltage on torque curves.  The BE342H and BE342K have different windings.
  • Brown – Parker BE342H at 340V.
  • Dark Blue – Parker BE342K at 170V
  • Light Blue – Parker BE324K at 340V.


  1. The NEMA34 stepper curves are similar to the NEMA23 stepper curves; torque still drops off rapidly with increasing speed.  One quirk: maximum torque is around 120 RPM, not 0 RPM.
  2. PacSci’s Sigmax technology does provide significantly higher torque at all speeds, but does not change the shape of the torque curve.
  3. Overall stepper vs servo comparison is similar: the steppers have much more continuous torque at low speeds, less continuous torque at moderate speeds, less peak torque at all speeds, can’t handle high speeds, and cost significantly less than servos.
  4. The Emoteq BH03402 has exceptional peak torque, but you’ll have to provide a lot of current (e.g. 50A for the 130V C windings).
  5. The Parker BE342 shows the impact of voltage and winding.  When the servo motor does not get enough voltage, its torque can decrease like a stepper, but for a different reason: back EMF.
  6. The BE342K might seem better than the BE342H, since it has the “best” torque curve, but that comes at price: the same torque requires double the current of the BE342H.
  7. Stepper currents are much lower; the maximum current of any N32/K32 model is 10A.
  8. As always, it comes down to knowing your requirements: torque, speed, size, current, budget, etc.



April 24, 2013   No Comments

Stepper Vs Servo Motor Torque Curves Part I

While I was working on my upcoming project, I got sidetracked by the issue of servo motors versus stepper motors.  Since I’ve never seen direct stepper and servo torque curve comparisons, I created four comparison charts using a variety of interesting motors.

Disclaimer:  I graphed all the torque curves myself, and their shapes should be pretty accurate; however, I didn’t have very good data for some motors (e.g. Emoteq peak torque).  Motor pricing can very quite a  bit, depending on the exact model and quantity ordered, so any pricing is a rough guide.

If you click on the images, you will get a much bigger version.  To avoid a megapost, I’ve split this topic into multiple posts.

Now that the preliminaries are out of the way, let’s start with the first contestants.

NEMA23 Motors

NEMA23 Torque Curves

First up is a pair of motors: the Kollmorgen AKM21G single stack NEMA23 servo motor with 75V winding and the Pacific Scientific P22 double stack NEMA23 stepper motor.

I picked these motors because 1) they are both from the same company (Danaher), 2) I’ve used both, 3) they’re about the same size, 4) are designed for similar voltages, and 5) both are high end motors, so they should show off the best of their technologies.

The colors are as follows:

  • Red – AKM21G peak torque
  • Blue – AKM21G  continuous torque
  • Green – P22 at 72V
  • Yellow – P22 at 24V


  1. Notice how quickly the P22’s torque falls off at 24v – at slow speeds, torque is about 150 oz-in, but it’s  <50 oz-in by 1000 RPM (substantially less than the AKM21’s continuous torque).
  2. The P22 is considerably better at 72V – the torque curve is much flatter, and it has more continuous torque than the AKM21G up to about 2100 RPM.  The higher drive voltages reduces the effects of the stepper motor’s inductance.
  3. Servo drives are the only option for higher speeds.  The AKM21G is rated at 7800 RPM max, while the P22 torque curve only goes to 3000 RPM.
  4. The AKM21G has a much flatter torque curve, especially continuous torque.
  5. The servo’s peak torque is a big advantage: the peak torque available from the single stack AKM21G is ~50% greater than the maximum P22 stepper torque.  The peak torque advantages gets much bigger as the speed increases.
  6. On the other hand, the servo is much more expensive: an AKM21G will run $400 or more, while the P22 is around $100.

March 30, 2013   No Comments

XY Table Part 6: Determining Stepper Configuration

Since I couldn’t find a datasheet on my Sanyo Denki stepper, I decided to figure out how the motor was wired myself.  There are a variety of sources; PIClist has the best list of methods I found, and RepRap is also worth a look.

If you’re not familiar with stepper motors and their terminology (such as unipolar or bipolar), Wikipedia’s article is a good start.  A 4 wire stepper can be used in bipolar mode only, a 5 wire stepper can be used in unipolar mode only, but 6 and 8 wire steppers can be used in either bipolar or unipolar mode.

The exact procedure to use will vary depending on the motor (and its number of leads) and the equipment you have.  Since I have an 2 channel oscilloscope, I decided to use it and look at the phase differences between the leads of my Step-Syn 103-771-16.

My Step-Syn is a 5-wire stepper motor so it has one common wire connecting the center-taps of both coils, and four wires connected to the ends of the two coils.   The wire colors are black, red, blue, yellow, and orange.

The first step is to find the common wire:  the resistance between the common wire and any other wire will be half of the resistance between any other two wires.  The resistance  between the black wire and the other wires was 130 Ohms; between all the other wires, 260 Ohms.  So the black wire is the common.

The next step is to set up the oscilloscope with the black (common) wire connected to the oscilloscope probes’ ground and the two channels connected to any two wires.  You then spin the motor and adjust the oscilloscope settings (V/Div, timebase, triggering, etc) until you can capture a good set of data.  If the waveforms are 180 degrees out of phase, the wires are from the same coil.  If they are 90 degrees out of phase, the wires are from different coils.

Same Stepper Motor Phases, Normal Oscilloscope Mode
Phase Difference for Wires on Same Coil, Normal Oscilloscope Mode
Different Stepper Motor Phases, Normal Oscilloscope Mode
Phase Difference for Wires on Different Coils, Normal Oscilloscope Mode

If your oscilloscope can be used in XY mode (often used for showing Lissajous patterns), it’s even more obvious: wires from the same phase create a diagonal line while wires from different phases create a circular pattern.  My Fluke 196 doesn’t have a real XY mode, but I used a Tek TDS210 to get the pictures below.

Same Stepper Motor Phases, XY Mode
Wires on Same Stepper Coil, XY Mode
Different Stepper Motor Phases, XY Mode
Wires on Different Coils, XY Mode

If the wires are connected to the same coil, then the other two wires are the other coil.  If the wires are connected to different coils, then swap out one wire until you find two wires on the same coil.

Suppose I connect the Step-Syn’s orange and yellow wires to the scope.  The scope trace would show they are connected to the same coil; therefore, the other two wires (red and blue) are the other coil.  Or, suppose I connect the orange and blue wires to the scope; the trace would show they are connected to different coils, so I would swap out one wire (for example blue for yellow) and try again until I find two wires connected to the same coil.

The procedure would be similar for a 6-wire stepper motor, except you have to find two common wires, but the procedure would be considerably more complex for an 8-wire stepper.

The final part is determining the how to connect the wires to the driver.  Basically, connect the coil wires up using your best guess.  If you swap wires within a coil or swap the coils you will change the direction of rotation.  I’ll give a real world example in a paragraph or two.

When I got ready to connect my Step-Syn motor to my Stepnet I discovered I had a problem: the motor is unipolar only while the Stepnet is bipolar only.  The Stepnet manual doesn’t state that (there is no mention of bipolar or unipolar stepper motors), but it became obvious when I looked at the motor connection diagrams in the manual.

Sometimes you can convert a 5-wire motor to a 6-wire by taking the motor apart, cutting the connection between the two center-taps, and then bringing out the second center tap.  I did take the case off the Step-Syn, but I didn’t see any obvious way to bring out the sixth wire.

Since I still wanted to test this motor, I decided connect it to a Allegro Microsystems UCN5804 unipolar stepper driver.  I connected the black wire, Pin 2, and Pin 7 to +24VDC, orange to Pin 1, yellow to Pin 3, blue to Pin 6,  red to Pin 8, and Pin 14 (Direction) is tied to ground.  The motor rotated the direction I wanted: clockwise when viewed from the front.  Using the UCN5804 datasheet, I determined that in 2-phase drive the wires were energized in the order yellow/red, red/orange, orange/blue, and blue/yellow.  In wave mode (1 phase), the wires were energized in the order red, orange, blue, and yellow.

Swap two wires within a coil, for example, yellow and orange.  yellow is now connected to Pin 1 and orange is connected to Pin 3.  The motor now moves counter-clockwise.

November 30, 2011   4 Comments

XY Table Part 4: Stepper Motors

Sanyo Denki Step-Syn 103-771-16

Sanyo Denki Step-Syn 103-771-16

I had planned to use a Sanyo Denki Step-Syn 103-771-16 stepper motor, but since it will not work with my Stepnet, I will be using another motor.  (The Step-Syn is unipolar only and the Stepnet is bipolar only).  For more information on the Step-Syn please go to its Trac page.

Vexta PH265L-04

Oriental Motor Vexta PH265L-04

So right now I’m planning on using an Oriental Motor Vexta PH265L-04 in bipolar mode.  I’ve created a Trac page for it, too.

The Vexta was easy to connect to the Stepnet.  The Vexta really benefits from a higher supply voltage; using a 24VDC power supply, I could only reach around 600 RPM no load, but using my 48V Logosol power supply I could reach over 1200 RPM no load.  OK, that’s not impressive compared to a servo motor (my Emoteq BH023 has reached 20000 RPM), but it’s still a big improvement.

A personal note: since the Christmas season has started, I probably won’t be able to blog as much.

November 2, 2011   No Comments