Welcome! Log In Create A New Profile

Advanced

question: Variable/dynamic Microstepping?

Posted by Buback 
question: Variable/dynamic Microstepping?
October 12, 2010 01:04PM
If a driver does 1/8 microstepping, does that mean is is fixed at 1/8, or can it be changed dynamically in software?

It seems it would make sense to do full steps when traveling in one axis, or when traveling large distances. I'm assuming that it would be harder to miss steps if they are larger steps. If this is the case, then it would be better to use a smaller step as you approach a turn or edge.

I have little knowledge about electronics, but am trying to learn!
Re: question: Variable/dynamic Microstepping?
October 12, 2010 03:52PM
The non-experimental hardware has the driver boards hardwired to a fixed stepping setting.

On Mendel, I think some people are single stepping on the z-axis, (where a full step is such a small amount due to the screw thread), and half or quarter stepping on y and x-axis, at least with the Pololu A4983 stepper controllers.

I think the trade off is:

Full steps: Faster, nosier, less resolution

Half or Quarter steps: slower, quieter, finer resolution.

In the experimental hardware that's at least being discussed, I remember the question being raised about "would you lose accurate position data if you were on a 11/64ths step and then you suddenly switched to full stepping to do a fast transverse?"

Of course, if you switched to full stepping to go back to "home" and zero your position data, not knowing exactly where you were would not be an issue.

Disclaimer: I'm not extruding yet. Someone else who is, please chime in on this thread.


--
My blog's Reprap feed: [blog.markbova.com]
I'm currently working on a stock Mendel build with a Seeeduino Mega and four Pololu A4983 stepper controllers.
Re: question: Variable/dynamic Microstepping?
October 12, 2010 05:22PM
Mathematically, 8/8 microsteps and 1 full step are the same, but is that how it's treated physically? I'm thinking about the detents in the motor. Does the microstepping driver 'create' more detents/poles when it's powered on, or does it just hold the rotor in place between detents?

I also think that you probably don't want to just switch to 1/1 stepping any time, but would proceed to the next detent before full stepping.
i.e. if the driver is 1/8th stepping and the rotor is at 6/8 you would go two 1/8th steps more and then start 1/1 stepping
But how would the driver know where the detents are?

Is all of this irrelevance? because, again, I don't know jack.
Re: question: Variable/dynamic Microstepping?
October 12, 2010 06:40PM
On the Pololu's, the stepping is controlled by 3 pins (MS1, MS2 and MS3) on the device, from 1 full step down to 1/16th of a step.

See the table on the Pololu A4983 page at Pololu.

Some of the electronics (the new version of the RAMPS board for instance) allow you to change this for each stepper controller using jumpers.

I know some people who are running the Z and extruder at different rates to the X and Y, so that they move faster. But this is hard wired (or changed via jumpers), rather than through software.

If you connect these pins to additional digital outputs, then there should be no reason that this could not be controlled in software, apart from the fact that as far as I'm aware no one has done it. The big thing in software probably would be tracking the amount of sub-steps performed, and conversion between each. Not insurmountable, but something that still needs to be done to do what you want.
Re: question: Variable/dynamic Microstepping?
October 12, 2010 06:58PM
Buback Wrote:
-------------------------------------------------------
> Mathematically, 8/8 microsteps and 1 full step are
> the same, but is that how it's treated physically?
> I'm thinking about the detents in the motor. Does
> the microstepping driver 'create' more
> detents/poles when it's powered on, or does it
> just hold the rotor in place between detents?

The motor has 200 "detents", if you energise one coil at a time only you get 200 positions determined by the pole pieces. If you energise two together you get half way between as well, so alternating with two coils, one coil gives 400 positions and is known as half stepping. To get finer resolution the two coils are energised with different currents to get positions in between.

>
> I also think that you probably don't want to just
> switch to 1/1 stepping any time, but would proceed
> to the next detent before full stepping.
> i.e. if the driver is 1/8th stepping and the rotor
> is at 6/8 you would go two 1/8th steps more and
> then start 1/1 stepping
> But how would the driver know where the detents
> are?

You need to connect the reset signal of the stepper driver to the micro so that when it starts up it knows the driver is at the start phase and then it has to keep track of the phase in the firmware after that.

>
> Is all of this irrelevance? because, again, I
> don't know jack.

I don't really think it is worth the hassle as to go fast when micro stepping you just step it faster.


[www.hydraraptor.blogspot.com]
Re: question: Variable/dynamic Microstepping?
October 12, 2010 09:02PM
So if i understand correctly, using the above example of 1/8 microstepping, if you were to do 8/8 steps at a time it would only energize 1 coil at a time. does this skip the intermediary steps? this would be the same as 1/1 stepping, but would you would get full torque?

the reason i ask is because i've read that the loss in torque with ever smaller steps eventually results in lost steps, which will screw up a print. dynamic microsteps would let the software only use smaller steps when it would be useful, like for higher resolution around holes or approaching edges.

another idea is that if the printer homes after layers and finds that it has lost steps, it could reduce the step ratio for the rest of a print. this would hopefully only result in one layer being off.

Edited 1 time(s). Last edit at 10/12/2010 11:09PM by Buback.
VDX
Re: question: Variable/dynamic Microstepping?
October 13, 2010 03:30AM
... i have some really excellent microstepping systems from BergerLahr, where 3-phase-motors were driven at 325Volts from drivers, which can select 200, 400, 500 and 1000 steps per rev in 'full step mode' and 2000, 4000, 5000 and 10000 in 'microstepping mode' with the same two pins.

The effective speed is the same, as i can clock the 1000-step mode with only 20kHz max. and the 10000-step mode with 200kHz max. ... so it's primarilly the ability of the CNC-controller, if it can drive the axes with 200kHz ... but then the system is much smoother and accurate than with 'full step' ...


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: question: Variable/dynamic Microstepping?
October 13, 2010 04:15AM
I think it is a myth that microstepping is lower torque. Stepper motors are rated for both coils on. When micro stepping the both coils on position applies 70% current to each. If you set the current to 1.4 times the motor rating then you should get the same torque and the same power dissipation.


[www.hydraraptor.blogspot.com]
VDX
Re: question: Variable/dynamic Microstepping?
October 13, 2010 04:49AM
... but when you set the current 1.4times more, the motor will get hotter, when holding the position in the 'full step' position - even with microstepping you have the position where only one coil is energized, what's the same situation as in full step mode.

So you have to find a compromise between torque, current and needed coolant ...

Edited 1 time(s). Last edit at 10/13/2010 04:50AM by VDX.


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: question: Variable/dynamic Microstepping?
October 13, 2010 04:57AM
Quote

if you were to do 8/8 steps at a time it would only energize 1 coil at a time. does this skip the intermediary steps?

You can't do 8/8 steps "at a time". If the stepper driver is set to do 1/8 microstepping, each step pulse advances the motor 1/8 of a full step. There's no way to send more than 1 pulse at a time.

However with microstepping, you can/have to send pulses faster, with less time between two pulses, for the same rpm of the motor. Sending 5 pulses per second in full stepping mode gives the same motor speed as sending 40 pulses per second in 1/8 stepping mode.

You also get the same overall torque when microstepping. If a 1/8 microstepper has done 8 steps, the coils are at full current, just like after a single step in full step mode. The "inaccurate" and "lower current" part only relates to the steps in between, but there's nothing you can do to make intermediate microsteps more accurate. If you really need this precision and torque at every tiny step, you need a stepper motor with more steps, or a (different) gearing.

Another conclusion of this is, switching microstepping mode doesn't help to run your motor any faster. You just have to send out pulses faster, and hope your controller is fast enough to achieve with that. If your controller can't, then taking back microstepping makes some sense.


Generation 7 Electronics Teacup Firmware RepRap DIY
     
VDX
Re: question: Variable/dynamic Microstepping?
October 13, 2010 05:41AM
... the speed-issues are something more complex ... it's depending of the motor-characteristics, load/friction, driver electronics and some other more ...

When calculating and testing with my Isel-CNC-mill and the highres microstepping drivers, i had max. 15 rpm with the Isel-controllers (halfstep=>400steps per rev., max. 70Volts, 3Amps) and the motors/mechanics in the mill in freerun mode ... but only 4 to 5 rpm when milling sad smiley

With the BergerLahr-motors (1/10 Microstepping =>10000steps per rev. with 200kHz @325Volts) i'll receive 20rpm max. in freerun and because of the much higher possible torque (higher voltage and >2Nm against 1.1Nm with the Isel-motors) i can drive heavy loads with maybe 15rpm.

But then i have some IMS microstepping drivers with 1/256 microstepping (=>51200 steps per rev.) with 10MHz. max for conventional 1.8deg-steppers, what will give 195rpm's!!!

Until now i don't have a controller capable of this speeds, but it will be really interesting to check the mechanical parameters of such a extreme highacuracy/highspeed-system winking smiley

Edited 1 time(s). Last edit at 10/13/2010 05:44AM by VDX.


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: question: Variable/dynamic Microstepping?
October 13, 2010 05:56AM
VDX Wrote:
-------------------------------------------------------
> ... but when you set the current 1.4times more,
> the motor will get hotter, when holding the
> position in the 'full step' position - even with
> microstepping you have the position where only one
> coil is energized, what's the same situation as in
> full step mode.
>
> So you have to find a compromise between torque,
> current and needed coolant ...

No the rating for a stepper motor is with two coils on 100%, i.e. normal full step mode. With a micro stepping driver it puts both coils on at 70% of the current setting. If you set that to 1.4 times the motor rating both coils on gives exactly the same torque and power. When you move to the one coil on position it gets 1.4 times the current. Since current is I2R that is the same power dissipation. The torque is also the same because in the two coil on position each coil only contributes 70% to the torque as the pole piece is half way between them.

I am not saying run your motors at full power, as they get too hot for plastic brackets. What I am saying is that micro stepping does not reduce the torque, you simply set the current 1.4 times higher to get the same torque and power dissipation as full step.

Edited 1 time(s). Last edit at 10/13/2010 06:41AM by nophead.


[www.hydraraptor.blogspot.com]
VDX
Re: question: Variable/dynamic Microstepping?
October 13, 2010 06:43AM
... is the active current the sum of both coils?

What's with the simpler halfstep-drivers, where you have either one or two coils with the same current per coil, so double energy?


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: question: Variable/dynamic Microstepping?
October 13, 2010 07:30AM
With a simple half step driver the current is the same when only one coil is on as it is for both on. That means the torque drops by 70% in the half step positions and the power drops by 50% in those positions. So with a micro stepping driver, even when in half step mode, you get smoother running because the torque is constant. You will get more heat generated than simple half stepping, but no more than full step and you get the same torque as full step.

Quote

.. is the active current the sum of both coils?

I am not sure what you are asking. The total power dissipation is sum of the two I^2R values. The torque from each coil is proportional to the current and the cosine of the angle from the pole piece.


[www.hydraraptor.blogspot.com]
VDX
Re: question: Variable/dynamic Microstepping?
October 13, 2010 08:07AM
... i have some really old unipolar and bipolar discrete stepper drivers, where each coil is driven by a H-bridge - if only one coil is on, 1 measure around 1Ampere, with two coils on i have 2 Amps!


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Re: question: Variable/dynamic Microstepping?
October 13, 2010 10:07AM
Yes that is what I described above as "simple half stepping". In the one coil on positions the torque is 70% so the load must remain below that. With a micro stepping driver you avoid those low torque steps by increasing the current in the one coil position by 1.4. Similarly with the smaller steps in between.

This why it is a myth that micro stepping gives lower torque. It does if you don't set the current to 1.4 times higher than you would for a full step driver, but that is an unfair comparison, as it reduces the full step current by 70% because the drive is sinusoidal and sin(pi/4) = cos(pi/4) = sqrt(0.5) = 0.707. If you have a 12V motor and a 12V supply then yes it does reduce the torque compared to full step, but with a low voltage motor and a chopper drive it doesn't.

Edited 1 time(s). Last edit at 10/13/2010 10:08AM by nophead.


[www.hydraraptor.blogspot.com]
Re: question: Variable/dynamic Microstepping?
October 23, 2010 09:20AM
kinda funny now i find this after my question about the pololu drivers, the same idea came up with some good answers i think


[mike-mack.blogspot.com]
Re: question: Variable/dynamic Microstepping?
October 24, 2010 10:45AM
I agree with nophead that microstepping does not reduce torque. I think that the confusion revolves around confusing holding torque with stiffness (torque per step). If I run a stepper motor without microstepping, and it is not moving (not stepping), it has a certain stiffness. By this I mean that if I grab the shaft and try to turn it (put torque on it), it will turn a little bit. The is a certain torque level that will move the shaft the same amount as it would have moved if I had actually taken a step. As I increase the force (torque), eventually the stepper will give in and skip one one detent (4 normal steps, i think). The maximum torque that it takes to make the stepper give in is the holding torque.

If I microstep and stop the motor, it will basically take the same torque to make the motor give in and skip. The motor will respond to small torques by moving the same angular amount. However, since I now consider a step (microstep) to be smaller, it takes less torque to rotate the shaft the same angle that a microstep would have moved it.

SO, with microstepping, the total torque available is the same, but the "torque per step" is less because the steps are smaller. The motor does not get any stiffer overall, so it gets less stiff per step. It will move just as fast and push just as hard, it just will not be able to hold to the new smaller steps as well as it does to the larger full steps.

My experience is that it will be a lot quieter, though.

fdavies
Re: question: Variable/dynamic Microstepping?
October 25, 2010 03:16PM
Microstepping Physics: [www.cs.uiowa.edu]
Interesting read on microstepping. I'm still trying to work out all the information given at the above link.
VDX
Re: question: Variable/dynamic Microstepping?
October 26, 2010 03:46AM
... it's a lot more complex, if you change from 2-pole bipolar to 3-pole steppers.

I have some really sophisticated microstepping drivers - one type for 'standard' 1.8deg/200spr-steppers with 1/2 to 1/256 microstepping (with 10MHz max.), whats comparable to the calculations in your link.

But then i have 3-pole steppers and corresponding drivers too, which have complete different parameters.

First the motors are driven with 325Volts, whats much more dynamic than with the 12Volts in the RepRap (or my CNC-mill with 70Volts/6Amps max. where i run 2Amps-steppers)

Then the possible 'fullstep'-configurations are not 200 steps, (or 400 steps with 0.9deg-steppers), but selectable by 200, 400. 500 and 1000 steps per rev confused smiley

And last i can activate 1/10-microstepping, so i'll get 2000, 4000, 5000 and 10000 steps per rev. with max. stepping frequenzy of 200 kHz.

In the datasheet of the 3-pole-steppers is mentioned a 'systematic' angle error of 0.6 arcsec, regardless if in fullstep or microstepping mode ...

Sometimes i have to compare the effective results of 1/256-microstepping with conventional 1.8deg-steppers vs. 1/10 microstepping with the 3-pole-steppers confused smiley

Atached are two documents regarding microstepping, possible accuracies and systematic deviations and some hardware - and code samples for designing your own drivers ...


Viktor
--------
Aufruf zum Projekt "Müll-freie Meere" - [reprap.org] -- Deutsche Facebook-Gruppe - [www.facebook.com]

Call for the project "garbage-free seas" - [reprap.org]
Attachments:
open | download - 8700.pdf (275.7 KB)
open | download - 00822a.pdf (468.9 KB)
Sorry, only registered users may post in this forum.

Click here to login