a4983 stepping speed


Ive been playing around with the a bipolar motor and I am trying to make it do 2000 half steps per second. I am using an arduino duemilanove to control the driver (#1201) but the fastest i can do is about 800 half steps per second. I have tried the motor in series and parallel (much lower torque in parallel can anyone explain why!?) also, can anyone explain how the pot works. I tried fiddling around with it but i wasnt really sure what i was doing. The driver is hooked up to a 35 V, 3A supply and my motor is rated at 0.7A (1.4A) per phase series (parallel).


probably worth mentioning that at 800 half steps per second, it works fine and the torque is good but any faster and it just hums and the shaft turns a little sometimes when i help it, or just vibrates a little and taunts me. the motor data sheet says that it should be delivering around 0.6 Nm at 2000 half steps per second at 36 V.


Are you sure your program is smoothly getting to the 2000 steps per second? Depending on how you do it, it’s easy to lose resolution as speed increases, and if you jump from 800 to 2000 steps per second, you can get the kind of behavior you’re describing.

The motor driver is typically limiting the current into the motor, so the current per phase is the same for parallel or series arrangements. In the parallel case, the separate windings are splitting that total current, so you’re getting half as much current per wire as you get in the series case, where the total current goes through each winding. You didn’t say anything about the motor voltage or resistance, but if you can get to the 0.7A rated current with your 35V supply, you should definitely go through the series approach since the lower current will be easier on the motor driver.

The pot works in a way that turning it clockwise will give the motor more current. Figuring out exactly what that current is not that easy, but there is some information about how to do it on the product page. If you’re going for approximately 0.7A, and you don’t need it to be too exact, you could turn it about 1/4 to 1/3 of its range from the minimum point.

- Jan

The way it is stepping at the moment is

for (i = 0; i<a; i++)
      digitalWrite(steps, LOW);
      digitalWrite(steps, HIGH);

i dont know if thats the best way to do it but its all i could think of/find in examples. im pretty new to this stuff :blush: is there a better way to step?

That seems okay, but how do you transition between speeds? If you just switch abruptly to the faster speed, the motor might not be able to keep up.

- Jan

oh. i guess i wasnt clear… i dont want to run it at different speeds. i want it at 2000 half steps per s. i meant that when i set it to run at around 800 its fine, but when i modify the pauses to make it 2000 half steps per second and upload the new code onto the arduino, it does not cooperate. :confused:

Even if you only care about achieving 2000 steps per second, you have to get there from 0, so you do have multiple speeds in play, and you can’t just abruptly go from 0 to 2000.

- Jan

that is something that i will have to try later im fairly sure i blew up the driver. I need the motor do drive a linear slide table. before i connected the table, the motor and the driver were working correctly. when i attached the motor to the table, the motor would sometimes drive the linear motion, and sometimes the torque required was too high, and the motor slipped (turning it by hand, the shaft seems to require more torque at one end so the torque required is more.) after disconnecting the motor and fiddling with the table a bit, something very odd happened - when i connected the vdd pin to the 5v output on the arduino, the arduino power light would turn off - im guessing the arduino has some kind of protection to stop it dying. connected to the 3.3v output on the arduino, the power light would stay on for like 5 seconds and then turn off.

is it possible that the trying the motor slipping somehow damaged the driver? the motor i have is the 23hsx202 on the pdf: http://www.mclennan.co.uk/datasheets/european/stepper/hsxsteppermotors.pdf (bipolar, 8 wires)

my motor power supply is a 36V ± 10%, 3A so i have set it at just under 35V. Running in series, the motor data sheet says that it requires 0.7A per phase. is the driver capable of running this, or should i look at getting a beefier driver? the fact that everything was working fine before attaching the table makes me think something with the torque made it die…? I am doing this for a uni project due in like a week and i am freaking out!

The A4983 is definitely capable of driving well in excess of 0.7A, and stalling the motor shouldn’t matter, either (unlike a brushed DC motor). I think you likely had too high of a voltage. The 35V is an absolute maximum rating for the driver, so setting that as your nominal value is not reasonable in that it gives you no margin for error. The motor will have its full torque at 12V or lower, so the only reason for going to a higher voltage is to get the step rate up or if you have a convenient rail that’s at something like 24V. I would do more tests at a lower voltage and then go higher only if it’s established that the step rate cannot get to where you need it at that lower voltage.

- Jan

ok. just a few things i want to clarify (bear with me…) is there any way that the motor would pull more than the 0.7A? and is the motor pulling 0.7 A from A+ to A-, or 0.7 A per coil, so 1.4 from A+ to A-?

if i buy another driver, is there anything i can do to protect it so that it doesnt blow? i really cant afford to blow another one. someone else i talked to mentioned fuses.

also, the power supply i got can go down to 27.5V… i spent like $100 on it so id rather not have to get another.

ive changed my mind im getting the 1202 because there is a shop that sells it near me. will this have any influence on the supply/operation?

The 1202 is basically the same thing.

The motor can certainly draw more than 0.7A. The maximum current the motor will draw depends on the resistance of the wire and the voltage you apply. If the coil is 5 ohms and you put two in series, you’ll have 10 ohms total, which will draw 0.7A at 7 volts. If you apply 28 volts, you’ll get 2.8A. The motor driver will limit it to less if you set it to less, but that’s up to you setting that limit correctly. From the perspective of the motor driver, you’re always setting the current to a pair of outputs. If you have that set to 0.7A and you have series connections, that 0.7A will flow through each element; if you have a parallel connection, the 0.7A is shared among them (i.e. 0.35A in each wire if you have two in parallel).

- Jan

ok. just to make sure i dont fry more drivers i check how much i should turn the pot for having a voltage of 27.5V. you mentioned adjusting the pot to 1/3 to 1/4 of the way from the min position for 35 V, so it should be around 1/5 from the min maybe? by the way thanks for all your help!

The current setting is not based on the motor supply voltage. Also, the chip shouldn’t break that easily from current issues since it should just overheat and enter thermal shutdown; on the other hand, going over 35V could easily break it.

- Jan

Bad news,
I’ve set up the voltage regulated chip. Power supply down to 27V. 1A fuses between the power supply and the chip. 1A fuses between the chip and the motor.
The fuse blew between the power supply and the chip. I replaced the fuse and the chip visably started smoking.
What is going on?!
This is a real emergancy! We have to have the flawless solution first thing on Monday. Literally my degree and those of my 4 closest friends rests on that.
Do I need a bigger driver? What should I do?
Please help!

I should also add it was working very sweetly for a couple of hours.
A clue could be that everytime I opened a different arduino script the stepper motor slowly started turning…


Can you describe how you have everything connected?

- Ben

I’ve attached a schematic of the set up around the stepper motor driver (hopefully it’s clear enough, otherwise I’ll try again!).

The driver is controlled by an arduino and connected arbitrarily to the arduino pins depending on the code.
The stepper is set up in series, connected to the 4 pins of the driver. (mclennan.co.uk/datasheets/eu … +23hsx-202 we are using the 202.)
The VDD and 5V pins re bridged.
The VMOT pin is connected to a 27V power supply.
All the ground pins are bridged and connected to both the ground of the aduino and the power supply.
I have connected 1A fuses to the motor wires and the power supply.
The stepper is attached to a big chunk of metal so I attached the power supply ground to it.

Any Ideas? Anything else I can tell you?
Schematic.pdf (98 KB)

What Arduino pins were you using (and which driver pins were they connected to) when your boards died? Were you using pins 0 or 1 for anything?

- Ben