A4983 design validation

Hi guys.
I’m trying to make a CNC machine and hoping you guys can check my design and answer a few questions.
Parts used:

  • 3 x Pololu item #: 1202
  • 3 x Pololu item #: 1200
  • ATX power supply
  • 5V controller (there will be 7 lines from controller to driver boards - just for ‘STEPing’ - so I can control each motor individually + groups of 2 motors + all 3 at one time). Controller powered by one of the driver boards.


  • Is 420W power supply plenty? rated at 20A, 12V out
  • Regarding the motors:
    • VREF should read .48 for these motors ? 1.2 * 8 * .05
    • Can measuring/adjusting VREF be done wo motor being connected, just STEP being high?
    • I see that I can get max torque at 1500 pps. Can you explain pull out torque in reference to stall torque? definition on the web involves speed as well
    • Also is 1500 pps equal to 1500 Hz for a PWM signal on the STEP pin?
    • The diagram is for 24V, how does that change for 12V?
    • Is there some diagram for speed, torque based on PWM and input voltage? (speed would be based on material being cut. for selected speed I want max torque motor can output)

Thank you for your time. I hope questions are not confusing. (learning electroincs from the web)


Here are the answers to your questions:

  • Power supply sounds fine.
  • VREF 0f 0.48 sounds fine
  • If you’re just measure the VREF voltage, you don’t need to have a motor connected (I don’t know why you think STEP is relevant). If you want to actually measure a current, you need to have the motor there.
  • That torque/speed chart does not go to 0 speed, which is your stall torque. Stall torque is when the motor is just trying to hold a position, which is when you get the highest torque you can get with a stepper. The faster you go, the less torque you get; that’s why the torque drops off as speed picks up.
  • 1500pps is a pulse rate of 1500 Hz (pps is pulses per second, Hz is a more general cycles per second). You should not be calling your signal PWM, which has to do with duty cycle (percentage on time), not frequency.
  • In general, higher voltages should let you get higher step rates, so at 12 V, your torque would probably drop off a bit quicker than at 24V.
  • We don’t have any diagrams beyond what is on the web page. It’s not like you know how much torque you lose in your mechanism (e.g. through friction), so you’ll need to do some benchmark tests yourself, anyway. If you start skipping steps, you’ll have to slow down.

- Jan

Thank you for your answer.
I got the PWM from looking at the datasheet for the chip and the fact that I’ll probably use a PWM output on my controller.
The motor will turn when signal on STEP pin changes from low to high and they must ‘stay’ there for a min of 1us.
So for the 1500 pps I will ‘send’ a PWM signal on STEP pin with 1500Hz frequency and 50% duty cycle (well above the minimum of 1us required for the low-high transition)
That also tells me I will get 1.8 * 1500 / 360 = 7.5 rotations per second. From there I can calculate the liniar distance traveled.
Let me know if you think the above is correct.

I don’t see the datasheet calling the STEP input “PWM” anywhere. I also don’t know why you have “stay” in quotes. Other than that, the only warning I have is to be careful with your hardware PWM module. While they generally can be used to generate variable frequencies, they might have various glitches that you have to be careful about to avoid getting spurious extra steps in your motors. If you have access to an oscilloscope, you should definitely use it.

- Jan

Data sheet does not mention PWM, it’s the 1st thing that I thought of that I can use to generate the pulses.
I use quotes when I’m not sure of the terminology.
As far as glitches I’ll have to check how good the controller is. Working on a prototype right now so I need the proof of concept, should be fine.
I forgot about the heat sinks that I’ll require to run at 1.2A. Will performance of motor be drastically affected if running it at 900 mA? (I think the controller can run under 1A without the heat sinks) From what I can tell right now with modest measuring tools 1.5 kg/cm torque should be fine.
Thank you again for your feedback.

I’m just not sure in what sense you’re not sure about ‘stay’. It’s not some particularly technical term, so you should be fine with that as long as you mean something like the voltage not changing or the state not changing.

Torque is roughly proportional to current, so at 900 mA you should expect about 75% of the torque you get at 1.2 A.

- Jan

Great, I think I know enough to start playing.
Thank you.

Hi guys.
Check out the result: https://forum.pololu.com/t/cnc-prototype/3414/1

It is time to start using some professional CAM software and that means using the parallel port on my PC.
I have one question regarding A4983:
From what I understand I must connect the ground of the parallel port to each driver. But on what pin?
I thought ground for the ATX powering the CNC but it doesn’t sound right. There are 12V from the CNC’s ATX and from what I know parallel uses TTL thus 5V.
Than again both PC and CNC are powered from the house thus sharing the ground?? :question:

I don’t understand how multiple power sources on the same circuit work toghether (the gods of Google were speaking of things I don’t get). One of my 1st robots had 2 baterries one to power motors and one for the controller generating the PWM. Boy was that weird. It was more like a zoombie :smiley: . Sometimes in the middle of the night it would start humming and the wheels would turn just a little. :open_mouth: Removed the controller battery and created a voltage regulating circuit for the controller. It started working as expected.

Thank you again for your help.

I’m not sure what you are confused about, but getting your grounds figured out and connected correctly is very important. Basically, all your currents, including the currents for your signal lines, need to flow in some loop. Also, any voltage, such as on your signal lines, has to be relative to some reference, which is usually ground: you cannot just connect one line and expect to know if it’s “high” or “low” if that reference is not there. I’m not sure why you are talking about 12V and 5V; all your supplies should still have the zero side, and that’s what needs to be connected. And when you do connect them, make sure you are aware of which currents you are expecting to flow where.

- Jan

I agree and understand that.

If I have 2 loops and they have different potentials 12V and 5V and I connect the grounds. Isn’t the difference of 7V going to interfere with either circuit? Maybe 7 volts has a negligible effect but what about higher voltages (one loop at 110V and one at 5V). There must be a reason they have opto isolators (not trying to be smart just to understand. Also a MOSFET transistor should be able to separate the 2 loops).

Not sure I understand that. Do you refer to polarity of circuit components?

This is begining to be like an EE course. :smiley:
I really appreciate your time and patience.

I don’t know why you are concerned about the 7V. Once you connect the grounds, sure, the 5V rail will be 7V from the 12V rail, but so what? It’s not like you’re connecting anything from the 12V rail to the 5V rail. A MOSFET will not isolate the two loops: the two loops will meet at the MOSFET since it only has 3 leads.

For the current thing, I’m not talking about polarity at all. You need to draw out your circuit and know which currents are flowing where so that you don’t end up relying on a ground connection through your PC’s motherboard to your wall power and back through some other power supply.

- Jan

Regarding the MOSFET: isolate as in prevent the loop that uses collector, emiter from ‘pushing’ current through the gate used by the 2nd loop. Not sure if it’s clear what I’m trying to say. Opto isolator would prevent that because you couldn’t transfer/induce current from the diode transistor back to the led. MOSFET would use the field on the gate. That’s my understanding. Loops still communicate in both cases but only one can be an input to the other not both ways.

Current thing: the CNC’s board would not change at all. All should flow the same. Just connect the ground from each driver to one of the grounds of the parallel pins to close the loops.
Wish me luck.

It sounds like you should still try to understand this current stuff more before you get too invested. If you are making necessary ground connections, current will flow through them; it’s also possible for unwanted current to flow through the new connection as well (e.g. current that previously would have flowed through a different ground connection). It might be useful to draw up a clean diagram of the basic connections so that you can make sure you know where the currents are and so that you can easily communicate your setup to someone else.

- Jan

I think I understand enough in a simple circuit (like the CNC’s board). For some reason (maybe smth I red/imagined) I thought that multiple power sources don’t play nice toghether if there is a difference in potential (that 7V). From what you’re saying that’s not a problem if grounds are connected. Also don’t connect the loops in such a way that current finds a new easier path to ground through the wrong part of the overall circuit (agreed).

The rest of the understanding ( = master - enough) will come in time I hope. Learning by yourself can sometimes implant the wrong ideeas in your head. (big THANKS for you’re site and others alike that help DIY in a field like EE)

Diagrams are indeed the way. Trying to learn Eagle. I also want to have my 1st PCB for the CNC once the prototype works. (final version will have opto isolators but for now I want to cut some fancy parts that my software cannot handle)
A multimeter and a old computer will ensure success.

Just for the heck of it I’ll upload the Eagle schematic when is done.
Only if there were more hours in a day…

Finally after more digging and before I get to draw my own.


The drivers show a common pin. Is that any GND pin on the A4983?
I guess if I’ve found this sooner I could have skipped several posts :smiley:. What a good diagram can do.

I didn’t look at those images too carefully, but you can see they are trying to make points of how the grounds are connected together at one point. I am not sure what that common wire is, but it looks like you might connect the logic ground the same way. By the way, be careful about differentiating the A4983 chip from our carrier board for it. On our carrier, the GND pin next to the VMOT pin is intended to be the main power ground; the GND pin next to VDD is intended to be the connection for logic ground (they are connected on the board).

- Jan