GRBL
Revision as of 18:48, 17 May 2014 by Rtwomey (talk | contribs) (→To compile GRBL and upload to the Arduino)
Contents
To compile GRBL and upload to the Arduino
- Download GRBL: https://github.com/grbl/grbl/archive/master.zip
- unzip grbl-master
- Open Terminal.
- Set the following environment variabels (i.e. run these commands in the terminal):
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.
- NOTE: replace
- 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
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