# Help with Steps per mm Calculation

• Hi,

This subject always get my brain in a twist so I thought I'd ask for some help

My steppers are 0.9 degrees (400 steps per revolution).

I currently have these high-helix lead-screws from Igus installed: DST-LS-10x25-R-ES, which have the following specs:

Diameter: 10mm
Pitch: 25mm

With micro-stepping set to 256 (x16 with interpolation), this comes down to 256 steps per mm (I know it's right cause it works in reality, but I completely forgot how I got to this value).

Now I'm considering going with similar lead-screws but with shorter pitch (yet also less threads), in the hope of increasing the resolution.

The intended lead-screws are also from Igus: DST-LS-10x12-R-ES, and they have the following specs:

Diameter: 10mm
Pitch: 12mm

Could someone please help me calculate how many steps per mm would this lead-screw yield? and, for my education, how the calculation is done?

Btw, I'd like to keep the 10mm diameter as my lead-screw nuts and the bearings are all for that size and I'd rather change only the lead screws themselves if I can.

SnowCrash

• Hi.

You can use this one: https://www.prusaprinters.org/calculator/ (with 0.9 motor, 16x microstep and 12mm pitch gives you 533.33 steps/mm)

• You need too make a distinction between lead and Pitch if they are 25mm pitch with 8 starts then the lead by definition would be 200mm so 1 turn of the motor would move 200mm and I am sure that's not the case!

• Usually 25mm pitch means, that 25mm is between same lead, it doesnt matter how many leads are between them. As OP sayd 256 steps/mm worked on that screw, so i belive 12mm pitch means same and that isnt important if there is 4 or 8 leads.

• Hi,

One revolution of the lead screw is going to result in 12mm of movement. So you need to determine how many steps are going to cause 1/12 of a revolution.

In this case it's the steps per revolution of your steppers (400) times the micro-stepping setting (16) divided by the lead screw pitch (12).

400 x 16 = 6400, then 6400 / 12 = 533 (in whole numbers).

Frederick

• @aidar Actually Pitch is defined by the distance between to adjacent peaks if you like the Lead is the distance between the peak of the same thread Picky I know but that is the engineering definition the lead of an 8 start thread is 8 times the pitch.

• @dougal1957 Got it. But i am sure by 25mm and 12 mm OP means lead then, not pitch.

• @aidar Yes I agree but it is important to make the distinction as misconceptions can creep in Pedantic I know but that s the engineer in me

• Thanks for everyone who replied!

That's a really interesting discussion and I think it illustrates perfectly why it tends to get my brain twisted up with all the terms, partly because...

@dougal1957 Got it. But i am sure by 25mm and 12 mm OP means lead then, not pitch.

Actually, I did mean 'pitch' rather than 'lead' - and I'm not going by what I know here (as I know close to nothing on this), but by the documentation.

Also, notice that I didn't use the term 'lead', but rather 'number of threads', as this is what Igus use in their listing, although I do believe they mean the same thing in this context (looking at the current lead-screw, it does look it has 8 'starts', but that seems to be cancelled out by how the nut is made so the travel distance for 1 rotation is indeed 25mm).

Check out the link I provided to the products' page on Igus and see what it says there, or if you prefer, here's a snapshot of the 2 relevant rows in the listing:

One thing that still puzzles me is that the above calculations all seem to use 16, rather than 256, for the micro-stepping value - can anyone explain this please?

Also, assuming @fcwilt is correct (which looks to be the case - thanks, @fcwilt!), any thoughts on the potential increase of resolution (from 256 to 533 steps/mm vs losing the round numbers for steps and having slower movement overall?

• Above calculations use 16 microstepping because you wrote you use 16 interpolated. This may looks like 256 , but it isnt. Calculations for steps per distance are made in processor, so it use this 16 value, interpolation is made after in driver by splitting each microstep to 16 more steps again. Or something like that. Anyway, if you use 16x interpolated or 256x its kind of same for motor, but not same for processor calculations. I hope it make sence, howevwr i have to say sorry for my bad english once again.

• Thanks for everyone who replied!

That's a really interesting discussion and I think it illustrates perfectly why it tends to get my brain twisted up with all the terms, partly because...

@dougal1957 Got it. But i am sure by 25mm and 12 mm OP means lead then, not pitch.

Actually, I did mean 'pitch' rather than 'lead' - and I'm not going by what I know here (as I know close to nothing on this), but by the documentation.

Check out the link I provided to the products' page on Igus and see what it says there, or if you prefer, here's a snapshot of the 2 relevant rows in the listing:

Actually that is "lead". I find it amazing that Igus confuses "lead" and "pitch".
Check their drawing before the table:

That `P` is clearly "lead", not "pitch". The pitch is the axial distance between adjacent threads. They measure the "pitch" as distance between the ridges of the same thread, which actually is the "lead" - axial advance after you turn the screw 360 degrees (1 turn).

• Above calculations use 16 microstepping because you wrote you use 16 interpolated. This may looks like 256 , but it isnt. Calculations for steps per distance are made in processor, so it use this 16 value, interpolation is made after in driver by splitting each microstep to 16 more steps again. Or something like that. Anyway, if you use 16x interpolated or 256x its kind of same for motor, but not same for processor calculations. I hope it make sence, howevwr i have to say sorry for my bad english once again.

Thanks @aidar, that definitely helps.

Am I correct in understanding that this way - i.e. x16 microstepping with interpolation (giving 256 in total) - is the right way to do it with the Duet? That is, the best way to get max resolution from the steppers?

Actually that is "lead". I find it amazing that Igus confuses "lead" and "pitch" ... That `P` is clearly "lead", not "pitch". The pitch is the axial distance between adjacent threads. They measure the "pitch" as distance between the ridges of the same thread, which actually is the "lead" - axial advance after you turn the screw 360 degrees (1 turn).

Thanks for the clarification! makes me feel a bit better about having such a hard time getting my head around this

And, last but not lease, I'm still looking for advice on the above open question so any comments would be welcome:

any thoughts on the potential increase of resolution (from 256 to 533 steps/mm vs losing the round numbers for steps and having slower movement overall?

• And, last but not lease, I'm still looking for advice on the above open question so any comments would be welcome:

any thoughts on the potential increase of resolution (from 256 to 533 steps/mm vs losing the round numbers for steps and having slower movement overall?

You need to follow the calculation as the goal is to determine the number of stepper motor steps needed to move a known distance.

Of course after you set the number of steps you then should verify that a command to move say 100mm does in fact result in 100mm of movement.

Frederick

• @snowcrash x16 interpolated to 256 is probably the best way to go. Microstepping above that doesn't get you much more reliable resolution and the impact on CPU performance becomes an issue if you start to exceed the max step rate. Better off going with 0.9 degree steppers. (which you already are) The extruder may be an exception to this in some cases where a higher steps per mm value could be desirable to avoid missed steps on very short extruder moves. Microstepping of 64 or 128 is usually enough, but does limit max retraction speed a bit.

As for the fractional steps per mm value, it's not likely to be much of an issue, people seem to do it all the time and the accumulated error over time would possibly be lost in the noise of the overall system. Personally I would want to stick to whole numbers because eventually that fraction will get dropped somewhere, since the electronics either produce a step pulse, or it doesn't.

If you're set on using those 12mm pitch lead screws I don't think 533.3 steps per mm will be very detrimental to you. Is that the only pitch option available in that diameter?

• I forgot to address your question about increased resolution between the 12mm pitch and 25mm pitch lead screws. The difference for a Z axis would mean different amounts of travel per step.

Using `Z_steps_per_mm = (motor_steps_per_rev * driver_microstep) / thread_pitch`

``````motor_steps_per_rev	400
driver_microstep	16
Z_steps_per_mm	256.000000
travel_per_step	 0.003906250
``````

Versus

``````motor_steps_per_rev	400
driver_microstep	16
Z_steps_per_mm	533.333333
travel_per_step	 0.001875000
``````

Those are both really odd layer heights. I personally wouldn't use either lead screw for a Z axis, but if they are for other axis, it would matter a lot less.

• Thanks for the comment, @fcwilt, but that's not what I meant by my question. I was referring to the pro's and con's of switching from 10x25 lead-screws to 10x12 ones.

• Thank you, @phaedrux! as always, an excellent comment & very useful info

If you're set on using those 12mm pitch lead screws I don't think 533.3 steps per mm will be very detrimental to you. Is that the only pitch option available in that diameter?

I'm currently undecided as I'm not sure the gains in resolution would be worth the expense.

As for lead-screws with other pitches, those are the only ones (apart from the 10x25 I have) with a 10mm diameter I could find on Igus. I tried looking in other places, but so far haven't found anything suitable.

And as I mentioned above, I'd rather stick with the 10mm diameter to avoid the need to replace a whole set of bearings.

So if anyone has a recommendation for good quality lead-screws at a decent price with 10mm diameter, I'd be very interested to hear it.

I forgot to address your question about increased resolution between the 12mm pitch and 25mm pitch lead screws. The difference for a Z axis would mean different amounts of travel per step.

Using `Z_steps_per_mm = (motor_steps_per_rev * driver_microstep) / thread_pitch`

``````motor_steps_per_rev	400
driver_microstep	16
Z_steps_per_mm	256.000000
travel_per_step	 0.003906250
``````

Versus

``````motor_steps_per_rev	400
driver_microstep	16
Z_steps_per_mm	533.333333
travel_per_step	 0.001875000
``````

Those are both really odd layer heights. I personally wouldn't use either lead screw for a Z axis, but if they are for other axis, it would matter a lot less.

At the risk of sounding incredibly foolish, I thought that with 400 steps per revolution on the side of the steppers, and 25mm per revolution on the lead-screw & nut side, my minimum layer height is 25/400 = 0.0625mm. Am I totally wrong on this? (btw, Is it relevant that my printer is a Delta type in this context?)

• Hi,

Well my understanding is that you want to be able to achieve common layer heights (multiples of 0.05) with a integer number of stepper steps.

When you do the math with a 8mm lead you get (400 x 16) / 8 which yields 800.000 for 1mm of travel as opposed to the 533.333 steps with a 12mm lead.

So with the 8mm lead 0.05mm layers need 40 steps. A 4mm lead would need 80 steps.

If it were my printer I would go ahead and change out the hardware to use an 4mm or 8mm lead.

Frederick