a4983 newby setup

OK I bought this stepper driver and I can get about 1/2 the setup but since I’m not much of a electronics designer I am clueless on continuing.

First I have the a4983 w/regulator do I just need to connect Vmot to 12v and the logic voltage will get picked up internally?

I understand step, dir, sleep and ground these go to my arduino board running openmoco.

Next I want to run in 1/8 step mode, how is that to be configured?

If some one could clue me in on pull up/down thing that would be awesome.

What else am I missing?



Both 5V and 3.3V are available on the board, and you have to connect the one you want to use to the logic supply of the board.

Did you look at the product web page or the A4983 datasheet? Both have tables showing that you need to make MS1 and MS2 high and MS3 low for eighth step operation. It’s difficult to get excited about helping you when your post gives the impression that you’re not really trying to help yourself.

I didn’t read this article but it will probably have some useful info: en.wikipedia.org/wiki/Pull-up_resistor

- Jan

I did go through the web page and the docs listed and the high/low thing I don’t understand. I understand the table but clueless on getting there. I will check out the wiki page.


Does high mean connect the pin to 5v and low to a resister and 5v?


No. High means your logic voltage, which might be 5V or 3.3V or whatever else you choose. Low means 0V (i.e. ground). There are folks using these motor drivers with Arduinos for RepRap 3D printers, so doing a search for something like “RepRap Pololu” might lead you to some useful examples.

- Jan


Driving a pin low means connecting it to ground or to a microcontroller output that is set to output 0V. Driving a pin high means connecting it to your logic voltage, Vcc, which is often 5V or 3.3V, depending on your system, or a microcontroller output that is set to output high. You can pull a pin low or high by connecting it to ground or Vcc, respectively, through a resistor. The strength of the pull is inversely proportional to the value of the resistor. The point of a pull-up or pull-down is to create weak default value for the pin that can be overridden by a stronger signal from a microcontroller should you want to change the behavior on the fly.

- Ben

OK so to et the idea here.

VMOT -> 12VDC Power Supply
GND - gnd
2B - stepper motor
2A - stepper motor
1B - stepper motor
1A - stepper motor
VDD - 5v
GND - gnd

EN - 5v to make use of this 5v = enable; gnd = off
MS1 - 5v
MS2 - 5v
MS3 - gnd
RST - gnd
SLP - arduino
STEP - arduino
DIR - arduino

I am starting to understand this a bit.

You need RST high for the driver to run.

- Jan

Is there any reason to put current limiting resistors an any of the 5v to pins? So for rst to work just connecting to 5v is sufficient with no resistor.

thanks Ben and Jan

You don’t need resistors between the pins and 5V if you don’t intend to change the state of the pins.

- Jan

I have 2 quick questions

  1. Does the SMT jumper for 5v operation need to jumped? (board is running 5 v as well as the arduino)

  2. Do the grounds on the side of the board that has the step/dir inputs need to be connected? this is what the instructions state “The driver requires a logic supply voltage (3 – 5.5 V) to be connected across the VDD and GND pins”

from the top of the board

5v I am connecting this to VDD, enable, ms1, ms2, and reset

I assume that the S/D ground from the arduino can connect to this ground or the one on the other side of the board. From the instructions the only ground separate is the VMOT ground.


PS this board is tiny for tired eyes!

The SMT jumper is just an alternate connection spot for the 5V out to Vdd connection you’re making.

The grounds are all connected on the board, but you should make sure that you have ground connected between the board and the Arduino and between the board and your motor power supply. The ground to the motor power supply should be connected through the pin right next to the motor supply pin since that ground pin is intended for high current. You can use any of the other ground pins for connecting to the Arduino.

- Jan

OK I am having issues getting the motor to run from this driver. The following is my hookup

VDD - 5v
enable - 5v
ms1 - 5v
ms2 - 5v
ms3 - gnd
reset - 5v
sleep - arduino, software is low for sleep
step - arduino
dir - arduino
gnd - arduino gnd

vmot - +12v
vmot gnd - other side of bat

the motor coils are connected properly. they have continuity.

I set the pot to mid position, motor is 1A motor. this is just testing so this should work. What should I check. Checked voltage from bat, good 12.99vdc.

I’m stumpted


You are disabling the chip by connecting enable to 5V. This pin is internally pulled low, so you can leave it disconnected if you don’t want dynamic control of the enable state. Also, it’s not clear what you’re doing with the lines you have connected to the Arduino. Are you bringing the sleep line high to take the board out of sleep mode? Can you post the simplest version of your code that should do something but doesn’t?

Also, this thread might help you some if you haven’t seen it already:

- Ben

Hi Ben
Ahhhh so the enable should be low to run. That may fix it. The board behaved like it was not getting power even though it has power. The sleep pin is low to sleep in OpenMoco. As I understand the data sheet the sleep pin needs to go high to run, low to sleep. I will work on this again in the morning.


OK I got the problems straitened out. My motor now runs, WoooHooo! Now a few things to fix.

How do I set the motor current properly I know the data sheet says to measure the ref pin voltage and calculate the current. I know for Ohm’s law to work I have to have 2 parts of the equation to figure the third. I = V / R. Whats the resistance value I use? the motor I am using is 1A. Seems to run well but the motor also gets pretty warm. After I get the current set properly this may go away for the most part.

Also the driver chip gets pretty hot. I have a SW issue with sleep, OpenMoco sleeps when the sleep line is low but the driver never goes to sleep. It always has holding current. But my question is where do I find a heat sink for the driver chip? it’s pretty small! I was thinking about gluing the chip, with heat sink epoxy, to a block connected to the box I am going to put this in so the entire surface area is a heat sink. But then how do I hold the board, there doesn’t seem to be a lot of extra space for screws even on the edge of the board.


Ohm’s law is not necessarily in play here since we’re talking about setting an adjustable parameter on some chip. Anyway, the current sense resistance is 0.05 ohms (it’s on the schematic), so you want to set the pot to make the ref pin have about 0.4V on it for a current limit of 1A.

We don’t have a specific heat sink for this unit, but I have heard that others have had success with heat sinks made for PC motherboards (for peripheral chips, not for the main processor) and memory. Those sets often include double-sided tape made for mounting heat sinks. Thermal epoxy should be fine, too. However you do it, make sure you don’t short anything out.

- Jan

Thanks Jan


The RepRap community has been experimenting with using Pololu’s stepper motor driver carriers in their latest electronics designs. They have come up with various ways of cooling the drivers. One picture shows them using a PC-case fan; another shows a little stick-on heat sink.


- Ryan

Thanks Ryan
What I am doing is building a timelapse motion control rig. I am mounting the drivers really close to the motors so they are tuned for that motor and have fewer parts to deal with on a shooting location. This way there is just the arduino with Step/dir and power going to the motors. If I build a small enough enclosure for the Arduino that can go on the little dolly with the pan/tilt head and camera. For now I found these at Mouser
The 2 heatsinks at the bottom of the page for dip 14/16 packages. I may just glue a machined block to the chip and use that to conduct heat to the case. I just have to figure out a good way to mount the board so it’s very sturdy and won’t fall off. I love that the board is so small but at the same time it is a pain!