Maestro to send pulses to a stepper driver

Can it be done?

If I connect an output to DIR, and another one to STEP, and use a python script to have the maestro send pulses (maestro connected to PC through virtual serial port) as desired, should I expect things to work? The absolute fastest rate at which I would send pulses would be around 7100 pulses/second (1/8th microstepping), but I’ll rarely if ever need that fast, and mostly never exceed 2500 pulses/second.

I am getting an SVP or mBed to get the job done, but I’ll get my motors and driver sooner, and I wanted to know if I can run some tests with the maestro (I have a Maestro 24 and a Maestro 12) in the meantime…

Also, I’m really hoping to be able to “free run” the stepper motor when it is not driven. If the stepper driver is disabled, will it be damaged by having the motor spin (at speeds up to 270rpm)? The 2 stepper motors I will be testing are:

STP-MTR-17048 from automationdirect
HT23-180-8 from probotix

I will be trying to drive them from either the probotix SideStep motor driver
or the pololu A4988 (with proper cooling and current limiting)

If I really can’t have the motor spin freely without risk of damaging the driver, what would be the best way? Disconnect the motor leads? I need to be able to run (spin) it manually in the application…



Ok, so i figured how to make it work, but I can’t exceed roughly 1000 pps using a regular output. Using PWM I managed to get the count up to 7100 without problem, but I can’t set it to lower than about 2900 (upper limit of the period freq). I’m getting my SVP-1284 today, so I’ll get by.

Now, I am still wondering (and worried) about the free spinning issue.
My stepper motor is wired in bipolar serial mode, and I set the driver to limit current to 1.3A. The power is a 12v SLA battery.
So, if I power off the driver, can I have the stepper motor spin freely at speeds up to 270rpm, for short period of time, without burning anything? Or do I absolutely have to find a way to disconnect the motor (relays, physical switches) before having it spin freely?



Hmm, I’m having a hard time getting information on this whole back EMF situation.

Is it safe to assume that a stepper driver would have a back EMF protection for the voltage it is rated at?
For example, the A4988 can operate at up to 35V, would it mean that it won’t budge if the motor (being manually spun) generates that kind of voltage?

If so, I could try and measure the voltage generated by the motor when it is back-driven as fast as it ever will in my application, and know whether it exceeds the limit? Or does it accumulate? The stepper driver would never be ON when the motor would spin freely, if that makes a difference.

If this makes sense so far, then would simply taking the voltage between A and Ā when I spin the motor be sufficient to give me a proper indication?

I’m sorry to keep pushing for this, I’m trying to get to know what I’m doing as much as possible, and to avoid burning boards in the process…



You generally do not need to disconnect your motor. The H-bridges used in just about every motor driver are going to have diodes that put any excess voltage on the supply line. If you have the 12V battery in the circuit, that will keep the voltage from getting higher. Even if you have the battery disconnected (e.g. when you turn off the system), you probably have other parts on that node that will start using the power you are generating, so that will also keep it from getting too high. So, it’s not unusual to see power LEDs light up and so on if you backdrive your motors. One consideration you might have to make is what the rest of your system will do with a weird voltage applied; for instance, without appropriate voltage supervisors or brownout detectors or whatever, a microcontroller that needs at least 4.5V could do some bad things if you give it 4V.

You can just look at the voltage across a coil, but with a stepper motor, you don’t just get DC out, so you have to look at it with an oscilloscope. You can see what the voltage looks like in this thread:

As you turn the motor faster, you get a faster frequency with a higher amplitude.

- Jan