Arduino UNO With CNC Shield and DRV8825 Setup

Hello, I am new to this forum, and new to using an Arduino to control servos and motors. I noticed something right off, however, that I have not seen in any tutorials, instruction guides, videos, or in any posts here using search. I may not be using the right key search words, however.

I am using an Arduino that was ordered with a CNC Shield, and am installing DRV8825 carriers on the shield instead of the A4988 carriers that came with the kit. The kit states the shield can be used with either the A4988 or DRV8825. However, per the schematic for the DRV8825, pin 18 is nFAULT, but on the A4988 it is VDD. Every CNC Shield, including the one I am working with, has pin 18 tied to VDD. This effectively disables the output of FAULT being used to detect over-current or over-temperature conditions. It also prevents nSLEEP from being used if VDD is tied via nFAULT as it is in this system. I have not been able to identify the manufacturer of the carrier or shield boards, but nFAULT and nSLEEP are tied directly together.

Does no one use the nFAULT and nSLEEP lines? The schematics I have found so far show VDD tied to nSLEEP and nRESET, and no connection to nFAULT. By the functional diagram nFAULT looks to just be a current sink, so would be floating if there is no fault. With VDD on nFAULT, would the pin be damaged if there was a fault? It will sink 5mA max. I do not like the idea of VDD sitting on a sink, so I will be modifying this setup.

@dahop, your topic has been moved to a more suitable location on the forum. Installation and Troubleshooting is not for problems with your project :wink: See About the Installation & Troubleshooting category.

I'm not familiar with motorshields.

Can you post links to the schematics of the shields?
Are there code examples for those shields?

I was not sure which one to post this in, since I have not even reached connecting motors, high voltage, or high current yet. I will be picking up the boards today, and will spend some time analyzing them more. I will post results here. I have the information on this kit. The kit is a Longruner LKB02 3D/CNC kit, available from Amazon at https://www.amazon.com/Longruner-Arduino-Professional-Mechanical-LKB02/dp/B072N4FMRN.

The DRV8825 Carriers seem to be variants of the Pololu boards, with a zero ohm jumper (Rx) added between V3P3OUT and and R1 (Current Adjust). nFAULT is connected to nSLEEP via a 10kohm resistor. The current sense resistors are 0.25ohms.

The Carrier wiring shows VDD connected to nFAULT, which does not allow detecting a fault and may damage that pin in the event of a fault.


This setup is not right as I see it. It works, that is all I can say for it. R4 is in the wrong place, it should be right before the split to R5 and IC Pin 18.

The CNC Shield seems to be a clone of the Protoneer V3.00 board.

I have this same board and driver but cannot get it to work at all.

on breadboard you give 5v to the RST and SLEEP pins to enable the board, but on the CNC shield this is not possible

Is it actually possible to use this shield with 8825 driver on Arduino... if so, how?

On the CNC shield V3 the enable pin is tied HIGH so that the steppers are disabled by default. One must enable the steppers in code. Set the pinMode of Uno pin 8 to OUTPUT and digitalWrite pin 8 to LOW to enable the steppers.

Yes it is. I have 3 CNC shields on Unos and populated with the DRV8825 drivers that work just fine. Just plug the drivers into their respective headers making sure that they are oriented properly and set the coil current limits and they should work just fine. Set the microstepping jumpers before plugging in the drivers.

Will this board work with Merlin software

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.