A4988 - microsteps unevenly

Hello

I am experiencing uneven stepping with a Pololu A4988 driven by an Arduino clone.

Specs:

  • Pololu A4988 with voltage regulators
  • configured at 16 microsteps per step
  • step frequency range between 50 and 10000 micro steps / second

Stepper:

  • Mfg by Mercury
  • 200 steps per revolution
  • rated at 12 volts, 0.33 Amp

Power:

  • 12 volt supply
  • Vdd jumpered from Pololu

Problem:
In the range of 50 to 100 microsteps per second, the stepper turns unvenvly; this can be seen visually, and also heard as the motor noise varies periodically throughout its cycle. At higher step rates, the uneveness is less noticeable, and quite frankly unimportant in my application.

See clip on youtube http://youtu.be/Lk2ClK5Iy3Q

As mentioned, I’ve tried changing the Pololu and stepper motor with no luck.

Where should I look to solve this problem?

  • reducing/changing voltage supply?
    -??

Thankx!

Hello.

I think your issue is probably the result of a bad current limit setting. I know you said in the video that you tried playing around with the current limit, but did you ever specifically set it to 0.33 A or lower? The driver accomplishes microstepping by limiting the current in a sinusoidal pattern (see page 8 of the datasheet for more information). If you have your current limit set too high and your supply voltage too low, the current will never reach the limit, and the sine pattern is not properly created, resulting in skipped microsteps. If you want to use microstepping, I suggest you use a higher supply voltage than the rated voltage, and use the Vref output to ensure that your limit is 330 mA (that would correspond to a voltage of approximately 0.13 V).

- Ben

Thank-you Ben for your quick reply and hints.

After reading your suggestion, I brought the “current limiting” pot to its most counter clockwise position - it’s minimum, still with the 12V power supply. Alas, the uneven microsteps are still present, so no change, except for a lower holding torque.

Also following your suggestion, I tried an 18V power supply, here too, varying the “current limiting” pot from its most counter clockwise position. Again, the uneven microsteps are still present. As I increase the current limiting pot, I noticed the unevenness sound gets stronger (or louder, if you will).

In my junk box, I found a 32V power supply. Am I risking damaging any component by trying 32V?

Or based on the above, do you think the problem might lie elsewhere?

Regards!!

I think you should avoid the 32 V supply unless you take steps to reduce LC voltage spikes on power-up, as these can be well above the 35 V maximum for the part.

At this point, my recommendation is to set the current limit as close to 300 mA as you can get and use the 18 V power supply. In this configuration, can you take one step per second and see if you notice any steps being skipped? It is possible that the internal geometry of the stepper motor you are using results in uneven microstep sizes, and maybe this is what you are hearing. Does the sound go away or change if you full-step at 1/16th the rate (i.e. 4 or 5 steps per second in full-step mode)?

- Ben

Ben,

I stuck with the 18V supply, and wrote up a sketch to test at various rates, and various micro-step resolutions.

In the course of doing this, the micro steps became noticeably more even. The major difference was how I signaled the MSx inputs to the A4988.

The great improvement seems to come as a result of feeding digital output from the Arduino to the MSx inputs; previously I had connected them directly to the 5V supply rail from my breadboard.

Things are running quite smoothly now.

It does puzzle me that connecting the MS1-MS2-MS3 inputs to the 5V rail was causing problems.

Should I have decoupling capacitors near the A4988 Vdd & ground pins?

BTW, my Arduino derives it’s voltage source from the A4988.

I consider my problem solved, but will gladly read anything you have to say that might explain this odd behaviour!

Regards

I’m glad to hear you were able to figure out the source of the problem! I did not at all consider the quality of the signals on the microstep selection pins.

Connecting those pins directly to the 5V rail should work fine (at least as well as connecting them to Arduino digital outputs). Do you have access to an oscilloscope that you could use to see how steady VDD is while your board is running? Is there any chance the connection problems were being caused by the breadboard?

- Ben

Unfortunately I have no access to an oscilloscope, for the moment. So I can’t check Vdd.

As far as the breadboard possibly causing the problem, I tend to doubt it, but I can’t check that for sure neither.

So, I will consider the problem solved, Ben, and I thank you for your kind support.

Ciao from Montreal, Canada,

Ron

hey presse55, how did you configured a4988 stepper driver to 1/16 micro stepping ? i’m new this area, so will you please tell me how to do micro stepping ? starting from scrap, if possible !! thanks in advance. any help much appreciated !!

Hello,

You can set up your basic system following the “Minimal wiring diagram for connecting a microcontroller to an A4988 stepper motor driver carrier (full-step mode)” found under the “Using the driver” section of the A4988 product page. The “Step (and microstep) size” section of the same page describes setting the microstepping mode. For 1/16th microstepping you could tie the MS1, MS2, and MS3 pins to the positive side of your logic power supply, just like the VDD pin is connected. Please be sure to set your current limit correctly; the “Setting the Current Limit on Pololu Stepper Motor Drivers Carriers” video in the current limiting section of that page is a great resource for learning how.

-Derrill