CNC Shield + DRV8825 taking power from USB?

Hi all,

Fair warning I’m an absolute beginner so there’s a good chance the problem isn’t actually what I’m thinking.
I’m using an AZDelivery DRV8825 Stepper Driver with a CNC Shield V3. I’m trying to adjust the max output on the driver using its little potentiometer, following these instructions. However, when I try to measure the voltage between the potentiometer and ground, I get a reading of zero.

The mysterious thing is, when I plug in the Arduino’s USB cable, then the same measurement will read a value in the range I’d expect (about 1.7V). At least, it will for a while until it overdraws the USB port on my laptop.

I’ve confirmed that the power supply for my CNC shield is yielding 12V at the screw terminals on the shield.

My stepper motor has been connected to the pins for the driver chip since before the first time I powered it on.

Does this mean there’s a problem with my CNC shield? Or is something else I’ve overlooked preventing the driver from getting wall power?

I’ll guess it’s either turned all the way down, The driver’s blown, or you aren’t making contact with the right pins with your DM probes.

When I last set up a 3D printer, I think I set the pot by trial & error - i.e. turned it down until it would no longer step and then turned it up a bit.

The important thing is not to adjust it while there is power - allegedly that’s an easy way to blow the driver chip.

Does the motor step?

I actually don’t know if the motor steps, because if I plug the arduino into my USB port it draws so much power that after maybe 10 seconds my laptop shuts the USB down to avoid getting damaged.

It sounds like you have a hardware issue - the USB is only supposed to be powering the Mega and the digital logic side of the stepper drivers. If it’s pulling enough to kill your laptop, something is very wrong. Did you solder up the board yourself?

No, I ordered it from Amazon here. I’m pretty confused, taking so much power from the Arduino input seems to defeat the whole point of the driver.

I just tried it again. With the USB plugged in, I read 1.5V on the driver. With it unplugged, I get zero. But the screw terminals in the CNC shield read 12V, so I don’t think there’s a problem with my power supply.

It does indeed, which is what makes me think it’s malfunctioning. Are the stepper drivers the right way round?

I’ve made sure to align the “EN” pins (red) are aligned, I’m not sure if I have the wires for the motors backwards (green).

The CNC shield came in a pack of three, so I tried swapping it out with another, and got the exact same result. No voltage on the driver with just wall power, 1.5v with USB power AND wall power, also zero with only USB power.

I wouldn’t worry about the driver voltage right now, you have problems to solve upstream of that.

Does this new shield pull too much from the laptop? Does it still do so if you remove the stepper? How does the Arduino behave without the shield?

-it’s not overloading my USB, and actually neither was the old one after the one first time.

-The arduino seems to function normally, I got GRBL onto it without any obvious trouble, although to be honest I don’t really know what to check, other than that it connects to the computer and I can upload code.

My inclination would be to try and step the stepper at this point then. Whether by custom code overwriting GRBL, sending a calibration piece to the system or some hand-crafted G-CODE.

So, I tried it with the Universal G-Code Sender, and I’m able to step the motor forwards and back. My USB hasn’t overloaded again.

Could it be that it’s working as intended, and I just didn’t realize that both power supplies are needed to configure the driver pot?

A follow up, shouldn’t the logic side also be powered by the CNC shield’s power supply? I’d rather not always have to tether the Arduino shield to my USB port if I can avoid it.

Neither supply is required to trim the driver pot. Both should be off when you mess with it.

If it’s stepping, you’re in good shape, although once there’s load on the motor you may need to tweak the pot again.

It depends on your shield, but the ones I’ve used always use USB power to the Arduino. There’s an expectation that something on the PC will be sending GCODE, so it has to be plugged in anyway.

OK. Even though it turned out to be somewhat of a goose chase, thanks a lot for your help bill.

But to make sure I fully understand, are you saying I should be able to read the voltage on the driver pot with everything unplugged? The only mystery is why I need both the logic power and the drive power to get a reading there.

If you want to measure voltage, then you will need power of course.

The point is that if you plan to move the pot, power should be off, which is a pain because you’re trying to read the voltmeter to tell you how to adjust it.

Got it. But should I only need the 12v wall power, or is normal to need BOTH the 12v wall power and the 5v USB power to get any reading?

I don’t know. I’ll guess that you need both because the Arduino controls the logic side pins on the driver, and it will need to be enabled. Some drivers are enable low though, so it may not matter.

The Pololu page for the DRV8825 has good instructions and a video on setting Vref.

Hi matt_johnson1253,

I can confirm for you that in order to set the Vref for your drivers on the CNC Shield you definitely do need to have both the 12V supply and the Arduino powered up. The CNC Shield provides the drivers with the 5V logic level supply it needs from the Arduino. See the following:


As you can see, without the 5V from the Arduino, the enable, reset and sleep pins will be low, hence the driver is disabled.

You can safely adjust the Vref voltage while the circuit is powered up with the stepper motor connected or not. Just don’t disconnect or connect the stepper motor while the circuit is powered up.

I have written an article explaining how to configure this type of stepper motor driver at Configuring Stepper Drivers, including how to calculate Vref. You might find this useful.

As a side note, in order to protect the USB port on your computer from overloading, I would suggest powering the Arduino from your 12V supply as well, using the DC jack socket on the board. If your power supply is not well regulated (or is actually higher than 12V), I would add in a low cost dc-dc converter as well. I have described how to do this at Arduino / CNC Shield Machine Controller.

Hope this helps!