By continuing to use this site, you agree to our use of cookies. Find out more
Forum sponsored by:
Forum sponsored by Allendale Jan 24th

Microstepping

All Topics | Latest Posts

Search for:  in Thread Title in  
duncan webster28/08/2020 16:18:47
avatar
2929 forum posts
34 photos

Not actually CNC, my milling machine X axis leadscrew is driven by a stepper motor connected 1:1 to the 0.1" pitch screw. At present it is set to 800 steps per rev, with a max input frequency of 1500 hz for cutting and 3000 hz for fast traverse.

Would it be better set to 400 steps/rev with 750/1500 input? Easy to change, but I thought I'd get some expert opinion first.

The Novice Engineer28/08/2020 22:51:12
79 forum posts
59 photos

The use of Microstepping enables smaller angular movement of the motor shaft that can give more precise positioning.

The down side is that the Torque available to make the movement drops off markedly with the increasing number of microstep subdivisions

Using 8 microsteps drops the available torque to ~20% compared to using a Single pulse

This article goes into the detail

**LINK**

For your Non Critical positioning requirement [Just moving the table] Single Step Full pulse should give you the most power to move the table.

Try it and see what happens , there maybe more resonance noise with fewer microsteps.

In general terms increasing the voltage will increase the Speed of rotation, Increasing the current will increase the Torque , most Stepper Drivers have current limiting circuitry. Try not to exceed the rating of the motor they can get very hot Very quickly.

Don't be alarmed by a motor that is hand hot, they should be able to run at 60-80 C quite happily for years.

duncan webster28/08/2020 23:39:54
avatar
2929 forum posts
34 photos

The driver won't go less than 400 steps per rev, I'll give it a whirl tomorrow and report back. From the very interesting link it looks as tho I should get a useful increase in torque, and 0.00025" per pulse is good enough for my application

Michael Gilligan29/08/2020 00:03:32
avatar
16990 forum posts
753 photos
Posted by The Novice Engineer on 28/08/2020 22:51:12:

This article goes into the detail

**LINK**

.

What an excellent link !!

... glad I was looking-in yes

MichaelG.

Martin Kyte29/08/2020 06:01:53
avatar
2154 forum posts
38 photos

Some more intelligent drives use step size morphing to obviate this issue. For low frequency stepping they microstep for maximum resolution and when the frequency increases the transition to full stepping for maximum torque. That way you achieve higher maximum speeds with no los of resolution. All this takes place in the drive with the controlling software generating microsteps as normal. However you do have to generate acceleration ramp profiles rather than just jumping to a speed to profit from this and generally the drives are more costly.

regards Martin

Kevin Hodgkins29/08/2020 10:43:25
5 forum posts

I think there's some miss-understanding going on here.

Micro-stepping does reduce the torque PER MICROSTEP, but your also increasing the number of microsteps. This is an issue for positional accuracy. i.e. with a high number of microsteps the motor might not move until multiple microsteps have been sent.

For a continuous motion movement you are not going to see any significant change in torque, but depending on the stepper driver increased micro-stepping will often make the motor run smoother and quieter.

The Nema 23 motor on my x-axis powerfeed is happiest at 3200 steps per rev.

Joseph Noci 129/08/2020 11:04:28
822 forum posts
1026 photos

Kevin is quite correct - The issue is HOLDING TORQUE - This is drastically reduced with microstepping - eg, to 0.6% of max when using 256 microsteps/step. When running, or using as a 'motor' - little torque is lost.

Microstepping also worsens motor position accuracy when loaded, and even when not, simply due to the torque required to overcome magnetic detent.

The major advantage of microstepping is to overcome step-losing low speed resonances.

Joe

Martin Kyte29/08/2020 11:31:01
avatar
2154 forum posts
38 photos

Required torque increases with speed. The primary compromise when microstepping is the reduction in maximum speed. The major advantage of microstepping is resolution.

regards Martin

duncan webster29/08/2020 11:46:57
avatar
2929 forum posts
34 photos

Should have read Kevin/Joe before I altered it. I'll go an alter it back again, as at 400 steps per rev there was a limit to how slow it would go. All down to how low you can make the Arduino tone() function work

Thanks chaps. Now to tie it in to the DRO (watch this space)

Iain Downs29/08/2020 12:16:17
730 forum posts
646 photos

This is a very useful post. I was planning on doing some experimentation with microstepping once I've finished my controller software (don't ask, I'm currently trying to implement a windowing system on an arduino after a number of architectural false starts).

I did think about changing the number of microsteps from the ardiuno, but I have one of those TB6600 type drivers in it's own box and fancy neither opening it up, nor using some actualtors to flip the dip switches wink)

Iain

Kevin Hodgkins29/08/2020 12:37:06
5 forum posts

Duncan

Just in case you haven't come across it. The Arduino Timerone library has a variable pwm function that is very useful for producing stepper pulses. It'll give you more range and resolution that the tone() function.

Martin Kyte29/08/2020 13:30:54
avatar
2154 forum posts
38 photos

Or you could use the stepper library functions here

**LINK**

regards Martin

Joseph Noci 129/08/2020 13:46:32
822 forum posts
1026 photos
Posted by Martin Kyte on 29/08/2020 11:31:01:

Required torque increases with speed. The primary compromise when microstepping is the reduction in maximum speed. The major advantage of microstepping is resolution.

regards Martin

well, therein lies the rub..the 'increase' in resolution is true to a very limited extent, and depends on many things. The proportional increase of resolution with increased microstepping exists only in the magnetic field vector, and in the math..This is not necessarily where the rotor actually moves to! With no load on the motor, the field vector may want the rotor to position itself say 20% away from the current full step position, toward the next, but the strong static magnetic field from the closer stator magnet pole is stronger than that dynamic field vector, so the rotor moves less than it should , sometimes not at all.Bearing stiction makes it worse. As the tween full step position torque is compromised, the rotor lags the field vector and at some point the forward vector is stronger than the lagging static field and stiction, and the rotor moves and catches up ( or almost does..or overshoots). Add to this a load, a leadscrew and the driven table stiction and inertia, and the delta worsens. The electromagnetic field vector is following the improved resolution almost perfectly, but the rotor not...

Microstepping is not the best way to achieve small feeds per stepper pulse...As I said, it does wonders in overcoming rough stepping at low speeds, ie, smoother running, but that can generally be achieved with 1/2 or at most, 1/4 stepping. In most cases where it is found that the 'system' runs more smoothly at some specific microstep value, it is because the system resonance and motor resonance are happiest at that rate - NOT because things are better at that 'resolution'. At 1/2 or 1/4 step, motor resolution does in fact quite closely follow the field vector, depending on the applied static loads.

Microstepping is also advantageous when the applied load dynamic profile is that of an undamped spring - a stepper driving a carriage via a toothed belt, with the carriage slides being low friction ball glides without slide wipers, etc. The mass is easily and quickly accelerated,but bounces and overshoots, etc. At full step, when accelerating thru the MOTOR resonance point(s), the inertial, undamped ' bounce', quickly makes the motor loose steps.

I spent many hours testing and tuning these setups on various cnc machines I built and retrofitted, to try get the most out of them, and if you stick to those concepts ( exceptions abound..) life is a little less difficult! Adding rotary dampers to the motor also works wonders in smoothing out motion and eliminating lost steps.

Joe

 

EDIT - just to add - stepper drivers/controllers are many a culprit in poor motor performance. The shape of the integrated PWM current waveform in the motor windings plays a huge role in stepper smoothness, acceleration and general performance. A simple PWM signal that attempts to simulate a sinusoidal current profile in the motor winding does not cut it when looking for smooth motors, or higher performance. The better range controllers ( analogue type..) will have some pots that allow the user to adjust the current waveform, while running the motor at the first, 2nd and third resonance RPM. The motor is simply placed on a hard surface - table top - and spun up from 0 rpm, slowly, till it vibrates madly. The pot(s) are then adjusted till smooth, and the next rpm point found, etc. All this is doing is pre-distorting the applied currents , and the magnetic field vector to help smooth the rotor steps. And this setting works only for this motor! This process must not be done with the motor fitted as it is the motor rotor resonance that is being compensated. The rest of the system friction and damping mass will mask this.

The good old GECKO drive controller worked this way and were fantastic. There new ones are digital..have not tried them yet.

Digital stepper controllers do exactly the same, but the controller itself observes the back-EMF to find the resonance points, and adjusts the PWM to achieve the same. The benefit of a digital controller is that it will compensate over the full user required RPM range, not just over the lower end.

Nuf now!

Joe

Edited By Joseph Noci 1 on 29/08/2020 14:00:41

Michael Gilligan29/08/2020 14:45:07
avatar
16990 forum posts
753 photos

It’s largely irrelevant to Duncan’s question, but I would just mention that it is possible to produce stepper motors with 800 step native mechanical resolution :

.

fb6028ee-2937-41ca-acac-18e0cb1cfecb.jpeg

.

A pair of these are destined for use on a microscope stage.

MichaelG.

SillyOldDuffer29/08/2020 16:36:05
Moderator
6654 forum posts
1499 photos
Posted by Kevin Hodgkins on 29/08/2020 12:37:06:

Duncan

Just in case you haven't come across it. The Arduino Timerone library has a variable pwm function that is very useful for producing stepper pulses. It'll give you more range and resolution that the tone() function.

Good advice, but note Timer1.pwm() only works on a limited number of pins. Depends on the board: pins 9 or 10 on a Nano or Uno. If that's a problem Timer1 can be set to call an ISR that toggles any output pin, but the output switches at half frequency.

Dave

Martin Kyte29/08/2020 17:08:44
avatar
2154 forum posts
38 photos

"well, therein lies the rub..the 'increase' in resolution is true to a very limited extent, and depends on many things. The proportional increase of resolution with increased microstepping exists only in the magnetic field vector, and in the math..This is not necessarily where the rotor actually moves to!"

Thats true of full stepping too. Steppers are essentially positional servo's. However you cut it microstepping gets you better resolution than full stepping. There are motors with smaller step angles available too. Just used 4 0.9deg step angle on a microscope stage controlling position to 0.1micron on the Z axis and 1micron in X and Y

"The good old GECKO drive controller worked this way and were fantastic. There new ones are digital..have not tried them yet."

Well I have and they work very well.

regards Martin

 

 

Edited By Martin Kyte on 29/08/2020 17:09:24

Edited By Martin Kyte on 29/08/2020 17:09:45

duncan webster29/08/2020 17:14:58
avatar
2929 forum posts
34 photos

I've altered it back to 800 steps per rev, it is a bit quieter, but otherwise no different, I don't measure torque, it is more than enough.

On a side issue, when it contacted the end of travel microswitch, the software stops it , sets the speed to low but then allows travel in the opposite direction away from the stop position. Took me a bit to work out why it wouldn't accelerate away until it had done about 1 rev of leadscrew. Tracked it down to hysteresis in microswitch. Very small change to the code sorted that out.

Thanks for the pointers to timerOne and accel stepper, more to learn! The lid is now on the box, and hopefully will stay there for a while.

and thanks everyone for your contributions

Edited By duncan webster on 29/08/2020 17:16:03

Emgee29/08/2020 17:55:24
1821 forum posts
239 photos

Hi Duncan

Could you please post a copy of your circuit drawing for the controller ? I for one am interested and guess others may be also.

Emgee

duncan webster29/08/2020 19:42:45
avatar
2929 forum posts
34 photos

Anyone wants it send me a pm with your email address and I'll return the circuit and the code, but as I say it's not quite finished, I'm going to add a bit to read the DRO so you can press a button to identify a stop point rather than sliding microswitches along the table. It works as is, so if you don't want that feature fine. It can be added later on, I've had it working in prototype form, but I've had enough of Arduino-ing for the time being, time to get on with metal cutting.

Neil Wyatt30/08/2020 11:47:20
avatar
Moderator
18404 forum posts
718 photos
78 articles

Microstepping is notoriously inaccurate at anything other than low values of microsteps. What is useful, however, is that the errors are self-correcting as long as the motor isn't stalled.

If looking at very small movements, steppers are quite insensitive to the small steps in parts of the waveform where the voltages are very low. Better driver chips either automatically increase the current to overcome 'stiction' or can be set to do so.

Both of these issues are irrelevant to driving at speed but important if you want fine positioning.

Neil

All Topics | Latest Posts

Please login to post a reply.

Magazine Locator

Want the latest issue of Model Engineer or Model Engineers' Workshop? Use our magazine locator links to find your nearest stockist!

Find Model Engineer & Model Engineers' Workshop

Support Our Partners
cowells
Eccentric July 5 2018
ChesterUK
emcomachinetools
Warco
EngineDIY
Eccentric Engineering
Subscription Offer

Latest "For Sale" Ads
Latest "Wanted" Ads
Get In Touch!

Do you want to contact the Model Engineer and Model Engineers' Workshop team?

You can contact us by phone, mail or email about the magazines including becoming a contributor, submitting reader's letters or making queries about articles. You can also get in touch about this website, advertising or other general issues.

Click THIS LINK for full contact details.

For subscription issues please see THIS LINK.

Digital Back Issues

Social Media online

'Like' us on Facebook
Follow us on Facebook

Follow us on Twitter
 Twitter Logo

Pin us on Pinterest