Testing A4988 to determine if it's working properly


I have setup a Raspberry Pi, A4988 driver, and Nema 17 Bipolar 40mm 2A 4 Lead Stepper Motor. At first I just connected a 9V battery to VMOT and the standard configuration for the rest (pin 23/24 for step/dir, 3.3v to VDD, grounds to grounds, outputs to motor) and when I ran a simple python script for stepping by toggling the step pin the motor simply made some slight shaking noise for 20 seconds and stopped.

I have since tried changing the order of the 1A/1B/2A/2B outputs in seemingly every way possible, tried changing the VDD to 5v, tried changing the VMOT from 0V to 10.5V, as well as 11.5V (variable power source that I borrowed), tried 18V with 8 9V batteries (2 batteries in series, 4 of those in parallel), and tried changing the A4988’s potentiometer to every possible setting, and still the motor has not given a sign of life since the initial 20 seconds of making some slight shaking noise.

I used a multimeter to test the 4 outputs to the motor, and I discovered that they produce 0V so long as VDD is not given power. As soon as VDD gets power, all 4 of the motor outputs put out the voltage going in to VMOT. 3.3v to VDD made the 10.5V from VMOT appear on 1A/1B/2A/2B. Is this proper behavior? or is it broken and why the motor appears to not be functioning?

I can find lots of pictures of the pin layout, and lots of videos of people showing off their functioning motors, but I do not know how to test to see if my A4988 driver is functioning properly or not (I have no other means of testing this motor, and no other motor to test this driver with).


When you ran it for the first time (when it ran for 20 seconds then stopped), did you have the current limit set? What VREF voltage do you have it set to now? Please note that the stepper motor you mentioned is rated for more current than we recommend with our A4988 carrier.

As far as connecting the motor leads, you should find the pairs that correspond to each coil and connect one pair to 1A and 1B, and the other pair to 2A and 2B. You might find the second question found under the “FAQs” tab of any of our stepper motor product pages helpful for determining which wires are paired.

The best way to see if the A4988 carrier is working correctly is probably to connect it according to the “Minimal wiring diagram” found under the “Using the driver” section of the A4988 carrier’s product page and send it appropriate step and directions signals. However, you should follow the instructions in the “Current limiting” section to set the current limit appropriately before doing this. Since your stepper motor is rated for much more current than the A4988 carrier is rated for, you should probably set it to the maximum recommended for the carrier (1A/phase).

By the way, 9V batteries are impractical for most motor applications as they are not great at sourcing current; this is especially relevant with stepper motors since they constantly draw current when holding. Also, we do not recommend using batteries in parallel unless you know what you are doing and are very careful.


“The best way to see if the A4988 carrier is working correctly is
probably to connect it according to the “Minimal wiring diagram” found
under the “Using the driver” section of the A4988 carrier’s product page and send it appropriate step and directions signals.”

Can you please explain what readings I should expect from 1A/1B/2A/2B on my multimeter when I send it ‘appropriate step and direction signals’? As I have mentioned earlier I’m trying to use a single driver, motor, and multimeter to determine why this setup is not working at all. That means I’m already doing as you suggest, and the response from the motor is to not function. I can verify that VMOT power is given to 1A/1B/2A/2B when VDD power is applied, but I can’t find any documentation to tell me that this is what is supposed to happen.

How can I connect a multimeter to an A4988 driver and verify that it is functioning properly? I don’t actually see a reason why I should need a motor at all to accomplish this test.

If you have the time to test your A4988, then can you please check to see what the output voltages are on 1A/1B/2A/2B when you tell your driver to operate a motor? I cannot find any information on what the proper outputs are from the A4988, and thus cannot determine whether it is functioning properly or not. Thanks.

Can you check to see if your 1A/1B/2A/2B outputs to the motor are constantly providing the power from VMOT when VDD is given power? This is what my driver board is doing, and I’m having a lot of trouble finding someone who knows what the 1A/1B/2A/2B outputs should read as on a multimeter when the driver is in operation. Thanks.

I have merged your multiple posts about this topic into this thread; if you already have a thread dedicated to your question, please continue the discussion in that thread instead of making a potentially off-topic post in other threads.

It would be difficult to determine if the driver is working properly by looking at the voltage on the motor outputs with a multimeter while the driver is stepping since the driver controls current through the coils and the value would be changing at each step. If you set the current limit to an appropriate value, you could try connecting your stepper motor and using your multimeter to measure the current through one of the coils (while the motor is stepping very slowly). If you use this kind of set up, you could then compare the current as it takes slow steps to the chart in the datasheet. It might be clearer if you use two meters (one for each coil).

Also, if you are still having problems determining which pair of wires corresponds to a coil, you could use your multimeter to find the pairs of wires that have the rated resistance between them.