Quick-Links:
More up-to-date documentation is in the/doc/markdown/directory
of the source code. This page is for quick reference. If you spot a
problem, feel free to update it or notify us.
Getting Started
First, connect to Grbl using the serial terminal of your
choice.
Set
the baud rate to115200as
8-N-1 (8-bits, no parity, and 1-stop bit.)
Once
connected you should get the Grbl-prompt, which looks like
this:
Grbl 1.1e ['$' for help]
Type
$ and press enter to have Grbl print a help message. You should not
see any local echo of the $ and enter. Grbl should respond
with:
[HLP:$$ $# $G $I $N $x=val $Nx=line $J=line $SLP $C $X $H ~ ! ? ctrl-x]
The
‘$’-commands are Grbl system commands used to tweak the settings,
view or change Grbl's states and running modes, and start a homing
cycle. The last fournon-'$'
commands are realtime control commands that can be sent at anytime,
no matter what Grbl is doing. These either immediately change
Grbl's running behavior or immediately print a report of the
important realtime data like current position (aka DRO).
##Grbl Settings
$$ - View Grbl
settings
To
view the settings, type$$and
press enter after connecting to Grbl. Grbl should respond with a
list of the current system settings, as shown in the example below.
All of these settings are persistent and kept in EEPROM, so if you
power down, these will be loaded back up the next time you power up
your Arduino.
Thexof$x=valindicates
a particular setting, whilevalis
the setting value. In prior versions of Grbl, each setting had a
description next to it in()parentheses,
but Grbl v1.1+ no longer includes them unfortunately. This was done
to free up precious flash memory to add the new features available
in v1.1. However, most good GUIs will help out by attaching
descriptions for you, so you know what you are looking
at.
$0=10
$1=25
$2=0
$3=0
$4=0
$5=0
$6=0
$10=1
$11=0.010
$12=0.002
$13=0
$20=0
$21=0
$22=1
$23=0
$24=25.000
$25=500.000
$26=250
$27=1.000
$30=1000.
$31=0.
$32=0
$100=250.000
$101=250.000
$102=250.000
$110=500.000
$111=500.000
$112=500.000
$120=10.000
$121=10.000
$122=10.000
$130=200.000
$131=200.000
$132=200.000
$x=val - Save Grbl
setting
The$x=valcommand
saves or alters a Grbl setting, which can be done manually by
sending this command when connected to Grbl through a serial
terminal program, but most Grbl GUIs will do this for you as a
user-friendly feature.
To
manually change e.g. the microseconds step pulse option to 10us you
would type this, followed by an enter:
$0=10
If
everything went well, Grbl will respond with an 'ok' and this
setting is stored in EEPROM and will be retained forever or until
you change them. You can check if Grbl has received and stored your
setting correctly by typing$$to
view the system settings again.
Grbl's$x=valsettings
and what they mean
NOTE: From
Grbl v0.9 to Grbl v1.1, only$10status
reports changed and new$30/$31spindle
rpm max/min and$32laser
mode settings were added. Everything else is the
same.
$0 – Step pulse,
microseconds
Stepper drivers are rated for a certain minimum step pulse length.
Check the data sheet or just try some numbers. You want the
shortest pulses the stepper drivers can reliably recognize. If the
pulses are too long, you might run into trouble when running the
system at very high feed and pulse rates, because the step pulses
can begin to overlap each other. We recommend something around 10
microseconds, which is the default value.
$1 - Step
idle delay, milliseconds
Every time your steppers complete a motion and come to a stop, Grbl
will delay disabling the steppers by this value.OR, you can
always keep your axes enabled (powered so as to hold position) by
setting this value to the maximum 255 milliseconds. Again, just to
repeat, you can keep all axes always enabled by setting$1=255.
The
stepper idle lock time is the time length Grbl will keep the
steppers locked before disabling. Depending on the system, you can
set this to zero and disable it. On others, you may need 25-50
milliseconds to make sure your axes come to a complete stop before
disabling. This is to help account for machine motors that do not
like to be left on for long periods of time without doing
something. Also, keep in mind that some stepper drivers don't
remember which micro step they stopped on, so when you re-enable,
you may witness some 'lost' steps due to this. In this case, just
keep your steppers enabled