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.