Underpowered NEMA 17s (I think)

Hi - I'm designing a machine that uses a Mega 2560, Nextion 3.2" TFT, 2 x NEMA 17, 2 x A4988 drivers, and a 12v power supply (putting out 15v).

I will post the products of importance here:

Drivers

NEMA 17s

12v Power Supply


Anyway, the problem is that once I hooked a NEMA 17 up to it to run some tests (a single complete rotation in the loop, back and forth) and it seems to only generate enough torque to make a turn every 5 or 6 attempts. It pretty much just sits there vibrating.

I turned the trimpot up on the power supply and got it to 15v, it seems to make more of an effort, but still not even close to being useable.

If you look at the power supply, it seems to fall within the requirements of the NEMAs...so I'm not really sure why this is happening. My best guess, regardless, is that the power supply is the issue.

I'm a little new to working with stepper motors apart from putting together a CNC machine.

Could anyone help me narrow down the issue? I'd like these drivers/motors to have the maximum amount of power available so I can get the RPMs around 1000. Right now I'm performing 0 RPMs, so anything will help!

If it is the power supply, I'd be very grateful if someone could point me in the direction of a specific model on Amazon that would provide enough power for this. Thanks!

PS: I'm using this tutorial's code, no libraries or anything.

Questions:
Are you trying to step too fast ?
Is the power supply up to the demand from the motors ?
Is the load too great for the motors ?

lastchancename:
Questions:
Are you trying to step too fast ?
Is the power supply up to the demand from the motors ?
Is the load too great for the motors ?

Hi - I am just doing 200 pulses on full step to bring it around:

void motor1() {
  digitalWrite(dirPin,HIGH);
  for(int x = 0; x < 200; x++) {
    digitalWrite(stepPin,HIGH); 
    delayMicroseconds(500); 
    digitalWrite(stepPin,LOW); 
    delayMicroseconds(500); 
  }
  delay(1000);
  
  digitalWrite(dirPin,LOW);
  for(int x = 0; x < 400; x++) {
    digitalWrite(stepPin,HIGH);
    delayMicroseconds(500);
    digitalWrite(stepPin,LOW);
    delayMicroseconds(500);
  }
  delay(1000);
}

I seem to have corrected the issue by turning down the trimpot on the driver, which I wasn't expecting. The default settings seems to be too high for it...

Anyway, now I have to learn how to make it go faster...I hope all these parts I have is the right stuff. I am really new with motors.

lastchancename:
Questions:
Are you trying to step too fast ?
Is the power supply up to the demand from the motors ?
Is the load too great for the motors ?

I have another question actually - I removed the second half of that motor1 code so the motor would just spin in one direction, but it is still just turning whichever way it wants, randomly alternating between CW and CCW.

A bare A4988 can only handle about 1 Amp per phase and I doubt those little stick-on heat sinks are enough for 2 Amps, did you set the current limit pot on the drive correctly? Try a much lower speed to start and increase gradually.

void motor1() {
  digitalWrite(dirPin,HIGH);
  for(int x = 0; x < 200; x++) {
    digitalWrite(stepPin,HIGH);
    delayMicroseconds(20);       // pulse width 20 uS
    digitalWrite(stepPin,LOW);
    delayMicroseconds(10000); // step interval 10000 uS, 100 steps / sec.,
                                    // decrease to speed up
  }
  delay(1000);
 
  digitalWrite(dirPin,LOW);
  for(int x = 0; x < 400; x++) {
    digitalWrite(stepPin,HIGH);
    delayMicroseconds(20);
    digitalWrite(stepPin,LOW);
    delayMicroseconds(10000);
  }
  delay(1000);
}

jtbennett:

Anyway, the problem is that once I hooked a NEMA 17 up to it to run some tests (a single complete rotation in the loop, back and forth) and it seems to only generate enough torque to make a turn every 5 or 6 attempts. It pretty much just sits there vibrating.

Did you adjust the drivers in the correct manner beforehand?

Those are 2 amp motors and I reckon you need a driver that can handle at least 3 amps to drive them so you have a little headroom. It is never a good idea to run electronic components at their limit.

Unfortunately (AFAIK) there are no 3 amp drivers that will fit your CNC shield.

Also, the code in Reply #2 is trying to do 1000 steps per second. It is unlikely that the motors can jump from zero directly to that speed - acceleration will be needed.

Try a very much lower step rate to start with - perhaps 5 steps per second.

...R
Stepper Motor Basics
Simple Stepper Code

JCA79B:
A bare A4988 can only handle about 1 Amp per phase and I doubt those little stick-on heat sinks are enough for 2 Amps, did you set the current limit pot on the drive correctly? Try a much lower speed to start and increase gradually.

I tried your code out and it didn't really start moving until I brought the speed up a decimal place, but it pretty much just put me back at the same place as before. You and someone else both pointed to the driver being insufficient, so I suppose I'm going to look around for those.

Robin2:
Those are 2 amp motors and I reckon you need a driver that can handle at least 3 amps to drive them so you have a little headroom. It is never a good idea to run electronic components at their limit.

Do these drivers look like a better choice? It says they handle up to 3A. Or should I be looking at those ones in little box housings?

jtbennett:
Do these drivers look like a better choice? It says they handle up to 3A.

Very definitely NO.

The L298 is a DC motor driver and it is old technology even for that.

They cannot handle 3 amps for a stepper motor and they don't have the capability to limit the current to protect the stepper motor.

You need to get a specialised stepper motor driver.

...R

Robin2:
Very definitely NO.

The L298 is a DC motor driver and it is old technology even for that.

They cannot handle 3 amps for a stepper motor and they don't have the capability to limit the current to protect the stepper motor.

You need to get a specialised stepper motor driver.

...R

If you were to post an amazon link to what I need, I will buy it immediately :slight_smile:

The seller of the motors said it would work with the DRV8825s, but I'm just assuming he doesn't know what he's selling at this point because it's rated at 1.5a (and says it can handle 2.2a with additional cooling, which I'm trying to avoid).

Am I just being silly with these 2A motors? Should I get a different set to pair with the drivers I already have? It'd be easier to get drivers I suppose, but depending on the price, maybe motors would be cheaper.

How about these TB6600 devices here ?

jtbennett:
Am I just being silly with these 2A motors? Should I get a different set to pair with the drivers I already have? It'd be easier to get drivers I suppose, but depending on the price, maybe motors would be cheaper.

That may be an option if you can find motors that require no more than 1.5 amps and which give you enough torque for your project. There is a rough-and-ready means of measuring torque in the link I gave you.

Another option is to change to DRV8825 drivers (which also fit the shield) as they can handle a bit more current - about 1.7 amps. That might give you a wider range of motors.

How about these TB6600 devices here ?

Yes, that is the sort of thing I have in mind.

...R

Robin2:
Yes, that is the sort of thing I have in mind.

OK perfect, because I got impatient and ordered them already. I'll read the guides you sent so I don't have to keep annoying everyone here too, thank you.