CNC Shield V3 for Arduino

£ 3.55


The Arduino CNC Shield makes it easy to get your CNC projects up and running in a few hours. It uses open source firmware on Arduino to control 4 stepper motors using 4 A4988 Stepper drivers, with this shield and the Arduino you can build all kinds of robotics or CNC projects including CNC routers, laser cutters and even pick & place machines.

  • GRBL 0.8c compatible. (Open source firmware that runs on an Arduino UNO that turns G-code commands into stepper signals
  • 4-Axis support (X, Y, Z , A-Can duplicate X,Y,Z or do a full 4th axis with custom firmware using pins D12 and D13)
  • 2 x End stops for each axis (6 in total)
  • Spindle, Coolant enable and direction
  • Uses removable Pololu A4988 compatible stepper drivers. (A4988, DRV8825 and others)
  • Jumpers to set the Micro-Stepping for the stepper drivers. (Some drivers like the DRV8825 can do up to 1/32 micro-stepping )
  • Compact design.
  • Stepper Motors can be connected with 4 pin molex connectors.
  • Runs on 12-36V DC. (At the moment only the Pololu DRV8825 drivers can handle up to 36V)
  • 1 x CNC Shield V3.0 (Arduino NOT included)

CNC Shield V3 for Arduino


  1. Plug the shield into an Arduino board with a pre-installed copy of the GRBL Firmware.
  2. Open up a serial connection to the Arduino board and check if GRBL is running.
  3. Pololu stepper drivers need adjustment and it’s good to have a read through their online manuals at
  4. Testing each stepper controller socket individually is critical.
    1. Make sure the external high voltage power is not power-up or connected
    2. Connect a stepper motor to the stepper controller socket you want to test. This is very important because the Pololu Stepper drivers are designed to ramp up the current till it reaches the needed current to run. Without a stepper motor connected there will be nothing to consume the current and you can end up damaging the stepper driver if it over-heats in the process.
    3. Next, install the stepper motor driver ensuring that the enable pin on the driver aligns with the enable pin on the shield.
    4. Connect the external power to the shield, making sure you connect the power up the right way. If not connected the right way you can cause damage to the shield, stepper motor drivers and Arduino board.
    5. Send a g-Code to the Axis you are testing. The stepper motor should move if everything is working. (GCode Example : “G1 X5? or “G1 X0? or “G1 Y5?)
    6. Repeat the above process with each axis using the same stepper driver.(Testing with one driver reduces the risk of damaging multiple stepper drivers at the same time.)
  5. After all the above have been checked connect all the drivers and power up the system.
The Arduino CNC Shield supports power supplies up to 36V. That does not mean that all Pololu Stepper drivers can run that high. A4988 drivers are not designed to run at 36V and will blow up the first time you power them up at that voltage. The 36V are for drivers like the Pololu DRV8825 that can run on +36V.
  • When the stepper drivers are enabled they will make funny vibrating noises. This is normal. For more details have a look at this wiki page(Chopper Drivers).
  • The stepper drivers will get warm and need cooling if they are going to be used for long periods. Small heat sinks and extractor fans are advised.
  • Having extra stepper drivers is always handy.
  • Some of the stepper drivers have thermal protection and will cut out if the temperature gets to high. This is a good sign that they need cooling or that they are over powered.
Jumper Settings

Jumpers are used to configure the 4th Axis, Micro stepping and endstop configuration.
The next few sections explains how its done.

4th Axis Configuration

Using two jumpers the 4th axis can be configured to clone the X or Y or Z axis. It can also run as an individual axis by using Digital Pin 12 for Stepping signal and Digital Pin 13 as direction signal. (GRBL only supports 3 axis’s at the moment)


Clone X-Axis to the 4th stepper driver(Marked as A)


Clone Y-Axis to the 4th stepper driver(Marked as A)


Clone Z-Axis to the 4th stepper driver(Marked as A)


Use D12 and D13 to drive the 4th stepper driver(Marked as A)

Configuring Micro Stepping for Each Axis

Each axis has 3 jumpers that can be set to configure the micro stepping for the axis.


In the tables below High indicates that a Jumper is insert and Low indicates that no jumper is inserted.

Pololu A4988 Stepper Driver configuration:

MS0 MS1 MS2 Microstep Resolution
Low Low Low Full step
High Low Low Half step
Low High Low Quarter step
High High Low Eighth step
High High High Sixteenth step

Pololu DRV8825 Stepper Driver configuration:

MODE0 MODE1 MODE2 Microstep Resolution
Low Low Low Full step
High Low Low Half step
Low High Low 1/4 step
High High Low 1/8 step
Low Low High 1/16 step
High Low High 1/32 step
Low High High 1/32 step
High High High 1/32 step