Pololu Robotics & Electronics
My account Comments or questions? About Pololu Contact Ordering information Distributors

Pololu Forum

DRV8825, stepper links, resources?

I have two #1478 Stepper motors, GRBL 0.8 software on an arduino, DRV8825 drivers running now and does anyone have links to understand:

resonance limitations in stepper systems,
limits of accellerations and speed and “loosing steps”,
effects of different voltage and current levels

Basically I’m trying different things and trying to understand why i.e. the motors stop if I command too high a speed, or accelleration, which interacts with step mode (full, half, etc) and voltage and current too it seems. It also seems the GRBL software has some small errors in the regularity of step generation at higher speeds I think which causes the motors to stop or lose steps.

I’d like to find choices to do say, 500-800 rpm, any low accelleration is ok. 200rpm seems easy but it’s limiting for my purposes. At 500-1000 rpm, the motors stop and “sing” a lot. Is this resonance? Or from completely loosing step synchronization? I DO understand there are limitations to what this can do. I’m just trying to understand that better.


Has anyone hacked use the decay mode on the 8825 chip but not available on the breakout board unfortunately?

This discussion:
e2e.ti.com/support/applications/ … 63144.aspx
suggests it’s needed.

They conclude:
In stepper hold mode, use slow decay to help with noise.

When accelerating/decelerating and at slow speeds, use fast decay to ensure the expected current waveform is tracked.

Slow decay benefits: Reduced noise, less ripple in current waveform resulting in slightly higher RMS currents (and thus torque) compared to fast decay.

Slow decay drawbacks: Increased thermal load on driver, can run into issues following target indexer waveforms based on certain L/R combinations, which means stepper position can momentarily lost and/or steps lost. In the case above, microsteps became erratic and uneven.

Fast decay benefits: More precise positioning, especially at slower speeds, since stepper can be made to precisely conform to stepper index table, more forgiving thermal design. In my particular case in some quick trials with heat gun, I’d guess I have 15 to 20 degree more ambient margin in fast versus slow. Slow decay at room temp with no motion faults every 10 to 15 seconds. Fast decay at 35’C with no motion never faults.

Fast decay drawbacks: Higher ripple currents can lead to unwanted noise, slightly reduced overall torque due to reduced RMS currents.

Hello, Allan.

I do not have any specific resources to link to, but I expect there are plenty out there if you search around. I would also be happy to try to answer what questions of yours I can.

The reason the motor stops suddenly is that is the point where the rotor simply cannot keep up with the rotating magnetic field (the field has moved on to the next step before the rotor has completed the previous one, which breaks the proper stepping sequence of the motor). The sound you are hearing is the rotor vibrating slightly at the stepping frequency.

Several things affect the maximum achievable top speed of a stepper motor:

  1. Supply voltage/coil inductance. Every time you take a new full step, the current direction in one coil needs to reverse direction, but the coil Inductance opposes the change in current and delays the process. For stepper motors with high inductance, as the step rate goes up, the average current through the coil per step goes down, and the stepper motor torque goes down with it. At some point, the torque will get too low to move the rotor and its load fast enough to keep up with the step rate, and the motor will stop. The way to overcome this is to use a higher motor supply voltage, since a higher voltage can force the current through the inductor to change more quickly, allowing for higher average torque at high step rates. If your mainly concerned with speed over torque, a key consideration should be picking a stepper motor with a low inductance.

  2. Acceleration/rotor inertia. If you want to maximize your rotation speed, you need to gradually ramp up the step rate, possibly over a few seconds. Higher inertia requires more gradual acceleration and deceleration, but it can also allow for higher maximum top speeds since it helps smooth out the movement of the rotor.

  3. Load. As your step rate goes up and your pull-out torque goes down, at some point the stepper motor torque will drop below the torque you need to move your load and the motor will stop moving. Torque is proportional to current, so to maximize your torque, you should be trying to get the as much current through the stepper motor coils as they are rated for. That is not going to be possible with the stepper motor and stepper motor driver you are currently using. I suspect this is the biggest impediment right now to your achieving higher step rates with your specific system.

I have heard of a few people modifying the driver carrier to change the decay mode. Here is one example:


- Ben

One odd thing I’ve never figured out:

Very often when applying the motor voltage (through a lab supply), the initial current is very high and at the limit of 1 amp/8v (voltage reduced in CC mode). The slightest move of the current sense pot reduces it (to 30v, .4 amp) and adjusts normally. It’s like the wiper is open until I “touch it” by moving a little. Or the chip needs a reset? It comes up in current shutdown?

Are you still using our #1478 stepper motor? What is the current limit of your DRV8825 set to? When your supply is outputting 0.4A are you commanding the motor to step? Do you have any big capacitors connected across Vin and GND near the board? Could you post pictures and a wiring diagram of your setup? If you have access to an oscilloscope, could you also post a screen capture of what the supply voltage does?