Thanks for posting about that. The short answer is that the DRV8825 has some issues controlling current with stepper motors that have high current, low inductance, and low resistance coils at low speeds. That article is a good listing of experimental results, but it doesn’t really explore the reason for the problem and motors with similar specifications seem to be somewhat common, so I’m going to use your post as a prompt to write a fairly detailed explanation of what we think is going on in that setup.
The stepper motor the author is using is a Wantai 42BYGHW609, the electrical specifications of which are below.
Our carrier board for the DRV8825 leaves pin 19 on the IC floating, which puts the driver in what the datasheet refers to as “mixed decay” mode for controlling current with the PWM cycle. Section 8.3.3 of that datasheet has a fairly detailed description of what this means for the H-bridge switching, but to summarize in the context of the problem, the H-bridge switches in a drive/recirculate cycle for microsteps where the magnitude of the current should increase from the previous microstep and in a more complicated drive/reverse/recirculate cycle if the current is decreasing.
There is a fixed “blanking time” (which is 3.75us) where the H-bridge is in the drive position for every PWM cycle before it gets feedback from the current sensing resistor to determine if it needs to switch the H-bridge and in some systems, the current can overshoot the target current for the microstep position when the PWM cycle is switching in a drive/recirculate cycle. And the current overshoot causes a distortion in the motion of the stepper motor.
Of course all of this depends on the configuration of the system. Lowering the supply voltage, increasing the step rate, increasing the coil voltage, or increasing the coil inductance all can help solve the problem if it appears. It seems like most of the cases we hear about are with NEMA 17 motors with a rated coil voltage below about 3V and an inductance below about 10mH (and of course those two variables are generally correlated in commonly available NEMA 17 motors). We commonly point people who have a system in which they are experiencing the issue to this blog post, which explores the options of changing the decay mode and adding a set of diodes in series with the coils (which lower the effective supply voltage and increase the decay rate when the H-bridge is recirculating, I think). It is now easy to find “TL smoother” boards (which just add diodes in series with the coils) that are marketed to the users of 3d printers.
This spreadsheet stepper simulation tool also seems to be a useful resource for designing a stepper motor system.
The TB67S249FTG stepper driver (which we recently released a carrier board for) also seems like a good alternative to the DRV8825 to drive low voltage, high current NEMA17 motors at low speeds with 1/32 microstepping. The Toshiba driver uses a more sophisticated decay mode / current control algorihm they call Advanced Dynamic Mixed Decay (ADMD):