GRBL

From Robert-Depot
Revision as of 18:48, 17 May 2014 by Rtwomey (talk | contribs) (To compile GRBL and upload to the Arduino)

Jump to: navigation, search

<<< back to Wiki Home

To compile GRBL and upload to the Arduino

export AVRPATH=/Applications/Arduino.app/Contents/Resources/Java/hardware/tools/avr
export DEVPATH=/dev/tty.usbmodem1411
      • (note: DEVPATH should match the name of your currently connected arduino. you can find this from arduino software under Port selection)
export GRBLHEX=grbl.hex
  • Add the avr compiler's to your PATH. type this into the terminal:
export PATH="$PATH:$AVRPATH/bin"
  • Change to the grbl directory:
cd ~/Downloads/grbl-master
    • NOTE: replace ~/Downloads with the full path where you downloaded GRBL.
  • Compile GRBL. In the grbl-master director, type: make. GRBL should compile.
  • Upload GRBL to the arduino. From the grbl-master directory, run:
$AVRPATH/bin/avrdude -C$AVRPATH/etc/avrdude.conf -pm328p -carduino -P$DEVPATH -D -Uflash:w:$GRBLHEX

adapted from here: https://github.com/grbl/grbl/wiki/Flashing-Grbl-to-an-Arduino

How to connect pins of Arduino for GRBL

Grbl_Pin_Diagram.png https://github.com/grbl/grbl/wiki/Connecting-Grbl

What the GRBL settings mean, and how to change them

GCode Command Reference

These are the standard GCode commands implemented by GRBL:

My GRBL Settings

$0=28.175 (x, step/mm)
$1=28.175 (y, step/mm)
$2=250.000 (z, step/mm)
$3=10 (step pulse, usec)
$4=17780.000 (default feed, mm/min)
$5=17780.000 (default seek, mm/min)
$6=56 (step port invert mask, int:00111000)
$7=25 (step idle delay, msec)
$8=500.000 (acceleration, mm/sec^2)
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$15=0 (invert step enable, bool)
$16=0 (hard limits, bool)
$17=0 (homing cycle, bool)
$18=0 (homing dir invert mask, int:00000000)
$19=25.000 (homing feed, mm/min)
$20=250.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=1.000 (homing pull-off, mm)

current 20130703 pre-homing save

Grbl 0.8c ['$' for help]
G20ok
G91M3ok
$0=6.964 (x, step/mm)
$1=6.964 (y, step/mm)
$2=6.964 (z, step/mm)
$3=10 (step pulse, usec)
$4=20320.000 (default feed, mm/min)
$5=65000.000 (default seek, mm/min)
$6=56 (step port invert mask, int:00111000)
$7=25 (step idle delay, msec)
$8=900.000 (acceleration, mm/sec^2)
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=1 (report inches, bool)
$14=1 (auto start, bool)
$15=0 (invert step enable, bool)
$16=0 (hard limits, bool)
$17=0 (homing cycle, bool)
$18=0 (homing dir invert mask, int:00000000)
$19=25.000 (homing feed, mm/min)
$20=250.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=1.000 (homing pull-off, mm)

With Homing

$0=28.175 (x, step/mm)
$1=28.175 (y, step/mm)
$2=250.000 (z, step/mm)
$3=10 (step pulse, usec)
$4=500.000 (default feed, mm/min)
$5=10000.000 (default seek, mm/min)
$6=56 (step port invert mask, int:00111000)
$7=25 (step idle delay, msec)
$8=500.000 (acceleration, mm/sec^2)
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$15=0 (invert step enable, bool)
$16=0 (hard limits, bool)
$17=1 (homing cycle, bool)
$18=255 (homing dir invert mask, int:11111111)
$19=400.000 (homing feed, mm/min)
$20=2000.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=1.000 (homing pull-off, mm)

trying to improve continuation of stroke behavior

$0=6.964 (x, step/mm)
$1=6.964 (y, step/mm)
$2=6.964 (z, step/mm)
$3=10 (step pulse, usec)
$4=20320.000 (default feed, mm/min)
$5=65000.000 (default seek, mm/min)
$6=56 (step port invert mask, int:00111000)
$7=25 (step idle delay, msec)
$8=900.000 (acceleration, mm/sec^2)
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=1 (report inches, bool)
$14=1 (auto start, bool)
$15=0 (invert step enable, bool)
$16=0 (hard limits, bool)
$17=1 (homing cycle, bool)
$18=0 (homing dir invert mask, int:00000000)
$19=400.000 (homing feed, mm/min)
$20=10000.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=1.000 (homing pull-off, mm)
ok

GRBL 1 - 20131129

$0=6.964 (x, step/mm)
$1=6.964 (y, step/mm)
$2=6.964 (z, step/mm)
$3=10 (step pulse, usec)
$4=20320.000 (default feed, mm/min)
$5=65000.000 (default seek, mm/min)
$6=56 (step port invert mask, int:00111000)
$7=25 (step idle delay, msec)
$8=900.000 (acceleration, mm/sec^2)
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=1 (report inches, bool)
$14=1 (auto start, bool)
$15=0 (invert step enable, bool)
$16=0 (hard limits, bool)
$17=1 (homing cycle, bool)
$18=0 (homing dir invert mask, int:00000000)
$19=400.000 (homing feed, mm/min)
$20=10000.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=1.000 (homing pull-off, mm)

GRBL2 - 20131210

['$H'|'$X' to unlock]
$0=14.000 (x, step/mm)
$1=14.000 (y, step/mm)
$2=250.000 (z, step/mm)
$3=10 (step pulse, usec)
$4=2540.000 (default feed, mm/min)
$5=15240.000 (default seek, mm/min)
$6=32 (step port invert mask, int:00100000)
$7=25 (step idle delay, msec)
$8=1000.000 (acceleration, mm/sec^2)
$9=0.050 (junction deviation, mm)
$10=0.100 (arc, mm/segment)
$11=25 (n-arc correction, int)
$12=3 (n-decimals, int)
$13=0 (report inches, bool)
$14=1 (auto start, bool)
$15=0 (invert step enable, bool)
$16=0 (hard limits, bool)
$17=1 (homing cycle, bool)
$18=0 (homing dir invert mask, int:00000000)
$19=1000.000 (homing feed, mm/min)
$20=5000.000 (homing seek, mm/min)
$21=100 (homing debounce, msec)
$22=2.550 (homing pull-off, mm)

Buffer overflows

// Serial send and receive buffer size. The receive buffer is often used as another streaming
// buffer to store incoming blocks to be processed by Grbl when its ready. Most streaming
// interfaces will character count and track each block send to each block response. So, 
// increase the receive buffer if a deeper receive buffer is needed for streaming and avaiable
// memory allows. The send buffer primarily handles messages in Grbl. Only increase if large
// messages are sent and Grbl begins to stall, waiting to send the rest of the message.
// #define RX_BUFFER_SIZE 128 // Uncomment to override defaults in serial.h
// #define TX_BUFFER_SIZE 64

https://github.com/grbl/grbl/blob/master/config.h#L194