GRBL workflow – Arduino

INSTALL WORKFLOW using an arduino uno and an arduino cnc shield:

1) Grbl is a motion control GCode Interpreter. The controller is written in highly optimized C to achieve precise timing and asynchronous operation. It is able to maintain up to 30kHz of stable, jitter free control pulses.
download GRBL 1.1 here

2) Flash the file to the arduino in various ways:
compile in the Arduino IDE
— download  the Arduino IDE for mac – pc – linux

____

get inspired from some nice examples from the original author

____

Protoneer directions for customized GRBL

 

 

GRBL

Grbl is a no-compromise, high performance, low cost alternative to parallel-port-based motion control for CNC milling. It will run on a vanilla Arduino (Duemillanove/Uno) as long as it sports an Atmega 328.

The controller is written in highly optimized C utilizing every clever feature of the AVR-chips to achieve precise timing and asynchronous operation. It is able to maintain up to 30kHz of stable, jitter free control pulses.

It accepts standards-compliant g-code and has been tested with the output of several CAM tools with no problems. Arcs, circles and helical motion are fully supported, as well as, all other primary g-code commands. Macro functions, variables, and most canned cycles are not supported, but we think GUIs can do a much better job at translating them into straight g-code anyhow.

Grbl includes full acceleration management with look ahead. That means the controller will look up to 18 motions into the future and plan its velocities ahead to deliver smooth acceleration and jerk-free cornering.

download at github

Arduino CNC Shield V3

Features:

  • GRBL 0.8c compatible. (Open source firmware that runs on an Arduino UNO that turns G-code commands into stepper signals https://github.com/grbl/grbl)
  • 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 enable and direction
  • Coolant enable
  • Uses removable Pololu A4988 compatible stepper drivers. (or DRV8825)
  • Jumpers to set the Micro-Stepping for the stepper drivers. (max 1/16)
    (The DRV8825 board can do up to 1/32 micro-stepping)
  • Stepper Motors can be connected with 4 pin molex connectors.
  • Runs on 12-36V DC. (Only the Pololu DRV8825 can handle up to 36V)

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)Arduino-CNC-Shield-V3-4th Clone X-Axis

Clone Y-Axis to the 4th stepper driver(Marked as A)Arduino-CNC-Shield-V3-4th Clone Y-Axis

Clone Z-Axis to the 4th stepper driver(Marked as A)Arduino-CNC-Shield-V3-4th Clone Z-Axis

Use D12 and D13 to drive the 4th stepper driver(Marked as A)Arduino-CNC-Shield-V3-4th D12-D13

End Stop Configuration

By default GRBL is configured to trigger an alert if an end-stop goes low(Gets grounded). On the forums this has been much debated and some people requested to have active High end-stops. The jumpers in the picture provides the option to do both. (To run with default setting on GRBL the jumper need to be connected like the left shield in the image below)(This Jumper was only introduced in Version 3.02)
End-stop Configuration Active LOWorHIGH

End-stop switches are standard “always open” switches. An End-stop gets activated when the end-stop pin connects to ground(When setup with default GRBL settings).
EndStopWiring

Configuring Micro Stepping for Each Axis

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

Arduino_CNC_Shield_Micro_Stepping_Settings

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