Home > News & Updates > Electronics News Updates > Arduino CNC Shield – 100% GRBL Compatable

Arduino CNC Shield – 100% GRBL Compatable

Summary of Arduino CNC Shield – 100% GRBL Compatable


This article introduces a compact, modular DIY CNC shield designed to fit an Arduino Uno size. It features 100% GRBL compatibility, doubled limit switch pins for each axis, emergency stop connectivity, and dedicated pins for spindle/coolant control. The design supports four axes with optional jumpers for configuration in Version 3.00 and includes headers for I2C and serial communication to facilitate future expansions like heat control or external command buttons.

Parts used in the DIY CNC Shield Project:

  • Arduino Uno
  • Individual Stepper Motor Drivers
  • Limits Switches (Top/+ and Bottom/-)
  • Emergency Stop Switch
  • Spindle and Coolant Control Pins
  • Pause/Hold, Resume, and Abort Buttons
  • Serial Pins (D0-1)
  • I2C Pins (A4-5)
  • Version 3.00 Jumpers
  • Comms Header (RX+TX)
  • Stepper Control Header

Do it yourself CNC projects are popping up everywhere and we decided that we wanted to contribute to the growth.

Here are a few of our design goals:

  • Modular Design – We wanted to do more than just keep cost down. We wanted things to be reusable and up-gradable. (Arduino , Individual Stepper Motor Drivers and more…)
  • Compact Design – Squeezing a 4 axis design into a board the same size and Arduino Uno.
  • Opensource Software – 100% GRBL compatible (G-Code Interpreter)
  • Evolving Development – We are keen to improve on the design and welcome all feedback.

Extra pins:

  • Limit switch pins have been doubled up so that each axis has a “Top/+” and “Bottom/-“. This makes it easier to install two limit switches for each axis. (For use with a normally open switch)
  • EStop – These pins can be connected  to an emergency stop switch. This does the same as the RESET button on the Arduino board. (We do advice that an extra emergency button also be installed that cuts power to all machinery. A REAL EMERGENCY BUTTON)
  • Spindle  and coolant control has their own pins.
  • External GRBL Command Pins have been broken out allowing you to add buttons for Pause/Hold , Resume  and Abort.
  • Serial Pins (D0-1) and I2C Pins (A4-5) have their own break out pins for future extensions. I2C can later be implemented by software to control things like spindle speed or heat control.
  • Version 3.00 of the board added a jumpers to configure the 4th axis(Clone the other axis’s or run from Pin D12-13), Comms Header(RX+TX , I2C) and a Stepper Control Header(All Pins needed to run 4 steppers)

GRBL Software/Firmware

GRBL is opensource software that runs on an Arduino Uno that takes G-Code commands via Serial and turns the commands into motor signals.

The GRBL source Code is located here.

I have also written a few turorials on uploading the firmware onto an Arduino Board:

For More Details: Arduino CNC Shield – 100% GRBL Compatable

Quick Solutions to Questions related to DIY CNC Shield Project:

  • What is the primary design goal of this project?
    The project aims for a modular, reusable, upgradable, and compact design that fits on a board the same size as an Arduino Uno.
  • Is the software used in this project open source?
    Yes, the project uses 100% GRBL compatible G-Code Interpreter software which is open source.
  • How are limit switches configured on the board?
    Limit switch pins are doubled up so each axis has a Top/+ and Bottom/- connection for installing two normally open switches per axis.
  • What function do the EStop pins serve?
    These pins connect to an emergency stop switch that performs the same action as the RESET button on the Arduino board.
  • Can I add external buttons for machine control?
    Yes, external GRBL Command pins allow you to add buttons for Pause/Hold, Resume, and Abort functions.
  • What new features were added in Version 3.00 of the board?
    Version 3.00 added jumpers to configure the 4th axis, a Comms Header for RX+TX and I2C, and a Stepper Control Header.
  • How can I use I2C pins for future extensions?
    I2C pins can be implemented via software later to control things like spindle speed or heat control.

About The Author

Ibrar Ayyub

I am an experienced technical writer holding a Master's degree in computer science from BZU Multan, Pakistan University. With a background spanning various industries, particularly in home automation and engineering, I have honed my skills in crafting clear and concise content. Proficient in leveraging infographics and diagrams, I strive to simplify complex concepts for readers. My strength lies in thorough research and presenting information in a structured and logical format.

Follow Us:
LinkedinTwitter
Scroll to Top