-
Notifications
You must be signed in to change notification settings - Fork 88
Additional or extended settings
Plugins and code changes can add to and modify settings and settings availability.
To list all available settings in the controller use the $help settings
command from a terminal,
or for a specific group of settings $help <group>
where <group>
is a group from the help topics available.
Use $help
with no argument to list available topics.
Other useful settings related commands:
$<n>
where <n>
is a setting number will output the current value.
$$=<n>
where <n>
is a setting number will output help for the setting.
Windows users may use the ioSender Config app for setting up the controller, this has a UI that presents all available settings in the controller in logical groups with data entry widgets matching the underlying datatype. E.g. bitmaps are represented as checkboxes - there is no need to calculate the value to enter. A short description of each setting is also provided.
For those who are using a WebUI v3 enabled controller: this can also be used for configuration of all settings and it too has an advanced settings UI.
<n> = integer value
<float> = floating point value
<boolean> = 0 = false, 1 = true
<string> = ASCII string with some limitations for acceptable characters. To be revised.
<axis mask> = bitmask where bit 0 = X, 1 = Y, 2 = Z, 3 = A...
<coolant mask> = bitmask where bit 0 = flood, 1 = mist
<spindle mask> = bitmask where bit 0 = spindle on, 1 = spindle ccw, 2 = spindle pwm
<control mask> = bitmask where bit 0 = reset, 1 = feed hold, 2 = cycle start, 3 = safety door, 4 = block delete, 5 = stop disable, 6 = e-stop, 7 = probe connected
<report mask> = bitmask where bit 0 = machine_position, 1 = buffer_state, 2 = line_numbers, 3 = feed_speed, 4 = pin_state, 5 = work_coord_offset, 6 = overrides, 7 = probe_coordinates, 8 = sync_on_wco_change, 9 = parser_state, 10 = alarm_substate, 11 - run substate
$4=<axis mask> default from INVERT_ST_ENABLE_MASK
.
Enable signals can be set independently per axis unlike legacy Grbl where a boolean is used to set inversion for all axes.
NOTE: If the stepper drivers shares the same enable signal only X enable (bit 0) is used.
$10=<report mask> default from INVERT_CONTROL_PIN_MASK
.
$14=<control mask> default from INVERT_CONTROL_PIN_MASK
.
Invert control input signals.
Bits 4 - 7 cannot be set with $14 when COMPATIBILITY_LEVEL > 1 or the driver does not support the input.
$15=<coolant mask> default from INVERT_COOLANT_FLOOD_PIN
and INVERT_COOLANT_MIST_PIN
.
Invert coolant output signals.
$16=<spindle mask> default from INVERT_SPINDLE_ENABLE_PIN
, INVERT_SPINDLE_CCW_PIN
and INVERT_SPINDLE_PWM_PIN
.
Invert spindle output signals.
$17=<control mask> default from DISABLE_CONTROL_PINS_PULL_UP_MASK
.
Disable control signal pullup, replaces #define DISABLE_CONTROL_PIN_PULL_UP
.
$18=<axis mask> default from DISABLE_LIMIT_PINS_PULL_UP_MASK
.
Disable limit signals pull up, replaces #define DISABLE_LIMIT_PIN_PULL_UP
.
Driver may apply pull down instead.
$19=<boolean> default from DISABLE_PROBE_PIN_PULL_UP
Disable probe pull up.
Driver may apply pull down instead.
$21=<mask>
Changed from original boolean for enabling hard limits.
bit0 - enable hard limits.
bit1 - enable strict mode when hard limits enabled, this bit cannot be changed when COMPATIBILITY_LEVEL > 1.
bit 1
defaults to #define CHECK_LIMITS_AT_INIT
setting.
NOTE: In strict mode switches will also be checked when $X
is issued, if still engaged error 45
will be reported. Homing is still possible, but for $X
to work limit switches has to be disengaged or overridden.
Homing is still possible, but for $X
to work limit switches has to be disengaged or overridden.
$22=<mask>
Changed from original boolean to exclusive bitmask for enabling homing and homing features.
bit0 - enable homing. Only when this bit is set can the other bits be set.
bit1 - enable single axis homing commands.
bit2 - homing on startup required.
bit3 - set machine origin to 0.
bit4 - two switches shares one input pin.
bit5 - allow manual homing of axes not automatically homed.
bit6 - override locks, allow reset to clear homing on startup required alarm.
bit7 - keep homed status on reset if possible.
$28=<float> default from DEFAULT_G73_RETRACT
.
Specifies G73
retract distance in mm.
$29=<n> : default from DEFAULT_STEP_PULSE_DELAY
, range 0 - 10.
Stepper pulse delay in microseconds, replaces #define STEP_PULSE_DELAY
.
$32=<n> default value derived from DEFAULT_LASER_MODE
and DEFAULT_LATHE_MODE
.
Changed from original boolean for enabling laser mode.
0 - normal mode.
1 - laser mode.
2 - lathe mode.
$33=<float> : default from DEFAULT_SPINDLE_PWM_FREQ
, range driver dependent.
Spindle PWM frequency i Hz (from LPC port).
$34=<n> : default from DEFAULT_SPINDLE_PWM_OFF_VALUE
, range 0 - 100.
Spindle off PWM duty cycle in percent (from LPC port).
$35=<n> : default from DEFAULT_SPINDLE_PWM_MIN_VALUE
, range 0 - 100.
Spindle minimum PWM duty cycle in percent.
$36=<n> : default from DEFAULT_SPINDLE_PWM_MAX_VALUE
, range 0 - 100.
Spindle maximum PWM duty cycle in percent (from LPC port).
$37=<axis mask> : defaults to all axes.
Defines which steppers is to be deenergized when motion completes.
Driver/hardware dependent which are supported. At least X should be, disables all motors.
$38=<n> : default driver dependent.
Spindle encoder pulses per revolution. Usage is driver dependent (for spindle synchronized motion).
$39=<n> : default 1, enable printable realtime command characters.
Set to 0 to disable, when disabled these characters (?
, !
and ~
) are ignored as realtime commands and added to the input instead when part of a comment or a $-setting.
NOTE: top bit set alternatives are provided as a safer alternative, see config.h.
$40=<boolean> default 0 (off).
Enable soft limits for jogging. When enabled jog targets will be limited to machine travel limits for homed axes.
$43=<n> : default from DEFAULT_N_HOMING_LOCATE_CYCLE, range 0 - 255.
Number of homing locate cycles
$44=<axis mask> : default 0.
$45=<axis mask> : default 0.
$46=<axis mask> : default 0.
$47=<axis mask> : default 0.
$48=<axis mask> : default 0.
$49=<axis mask> : default 0.
Axis priority for homing lowest numbered executed first, number of available settings is same as number of supported axes.
Replaces #define HOMING_CYCLE_0 etc.
$50=<float> : default plugin dependent.
Jogging step speed in mm/min. Not used by core, indended use by driver and/or sender.
Senders may query this for keyboard jogging modified by CTRL key.
$51=<float> : default plugin dependent.
Jogging slow speed in mm/min. Not used by core, indended use by driver and/or sender.
Senders may query this for keyboard jogging.
$52=<float> : default plugin dependent.
Jogging fast speed in mm/min. Not used by core, indended use by driver and/or sender.
Senders may query this for keyboard jogging modified by SHIFT key.
$53=<float> : default plugin dependent.
Jogging step distance in mm. Not used by core, indended use by driver and/or sender.
Senders may query this for keyboard jogging modified by CTRL key.
$54=<float> : default plugin dependent.
Jogging slow distance in mm. Not used by core, indended use by driver and/or sender.
Senders may query this for keyboard jogging.
$55=<float> : default plugin dependent.
Jogging fast distance in mm. Not used by core, indended use by driver and/or sender.
Senders may query this for keyboard jogging modified by SHIFT key.
$60=<boolean> : default 1 (on).
Restore default overrides when program ends. Replaces #define RESTORE_OVERRIDES_AFTER_PROGRAM_END.
$61=<boolean> : default 0 (off).
Ignore safety door signal when idle. If on only the spindle (laser) will be switched off.
May be useful if positioning a laser head with the lid open is needed.
$62=<boolean> : default 0 (off).
Enable sleep function. Replaces #define SLEEP_ENABLE (ATMega port)
$63=<boolean> : default 0 (on).
Disable laser during hold. Replaces #define DISABLE_LASER_DURING_HOLD.
$64=<boolean> : default 0 (off).
Force grbl to enter alarm mode on startup. Replaces #define FORCE_INITIALIZATION_ALARM.
$65=<boolean> : default 0 (off).
Allow feed rate override during probing. Replaces #define ALLOW_FEED_OVERRIDE_DURING_PROBE_CYCLES.
$70=<mask> : default value driver dependent.
Network Services:
Bit 0: Telnet Bit 1: Websocket Bit 2: HTTP Bit 3: FTP Bit 4: DNS Bit 5: mDNS Bit 6: SSDP Bit 7: WebDAV
$71=<string> : max 32 characters, default "GRBL".
Bluetooth device name.
$72=<string> : max 32 characters, default "GRBL serial port".
Bluetooth service name.
$73=<n> : Wifi Mode.
0: NULL 1: STA - Station 2: AP - Access Point 3: APSTA - Access Point + Station
$74=<n> : max 64 characters, default typically empty.
WiFi STA (Station) SSID.
$75=<string> : max 32 characters, default typically empty.
WiFi STA (Station) password.
$76=<string> : max 64 characters, default typically provided by driver.
WiFi AP (Access Point) SSID.
$77=<string> : max 32 characters, default typically provided by driver. If blank then AP is "Open".
WiFi AP (Access Point) password.
$78=<string> : max 3 characters, default empty.
WiFi AP Country (Access Point).
$79=<n> : Default 0, range 0-11.
WiFi AP Channel (Access Point) password.
$80=<float> : default driver dependent.
Spindle PID regulator proportional gain. Usage is driver dependent.
$81=<float> : default driver dependent.
Spindle PID regulator integral gain. Usage is driver dependent.
$82=<float> : default driver dependent.
Spindle PID regulator derivative gain. Usage is driver dependent.
$84=<float> : default driver dependent.
Spindle PID max output error. Usage is driver dependent.
$85=<float> : default driver dependent.
Spindle PID regulator max integral error. Usage is driver dependent.
$90=<float> : default driver dependent.
Spindle synced motion PID regulator proportional gain. Usage is driver dependent.
$91=<float> : default driver dependent.
Spindle synced motion PID regulator integral gain. Usage is driver dependent.
$92=<float> : default driver dependent.
Spindle synced motion PID regulator derivative gain. Usage is driver dependent.
Up to three network interfaces can be configured using these settings (driver dependent).
Replace the x
in the setting id with 0, 1 or 2 according to which interface to configure:
0: Usually WiFi Station or Ethernet interface.
1: Usually WiFi Access Point interface.
2: Usually Ethernet interface if three interfaces is available.
Refer to driver documentation for actual interface assignments.
$3x0=<string> : max 32 characters, default value driver dependent.
Hostname.
$3x1=<n> : Interface IP mode, default value driver dependent.
0: Static address. 1: DHCP supplied address. 2: Auto IP.
$3x2=<n> : Interface gateway address, default value driver dependent.
IPv4 or IPv6 address, up to 16 octets. May hold IPv4 address as either binary or text.
$3x3=<n> : Interface netmask, default value driver dependent.
IPv4 or IPv6 address, up to 16 octets. May hold IPv4 address as either binary or text.
$3x4=<n> : Interface netmask, default value 255.255.255.0.
IPv4 or IPv6 address, up to 16 octets. May hold IPv4 address as either binary or text.
$3x5=<n> : Telnet port, default value 23. Range 1 - 65536.
Port for serial communication, may be telnet protocol or a simple socket stream.
$3x6=<n> : HTTP port, default value 80. Range 1 - 65536.
Web server port.
$3x7=<n> : Websocket port, default value 81. Range 1 - 65536.
Port for two way communication, typically with web browser. Usually used for serial communication by grbl.
$340=<n> : Spindle at speed tolerance, default 0 percent.
Available for drivers and plugins that supports spindle at speed functionality.
If set to a value > 0 then alarm 14 will be issued if the spindle speed is not within tolerance during a timeout delay.
The timeout delay defaults to 4 seconds and is currently set from the SAFETY_DOOR_SPINDLE_DELAY
symbol.
Available for drivers that supports manual tool change. Requires machine to be homed. The controlled point (tool tip) will be moved to the original position after touch off for modes 1 - 3.
$TPW
command is a shorthand for T
ool P
robe W
orkpiece. This command is only available in mode 1 and 2 and when a tool change is pending.
$341=<n> : Manual tool change mode, default value 0.
0: Normal. Manual tool change and touch off via jogging. 1: Manual touch off. Initial move to linear axis home position for tool change, manual or automatic touch off with $TPW command. 2: Manual touch off @ G59.3. Initial move to linear axis home position then to G59.3 position for tool change, manual or automatic touch off with $TPW command. 3: Manual touch off @ G59.3. Initial move to linear axis home position for tool change then to G59.3 position for automatic touch off. 4: Ignore M6.
Note: Mode 1 and 2 requires initial tool offset set when $TPW
command is used for touch off. In mode 2 a successful touch off will automatically
Note: Mode 3 requires initial tool offset set.
$342=<n> : Probing distance, default 30 mm.
Used in mode 1 and 2 when $TPW
command is issued and in mode 3.
$343=<n> : Probing slow feed rate, default 25 mm/min.
Used in mode 1 and 2 when $TPW
command is issued and in mode 3 to obtain an accurate tool offset.
$344=<n> : Probing seek feed rate, default 200 mm/min.
Used in mode 1 and 2 when $TPW
command is issued and in mode 3 to obtain an initial tool offset. If successful tool is backed off a bit and probing is redone with the slow feed rate from $343.
$344=<n> : Probing seek feed rate, default 200 mm/min.
2023-04-22