Account Navigation

Account Navigation

Currency - All prices are in AUD

Currency - All prices are in AUD
 Loading... Please wait...
  • Call us on 346-333-6500
  • My Account
  • Gift Certificates
SMW3D

Designing with SMW3D: Proper leadscrew and motor selection

Posted by Brandon Satterfield on

During a recent 3D printer design we got to the bed and had some questions about whether the motor and ACME selected would be the proper fit. We decided this time it might be good to take you guys on a journey with us. The hope will be to add these as a calculator to the site and assist guys in properly sizing things the first time and lowering your R&D cost. Just need to find someone to create some nice HTML calculators.

We want the ACME to not only lift the bed, but we want our motor and drive to accelerate properly without losing steps. We need to begin by creating a scenario, we don’t want the bed to fall under it’s own weight and we want to drop and raise 2mm at 60mm/s travel speed and accelerate and decel at 60mm/s^2 in .2 seconds. Providing an example, let’s say you are printing and have the firmware set to Z retract the filament and do a Z lift during this operation, or say this printer has a spindle on it we need to know we can provide enough drive force to burry the end mill.

Let us lay out the design constraints first.

Aluminum bed - Mass = 1260.92 grams = 2.79 lbs = 12.37N = 44.45ounces

Max Velocity anticipated = 60mm/s

Max Acceleration = 80mm/s

Pitch of TR8*8 = 8mm/rev = .315in/rev

Lead screw length = 13”

Diameter = 8mm = .314 “

Motor Nema 17 with built in lead screw, SMW3D Holding torque = 4400g-cm = 62 oz-in, detent torque = 150g-cm, rotor inertia = 54 g-cm^2 = 1.9oz-cm^2 = .29 oz-in^2

Don’t worry we go through these variables in more detail below.

The bed was first designed in a CAD program. What is nice about this, if the material is specified we get a fundamental piece of knowledge.



We see lots of good information here but are interested in the Mass = 1260.92 grams.

We have our first piece of information or variable. Next, let’s look at the drive system. We are going to use a Nema 17 from SMW3D with an integrated ACME screw. The ACME travels 8mm in one revolution, has a pitch of two, is a four start, and has an 8mm major OD.

The ACME profile looks like Figure 8-3b below.


Pitch =2mm due to four start = 8mm

Diameter = 8mm

Material = Stainless steel

If we think about it we note the stepper motor does not push anything but rather rotates the ACME. So how does it translate rotation to linear motion? Well the downward force of the ACME nut that will be on print bed rides on the shoulders of the threads of the ACME. An exaggerated display of this is seem below.


Pr is the force required to raise the bed, Pl si the force to lower the bed. fN is a frictional normal force, we need to include this as there are some inefficiencies in our system. Note online calculators may ignore the off axis force, it does add up though.

Lets look at some equations, don’t worry it won't be too bad. Lead angle can be neglected and we get the below equation:

Let us define the variables:

d = major diameter, largest part of the diameter of screw = 8mm

l= np = the lead. The distance the nut moves in one revolution, for a single start, pitch and lead are the same. We have a 4 start so l=8mm, as p = 2mm. n= number of starts, p = pitch.

dm = d-p/2 = 8mm - 2/2 = 7mm.

f = Coefficient of Friction for threaded pairs, our example steel to bronze .10-.016, we will use .10

F = 1261 grams, our bed weight.

= 29deg/2 = 14.5, sec14.5 = 1.033We are using a standard here for ACME threads.

Now we have all our variables.

Tr = 1261 grams * 7mm/ 2 ( 8mm + 3.14 * .10 * 7mm * 1.033/ 3.14* 7mm - .10*8mm*1.033)

= 4413.5 grams-mm ( 10.27mm/21.15mm)

= 2143.1 grams-mm.

Something of note, the units were carried all the way through the calculations, this is highly advisable to prevent mistakes.

Now we must ask ourselves what this information is good for? Let’s see below:

There is great information here but we need to make our units match. First we are interested in what RPM (better yet let’s use revolution per second) range we anticipate we will be moving at, we noted this earlier in our design constraints: 60mm/s; but this is linear movement, more later.

Our X axis on our chart shows pps, this is pulse per second. Recall a stepper motor works on pulses, a pulse is a step, we will be using a 1.8 degree stepper. RPS = PPS/ number of steps.

We need to translate our linear motion to rotational, in other words when our bed is moving up at 60mm/s how fast is our ACME screw turning? Let’s convert 60mm/s * 1 rev/8mm, note the mm unit cancels out and we are left with 7.5 rev/s or 7.5RPS. Getting closer, now from our formula above we need to move things around and rearrange it to PPS = RPS*number of steps, thus PPS = 7.5revs/sec * 200 steps/rev ( noting revs cancel ) = 1500 steps/sec. Now we can mark our chart above, a straight line, vertically from 1500pps and get our torque. Which looks like ~ .42N-m.

We now know we have from the motor torque chart above that at 60mm/s travel we are creating .42N-m, but our torque is much larger.. but also in different units, let’s convert, Tr = 2134.1g-mm to 2.1341kg -mm to .0021341 Kg-m, (we stretched sig figs on purpose here). Now let’s convert to our final units that match our chart of N-m by multiplying times the gravitational constant 9.8m/s^2, hence Tr = .02 N-m (verified via online calculator)

Will it work? Too early to tell, but things are looking promising.

Let us check the downward Torque.

Tl = 1261g *7mm/2 (3.14*.1*7-8/3.14*7+.1*8)

= 4413.5g-mm(-5.802/22.78)

= - 1124.1g-mm

= - 1.1241Kg-mm

= - .001Kg-m (*9.8m/s^2)

= -.001 N-m (rounding up)

Odd to have a negative number right? What does this mean? Well let’s look at the term self-locking. If a drive is self locking it means the load needs input to turn, a negative number for Tl means it requires negative torque to move, meaning it will move on its own. Ditch the drive? No, why not? There are other players in the game, this particular setup will have more friction than we originally added due to some linear slider blocks in the drive. In addition recall we can always tell the firmware to lock the Z drive when powered on. So, no problem, had this number been largely negative we would have cause for concern.

Almost there.

Let’s do a balance check, Torque total = Tfriction + T acceleration + Tcap. We already have Tfriction and our design does not require a cap, so let’s look at our Tacceleration. The acceleration calculations require us to know angular velocity and accounts for the rod and motor.

Tacc = 1/g(Jload + Jleadscrew + Jmotor) x Angular velocity/t

w= angular velocity. We want 60mm/s, but we need to account for the pitch. 60mm/s * 1 rev/8mm = 7.5 rev/sec. We use radians when discussing angular velocity, 1rev = 2*Pi radians. So angular velocity = 7.5 rev/sec * 2*Pi/1 rev = 47.25 rads/sec.

t = .2 second

g = 386 in/sec^2

Jload = w/(2*pi*pitch)^2 = 2.79 lbs/( 2*3.14*.315)^2 = 2.79lbs/3.91(rev^2/in^2) * 16oz/lb = 11.41oz-in^2

Jleadscrew = Pi* total length of rod (L)* rho*R^4/ 2, L = length of lead screw in inches, R = radius, rho is density.

Jleadscrew = 3.14 * 13 inches* 4.48 oz/in^3 *(.15)^4/ 2 = .04oz-in^2 Note this is the load due to the shape and mass of the lead screw, in our application it is notable this is negligible. Density is of steel.

Jmotor = using Nema 17 from SMW3D .29oz-in^2

Tacc = 1/386( 11.74)47.25/.2

= 5.54 oz - in (convert units 5.54oz *.28N/1oz = 1.55 N-in, 1.55 N-in * .0254m/1in = .04 )

= .04 N-m

Now we have finally made it to the end. We want to fire up our machine accelerate our bed up at 60mm/s^2 and travel at 60mm/s, can our configuration do it?

Torque total = T load + T acceleration

Torque total = .02 N-m + .04N-m = .06 N-m

What do we have available at our desired speeds? We are showing that in a lab set up under 24V at ½ stepping we can create .42N-m. Whoa.. at ½ steps, we want 1/16 microsteps, because well, that’s what everyone does.. OK OK, let’s check it out.

If we have .42N-m at ½ step, which is equal to ~70.7% holding torque /microstep, than we will have ~9.8% holding torque /microstep at 16.

.42/70.7 = x/9.8, x = .06 N-m

Accident? We did all that math to find out what we need and what we have are the same?

No, this motor and this bed will NOT work together in the configuration and what we are wanting to do, we have no factor of safety, we need to add a print surface and material hold downs for other operations, we didn’t add friction for a cap on the ACME, we have no driving force up.

Don’t be discouraged, there are better ways, up the amperage, go to ⅛ microstepping (19.51%) lower acceleration, add a larger motor, change to a different pitch, change bed material, add a second motor, and many other ways to get around this issue.

We hope you have enjoyed this exercise as much as we have sharing it. There may be errors, please let us know, you may need some help, let us know that as well. Always happy to assist… now, we need to go spec a new motor.. :)


Resource: Shigley Machine Design, McGraw-Hill 9th edition

  • ACME
  • Stepper motor
  • Drive system calculations