Stepper Driver Losing Power in the Middle of Use

Hi,

I am using an UNO R3 to run a TB6600 stepper driver. I have my program setup to run a nema 23 stepper motor which turns a ball screw.

The program runs the motor in one direction quickly, then slows down running a little further then finally reverses and goes back to where it started.

The problem is that the TB6600 is losing power mid way through the reverse portion. It just stops and the power light goes off. I have to disconnect the power for ~10 seconds and then it works fine again for a while.

My total run time is 5-6 minutes. It has a large heat Sink and does not feel hot. Is there a duty cycle that I am exceeding? Did I just get a faulty part? Am I somehow exceeding its capabilities? If so, is there a slightly better driver I can look into?

Any guidance would be appreciated.

We need facts ...

  • Post a link to the datasheet for your stepper motor
  • Post a link to the datasheet for the stepper driver
  • Tell us what stepper motor power supply you are using (volts and amps)
  • Post your program

It sounds as if the driver is being overloaded and is shutting down to protect itself

...R Stepper Motor Basics Simple Stepper Code

I do not have the data sheets. Here are the Stepper Motor specs from Amazon:

Manufacturer Part Number: 23HS45-4204S 57x100 Step Angle: 1.8° Holding Torque: 3.0Nm(425oz.in) Rated Current/phase: 4.2A Phase Resistance: 0.9ohms Recommended Voltage: 24-48V Inductance: 3.8mH±20%(1KHz) Weight: 1.8kg Lead Length: 30cm

Here are the specs for the driver:

single chip bipolar sine microstep stepper motor driver the new BiCD 0.13 nm process up to 42V resistance (a +) = 0.4 ?the forward and reverse rotation control 5 subdivision mode options (1/1, 1/2, 1/4, 1/8, 1/16,1/32) output current: IOUT = 4.0A (peak, in 100ms) rated output: IOUT = 3.5 A package: HZIP25 - 1.00F input port internal pull-down resistor: 100 K alarm output pin current:Ialert = 1mA monitoring output pin (MO): Imo= 1mA with reset and enable pin with standby function Break through the traditional, single power supply built in overheating protection (TSD) circuit Undervoltage protection, built-in (UVLO) circuit built-in overcurrent detection (ISD), circuit

I have tried a 12V 5A power supply and a 24v 5A power supply. The results are the same.

Here is my program

void setup()
{
  pinMode(8, OUTPUT);       // FORWARD(LEFT) = LOW; REVERSE(RIGHT) = HIGH
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  digitalWrite(10, HIGH);
  pinMode(2, INPUT_PULLUP); // BUTTON2 - 5GAL HEAD
  pinMode(3, INPUT_PULLUP); // BUTTON3 - 15GAL HEAD
  pinMode(4, INPUT_PULLUP); // BUTTON4 - LEFT JOG
  pinMode(5, INPUT_PULLUP); // BUTTON5 - RIGHT JOG
}

 void loop()
{
   //__________________________________________________________________________________
   if (digitalRead(2) == LOW)// Button 2 PRESSED - 5GAL
  {
    digitalWrite(8, LOW);                       // TURN COUNTERCLOCKWISE - CUTTING
    for (int loop=0; loop<4500; loop++)         // FAST MOVEMENT - 
    { 
      digitalWrite(9, HIGH);
      delay(1);                                
      digitalWrite(9, LOW);
      delay(1);                                 
    }
    for (int loop=0; loop<1125; loop++)         // SLOW CUTTING - SET NUMBER OF LOOPS (1000 = ~1")
    { 
      digitalWrite(9, HIGH);
      delay(400);                               
      digitalWrite(9, LOW);
      delay(1);                                 
    }
    delay(10000);                                // PAUSE TO FINALLIZE CUT
    digitalWrite(8, HIGH);                       // TURN CLOCKWISE - RETREATING
    for (int loop=0; loop<5625; loop++)          // BACKING UP - SET NUMBER OF LOOPS (1000 = ~1")
    { 
      digitalWrite(9, HIGH);
      delay(1);                                 
      digitalWrite(9, LOW);
      delay(1);                                 
    }
  }
  //__________________________________________________________________________________
  
  if (digitalRead(3) == LOW)// Button 3 PRESSED - 15GAL
  {
    digitalWrite(8, LOW);                       // TURN COUNTERCLOCKWISE - CUTTING
    for (int loop=0; loop<3200; loop++)         // FAST MOVEMENT - 
    { 
      digitalWrite(9, HIGH);
      delay(1);                                
      digitalWrite(9, LOW);
      delay(1);                                 
    }
    for (int loop=0; loop<1125; loop++)         // SLOW CUTTING - SET NUMBER OF LOOPS (1000 = ~1")
    { 
      digitalWrite(9, HIGH);
      delay(400);                               
      digitalWrite(9, LOW);
      delay(1);                                 
    }
    delay(10000);                                // PAUSE TO FINALLIZE CUT
    digitalWrite(8, HIGH);                       // TURN CLOCKWISE - RETREATING
    for (int loop=0; loop<4325; loop++)          // BACKING UP - SET NUMBER OF LOOPS (1000 = ~1")
    { 
      digitalWrite(9, HIGH);
      delay(1);                                 
      digitalWrite(9, LOW);
      delay(1);                                  
    }
  }
   //__________________________________________________________________________________
  if (digitalRead(4) == LOW)   // BUTTON 4 PRESSED - COUNTER-CLOCKWISE - LEFT ONCE
  {
    digitalWrite(8, LOW);                        // FORWARD - CUTTING
    digitalWrite(9, HIGH);
    delay(5);                                   
    digitalWrite(9, LOW);
    delay(1);                                   
  }
   //__________________________________________________________________________________
  if (digitalRead(5) == LOW)  // BUTTON 5 PRESSED - CLOCKWISE - RIGHT ONCE
  {
    digitalWrite(8, HIGH);                       // REVERSE - RETREATING
    digitalWrite(9, HIGH);
    delay(5);                                   
    digitalWrite(9, LOW);
    delay(1);                                  
  }
   //__________________________________________________________________________________
}

The shutting down to protect itself makes sense. I was looking at a DQ542MA with the following specs:

Input Voltage: 18-50 VDC
Input Current: < 4A
Output Current: 1.0A~4.2A
Consumption: 80W; Internal Insurance: 6A
Working Temperature: -10℃~45℃
Stocking Temperature: -40℃~70℃
Humidity: Not condensation, no water droplets
Gas: Prohibition of combustible gases and conductive dust
Weight: 200G

Would this handle it better?

Your motor appears to require 4.2 amps and your motor driver can only supply 3.5 amps continuously. I am not surprised that it shuts down.

I reckon you need a stepper driver that can provide at least 5 amps continuously, and 6 amps would give a bigger margin of safety.

...R

Okay. That makes sense. I have a smaller motor that I can use. I believe it is a 2.8-3.0a motor. Should my driver be able to handle it okay

ZZRAYZ: I have a smaller motor that I can use. I believe it is a 2.8-3.0a motor. Should my driver be able to handle it okay

Do you really need to ask?

...R

I know that 3.0a is less than 3.5a but you suggested 6a for my 4.2a motor. I was asking about the 'margin of safety' you mentioned.

ZZRAYZ: I know that 3.0a is less than 3.5a but you suggested 6a for my 4.2a motor. I was asking about the 'margin of safety' you mentioned.

More margin is better. But it seems you already have the motor and the driver so why not try them?

...R

So I finally had time to test. I switched to the smaller motor and it ran further through the program. It was just about complete and then the same thing happened, the driver power light went out and it stopped.

I switched to my 24v 5a power supply and it started running fine but stopped earlier than with the big motor or the small motor when hey had the 12v 5a supply.

It seems very reasonable that the driver is shutting itself down to protect itself but I do not understand what the issue is. If the motor is not pulling too much and the power supply is supplying enough, what else should I check?

ZZRAYZ: It seems very reasonable that the driver is shutting itself down to protect itself but I do not understand what the issue is. If the motor is not pulling too much and the power supply is supplying enough, what else should I check?

Try setting the current limit to a lower value - comfortably below the driver's upper limit. That will reduce the motor torque - but it may help to isolate the problem.

If there is still a problem I would suspect a faulty stepper driver.

...R

I set it down to 2.8 and it still failed. So I ordered a new driver. Hopefully a faulty driver was the problem

Thank you for your help with diagnosing this.

I will be interested to hear more when you get the new driver.

...R

So I ordered a Leadshine DM542T stepper driver (4.2a) and it arrived today. It requires 20-50v so I hooked up my 24v 5a power supply and my smaller stepper motor(3a). I tested it on my table. It doesn't have the ball screw attached but it did work correctly. It ran all the way through the program without powering off and it was still on and ready to receive button presses after.

While I haven't had a chance to test installed in its final application, it is working hooked up on my table which is something my other setup would not do. I guess I just got a junk driver or it was no where near as powerful as it claimed to be.

Thank you for your help with solving this

Thanks for the update.

...R

Hi. Have you check the current output for the driver?

I have same problem last week with TB6600 losing power mid way through the rotation.

it turned out that this was due to an excess of electric current.

nielyay: it turned out that this was due to an excess of electric current.

Where and how did you measure this excess?

And if you fixed your own problem how did you do that?

...R