DRV8825 smoke & death

Hi all,

I recently setup an Arduino Uno with GRBL shield and 4 DRV8825 drivers. The core code I used to control the shield was quite simple:

for (int i = 0; i < steps; i++) {
digitalWrite(stepperPin, HIGH);
delayMicroseconds(stepDelay);
digitalWrite(stepperPin, LOW);
delayMicroseconds(stepDelay);
}

When the defect happened, stepDelay was set to 100 Microseconds, a NEMA 17 stepper was attached, 1.8 degrees step angle, microstepping jumpers set to 32, so the steps variable was set to 200 * 32 to let the stepper motor make a whole turn forth and back.

The uno board was powered by USB, the driver shield was attached to a laptop switching power supply rated 18V. The motor worked well, and I let the stepper move back and forth a while.

All the sudden the stepper stopped for no apparent reason. While I was thinking what could have happened, approx 5-10 secs after the stepper stopped, a cloud of smoke emerged from the driver board.

I found no cabeling errors, no shorts, I found no reason for the defect, and the setup had worked for hours, with the stepper revolving nice and smooth. Further investigation revealed, that the uno board is dead. I suspect that the DRV8825 is dead too, but I need a working Arduino board to check.

So I have ordered an ATMEGA328P to revive the board. Strangely, the chip on the board is labelled ATMEGA328P-U, which doesn’t exist in the Atmel docs. Internet sources suspect, it might be a chinese ATMEGA328P-PU clone of dubious quality. So I ordered ATMEGA328P-PU chips.

While I wait for the chips, I still wonder what happened, I suspect the component having died first could have been the processor. If the processor, for some reason, locks up and the stepperPin might be stuck high, could this fry the driver? I found no schematics of the inner circuit ot the DRV8825 boards, I suspect it may be a series of H-bridges or alike.

Any thoughts on this welcome,

Thnx, Armin.

Please post a link to the stepper motor data sheet or product page.

To what value did you set the current limit on the DRV8825?

Hi Jim,

thanks for your response.

The steppers are Longruner 17HD48002H. The current pots are all on default, I didn’t change the default setting, but didn’t do a check also, so I actually have no idea what the actual setting is. During the test, which lasted several hours, I did regularly touch motor and driver heatsink, and noted no significant temperature, they both were lukewarm.

From what I can tell without a working board, the stepper is OK, it’s not jammed, both coils read a resistance of 2.6 ohms, and infinite between coils, and all measurements are the same as those of the other two steppers.

Any more info you need? Do you have a theory what could have happened?

Armin.

You MUST set the current limit correctly, to less than 1.5A/winding, or the drivers will not work correctly and may even self destruct.

Pololu has a nice video showing you how to do it. Of course, if you did not buy your DRV8825 drivers from Pololu, the video may not have the correct information.

Hi Jim,

I’ll do so as soon as I have the defective hardware replaced. I bought the drivers from you, but - my fault - didn’t read through all available docs before plugging the whole thing together and give it a quick try. Since the stepper worked smoopthly right away I didn’t think that anything could possibly go wrong.

What interests me (cannot check, still no working arduino available) … can - as I suspected - a hung processor indeed lead to a fried driver, or do I have to search a different reason for why the driver died?

Armin.

Not likely. Failure to read the driver documentation and follow directions can do so, but the very quickest path to driver destruction would be intermittent connections to the motor, or changing wiring while powered up.

I’m not associated with Pololu, just a long time customer.