Proper Way to run 3-Wire Stepper Motor? (Nema 24, A4988, Teensy 4.0)

I'm attempting to run an old Nema 24 stepper motor on a Teensy 4.0 via the A4988 stepper driver chip.

I've been trying it for a while now, and each time I achieved slightly different results.

FIrstly, it is my understanding in a 3-write stepper motor, the two ground planes are often combined together into a "common ground".

First time I tried to do this, I managed to get the motors spinning by combining the two B pins on the A4988, and supplying a 12V input from my power supply. The movements were a bit erratic, and the motors weren't as strong (I could move & stop the motor with my hands).

The second time I tried, the motors weren't able to spin at all, no matter what combination of wiring I tried on my A4988 motor driver. My power supply displayed that no current was being drawn, with a source of 12V. I also tried increasing the power within the limits of the A4988, with the same results.

I'm starting to think at this point that this motor may require a specific motor driver in order for it to run. If so, what would be a standard motor driver for a 3-write stepper motor?

Thanks for reading my post, any guidance is appreciated.

I have no idea what this means:

FIrstly, it is my understanding in a 3-write stepper motor, the two ground planes are often combined together into a "common ground".

Do you in fact have a six wire motor? Please post a photo of the stepper motor, clearly showing all the wires. Also, measure and report the resistances between each wire pair.

Check the name plate for a model number and report that (hint: an internet search for the model number may even produce the data sheet, along with recommended wiring diagrams).

I've got a no wire stepper and I don't manage to make it run.... All cables torn off next to the motor body...

Come on my friend! The most wanted is the datasheet of that motor. The colour of it doesn't matter but some traceable information, please.

If you really do have a 3-wire stepper, and the resistances are the same between each of the three wire pairs, then you probably have a three phase stepper, like this one.

You will need a custom stepper driver for that. Three half bridges will work, if properly sequenced.

Thanks for your reply;

From what I understand, it's a Nema 24 motor, with 3 wires.
The motor is mounted inside a rotational platform, so I can't really take it out & get a good picture, I'll try my best.

Here's an image of the serial number on the motor:

The cable has 3 wires, a Red, White and Green. Here's an image:

I measured the continuity between each one of the 3 wires, and I got a reading of ~5.6 Ohms for each wire combination.

When I originally started working with this motor, I tried searching up the model number (24HC2307), especially on the Moons Stepping website, but I was not able to find it, or to find a datasheet for it... It appears to be an obscure version of it.

From what you guys posted, this could definitely be a 3-phase stepper motor. I never worked with one before, so I'm not familliar with any of the drivers used for those. Would you guys have any reccomendations for which drivers would be good?

Also, what do you mean by "three half bridges"?

PS:
Here's an additional image of it:

Hint: this is a technical forum, and we tend to use technical terms that are nevertheless very common and widely understood. An internet search for "half bridge circuit diagram" turns this diagram up right at the very top of the page!

An H-bridge is two half bridges. Three of those half bridges will allow you to drive a delta-connected or Y-connected stepper. Delta connection is shown below, for the stepper linked above, along with the two excitation sequences.

Capture

You have a low impedance stepper, so you have to worry about current consumption. At 12V, each phase will draw over 2 Amperes.

A three phase current limiting stepper driver will probably be expensive.

Okay, that would make sense. I'm gonna do more research on the 3-phase stepper motors. I'm assuming that these would require specific motor drivers, I'll try and look for those.

Will those 3 half-bridges be implemented for the A4988 driver? Or would that have to be constructed with the specific driver for the motor?

Nice profile pic

Thank You.

Where did You find that old stuff? Hardly on a top ten list. Reusing really old things is always difficult, much more than using modern things that have documentation, datasheets, example code etc.

A search for "24HC2307-01 stepper" turns up examples from the manufacturer, MOONS.
That particular motor doesn't seem to be listed on the manufacturer's web site and may be obsolete, in which case you may have trouble finding a data sheet.

This one is a close relative: https://www.moonsindustries.com/p/am-series-standard-hybrid-stepper-motors/am34hc2307-01-000004611110011168

Cheap! (before shipping)

Amazon has the same one.
Leo..

These motors are mounted on a former stage light platform, designed to rotate the light. I have no idea where it came from, and I'm trying to reuse and repurpose it for a project I'm working on.

I thought that it would have been cheaper for me to try and reuse the motors, the Nema 24 motors with those same dimensions are quite expensive...

I see now that a specific driver will be required in order to run these. I will try and find out some more information before I comitt to buyting a driver.

Thanks for all the replies, you've helped me clear some things up with these motors.

Okay, after reaching out to the manufacturer of the motors I had, I managed to acquire the datasheet:

24HC2307-01.pdf (146.6 KB)

I've also acquired one of the 3DM580S 3-phase motor drivers, and I wanted to try and run it with a Teensy 4.0.

I looked on the internet for some wiring diagrams for this driver, and the most common one I saw was this one:

Now, whenever I previously ran any motors with any drivers, there were always a pin for the direction, and a pin for the stepping, alongside the logic VDD power supply (usually 5V).

In this case, however, it appears to be far more complicated to setup, and I'm looking for assistance in understanding the setup here.
From the datasheet of the motors, I'm pretty sure that I have a motor with the "Star-Connection" type.

I'm not quite sure why there is a + and - for each one pof the "PUL", "DIR" and "ENABLE" inputs for the motor. I can see that there is a long semicircle in the datasheet that covers all the connections going from the supposed controller to the motor. Is that a symbol for the "Half-Bridge" circuits that were mentioned earlier in this thread?

There was also another connection diagram, that looked like this:

In this case, all the connections going from the controller appear to also be connected to the "VCC" power supply (which I'm assuming is the logic power). From these diagrams, I tried settup up a setup like this:

As I expected, this didn't run the motors. For reference, here's the code I'm trying to run this with on the Teensy:

const int stepPin = 2;
const int dirPin = 4;
const int spinDelay = 2000;

void setup()
{
  Serial.begin(9600);

  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
}

void loop() 
{
  Serial.println("Spinning one!");

  digitalWrite(dirPin, HIGH);

  for (int x = 0; x < 200; x++) 
  {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(spinDelay);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(spinDelay);
  }

  delay(1000);

  Serial.println("Spinning two!");

  digitalWrite(dirPin, LOW);

  for (int x = 0; x < 200; x++) 
  {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(spinDelay);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(spinDelay);
  }

  delay(1000);
}

Usually, there was an "ENABLE" pin on simpler motor drivers, such as the A4988, however those were always left unconnected in any connection diagrams I looked at... Moreover, none of the connections going from my Teensy 4.0 ever had ad + or a -, it was always a direct connection. I'm assuming that with these motors, I would have to setup some sort of a circuit in order to provide the VDD power to those connections, but I'm unsure how to.

How would I go about connecting this driver in a proper way, so that it could run with my Teensy 4.0? Is it even possible to run this driver with a Teensy 4.0?

That perfectly standard, so you can use positive or negative logic to activate a driver input.

If you want the driver to step on a LOW to HIGH transition from a port pin, connect PUL+ to the port pin and PUL- to Arduino GND. Do not connect driver GND to Arduino GND.

I can see that there is a long semicircle in the datasheet that covers all the connections going from the supposed controller to the motor. Is that a symbol for the "Half-Bridge" circuits that were mentioned earlier in this thread?

Yes.

From these diagrams, I tried settup up a setup like this:

I cannot interpret a photo like that. Post a hand drawn wiring diagram, resembling the ones you copied from the web.

I recommend that you use the "common cathode" configuration: driver input "-" pins go to Arduino GND, port pins to driver input "+". Read the driver docs to learn how the ENABLE pin must be set to enable stepping.

Finally, check the value of "R1" from the driver data sheet, and make sure that the Teensy output pins can supply sufficient current to light the optocoupler LED.

Thank you! I managed to get the motors to work with the 3DM580S driver.

I used the exact setup you mentioned, the "Common-Cathode" method:
image

Essentially I just connected the "PUL", "DIR" and "ENABLE" + pins to the Teensy's data pins, and their - counterparts to the Teensy's GND pin. I simply use the "DIR" pin for the direction, and alternate between LOW and HIGH on the "PUL" pin to step the motor. I also set the "ENABLE" pin to LOW for the stepping to be enabled.

Here's the testing code I used:

const int stepPin = 0;
const int dirPin = 1;
const int enablePin = 2;
const int spinDelay = 2000;

void setup()
{
  Serial.begin(9600);

  pinMode(stepPin, OUTPUT);
  pinMode(dirPin, OUTPUT);
  pinMode(enablePin, OUTPUT);
}

void loop() 
{
  Serial.println("Spinning one!");

  digitalWrite(enablePin, LOW);
  digitalWrite(dirPin, HIGH);

  for (int x = 0; x < 400; x++) 
  {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(spinDelay);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(spinDelay);
  }

  delay(1000);

  Serial.println("Spinning two!");

  digitalWrite(dirPin, LOW);

  for (int x = 0; x < 400; x++) 
  {
    digitalWrite(stepPin, HIGH);
    delayMicroseconds(spinDelay);
    digitalWrite(stepPin, LOW);
    delayMicroseconds(spinDelay);
  }

  delay(1000);
}

I also think that the reason it wasn't previously working for me was because I supplied only 20V to the driver, however after re-reading the driver manual, I noticed that the minimum input voltage is actually 24V.

Also, I did not have to setup any separate circuits apart from the Teensy and the driver... I think all the neccessary circuits are already on the driver board.

Glad you got it working!