I am having trouble running the X-Carve with the Leadshine MX3660 stepper driver offered by Inventables. I’ve reduced my system to the minimum three components: Arduino Uno controller, MX3660 driver, Nema 17 stepper motor. The Arduino has simple code that sends direction and step signals to the MX3660, but the stepper doesn’t step. The stepper is energized and is very difficult to rotate by hand. If I hold the stepper I can feel it twitching when the step commands are sent, but there is no rotation. Can anyone find what is wrong in my setup?
Arduino:
The code is stripped down to basics. It sends direction and step signals to the driver in a loop. I scoped the signal from the Arduino and it is correct. I have varied the step width and low level width (interval between step signals) significantly, but nothing works. If the low level width is very large (10000 uS) the motor whines but doesn’t move.
int stepWidth = 10; // microseconds
int lowLevelWidth = 100; // microseconds
// send direction signal
// data sheet says 5uS minimum delay before step signal
digitalWrite(directionPin, LOW);
delayMicroseconds(10);
// send step signals
// data sheet says 2.5uS minimum signal width
// data sheed doesn’t list minimum low level width
for (int i = 0, i < 200; i++) {
digitalWrite(xStepperPin, HIGH);
delayMicroseconds(stepWidth);
digitalWrite(xStepperPin, LOW);
delayMicroseconds(lowLevelWidth);
}
delay(1000);
DB 25 Cable:
The MX3660 receives input through a DP 25 cable. I have the step signal in pin 2 and the direction signal in pin 3, per diagram on page 13 of the manual
MX3660:
There are a few settings on the driver: a charge pump (watchdog timer) called Pulse Switch, a Smoother Switch, output current, and microstep resolution.
The Pulse Switch is set to ON, which means (confusingly) that the charge pump is off. I’ve tried it both on and off. When set ON the motors twitch. I am not sending a watchdog signal.
The Smoother Switch has been tried on and off, no difference. The signal to the controller is pretty sharp so I don’t think this is necessary.
Output current is set ON ON ON, for 1.45A peak/1.04 RMS. I’ve tried it at 2.08A peak/1.48 RMS.
Microstep is set at ON ON ON, for full steps. I’ve tried 1/8 step also.
The Arduino has it’s own 12VDC power supply. The MX3660 is powered by a 30V 10A variable voltage power supply set at 24VDC. It shows only .1A being drawn.