DRV8825 Motor Driver not stepping Motor

Hi, I am currently trying to create a closed loop system with 4 NEMA17-13-04PD-AMT112S Stepper Motors and an Arduino. To drive the motors I am using 4 DRV8825 Motor Drivers. In my test setup on a breadboard and a single motor I was able to get everything working perfectly, so moved to the full version. However, currently I cannot get any of the motors to turn. Working from ground up I am trying to get at least one of them turning first using a simple script before adding any further complications that might have caused it not to step.
My power supply is set to 24V, 5A limit.
VRef on the motor drivers is set to 0.67V, which I believe should limit current to ~1.3A, the rating for the stepper motors.
My setup is shown below.


And the code I am using is this:

#include <AccelStepper.h>
const int dirPin = 2;
const int stepPin = 3;
const int stepperSpeed = 1000;
AccelStepper stepper = AccelStepper(AccelStepper::DRIVER, stepPin, dirPin);


void setup() {
  pinMode(dirPin, OUTPUT);
  pinMode(stepPin, OUTPUT);
  stepper.setSpeed(stepperSpeed);
  Serial.begin(115200);
}

void loop() {
  stepper.runSpeed();
}

When running the code, the motor gives a high frequency whine and slowly heats up. The shaft can no longer be turned by hand, though it doesn’t vibrate.

Any help would be appreciated and can give any further details needed.
Ben

Hello.

Thank you for posting your pictures and code. Yes, a VREF setting of 0.67V on the DRV8825 carrier should give you a current limit of about 1.3A, so if that is what your motor is rated for, it should be okay. From the behavior you described, it sounds like the motor is energizing as expected (it is normal for it to heat up and resist motion like that), but it is not responding to your control signals. I cannot see all of your connections in the picture you posted, but you might double check that your control board shares a ground with the driver. It is hard to tell from the angle of your picture, but some of your solder joints look like they could benefit from more solder. You might try doing some continuity tests to verify the connections (especially the STEP and GND pins).

If the continuity seems okay, you could try loading the simple test sketch in this blog post, which will help rule out any problems with your current code/library. I am not very familiar with the AccelStepper library, but it looks like you are setting the speed to 1000 pulses per second; depending on your motor, this might be too fast. Also, from the setSpeed() documentation in the AccelStepper library, it sounds like 1000 is right at the limit where it can become unreliable.

Brandon

Thanks for that. I did find that pin 3 on the Arduino doesn’t seem to output anything no matter what I do. Running the test script meant that I had continuous one way rotation until I changed pins. The AccelStepper code also seems to not be working still with the changed pins so that is something I will have to fix on my end.

Thank you so much for the help,
Ben

1 Like