Arduino CNC Shield: All You Need to Know

What Is CNC?

Image of: What Is CNC?
A CNC router is typical subtractive manufacturing (Source: Real Digital Operations)

The roots of computer numerical control (CNC) machines go way back to the 1940s, when they were simply numerically controlled. These early machines relied on punched tape to control existing tools. With the advent of the computer in the 1960s, the CNC machine was born. Today, you’ll find CNC machines everywhere, in the form of tools like routers and lathes, with capabilities up to five axes.

CNC machines replace a human operator (at least for the bulk of the work!) and can repeat the same task over and over again with the same precision. A CNC router, for example, uses a specialized drill bit to carve out material such as metal or wood to create parts like gears or molds for injection molding machines.

At the heart of the CNC machine is the computer, which is used to control the various motors on the machine. Attached to the computer is a controller, which is in turn connected to the motors of the CNC machine. Putting the two together, an Arduino microcontroller and a CNC shield are the perfect pair for the task of controlling CNC machines.

In this article, we’ll dive straight into the world of CNC shields, including what options exist. But first, let’s go over more about Arduinos and how they work!

Back to Contents

Advertisement
Advertisement
Advertisement
Arduino CNC Shield: All You Need to Know

What Is Arduino?

The Arduino Uno is just one of the many types of Arduino options available
The Arduino Uno is helpful if you have an Ender 3 or Pro (Source: SolidSmack)

The first Arduino device was developed in Italy in 2005 as a low-cost way for students to learn about programming. In fact, many early 3D printers (notably from Ultimaker) and drone flight controllers were built using the Arduino. Fast forward to now, and uses for Arduinos are vast, ranging from simple robots to alarm systems to automated watering systems.

The Arduino comes in various form factors, such as the Uno, Mega, Nano, Micro, and Leonardo. Each model has its own unique specifications and size.  For example, the Arduino Uno has a size of 68.6 x 53.4 mm, with 14 digital I/O pins accessible to the programmer. By comparison, the Arduino Mega lives up to its name with a footprint measuring 101.52 x 53.3 mm and a total of 54 digital I/O pins.

As impressive as the hardware is, it’s only part of what makes up the Arduino. The Arduino IDE (Integrated Development Environment) provides the software side, which anyone can use with a free account. It’s a very popular tool for not only programming your Arduino but also many other microcontrollers, such as the ESP32. Many extension programming libraries have been written for use by Arduino IDE.

Turning back to the hardware, the Arduino’s standard electrical outputs can only do so much, and that’s where shields come in. That’s because the functionality of an Arduino can be extended using an expansion card, called a “shield”, which sits on top. Some examples include Ethernet shields, prototyping shields, and microSD shields. In this article, though, we’ll be focusing on another popular option: the CNC shield.

Back to Contents

Advertisement
Advertisement
Advertisement
Arduino CNC Shield: All You Need to Know

A Solid Shield Choice: Protoneer

An Arduino Uno below a CNC shield
An Arduino Uno below a CNC shield (Source: Protoneer)

The CNC shield by Protoneer is a solid choice for your Arduino Uno. (We’ll be using the Uno as an example of an Arduino, but the Protoneer can fit other Arduinos of the same size like the Zero, Leonardo, etc.)

The shield itself consists of the red board in the picture with three smaller green boards that are used to control motors. The three green boards are called the motor driver boards and correspond to the X-, Y-, and Z-axes. An additional motor driver may be added for a fourth axis called ‘A’ (the empty slot in the picture).

For a typical 3-axis CNC router, the X-motor controls the movement of the router bit for the X-axis (from left to right), the Y-motor controls the Y-axis movement, and the Z-motor controls the height. It’s through a combination of these motors that the CNC router can carve out three-dimensional shapes from a piece of stock material like wood, plastic, or steel.

The CNC shield also provides pins for connecting limit switches to your machine. A limit switch is a small and simple on/off switch designed to be engaged when the toolhead hits one of its physical limits. With a limit switch engaged, the cutting tool is programmed to stop moving in the direction represented by the switch. Limit switches are also used to “home” the cutting tool so that it starts each job in the same position.

The CNC shield has pins for X-, Y-, and Z-limit switches in both the maximum and minimum directions. Pins for e-stop (emergency stop), resume, hold, and abort buttons are also present on the CNC shield. An e-stop button is common on CNC machines and often involves a locking on/off switch used to stop the machine in the event of an emergency. Finally, the CNC shield provides power to the motors through a separate 12-36 V power input (the blue terminals in the picture).

Now that we know more about the features of CNC shields, let’s take a look at the firmware needed to run them.

Protoneer CNC Shield v3.51
Commissions Earned Check price at

Back to Contents

Advertisement
Advertisement
Advertisement
Arduino CNC Shield: All You Need to Know

Firmware

How does a CNC machine work?
How a CNC machine works (Source: Colin Dow via All3DP)

In order to use the CNC shield, firmware must be loaded onto your Arduino. One of the most common options for CNC on the Arduino is called GRBL.

Using GRBL, the motors on the CNC shield (through the Arduino) are controlled using a separate computer. Programs such as Universal Gcode Sender, LinuxCNC, and Mach 4 may be used on the host computer, and these programs send commands to the CNC controller in the form of G-code.

In order to load (or “flash”) firmware, such as GRBL, a tool like Arduino IDE is used. With it, the GRBL source code is compiled and uploaded to the Arduino through a USB connection. This process may take a few minutes and you can run into problems if there are any errors in the source code.

An easier and much quicker method would be to upload a pre-compiled version of GRBL in the form of a HEX file to the Arduino. A tool such as XLoader provides a simple way to do so.

Back to Contents

Advertisement
Advertisement
Arduino CNC Shield: All You Need to Know

Other Shield Options

The GRBLduino Uno Shield can support up to four axes
The GRBLduino Uno Shield can support up to four axes (Source: Tindle)

In the above, we focused on the CNC shield by Protoneer for your Arduino. However, there are more CNC shields available. The following are some additional models that you might consider:

GRBLduino Uno

The GRBLduino Uno Shield (~$22) includes the following features:

  • Designed to work with motor power supplies up to 45 V DC
  • Max and min end stop terminals for each axis (X, Y, and Z)
  • Emergency stop, abort, hold, and resume connections
  • Spindle speed (PWM) and direction connections
  • Probe and coolant connections
  • Support for up to four axes (motor drivers not included)

Adafruit CNC V5

The Adafruit CNC Shield V5 (~$63) is a three-axis CNC shield. Among its notable features are:

  • Designed to work with motor power supplies of 12-30 V DC
  • Hardware 3-axis (X, Y, Z)
  • 3x TI DRV8818 stepper drivers included

Kuman CNC

The Kuman CNC shield (~$19) is a DIY kit featuring the following:

  • Designed to work with motor power supplies up from 12-36 V DC
  • 4-axis support (X, Y, Z, and A)
  • A-axis can duplicate the X-, Y-, or Z-axis
  • Max and min end stop terminals for each axis (X, Y, and Z)
  • Coolant enabled

Back to Contents

Advertisement
Advertisement

Lead image source: DIY Projects

License: The text of "Arduino CNC Shield: All You Need to Know" by All3DP is licensed under a Creative Commons Attribution 4.0 International License.

CERTAIN CONTENT THAT APPEARS ON THIS SITE COMES FROM AMAZON. THIS CONTENT IS PROVIDED ‘AS IS’ AND IS SUBJECT TO CHANGE OR REMOVAL AT ANY TIME.

Stay informed with notifications from All3DP.

You get a notification when a new article is published.

You can’t subscribe to updates from All3DP. Learn more… Subscribe to updates

You can’t subscribe to updates from All3DP. Learn more…

Advertisement