Slow, Mixed and Fast Decay Modes. Why Do We Need To Complicate Things?

If you are driving inductive loads, whereas it is a brushed or brushless DC motor, stepper motor, solenoid or a relay, you must have experienced a little bit of a problem in the form of an unwanted current flowing in the unwanted direction. If you did not take this fact of the laws of physics into account, chances are you  have had the only once enjoyable experiencing of smoking your transistor. Whether it was a bipolar transistor or a FET, if a mechanism to overcome this generated current was not put in place, said transistor will not last long. But why does this happen?

Lets take a quick look at what is happening with our inductor.

It is a known law of physics that inductors will not tolerate abrupt changes in current either when they are being charged or when they discharge. This is in essence because as you apply a voltage and a current starts to flow through the conducting element, a magnetic field is generated. The magnetic field at the same time generates a current that fights the incoming current, making the incoming current needing to fight its way into the inductor. Either way, and at the end of this charging ordeal, we can see that the energy that went into the inductor will be maintained in the form of a magnetic field. OK, enough with the basics.

Case A of our picture shows a current happily flowing into our inductor. I say happily because in essence nothing stops this flow. As soon as the FET is energized, the current starts to flow until the inductor saturates. But what happens when the FET is disabled? This will eventually happen, right? This may be fine except that all the energy stored inside the inductor will now want to get out of its cage, plus the current can not change abruptly so whatever was going in, must continue going out. As a result the inductor is now the source and the FET the load. But the FET is off!!! This angry current, as portrayed on case B, will not care too much about its path not being present. A path will be made, one way or the other! And as it is often the case, the voltage goes up in such a way that the FET is damaged.

We need to provide a way for this current to find a safe path which not encompasses the destruction of our transistor switch. And the solution often comes in the form of what is called a free wheeling diode. Notice the diode is placed such that while the FET is on, it can not conduct (its voltage from anode to cathode is negative). It is only when the FET is OFF, that the inductor operating as a source makes the voltage across the diode positive, hence making it conduct. In this case, the FET sees no current flow and no negative voltage.

But why do we need to bother about this when dealing with H Bridges? The previous example shows a simple single FET driver. Are H Bridges subjected to the same problems? Yes and No! In essence the problem still exist because inductive loads will still try to conduct through a disabled FET when said switch gets disabled. So an H Bridge would suffer the same fate as the single transistor driver if an alternate path is not provided. However, the H Bridge has enough alternate paths, and this is where current recirculation or decay modes come into play. Lets take a look at the H Bridge quickly.

On an H Bridge you only enable as much as two FETs at any given time. It is completely forbidden to enable the two FETs on the same side, as this would lead to Shoot Through (a short circuit from power supply to ground). If you enable the hi side FET on the left side (AH), and the low side FET on the right side (BL), then the current flows from left to right. If the inductive load was say a DC motor, then the motor would spin in one direction, say clockwise. If on the other hand, you enable the high side FET on the right side (BH), and the low side FET on the left side (AL), then the current would flow from right to left. This has the desirable effect of turning the motor in the opposite direction, in this case counterclockwise.

Unfortunatelly, all is good only if we never disable those FET’s. Because as soon as you do, then the current will try to keep on flowing on the same direction, which should result in flames right? Not necessarily… What if we add freewheeling diodes to save the day? Four of them should do, right? As it turns out, we do not need them! Like I said before, there is already more than plenty alternate routes and all we have to do is use the very same FETs we already have and their associated internal body diodes. This has a few advantages:

  1. Since extra diodes are not needed (and as long as the body diodes are used only for very brief periods of time) we can save on component cost
  2. The FETs are considerably much more efficient than diodes anyway, so we can decrease the amount of power loss in the form of heat.

But how does this work? The first thing we must understand is that Shoot Through must be avoided at all times. So, if we are going to use some or all of the unused FETs on the system, it is imperative that we do not turn them ON while the previously active FETs are still ON. Confused? If AH is ON, we can not let it be ON, while AL is ON, and so forth.

Fast Decay Mode

In Fast Decay Mode we use the opposing FETs to offer an alternate path for the current to flow through. Notice that it looks identical to the polarization in which we allowed for the current to flow in the opposing direction. However, it is very important we remember current does not tolerate abrupt changes. Hence, long before the current can flow in the opposite direction, it must decay to zero. Then, it can start flowing as we saw before.

Fast Decay Mode is called as such because this is the fastest the current will die to zero. Notice you are basically placing a voltage source plus two voltage drops (there is a voltage drop across each FET given by the current multiplied by the FET RDSon) across the inductance. Since the inductance voltage can only be as large as the voltage source, the new voltage we are applying to the inductor is larger and as such will fight considerably hard for the already existing current to die out.

Below my two H Bridge drawings I am showing a possible way in which we can disable/enable the FETs. Remember Shoot Through is forbidden, so we must disable one FET before we enable the other one. It must be a break before make kind of deal. The speed at which the FETs are turned ON and OFF is in the nanoseconds range. Often, anywhere in the vecinity of 100 to 200 nano seconds. You may be asking, how about the current during these 200 nano seconds? Can it damage my already disabled FET? Luckily, FETs are intrinsically built with a body diode which will easily carry this current through this brief period of time. Anything longer than the 200 nano seconds, and all bets are off. You could of course design the body diodes to be large and powerful, but what’s the point? Shortly after we will be enabling a way better path which is the opposing FET!

A very important distinction to be made is between asynchronous and synchronouse current recirculation. If diodes are used (and there are reasons, such as improved thermal release, in which we will want to use external diodes instead of the FETs, a good example being the DRV8811), then the current recirculation is said to be asynchronous. This is because you are not controlling the occurrence of the alternate path creation. It will happen, but you do not control when this happens. If on the other hand, the H Bridge control logic has to take care of enabling and disabling FETs in order to promote an alternate path, then the current recirculation is synchronous. Just an important note, as both are still commonly used today!

Slow Decay Mode

In Slow Decay mode we use the FETs on the same H Bridge segment. Per example you can use either both high side FETs or both low side FETs. The typical convention is to use the low side FETs.

The idea behind this method is that current is allowed to decrease through zero as the inductor recirculates the current through a resistive path. Notice that as both low side FETs are enabled, the current is basically dissipating a voltage across the two FET’s RDSon. It is called slow decay because although current eventually decays to zero, it takes longer than fast decay mode. This makes sense as we are not applying a voltage opposing the current, which would definitely be the fastest we could fight the existing current.

How slow the decay mode is depends on the motor inductance and the FETs RDSon. The smaller the RDSon, the longer it will take for the current to decay to zero.

When it comes to DC motors, however, there is a very interesting effect while using this decay mode. While on fast decay mode the DC motor rotor coasts down in speed, with slow decay mode the rotor stops very quickly. This is because as can be seen by the above picture, you are shorting the DC motor terminals. This in essence implies the BACK EMF voltage source inside the motor to be shorted. And if there is no BACK EMF, there can be no speed. One is directly tied to the other. We call this phenomenon braking the DC motor or the collapse of the Back EMF. Braking is vital when you want to stop your motor very fast and possibly obtain a particular position. With coasting, this would not be possible, so be aware that selecting slow decay or fast decay with DC motors is not a trivial endeavor.

I like to point out, when I discuss slow and fast decay mode, that the names “slow” and “fast” are pertinent to current, not to DC motor speed. They imply a direct relationship with how fast the current decays through the winding. However, when it comes to how fast the DC motor speed decays, it is the total opposite. Kind of annoying, but I guess one thing leads to the other. So be careful not to think that fast decay will stop the motor very fast, because it is actually the opposite.

Mixed Decay Mode

There is one third of current decay which we call Mixed Decay Mode because it is actually a mixture of Slow and Fast Decay modes. By definition, you inccur in Mixed Decay if through the entire current decay cycle a percentage of it is slow and the remaining percentage is fast. Why do we need this feature? In DC motors it is pretty much unused, but when it comes to steppers, specially while microstepping, Mixed Decay is a must!

This may be a little bit advanced, but what happens is that as you are trying to synthesize a sine wave across your stepper motor winding, drawing said wave shape will become harder at some points in time. Per example, when you are charging the winding (angles of 0 to 90), it is very easy to superimpose the waveshape of a sine wave. But when you are discharging the winding (angles of 90 to 180), then the motor inductance will dictate whether you can discharge fast enough or not. If the motor inductance is too high, chances are you will not be able to superimpose the correct sine wave shape and deformation occurs. This is because the decay mode is too slow!

So a solution would be to use fast decay. This will definitely solve the problem, but another problem occurs. Fast decay mode has the side effect of high current ripple. Remember the current is swinging considerably more than on slow decay mode. This poses a few unwanted problems such as EMI magnitude increasing (larger current peaks are of course gives a stronger radiation) and more audible noise, depending on the current chopping frequency.

So what we need is an in between. Some decay rate that is not too fast or too slow. Mixed Decay mode gives us that. Some devices will allow you to control the exact rate of the mixed decay mode. The DRV8811 is a good example. Other devices, such as the DRV8824 and DRV8825,  just give you a fixed rate of mixed decay mode. For most applications, this is enough.

47 comments for “Slow, Mixed and Fast Decay Modes. Why Do We Need To Complicate Things?

  1. James
    October 10, 2010 at 5:14 pm

    Informative and entertaining! Thanks! ^_^

  2. fenderbirds
    October 18, 2010 at 4:56 pm

    nice article, keep the posts coming

  3. B-nogart
    February 3, 2011 at 6:31 pm

    Hey! nice article, really interesting :).

    I am simulating fast decay, slow decay and mixed decay modes and I have a doubt.

    It wouldn’d be faster in fast decay mode if you first turn the AH FET off, then you turn the BL off, and then you turn AL on and finally BL on? Becuase I think in this way you avoid some milisiconds in which the bridege is in slow decay mode (when Al and BL are turned on) and therefore, the decay could be some milisecond faster.

    Maybe my idea is wrong.

    Thank you 🙂

  4. February 7, 2011 at 12:11 am

    Hi B-nogart,

    I don’t think the H Bridge will ever be in slow decay. And before I go with my analysis, let me point out that the break and make connection of switching the FETs is in nano seconds, not micro seconds or milli seconds. This has to be VERY fast! Otherwise, the current in the winding would die out through the body diodes. Just so you have an idea, the DRV88xx devices I use so much have dead times (the amount of time in which the FETS are off and the system waits to turn them ON again), is about 500 ns. In other words, as soon as the first FET turns OFF, a counter starts to count for 500 ns (more or less) and after this time, the opposing FETs will be turned ON.

    You are right about the order in which things happen. First thing you do is disable the high side FET. This may take about 100 ns, which is what is called the fall time. While the FET is turning OFF, the respective low side body diode will turn ON. In other words, for a few nano seconds, you will have asynchronous slow decay. However, this really does not last too long as you will disable the low side FET shortly after. Right at this time, the respective high side body diode will be forward biased, in which case you will now be in full fledged asynchronous fast decay until the respective FETs are enabled taking you to synchronous fast decay.

    So the duration of slow decay is pretty much negligible and there is really not much you can do about it. Seems like a good topic to add to this blog. Thanks for bringing it up!

  5. Gustavo
    February 23, 2012 at 12:53 pm

    I would like to know if there is any maths analysis for explaining the fast decay. I mean some kind of calculation that allows to determine the decay time as a function of coil paramaters and power supply voltage, etc.

    • avayan
      February 24, 2012 at 12:19 am

      Hi Gustavo,

      Thanks for the question! Yes, there is a math. I am not a mathematician, so will try to explain it as best as I know, although there might be a few elements missing. It is pretty lenghty, though, so I think I will make it into one of my next posts.

  6. dzeus
    March 21, 2012 at 2:54 pm

    Hi Thank you for sharing with us all this valuable informations
    I’d like to know if it’s possible to reverse the logic that drive the dual H-bridge (bipolar stepper motor) to allow a Fast decay to occur for exemple going from 1010 to 0101 with two input XOR logic when the set/reset latch go high (chopper circuit), do we need to add some delay to avoid a Shoot Through ?

    • avayan
      March 21, 2012 at 5:20 pm

      Hi dzeus,

      The devices that I deal with the most (DRV88xx) do this reversal of phases automatically as part of their logic. In this case, the shoot-through is avoided through the usage of special circuitry that ensures each H Bridge half is never fully enabled at the same time. That is, the High Side FET cannot be enabled at the same time as its Low Side FET. To do this, a delay called dead time is induced when you are switching from 1010 to 0101. This dead time is usually in the range of 50 ns to 500 ns. It is all dependent on the actual power FETs being employed, as well as how agressive you want the switching losses to be, so selecting this time is not a trivial matter.

      On discrete implementations, the controlling circuitry will need to take this timing constraing under consideration. I do not even bother with discrete solutions anymore as to be honest, there is more than enough integrated drivers out there to tackle any application I can think of (except humongous drive units which use a DSP, but in this case, the DSP is more than tailored to administer PWM outputs with intrinsic dead time generation). In all of these integrated drivers (at least the ones that I have dealt with), the dead time is taken into consideration.

  7. Dzeus
    March 22, 2012 at 2:23 pm

    Hi Avayan
    Thank you for your quick reply
    I used to use Allegro A3977 which is nice IC but like the TI DRV8811 it has 2.5Amp maximum output,now I need more power for nema34 stepper motor (5Amp) so I’m thinking using micro-controller and a power bridge ( starting with Four IR2104 and maybe IRF540 FET’s,old stuff but robust combo)to get up to 8Amp with micro-stepping of course, I have read somewhere that I can turn off the H-bridge (one coil) and get Fast decay If there’s the free whiling diodes but that’s 8 more diode (4 for each coil) and they must sustain up to 8 Amp (?) so now I should go for a software modification to reverse the logic that drive the power FET while taking into account the dead time to avoid Shoot Through unless I found another discrete solution
    unfortunately there’s no reliable translator IC in the market TI was supposed to lunch one but they’re not selling it yet (equivalent to Allegro A3986)

  8. avayan
    March 22, 2012 at 5:58 pm

    Hi Dzeus,

    Also want to point out that the DRV8818 came out a few weeks ago and it has lower RDSon than the DRV8811, so it is easier to get to the 2.5A sine wave peak.

    I don’t think TI was trying to do a pin to pin compatible version of the A3986, although I have heard they will do their own external FET power stage in the upcoming year or so. What I do know, however, is that for 8A steppers they offer the DRV8412 or DRV8432 which can do up to 7A peak or 12.5A peak respectively. BTW, these two devices are basically the same guy; all that changes is whether you use the PCB as your heat sink or you add a hefty heat sink on top of the device. And if you parallel both H Bridges, you can do up to 25A per phase! Not certain which stepper would want such an atrocious current through its coil. Already sounds like fire to me…

    Now, talking about your IRF solution… First off, the IR2104 already has shoot through protection, so there should be no way to enable both same side FETs at the same time. So far you are safe. As you described, if you disable the H Bridge (outputs are placed in tri state mode while SD* is HI), then the IRF540 FET’s body diodes will take the current. These diodes should be large enough to take in an 8A current considering the device is rated at 33A (In actuality it can go up to 110A if pulsed!). Hence, I don’t think you need external diodes to accomplish this technique.

    I must add, however, that using the body diodes is not the most efficient thing to do. Since the diode path is not very efficient (you can not control its impedance), the power losses will haunt you. The best solution is to use the opposing FETs (lower RDSon implies lower I^2*R losses and lower heat). This is piece of cake as all you need to do is invert the H Bridge.

    I must also point that only using fast decay is ill fated if wanting to microstep, and at 8A I am thinking you will need hearing aid after some time operating the stepper. The problem is that fast decay will give you horrendous current ripple which in turn translates to sub harmonic components beating the heck out of your ear canal. Nobody likes this. To make matters worst, high current ripple also means lower average current which in turns mean lower torque. Nothing good can come out of fast decay. Why does it exist then?

    The truth is that (as I explaine on some other post) you would want to use slow decay at all times and maximize current usage. However, as you microstep and draw your sinewave, slow decay can only work for so long. In quadrants 1 and 3 (as you are charging up the winding) to use slow decay is all peachy. However, as you delve into quadrants 2 and 4 (as you are discharging the winding), then the sine wave deforms. Remember it is easier to charge than to discharge when using sloe decay current regulation.

    The solution is to use fast decay on quadrants 2 and 4. BUT WAIT!!! Fast Decay? That noisy bastard? Could we do something else? This is why there is mixed decay, or a combination of fast and slow. Since you are doing your own controller, you should be able to find the ration of fast and slow which gives you the prettiest sine wave shape.

    This almost looks like a post in itself! Hope it helps, though.

  9. Dzeus
    March 24, 2012 at 2:38 pm

    Hi avayan
    thank you so much,you have such a way to explain things that’s everything will look simple

    I’m continuing learning about stepper motor control and any input will be full welcome

    Concerning the TI DRV8412 I spot them while searching for a good H-bridge drive IC and I was happy to find such as powerful Fully integrated power bridge but actually building a complete Driver with micro-controller and a discrete H-bridge is more like a learning tool I will try The TI solution too, I should be able to make a very compact board with them

    Concerning IRF driver and Fet, I was thinking to implant a Forced Fast decay ( synchronouse as you call it) by altering the logic in one Hbridge instead of just turning it off (Both SD pin of concerned IR2104’s go Hi) so Actually you saying that’s its possible without adding dead time because the IR2104 already has shoot through protection !
    also you said that Fast decay isn’t a big deal,now I’m thinking adding this feature only at high RPM where/when Current won’t have enough time to decay
    Mixed decay ?user programmable mixed decay ? humm yes sure, that’s the best solution, I’ll try to add this in the future, Now I have to learn how to force Fast and Slow decay at the right time


  10. Marco
    June 6, 2012 at 9:41 pm

    Thanks for the article, very clear, interesting and amazing current pictures! 🙂

  11. Ahmet
    February 4, 2013 at 9:22 pm

    Thanks for pure and comprehensible information..

  12. February 18, 2013 at 6:33 am

    Hi Avayan,
    Amazing Post….very informative. I have few queries though.
    1) I am using DRV8825 to control a stepper motor. If you have used this IC, please mail me a schematic.
    2) If we use..high power diodes on AOUT1/2 BOUT1/2 pins in such a way that they protect the H Bridge FETs….will the system always remain in fast decay mode ?
    3) I have seen many schematics where they connect Vcc/2 around 1.65V to decay mode pin on the IC. What is the reason for that ?

  13. avayan
    February 18, 2013 at 10:40 am

    Hi Divya,

    Yes, I have used the DRV8825 in many different projects, including my CNC Plasma Cutter and my 3D Printer. Great device! You can find an schematic on under many different designs. For example, here:

    There is no need to use external FETs with these devices. If you do, however, the FETs should take precedence when they are enabled. The diodes will only work during dead time. This is why you are in essence wasting diodes. The FETs are as protected as they can be. On any DRV88xx device, you will need to violate Abs Max to destroy the H Bridge. The FETs are protected against over current and over temperature.

    When they connect the DECAY at half supply, this is like placing the device on mixed decay mode. On DRV8825 there is no need to do this as the device will enter mixed decay mode when the pin is left floating. You can save on the two resistors.

  14. February 20, 2013 at 11:42 am

    Thanx Avayan!!!
    Please answer some more queries……
    4) Why have nFAULT and nHOME pins been left unconnected ??
    5) Why have you used 3.3K pull-ups for the MODEs, STEP, DIR, nENABLE, nRESET & nSLEEP ??
    These input pins…have internal pull-downs and should be directly interfaced with digital signals.
    And as you said, we should the DECAY pin floating because this pins has internal pull-ups and pull-downs…which will cause a Vdd/2 voltage to appear on the pin and hence activate the mixed decay-mode.

  15. avayan
    February 20, 2013 at 2:00 pm

    You are welcome!

    nFAULT is an open drain output you can use to determine if there are problems such as Over Current or TSD. On the AE-CNC25, there is no need to use the limited signal pool with a fault signal per axis so I chose to ignore the faulting capability. On this board, however, I did allowed these connections to be made by prospective users.

    nHome is kind of an useless signal. It tells you when the internal look up table is pointing to the first step. I can assure you on a CNC machine there is absolutely no use for this feature. The only time I ever used this signal was when exploring highly intricate algorithms in which I was trying to measure phase angles and such. These experiments can easily fill up an entire book, so I will not ago into describing them here, but feel assured the great majority of users out there will not need to run anything like that.

    I used 3.3K resistors on nSLEEP and nRESET because on the CNC machine environment I do not want to enter SLEEP mode or RESET the device’s core. If I need to, I’ll recycle power. As of today, though, I haven’t needed to.

    I also like adding pull up resistors on nENABLE so the device is enabled by nature. This way if I am running an experiment, I do not need to send the enable signal. Do note that just because I placed pull up resistors does not mean I need to populate them. You can always choose to build the board without them. If you leave them off and want to add them at a later time, well that doesn’t work as well. For the most part, I use them, though.

    The CNC Control machine will then send the respective control signals to those signals that do need to change. You do not need to drive all inputs with “digital signals”. Placing the pin in a known condition (such as pulled up or pulled down) is a legal condition. In other words, there is no need to tie every single line to a microcontroller output.

    Yes, the DECAY pin has internal pull up and pull down so when the pin is left disconnected it sits at 1.67V telling the system to enter mixed decay mode. This only applies to DRV8824/25, BTW. DRV8811/18 do have an analog input which will give you tunable mixed decay mode.

    Hope this helps!

  16. February 21, 2013 at 5:27 am

    Thanx Again!!!
    Avayan, I did not get this part of your reply.
    “Do note that just because I placed pull up resistors does not mean I need to populate them. You can always choose to build the board without them. If you leave them off and want to add them at a later time, well that doesn’t work as well. For the most part, I use them, though.”
    Do you recommend using Pull-ups ?? If yes….is it just because..of safety and some redundancy in electronics is always justified ??
    And also…I read about your CNC work, it is amazing….Please give me ur gmail id….

  17. avayan
    February 22, 2013 at 7:27 pm

    Hi Divya,

    It is not possible to answer this question with the simple phrase “I recommend”, because at the end it depends. In some applications you will have the pull ups (as in my CNC mother boards), and in others you may not (as in an application where the DRV88xx device is directly driven by a microcontroller). Each application is unique and we cannot just say “this is what you have to do, and that’s it!” You will need to analyze what behavior you want (and don’t want) and go from there.

    If you fear glitches and their implications, then you need to add pull up/down resistors to ensure those glitches are not present. This is also highly dependent on the application. For example, if it is a medical or automotive application, the glitch may be lethal. If it is a toy, chances are it will not make much difference.

    I would not be afraid if on a CNC machine there are a few glitches here and there on the stepper motor drivers when you are powering up the machine. First thing I do is home the system anyway, plus I doubt that a few nano seconds of enablement are going to make that much of a difference. I would be terrified, however, if there is a glitch on the circuit that enables the router spindle or the plasma torch, as this could result in some serious blood, not to mention a completely avoidable trip to the ER. That’s the rationale that I use when choosing default states.

    Thanks for the kudos on my CNC projects. Has been very enjoyable indeed! You can check my You Tube channel at, which is linked to my Google account.

  18. Keng Hou
    February 25, 2013 at 4:18 pm

    Hi Avayan,

    I am doing a low power robot project using a bipolar stepper motor for movement.
    I build the stepper motor driver myself with H-bridge L293E, controlled by PWM signal generated from microprocessor.
    The sequence of the input PWM signal was correct (refer to oscilloscope, the motor was turning. However, when I observed the voltage on both side of the winding, there was a voltage drop opposite to the supply voltage.
    (the voltage for the winding is supposed to be like this)
    (this was the voltage I observed)
    CH1 was one side of the winding and CH2 was the other side of the same winding.

    I suspect that this was happened due to the current circulation. I built the circuit according to the schematic given in the L293E datasheet

  19. avayan
    February 25, 2013 at 7:06 pm

    Hi Keng,

    Good job in designing your own stepper driver! Excuse the question, but what is exactly your concern? The lack of 0V when the output is supposed to be LO and the loss in voltage when the output is supposed to be HI? If you look at the datasheet’s page 5, on the table with VOH and VOL, you will see that this is expected. This driver uses bipolar transistors, so you have to take into consideration the loss caused by the VCE. On FET transistors, the voltage loss on VDS is very small as the RDSON is tiny and its I*R component is equally small.

    If your input voltage was 24V, the output deformation would be less visible as 1.5V is much smaller when compared to 24V, than when compared to 5V. Hope this helps!

  20. newbie
    March 18, 2014 at 4:24 pm

    Sorry for my incompetence, but I just can’t get one thing…
    There are several phases work modes mentioned in the most drivers’ datasheets: 1-2, W1-2, 2W1-2, 4W1-2. How do they relate to “wave drive”, “full step”, “half step”, “1/4 step” modes?

    • avayan
      March 18, 2014 at 7:09 pm

      It is my impression your incompetence is not as incompetent as you may think (or perhaps I should say your incompetence is not as competent as you may think?).

      I personally strive to understand the 1-2, W1-2, 2W1-2, 4W1-2 nomenclature (will call them one-twos). Years ago, I made it a point not to mix them up with the microstepping nomenclature. I think this may be like trying to explain Intel Pentium technology by looking at an ARM microcprocessor datasheet.

      What I have noticed is that Japanese manufacturers, like Toshiba, Rohm, Shindengen, love the one-twos nomenclature. By looking at their datasheet, it seems that 2 Phase excitation is the same as FULL STEP. Somehow, 1-2 Phase excitation becomes HALF STEP. Maybe the translation from Japanese to English for 1/2 is 1-2?

      But then it gets weirder as 2W1-2 is the same as eight degrees of microsteping (or EIGHT STEP) and 4W1-2 is the same as 16 degrees of microstepping. How did that happen? Beats me!

      Like I said, I just don’t mix degrees of microstepping with the one-twos as I don’t even know where the one-twos came from. Microstepping is so easy to deduce. Basically FULL STEP is one step (or the same as one current level per step) and then you divide this full one by whatever degrees of microstepping you want (or how many current levels per step you want). If you want two current levels (or two microsteps) per step, then you have HALF STEP. If you want four, then QUAD STEP. Eight? EIGHT STEP. And then it goes from there to 16, 32, 64, 128, 256, 512, etc.

      I wonder if somebody can shed some light as to where the one-twos nomenclature comes from…

  21. Michael
    October 22, 2014 at 3:15 pm

    Hi avayan,

    Regarding power consumption of the two modes FD/SD, I would conclude the following based on your description above…

    1. Fast decay mode has a higher average power consumption as during the off phase a reverse voltage is used to cancel out the back EMF.

    2. In slow decay mode, the back EMF is shorted and no additional power is used to cancel out the back EMF, although potentially the motor would run a bit warmer due to the back EMF being shorted through the coils?

    It seems that slow decay mode has all the benefits, why would one choose fast decay over slow decay?

    Great article by the way, cheers!

    • avayan
      October 22, 2014 at 4:03 pm

      Hi Michael,

      Thanks for taking a look at the article!

      The short answer is that you want short decay for anything like brushed DC, brushless DC and full step stepping, but fast (or even better mixed decay) for microstepping. The reason is that on microstepping, you want the winding current to emulate a sine wave shape. During quadrants 1 and 3 (when the current is charging), slow decay works OK. On quadrants 2 and 4 (when the current is discharging), the wave shape gets all distorted due to the lack of an ability to follow the current command. This current deformation causes torque ripples which are best to eradicate. As a result, mixed decay mode is used in most of the stepper controllers out there. Mixed decay is a combination of fast decay.

      The only other case where you will want fast decay is when you want to let a DC motor (brushed or brushless) coast down in speed when they are disabled. This is more like letting the H Bridge float than an actual fast decay mode.

      I am intrigued by how you got to the conclusion that Fast Decay mode has higher average power consumption. Notice that on most cases, fast decay is achieved by enabling the opposing FETs. As a result, the I^2R power dissipation is pretty much the same (except that on fast decay your average current is less than on slow decay). If you use external diodes (which is the same as asynchronous fast decay), then yes, the power dissipation will be higher on fast decay, because the diodes are lossy.

      I would accept that fast decay introduces a slightly higher switching loss due to the fact that you are turning ON and OFF two FETs, instead of one. Switching losses start to take some meaning when your switching frequency is very high (50 KHz and above), or your voltage and current are large (80V and above; more than 10A). Those numbers I offered are subjective. Some people will cringe at switching losses at 1 KHz, 5V and 100 mA. If you are trying to run from a couple AA batteries, it may make sense.

      BTW, on either fast or slow decay, you are not doing anything with the BEMF until the winding current reaches zero (which is only possible as you switch off the motor). Since we are regulating current, and the average current is higher than zero, the BEMF is preserved and directly proportional to motor speed. If you let the current collapse to zero, then you are letting the BEMF be exposed to a short (slow decay) or the power supply (fast decay).

      As a result, the only mechanism which can actually do anything to the BEMF is the slow decay (and only after winding current reaches 0A) because when you employ this mode, both low side FETs are enabled, and the BEMF encounters a resistance. At this point, the motor becomes loaded and stops very quickly!

      On fast decay (or better stated, floating H Bridge outputs) there is no way for the H bridge to affect the BEMF. This is because the BEMF can only be as high as the power supply voltage (otherwise we would be creating energy!). Since you need this voltage plus two diode drops for the H Bridge to be doing anything to the motor (or the motor to the power supply), this will only happen while there is current (which makes the voltage equal to VM + 2VFD). As soon as the current reaches zero, the motor will continue to rotate and you will see the BEMF, but this will go nowhere because the H Bridge will be high impedance. In this state, the motor is like a generator and you could see this voltage dwindling down as motor speed dwindles down, which is what we have called coasting down.

      WOW! I may actually turn this response into a post 😉

      • Michael
        October 24, 2014 at 2:45 pm

        Hi avayan,

        I jumped to a false conclusion regarding the power consumption in FD mode after reading:

        “you are basically placing a voltage source plus two voltage drops (there is a voltage drop across each FET given by the current multiplied by the FET RDSon) across the inductance.”

        I assumed by placing this voltage across the inductance, you are using power, of course in reality P=IV, and since we are only fighting the existing current… well now I’m confused 🙂 As it would seem if we have a potential difference or voltage in one direction, and a current flowing in the opposite direction we would be getting a negative power loss or power flowing back from the motor to somewhere?

        That last reply was decent! with a couple extra diagrams it could well be turned into a post. If you are curious, I’m writing a driver for a mobile robot based on TI’s DRV8833.

  22. Dinesh
    October 29, 2014 at 7:09 am

    Really interesting article..

  23. Dinesh
    October 29, 2014 at 11:07 am


    kindly let me know; Is Decay mode required for BLDC motor driver for steering application; while sudden breaking not required.

    • avayan
      October 29, 2014 at 11:52 am

      Hi Dinesh,

      On BLDC, there is really not much of decay modes.

      What you will find is the most common on BLDC control algorithms is to use slow decay, because your average current is higher. It really doesn’t make sense to use fast decay, and there is absolutely no need to use anything like mixed decay.

      Decay modes are only meaningful to steppers and particularly those which are being microstepped. If you remove microstepping from the equation, you will find that the most useful decay mode, or H Bridge switching topology, is slow decay.

  24. MattC
    March 20, 2015 at 11:51 pm

    Hi – I bet you might have a clue to solving a problem with Leapfrog Creatr 3d printer!

    It uses the DRV8825 to drive the 5 motors and a MEGA2560 controller.

    The other day all motors suddenly stopped moving during a print, although there was no error message and the print completed.

    I discovered a fried diode on the bottom of the electronics board in the power path that feeds all the stepper motor drivers. I replaced the diode and the motors now respond normally to manual jog control.

    But the printed won’t work normally using Simplify3D software (athough it does work using Repetier!).

    At first I thought the printed simply locked up when starting a print, but then noticed that the motors actually move and the print progresses VERRRRY slowly, almost imperceptibly. Seems like the stepper motors move at about 1 step per second!

    Again, it does work normally using Repetier!

    Any suggestions of where else to look for the source of this strange behavior?


    (PS: I have reflashed the board a few times, and re-installed S3D twice.
    I also replaced the MEGA2560 chip with no change in behavior.)

    • avayan
      March 21, 2015 at 12:02 am

      Hi Matt,

      That is very odd indeed! Without taking a look at the board, all I can guess is that the board is in good shape. After all, if it works with one controller software, then the stepper drivers are working! Stepper drivers either work, or they don’t. There is not much of an in between.

      With that being said, there are two things I would check:

      1. What is the pulse width being issued at the STEP input? On DRV8825, if the STEP pulse is too short, the step will not be acknowledged. I remember when I built my 3D printer I needed to change my FW so that there was a delay in between the HI and LO transition. Once this simple fix was put in place, then the steppers started working. The problem, however, is that this would be in the FW, not the SW controller. Unless things have changed and this is now a parameter within the Controller SW. I have not done too much 3D printing in the last 2 years, so I wouldn’t know whether I am tripping here or not…

      2. The other thing you can check is your acceleration/deceleration profiles. Steppers do not like to have abrupt changes in speed which is why accel/decel is not a trivial endeavor. I also believe most of these parameters would reside inside the FW, and not the controlling SW, but like I said perhaps this has changed in the past few years. Something to check, that’s for sure!

      Everything else I would check would be to make sure that in fact the stepper drivers are working as expected. It is hard to believe they would be damaged if the system works with a control SW, but hey! Something I have learnt in the past 25 years is not assume anything!

      Good luck on your troubleshooting!

      • matt
        March 21, 2015 at 3:18 pm

        Hi again – thanks for your thoughts and suggestions!

        As a simple next step I was thinking about replacing the one or more of the DRV8825 chips since I happen to have some on hand. Do you think this would be a waste of time since you say they either work or they don’t?

        I’m wondering if the internal microstepping functions of the chips were somehow corrupted by the same event that blew the diode. Maybe the three mode pins are stuck high or low or some combination.

        Maybe the SW that does work uses a simplified microstepping pattern (or maybe no microstepping at all) so the hobbled stepper drivers can work with a more basic instruction signal.

        I’ve noticed that SW that doesn’t work has noticiably smoother motion (when it works) than the SW that does work (which is a simpler, freeware package). Which to me suppports this theory somewhat.

        Obviously, I haven’t thought this through completely to see if it makes sense, but it might be quicker just the swap the chips and see.

        Any thoughts?

        • avayan
          March 21, 2015 at 8:13 pm

          Hi Matt,

          Are you sure the printer is working fine with one of the controller softwares? If it is, then I can’t see how the DRV8825 is bad. Rest assured there is no way to kill the microstepper. What you will kill is any power element within the dual H Bridges. If one of these goes, however, the destruction will be quite substantial. Enough to get the motor motionless. Now, something which could have happened is that one of the H Bridges died and the other one is working. Under some very odd scenarios, the stepper might move. But this will happen with very little torque and chances are you will not think of it as moving. It will also sound awful!

          I will look a little bit more into the Leapfrog Creatr 3D printer and try to get a little bit deeper but at this moment I wouldn’t bother with changing the 25’s. Do you have the means to check winding current? If so, I would try moving the axis one by one and check on the current sine waves. They are either there are they are not. There is really not much of an in between. I also doubt the controller software controls microstepping ratio. This is usually fixed on the design. But maybe they have an on board microcontroller changing this dynamically. This is one of the things I will check. If all the controller board has are 5 DRV8825’s, then chances are the microstepping rate has been fixed in the firmware.

          Is this controller open source? Is there a schematic online for this controller? Can you take a picture for the controller and send it to my email? (jiq AT avayan DOT com). If there are chips on both sides, I would like to see both sides.

          • matt
            March 22, 2015 at 2:52 pm

            Thanks again for your ideas and offer to help figure this out.

            The good news is I stumbled on sort of a workaround, but still don’t really understand it.

            The issue seems to be related to one of the things you suggested to look into (max acceleration settings).

            The Simplify3D software starts each print with a few default lines of Gcode to establish basic movement parameters. One of them is M201 (Set max printing acceleration). It was set at “M201 X1000 Y1000 Z500” So if I just delete this line, everything works!

            Incidentally, the next line is M202 (set max travel acceleration) (set at “M202 X1000 Y1000 Z500”). If I delete this line by itself (leaving the M201 line in) the print proceeds normally but the x-axis does not move at all. I have to disconnect/connect to get it back.

            I can live with this, but I’d rather understand it too. It all started with the unexplained blown diode in the common power path to the stepper drivers on the board. The acceleration settings in the code have not changed (i checked older files).

            The Leapfrog board seems to be a combination of an Arduino mega2560 controller board and a “RAMPS” motor driver board, both open source. I’ll send a pdf with pics of the leapfrog and schematics of the open source boards if you are still curious.

            If you can see a possible explanation of this weird situation, please let me know.

            Thanks again for the help!


  25. April 14, 2015 at 5:26 pm

    it is very impressive that this thread still alive after it first posted 5 years ago.
    I have a design now with DRV8837, it is powered by battery and power consumption is very critical to us.
    we are driving the motor with a PWM.
    our previous design is in slow decay mode, I thought it may save a little power in coast mode, so I tried fast decay. I don’t why the torque is much smaller than brake mode. this is opposite to my design. did I misunderstand it, or I made some mistake in the circuit. I don’t know how to post a picture here.

    • avayan
      April 14, 2015 at 5:56 pm

      Well I am glad this post helps somebody out there in the community! This is just based on gut feeling here, but I think fast decay may give you a slight power savings advantage over slow decay on battery operated applications as during fast decay, the current will flow back to the battery. Not that you will recharge it a lot, but at least it is energy which is not lost in the form of heat. I mean, some of it will be lost in the form of heat as the FETs have a resistance and whatever current flows through them will give an I^2R component, but on slow decay pretty much ALL will be wasted as heat.

      The trade off is that when you use fast decay your average current is less and as a result the torque must also be less. You will also get higher torque ripple (because there is higher current ripple). In my opinion, the power saving advantage (if any) does not outweight the inherent motion quality issue. As a result, I treat any DC motor application as a slow decay mode implementation. Fast decay only makes sense under certain condition with steppers (e.g. microstepping and the need of mixed decay), and even less on some BLDC motor control schemes.

      Feel free to send me a picture, or continue this discussion, at my email jiq AT avayan DOT com.

      Hope the info helps!

  26. Robert Randolph
    May 29, 2015 at 3:52 pm

    Hello! Is it possible to display (on a scope) the current draw without a current probe so you can see the effects of fast/slow/mixed decay easily?

    How would you hook this up? I tried using a shunt resistor but apparently I’m either using an incorrect value or I’m not probing the right places.

    • avayan
      May 29, 2015 at 10:34 pm

      Hi Robert,

      There are some techniques which you can use but none like an actual current probe. For all of them you will need “something”. Here I go in some detail on the techniques I know. There might be others.

      1. Look at the voltage on the SENSE resistor. This is the most horrendous way of doing this (super noisy and hard to picture), but it is also the cheapest as you would be utilizing the already existing SENSE resistor if your motor driver is a current chopper. Do note you won’t see any current during the slow decay portion of the cycle as at that time current is recirculating through the FETs. The only way to see current during the slow decay while looking at the SENSE resistor is if you have a SENSE resistor on a per half H bridge. Also, you could do all sort of techniques such as amplifying this voltage and filtering it. You should be able to reconstruct the current. In fact, the current chopper is “seeing” this current as that is how it regulates it anyway. It is just hard to transfer the information into the scope and making it meaningful to our eyes and brains.

      2. Use a 1 Ohm series resistor with each winding. This is the second cheapest, except that now you will need to use a differential probe to look at this resistor’s voltage. I have never tried this venue as for me it has always been way much more accessible the current probe as opposed to the differential probe. But I have heard of many people employing this technique. The problem is that a differential probe is not that cheap either… Do note the other problem is that adding a 1 ohm resistor is quite the waste of energy when driving a stepper (I^2*R), hence you may want to try 0.01 ohm resistors and some amplification (i.e. you could use a differential amplifier).

      3. Use a current sensor such as a hall effect. There are many current sensor out there. In essence, they are a thick wire passing current very close to a hall effect sensor. To you it looks like a chip. The caveats are that you need to break your connection as the sensor needs to be in series with the winding. Then you can look at the hall sensor output and you will get a pretty good idea of what the current is doing. The other caveats are that you can’t pass an infinitely large current (that would fuse open the fat trace element inside the chip) and the frequency range is way less than that of a current probe (it will filter the signal so high frequency components will not be present). On a current chopper going at 20 KHz PWM switching frequency, you will see the response not as sharp as with the current probe. For the most part these are still quite OK. A friend designed this module. You may want to take a look. Way cheaper than a current probe and I have used it numerous times for a bunch of motor projects:

      4. The other option I can think of would be using a LEM. I have never employed this either and have never even see it in action but have heard stories on how you can pass currents capable of vaporizing us (e.g. systems running in MW!!!). Clearly you need to size it accordingly and at the end you will also need to open up the circuit to insert the LEM. Do note LEM’s are used on systems where you need to SENSE the massive currents on a continuous basis, not necessarily for tinkering with a design, so you will see that LEMs are not cheap. They are meant to be rugged and reliable, so you will need to pay accordingly. They are way cheaper than a current probe, though. BTW, a LEM is quite similar to a current sensor, except they have a hole in their package where you pass the wire through. In some cases, you may need to wrap the wire in a loop or something like that. They also go by the name of current transducer. You may want to check LEM USA. I just did a quick search on Digikey and there is plenty to catch anybody’s attention. Some options are only $20.

      If you have $300, though, I would look at Pete Millett’s current probe. It is ready to go and I know it works nicely. I have been meaning to do a review on it, but have not had a chance. Maybe now I find some time to squeeze this in!

      Wish you look on your current sensing endeavors!

      • Robert Randolph
        May 30, 2015 at 1:44 pm

        Thank you very much for the response, and thank you for replying to the comments on your article. So few people do that these days.

        I will give #1 and #2 a shot, and if all else fails fall back to #3.

        Thank you again.

  27. Sanket
    June 8, 2015 at 5:54 pm

    Hey man, great article! Really enjoyed the pictures too! 🙂

    Is fast and slow decay examples of synchronous rectification which they talk about for switching voltage regulators?

    • avayan
      June 8, 2015 at 8:51 pm

      Hey, thanks for reading!!!

      Fast/Slow and synchronous/asynchronous current recirculation methods are basically modes to reroute current while FET switches are transitioning but pretty much only when dealing with inductive loads. Notice on a resistive load there would be no real current decay concept as current can change abruptly across a resistor. It would not make sense to deal with slow or fast in that case, as for all practical matters, the current decay is immediate! You would not have (or it would not matter) if the system is synchronous or asynchronous. In fact, all you truly need is a single FET and no diode!

      On a switching voltage regulator, the load is not a resistor, though. I mean, it may look like the load is a resistor to the whole voltage regulator, but that is not what the switching element on the switcher sees.

      On a Buck converter, for example, you have an inductor (being driven by 1 FET and a diode or 2 FETs) which is used to regulate voltage. Since there is an inductance being driven with the switches, a current recirculation mode will need to be put in place.

      Do note that switching regulators are kind of different than a current chopper (as employed when driving a stepper) because what you regulate is completely different. On a stepper, you are regulating current, whereas on a voltage regulator, you are regulating voltage. For that reason, the swings are completely different. On a voltage regulator, the output voltage must have the least ripple possible, whereas on a current chopper, the current needs to have the least ripple possible.

      We can also talk about inductor selection which often define the switching frequency. You often want to make a switching regulator as efficient as possible, so a good design will determine the size of the power FET, whether you use a free wheeling diode or an opposing FET and so on.

      Regardless of all of these variables, which are inherent to a switching regulator design, the fact that the FET is driving an inductor remains, and as a result, a current recirculation method must be employed.

      Not to complicate things, but if there is a diode on the low side you end up with asynchronous rectification (also called nonsynchronous) because you are not controlling when the alternate current path becomes enabled. If you have two FETs (high and low side) then you end up with synchronous rectification.

      Do note on a switcher, however, you do not have too much of a fast or a slow decay as you only have the equivalent to a half H Bridge which means you can’t force what we can visualize as a negative current. Negative current (or VM + 2 diode drops with a polarity opposing the existing current) is what makes fast decay faster than slower.

      As a result, then, asynchronous versus synchronous only defines how much power losses you have (e.g. resulting efficiency). Usually you have higher losses on a diode than on a FET, but that of course depends on loading as well.

      And rest assured that talking about mixed decay mode on a regulator would make no sense at all 😉

      Hope the info helps!

  28. Francisco
    September 3, 2015 at 10:07 pm

    Thank you very much!

  29. Matija
    January 26, 2016 at 2:52 am

    Hi Avayan, as asked by Gustavo above… did you perhaps managed to make a post about maths analysis for explaining the fast decay. Would love to read that one too.

    • avayan
      January 27, 2016 at 1:18 pm

      Hi Matija,

      Actually I don’t think I have written that one. May be able to get around to it in the upcoming days. There is really not a lot of math, but there is a lot of complexity due to the motor model. Will need to remove the dust from that portion of my brain 😉

  30. Egon
    May 22, 2017 at 2:40 am

    Hi Avayan,

    …..How slow the decay mode is depends on the motor inductance and the FETs RDSon. The * smaller * the RDSon, the * longer * it will take for the current to decay to zero……
    I agree with the first sentence , but second.

    Are You sure ?

    • avayan
      May 22, 2017 at 8:56 am

      Hi Egon,

      If the entire loop resistance was zero, then the current would be recirculating forever! Of course there is no such thing as a zero resistance path so clearly there will be some in the FETs, the motor winding, the wires, etc. Whatever this resistance is, the current will dissipate down to zero in a time that is inversely proportional to resistance magnitude. The larger the resistance, the more current gets dissipated in the form of heat and the quicker the motor’s inductance current decreases down to zero.

      I think you are parting from the premise that the higher the resistance, the smaller the current for any given voltage. For the most part, this is true. However, with inductive loads, their current can not change abruptly. When the H bridge is disabled, the inductor current will still be there and all we can do is dissipate it through “resistors” until it decays down to zero. So the resistance will still limit the current but now it becomes more of a transient as opposed to the immediate value you get while using the equation I = V/R. Which is because now you need to take into consideration that the inductor voltage is VL = L*di/dt.

      Hope this helps to clarify the phenomenon!

Leave a Reply to Divya Alok Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.