Voltage Drops when using A4988


I am trying to get a A4988 step motor driver to work with my Arduino but I’m running into problems.

Here’s what I’ve got connected to the chip (I wanted to setup full steps)

EN–held LOW
MS1+MS2+MS3–all tied together and held LOW
STEP–toggle between HIGH/LOW

VMOT–tied to VIN +12VDC
GND–tied to GND
2B & 2A–to step motor
1B & 1B-to step motor
VDD-tied to 5V
GND–tied to GND

Here’s my simple test code:

[code]void setup() {
// initialize digital pins 8-13
pinMode(8, OUTPUT); // DIR pin
digitalWrite(8, LOW); // set initially to LOW
pinMode(9, OUTPUT); // STEP pin
digitalWrite(9, LOW); // set initially to LOW
pinMode(10, OUTPUT); // SLEEP pin (ACTIVE LOW)
digitalWrite(10, HIGH); // Pin set to High for normal operation (not sleeping)
pinMode(11, OUTPUT); // RESET pin (ACTIVE LOW)
digitalWrite(11, HIGH); // Pin set to HIGH for normal operation (not reset)
pinMode(12, OUTPUT); // MS1+MS2+MS3 microstep pins
digitalWrite(12, LOW); // Full Stepping mode
pinMode(13, OUTPUT); // Enable pin (ACTIVE LOW)
digitalWrite(13, LOW); // Pin set to LOW to enable normal operation (enabled)

void loop() {
digitalWrite(9 , HIGH);
digitalWrite(9 , LOW);

Thing is, its not working… when I measure voltage between VMOT and GND I only get 0.9V versus the 12VDC I expected. If I remove the A4988 carrier, I do measure 12VDC between VMOT and GND headers on the board as expected.

Anyone know what is going on, or have any suggestions?

Most likely, you have a high current motor and a low current power supply, so the motor effectively acts as a short circuit. Post a link to the data sheet or product page of the motor and state the maximum current provided your power supply.

The product page for the Pololu A4988 motor driver has a lot of very useful information, which you should study and follow very carefully.

Hmm… I purchased my step motor from Lin Engineering. I told them I needed a motor to operate at 12VDC at 1A and they recommended this one. It’s not one that is on their website, but they did provide me a datasheet. Here are some specs:

Motor #: 5718M-01S-RO
Full Step Angle 1.8deg
Motor Frame Size NEMA23
Body Length 2.22"
Max Rated Current/Phase 1.4 A
Resistance per Phase 2.8 Ohm +/- 10%
Dielectric Strength 500V
Rotor Intertia 1.5oz-in^2
Bearing type ABEC3
Nominal Holding Torque 2 Phase ON 168.17 oz-in (derated to 120.1 oz-in at 12VDC and 1 A)
Ambient Operating Temperature -20C to 50C
Ambient Operating Humidity 85% max
Lead Wires 22AWG PVC

My power supply is an adjustable voltage wall-wart rated up to 3.5A, although probably less than that at 12VDC (nameplate states 2A at 15V). Ultimately, I plan on running this off a battery, but for development, I’m using the wallwart…


If you apply 12V across 2.8 ohms (the winding resistance), that motor will draw 4.3 amperes in each winding! You did not get good advice.

But no matter, the motor driver is designed to deal with this situation. Carefully follow the instructions and video on the Pololu A4988 product page to set the current limit to 1 ampere per winding or less, and it should work (if the nameplate on the power supply is accurate).

I have already set the potentiometer to adjust vref to limit the full step current to 1 A (0.56 V). I believe the driver has been setup properly but still something is not right.

Any other thoughts? ?

Have you eliminated the power supply as the problem?

No… I’ve tried two different AC/DC adapters, and got the same result. But honestly, both adapters are probably about the same in terms of their amperage capabilities.

I don’t have a bench power supply or anything else to test it with at the moment. I haven’t checked… does Pololu sell a 12VDC PS that would be appropriate to try? that will be my next check…

would this be a suitable PS for testing?

Pololu item #: 1467
Wall Power Adapter: 12VDC, 3A, 5.5×2.1mm Barrel Jack, Center-Positive

There was a 5A version also which looked a little beefier, but the rated current is higher than what I need, I think…

The indicated PS should work.

If you every disconnected the motor leads from the driver while it was powered up, the driver may have been destroyed.

To test the motor driver, power everything down and instead of the motors, use resistors across 1A&B, 2A&B. 100 ohms will be fine. Check the voltage across the resistors while the driver is very slowly commanded to step.

I had seen the warnings elsewhere online, and as a result, I did not add or remove any connections while the driver was powered. But I’ll check the resistance between the motor pinouts tonight when I get home to check them. I have two drivers, both were exhibiting the same behavior.

Success… I discovered the problem was that the “VIN” pin from the Arduino board was not capable of providing the necessary voltage/current to the VMOT pins. When the A4988 was “on” the voltage dropped to 0.85V while the voltage was still ~12V at the input DC jack on the Arduino. Now instead of pulling power from VIN, i supplied the power to this pin, and that did the trick!