How do I use near-limit voltage on a4988? Looking for tips


I think the a4988 board here is super. I have an issue though with a poorly designed system on my end, in so far as our little stepper motors have way too high inductance (rated 12v). At 400 steps per second, we’re fine, but at 1000 steps per second we’re only managing to get 110mAh into the motor coils while turning, when we’d rather have 250mAh. This is actually the improved situation, after we went to 34v from the earlier voltage of 24v.

So I really would benefit from continuing to run the motors at 32-4v, since it’s already not-quite enough.
But I don’t want my system to frequently blow up. And while I could switch out the motors with a lower inductance motor of the same size, that would also introduce a few problems.

I presently have the 220uF pololu caps (pretty hefty) on Vmot in an effort to protect the system.

Does anyone have any other practical tips for running the a4988 at 34v? My system is just turning a threaded rod under predictable loads. I’ve tried searching ze web since I’m sure someone has run these near 35v, but I haven’t really found any good reports.

While I’m at it, I thought I would ask another small question. Is there any particular reason why I wouldn’t just use the sleep pin to disable the outputs (vs using the enable pin to do the same)? According to the datasheet the only issue I can see if that I need to wait 1 millisecond to allow some of the internal circuitry to stabilize before I start stepping. My system only needs the motors to run every 15 minutes so I thought it would be kinder to the motors if I was to disable outputs in between [and we don’t need the holding torque].


34V is pretty close to the maximum voltage, so it does not leave you with much margin to work with. If 32-34V are mostly the same to you, 32V will be much safer. I suspect the caps will provide enough protection. It is also good to keep the power leads as short as possible, and twist them together. ENABLE turns off the output FETs. SLEEP turns off more and the translator forgets its state, which would likely cause missed/incorrect steps when you start stepping the motors again.

- Ryan

Thanks Ryan!

I suppose I might be able to stick with 32v, though it would be ideal to ekk out 34v. I’ll see if we can get acceptable use with 32v- I should have already thought to try that. It’s a bummer someone else picked up these high inductance motors (working with a group), because there’s a perfect Nema 17 that Pololu offers (but we already designed the system around these built in long lead screws, and a coupling system would stick out another inch or more.)

I’ll keep in mind to have the leads short. Ours will only be on the order of 6-12 inches, and they’re quite thick for the current we’re using (I wish I could accurately eyeball gauge sizes, but I’d say it’s slightly larger than quality LiPo balance leads; i.e, 2-3A capable).

Thanks for giving me a heads up about the translator. I’ll read the datasheet again to see if I can understand the implications there. I only use the board with on and off step signals (and DIR change), so I understand that my MCU keeps track of the step numbers. I’m not concerned if the translator messes up current rise/fall for the first step or two since I barge into my end switch for an extra 10 steps to make sure it gets there in normal operation. From rereading the datasheet, I garner it will have problem with the output but that it should continue from the default home situation (whatever that is, I suppose it’s no different than when I turn on; so it should be ok.

Other tidbits learned from rereading the datasheet:
Load Supply Voltage = 0-35v.
Motor Output voltage = -2v- 37v. Wait, what? Wrt to the above.

I’m curious if I can use the arduino/avr atmega 20k internal pullup resistors to work on the enable and sleep pins.
If I use the Sleep pin:
High means outputs ON. They have an 100k pullup to Vdd.
I’d have to use pinmode output, write low.
If I use the Enable pin:
High means outputs OFF. They have a 100k pulldown to Gnd.
I could use the 20k Pullup resistor in pinmode input. Hopefully 20k would beat 100k.

I think I will use the enable pin method, if only because I already have the RST pin shorted to Sleep. Plus input mode should be safer.

I apologize if I’m using this too much as a board to air my internal conversation. My main point was that I was trying to see what kind of practices I should follow if I’m near the max voltage, and it sounds like the cap is the only precaution to take for now. I wasn’t sure if there were any more things to consider.

Thanks :).