Arduino CNC Shield
Arduino CNC Shield
Protoneer.co.nz
Electronic Prototyping Specialists
Do it yourself CNC projects are popping up everywhere and we decided that we wanted to contribute to the growth.
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)
Opensource Hardware – Arduino has opened up the power of micro-controllers to everyone. (Easy but powerful computing)
Evolving Development – We are keen to improve on the design and welcome all feedback.
Availability
Board Layout
Bill Of Materials
Assembly
GRBL Software/Firmware
Versions
Gerber Files
License and Warnings
Extra Reading
Board Layout
The following image displays the functionality of the Arduino pins as used by GRBL.
GRBL Pin Layout
We have designed the Arduino CNC Shield to use all the pins that GRBL implemented. We have also added a few extra pins to make things a
little easier.
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)
Bill Of Materials
Arduino CNC Shield PCB
100uF 50v 8mm High Capacitors (493-3289-ND)
Jumpers (A26228-ND)
8-Pin Female Headers(S7006-ND)
Male Headers(A26514-40-ND)
Tactile Switch (450-1650-ND)
Screw Terminal 5mm (A97996-ND)
Pololu Stepper Drivers . (Please note that the shield was designed to work with A4988 compatable polulu drivers)
10K pull-up resistors
Assembly Instructions
Click here for the Assembly instructions for the Arduino CNC Shield V3.XX
Click here for the Assembly instructions for the Arduino CNC Shield V2.XX
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.
I have also written a few turorials on uploading the firmware onto an Arduino Board:
Versions
Version 3.10
Added Support for GRBL 0.9v with PWM Spindle.
Enlarged board to add a 4th Axis that can clone the X,Y or Z axis. With a 4th option to use pin D12-13 to control it.(Setting up the 4th
Axis)
Capacitors are mounted horizontally giving more clearance between them and the stepper drivers. Good for ventilation.
Added a pull-up resistor on the axis enable pins. This prevents the pin from being in a floating state.
Version 2.01
Added a 5V Breakout
Moved RX/TX pins to the side so that 26-Pin header can be used. Same as the headers on a Raspberry Pi.
Version 2.00
First official version of the CNC Shield.
Gerber Files
Arduino CNC Shield Ver3.00 – Gerber Files
CNC Shield by Protoneer.com is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
Based on a work at info.protoneer.com/1
Extra Reading
Build Your Own CNC Machine – By James Floyd Kelly and P. Hood-Daniel
CNC Machining Handbook: Building, Programming, and Implementation– By Alan Overby
Pololu Stepper Motor Drivers – http://www.pololu.com/catalog/category/120
Pololu FQA covering how to connect stepper motors – http://www.pololu.com/catalog/product/1182/faqs
GRBL Wiki including upload, setup and running – https://github.com/grbl/grbl/wiki/_pages
GRBL Supported G-Codes – www.shapeoko.com/wiki/index.php/Grbl