Driving 70v 6.3A Bipolar Stepper

I have been reading forum posts about big steppers but none seem as big as the one I have on my desk. I am just getting started with Arduino and have successfully put together a small stepper with the adafruit stepper shield.

I have a 4 wire bipolar motor that the data sheet says can run on 32v to 70v. I have a nice 70v dc power supply. On the motor it says 1288 oz-in 6.3A .49 ohm 1.8 degree step.

I don't see any shields out there that can handle this kind of power. What can I do ?

Thanks for your help. Bernn

You will need an industrial motor driver for that beast. Here are some examples http://anaheimautomation.com/products/stepper/stepper-drivers.php?tID=87&pt=t&cID=20

Those specs make it clear it's intended for PWM / chopper drive.

70V Across .49 ohms would be 140 amps! IF it was not pwm'd.

Can you point to the spec?? Is it for the motor alone, or a motor-driver combination?

It's from Automation Direct. Model # STP-MTRH-34127 http://www.automationdirect.com/adc/Shopping/Catalog/Motion_Control/Stepper_Systems/Stepper_Motors_-z-_Cables/STP-MTRH-34127 I have their Step Motor Driver STP-DRV-80100 to go with it. http://www.automationdirect.com/adc/Shopping/Catalog/Motion_Control/Stepper_Systems/Stepper_Drives_-z-_Power/STP-DRV-80100 I wasn't sure if it is something I could hook the Arduino up to, though. They have their own language to control it over a serial connection, but I wanted to try to use the Arduino. The inputs on the step motor driver are : GND AIN =5V OUT- OUT+ EN- EN+ DIR- DIR+ STEP- STEP+

Yes, all industrial stepper drivers have opto-isolated inputs for step, direction and enable, you need to see from the datasheet how the opto isolated inputs are wired (if you are lucky you just connect -EN, -STEP, -DIR to Arduino ground and +EN, +STEP, +DIR to Arduino pins and away you do (requires that the driver have current-limiting resistors on the opto-isolated inputs). If there aren't resistors you add some yourself.

Be careful to wire the motor correctly and never phsyically disconnect it with the power applied, that can destroy the electronics in the driver. And beware that's a powerful motor.

Your power supply must be able to supply enough current to fully energize both windings, so in the range of 12 amperes.

No, not true, this is a chopper drive. Typical currents from the supply will be a lot less
than 5.6A, but only under full mechanical load at full speed will the current from the supply
start to climb towards the level of the windings.

I think I read somewhere that typical PSU requirements are about 1/2 of winding current,
so 3 to 4A may be fine and it will provide far less than that most of the time.

only under full mechanical load at full speed will the current from the supply start to climb towards the level of the windings

So you suggest to design (and hope) for "best case"? I agree that I should have used the word "should" rather than "must".

The driver documentation appears to show opt-isolation and resistors built in as you suggested. So I think I am ready to wire it up? All the Arduino examples I have seen assume the motors are connected to shields? Am I correct in thinking I don't have a driver so I'm going to just wire a digital output from the arduino to the stepper driver and set it to high for a certain period to cause a step? See manual page below for the driver. Thanks in advance for the help... I do appreciate it. I have a grinding machine which needs very simple automation on one axis. I just need to index a certain number of rotations and then stop.

The motor drivers or motor shields that you see described for Arduino projects are intended to drive the motors directly. Your industrial-type driver is the high power replacement for those.

The opto-isolated inputs for your motor driver already have resistors built in (the 330 ohm and 680 ohm resistors you see in the schematic) so you can directly connect the Arduino output pins to the EN+, STEP+ and DIR+ terminals. The EN-, STEP- and DIR- should be connected to the Arduino ground. This is equivalent to the "Indexer with Sourcing Outputs" option on the manual page. Evidently, the ENable function actually disables the driver, that is, when activated, the EN input turns OFF the motor current, so you can leave those inputs unconnected if you don't need that function.

If you have a power supply that can supply adequate current to the motor, you are good to go. Let us know how it goes!

Direction and step inputs are very simple to drive - set the direction line, then pulse the step (usually a positive going pulse of 10us or more duration will do it).

void step (boolean direction)
{
  digitalWrite (dir_pin, direction ? HIGH : LOW) ;  // or the other way round if sense is wrong
  digitalWrite (step_pin, HIGH) ;
  delayMicroseconds (10) ;
  digitalWrite (step_pin, LOW) ;
}

Awesome! That totally worked without a hitch. Many thanks for the advice.

I was surprised to find that it takes 20k steps to complete one revolution.
I was expecting 200 since it is a 1.8 degree per step motor.
I’m guessing that the drive’s controller has something to do with that.
Still that’s 100 intermediate positions between steps. Seems like a lot.

Here’s my 1 revolution code:

void loop(){
  digitalWrite(ledPin, LOW); 
  for (int i=0; i <= 20000; i++){
    digitalWrite (step_pin, HIGH) ;
    delayMicroseconds (10) ;
    digitalWrite (step_pin, LOW) ;
    delayMicroseconds (1000) ;
  }
  digitalWrite(ledPin, HIGH); 
  delay(1000*2);
  
}

The motor driver does have microstepping capability, indeed up to 20,000 steps per revolution. It would be an excellent idea to read the manual.

So I’m all hooked up to the machine and everything works except it is not quite strong enough to turn the lead screw without missing steps.
My code doesn’t have any acceleration in it so I was thinking I would start there.
I am look at AccelStepper, but it seems to assume I am wiring directly to the motor (wants me to tell it the 4 pins).
I don’t see how to use it with my motor driver. I need only a direction and step pin.

Any thoughts?
Thanks again for the help.
Bernn

I'd try using grbl, sort of the standard diy arduino cnc controller software. https://github.com/grbl/grbl

Bernn: I don't see how to use it with my motor driver. I need only a direction and step pin.

Specify it like:

AccelStepper myStepper(AccelStepper::DRIVER, stepPin, dirPin);