A4988 ... fried!

Dear ones
I just did my first attempt with the A4988 and a stepper motor and the result is that the driver has been fried. What did I do wrong? The motor itself is a bipolar stepper with 7Ohm per coil and nominal voltage of 42V. I have an Arduino UNO and my wiring was as follows:

  • Arduino connected to PC through USB port
  • Arduino’s GND and 5V connected to GND and VDD respectively on the driver
  • Arduino’s pins 8 and 9 connected to DIR and STEP respectively on the driver
  • Driver’s SLEEP and RESET connected to each other
  • Motor wires connected to 1B 1A 2A 2B (it’s a strip and I attached them in the order they come out of the motor - I didn’t do any check on that)
  • Drivers GND and VMOT connected to 12V DC

I just now checked the wiring again and it seems I may have inverted by mistake the GND and VMOT… could that be the cause of the frying?

Alternatively the motor wiring?

Thank you!

Ah - I don’t think is relevant but to drive the motor I used a simple sketch I found elsewhere on the forum:

// testing a stepper motor with a Pololu A4988 driver board
// on an Uno the onboard led will flash with each step
// as posted on Arduino Forum at http://forum.arduino.cc/index.php?topic=208905.0

byte directionPin = 9;
byte stepPin = 8;
int numberOfSteps = 50;
byte ledPin = 13;
int pulseWidthMicros = 50;  // microseconds
int millisbetweenSteps = 50; // milliseconds

void setup() 
{ 

 Serial.begin(9600);
 Serial.println("Starting StepperTest");
 digitalWrite(ledPin, LOW);
 
 delay(2000);

 pinMode(directionPin, OUTPUT);
 pinMode(stepPin, OUTPUT);
 pinMode(ledPin, OUTPUT);
 

 digitalWrite(directionPin, HIGH);
 for(int n = 0; n < numberOfSteps; n++) {
   digitalWrite(stepPin, HIGH);
   delayMicroseconds(pulseWidthMicros);
   digitalWrite(stepPin, LOW);
   
   delay(millisbetweenSteps);
   
   digitalWrite(ledPin, !digitalRead(ledPin));
 }
 
 delay(3000);
 

 digitalWrite(directionPin, LOW);
 for(int n = 0; n < numberOfSteps; n++) {
   digitalWrite(stepPin, HIGH);
   delayMicroseconds(pulseWidthMicros);
   digitalWrite(stepPin, LOW);
   
   delay(millisbetweenSteps);
   
   digitalWrite(ledPin, !digitalRead(ledPin));
 }
 
}

void loop() 
{ 

}

it seems I may have inverted by mistake the GND and VMOT... could that be the cause of the frying?

Yes, if the board does not have reverse polarity protection.

You can also destroy motor drivers by disconnecting the motor leads while the power is on.

42/7 = 6 . Even if you wouldn't reverse polarity , 6A kills an A4988 chip that's designed for absolute maximum 2A , no matter what cooling system you use (unless it's like liquid nitrogen)

cicciosalsiccia: The motor itself is a bipolar stepper with 7Ohm per coil and nominal voltage of 42V.

I suspect you meant to say 4.2v (assuming you mean 7 ohms) Post a link to the datasheet for the motor.

Textual wiring descriptions are notoriously easy to be misunderstood. Make a pencil drawing and post a photo of it. There is a good wiring diagram on the Pololu A4988 web page.

...R

  • Motor wires connected to 1B 1A 2A 2B (it's a strip and I attached them in the order they come out of the motor - I didn't do any check on that)

You need to get this right. Take a multimeter to the motor and identify the two windings, call one "A" and the other "B" and connect correctly.

I just now checked the wiring again and it seems I may have inverted by mistake the GND and VMOT... could that be the cause of the frying?

Nature will always judge harshly those who fail to double-check connections before powering up... Reverse polarity will cause total destruction.

Hi.

Usually epson motor have a code number like EM-XXX. Could you read it from your stepper ?

Hi

Another tip for this motor:

As I say early epson motor used to be marked as EM-XXX

EM-25X are rated: ( ex: EM-257/EM-258 )

Nominal Voltage 7 Current 0.7 Resistance (Ohms) 10 ( as OP described on a previous topic: http://forum.arduino.cc/index.php?topic=313992.0 )

Are we talking about same stepper motor controlled by a LB1946 with 1.75 amp max output, or this one used with popolus is another one ?

Arman5592: 42/7 = 6 . Even if you wouldn't reverse polarity , 6A kills an A4988 chip that's designed for absolute maximum 2A , no matter what cooling system you use (unless it's like liquid nitrogen)

The A4988 has overtemperature shutdown circuitry.

Arman5592: 42/7 = 6 . Even if you wouldn't reverse polarity , 6A kills an A4988 chip that's designed for absolute maximum 2A , no matter what cooling system you use (unless it's like liquid nitrogen)

You don't understand low impedance stepper motors - the voltage rating is meaningless and should be ignored. These motors are current driven and the drive current and winding resistance/inductance are key parameters.