If you are a GRBL user moving to a Smoothie system, you might have an existing configuration you want to port over.
[!WARNING] Please note it is imperative you read the whole documentation before using Smoothie. Skipping this step will almost certainly result in damage and danger.
Again, read the whole documentation, do not only rely on this guide.
Assuming you have read the documentation (again: do it, do not skip the documentation), this page is aimed at helping you understand what GRBL options correspond to what Smoothie options.
This guide follows the general structure of the original GRBL documentation
This assumes you start from the default configuration file.
Smoothie and GRBL use different commands. Here is a table showing corresponding ways of talking to the boards on both systems:
GRBL Command | Smoothie alternative | Action |
---|---|---|
$ |
help |
Display help |
$$ |
cat /sd/config |
Display current configuration |
$# |
M114 , M114.1 , M114.2 |
Display current positions |
$I |
version |
Display build info |
$X |
M999 |
Exit alarm mode |
$H |
$H |
Run homing cycle |
In GRBL, you modify $2
to invert a step pin, while in Smoothie, you add a !
character to the pin for that axis, for example:
beta_step_pin 2.1 # Pin for beta stepper step signal
Becomes:
beta_step_pin 2.1! # Pin for beta stepper step signal
In GRBL, you modify $3
to invert a direction pin, while in Smoothie, you add a !
character to the pin for that axis, for example:
beta_dir_pin 0.11 # Pin for beta stepper dir signal
Becomes:
beta_dir_pin 0.11! # Pin for beta stepper dir signal
In GRBL, you modify $4
to invert a direction pin, while in Smoothie, you add a !
character to the pin for that axis, for example:
beta_en_pin 0.10 # Pin for beta stepper en signal
Becomes:
beta_en_pin 0.10! # Pin for beta stepper en signal
In GRBL, you modify $5
to invert an endstop port, while in Smoothie, you add a !
character to the pin for that endstop, for example:
alpha_min_endstop 1.24^ # Pin to read min endstop, add a ! to invert if endstop is NO connected to ground
Becomes:
alpha_min_endstop 1.24!^ # Pin to read min endstop, add a ! to invert if endstop is NO connected to ground
In GRBL, you modify $6
to invert the probing port, while in Smoothie, you add a !
character to the pin for the probe, for example:
zprobe.probe_pin 1.28^ # Pin probe is attached to
Becomes:
zprobe.probe_pin 1.28!^ # Pin probe is attached to
In GRBL, you set the junction deviation parameter by modifying the $11
option, while in Smoothie you edit:
junction_deviation 0.05 # See http://smoothieware.org/motion-control#junction-deviation
In GRBL, you set the arc tolerance parameter by modifying the $12
option, while in Smoothie you edit:
mm_max_arc_error 0.01 # The maximum error for line segments that divide arcs 0 to disable
# note it is invalid for both the above be 0
# if both are used, will use largest segment length based on radius
In GRBL, you enable hard limit switches by modifying the $21
option, while in Smoothie you uncomment and set to true:
# Optional enable limit switches, actions will stop if any enabled limit switch is triggered (all are set for delta)
alpha_limit_enable true # Set to true to enable X min and max limit switches
beta_limit_enable true # Set to true to enable Y min and max limit switches
gamma_limit_enable true # Set to true to enable Z min and max limit switches
In GRBL, you enable homing by modifying the $22
option, while in Smoothie enable the endstops module:
endstops_enable true # The endstop module is enabled by default and can be disabled here
In GRBL, you set the homing direction for each axis by modifying the $23
option, while in Smoothie instead change:
alpha_homing_direction home_to_min # Or set to home_to_max and set alpha_max and uncomment the alpha_max_endstop
To:
alpha_homing_direction home_to_max # Or set to home_to_max and set alpha_max and uncomment the alpha_max_endstop
In GRBL, you set the slow homing speed by modifying the $24
option, while in Smoothie instead modify:
alpha_slow_homing_rate_mm_s 25 # Alpha/X slow homing feedrate in mm/second
In GRBL, you set the fast homing speed by modifying the $25
option, while in Smoothie instead modify:
alpha_fast_homing_rate_mm_s 50 # Alpha/X fast homing feedrate in mm/second
In GRBL, you set the homing debounce by modifying the $26
option, while in Smoothie instead modify:
endstop_debounce_ms 1 # Uncomment if you get noise on your endstops, default is 1 millisecond debounce
In GRBL, you set the homing retract by modifying the $27
option, while in Smoothie instead modify:
alpha_homing_retract_mm 5 # Distance to retract from the endstop after it is hit for alpha/X
beta_homing_retract_mm 5 # Distance to retract from the endstop after it is hit for beta/Y
gamma_homing_retract_mm 1 # Distance to retract from the endstop after it is hit for gamma/Z
In GRBL, you set the steps per millimeter for the primary axes by modifying the $100
, $101
and $102
options, while in Smoothie instead modify:
# Arm solution configuration: Cartesian robot. Translates mm positions into stepper positions
# See http://smoothieware.org/stepper-motors
alpha_steps_per_mm 80 # Steps per mm for alpha (X) stepper
beta_steps_per_mm 80 # Steps per mm for beta (Y) stepper
gamma_steps_per_mm 1600 # Steps per mm for gamma (Z) stepper
In GRBL, you set the max rates for the primary axes by modifying the $110
, $111
and $112
options.
Note the unit is millimeters per minute.
In Smoothie, we can specify maximum values for the axes and for the actuators, which allows to more finely respecting the machine’s limits.
We change the maximum feed rate for the main axes by changing:
# Cartesian axis speed limits
x_axis_max_speed 30000 # Maximum speed in mm/min
y_axis_max_speed 30000 # Maximum speed in mm/min
z_axis_max_speed 300 # Maximum speed in mm/min
Note the unit is millimeters per minute.
And the maximum feed rates for the main actuators is changed with:
alpha_max_rate 30000.0 # Maximum rate in mm/min
beta_max_rate 30000.0 # Maximum rate in mm/min
gamma_max_rate 300.0 # Maximum rate in mm/min
Note the unit is millimeters per minute.
We can also set the maximum feedrate for each extruder by modifying each extruder’s module configuration:
extruder.hotend.max_speed 50 # Maximum speed in mm/s
Note the unit is millimeters per second.
In GRBL, you set the acceleration for the primary axes by modifying the $120
, $121
and $122
options.
While in Smoothie you modify:
acceleration 3000
To set separate values for each axis, see Motion control.
In GRBL, you set the max travel for the primary axes by modifying the $130
, $131
and $132
options.
In Smoothie, there are two separate sets of matching options.
The axis_max
values are useful to set the length of an axis in case its homing direction is set to homing to max:
alpha_max 200 # This gets loaded as the current position after homing when home_to_max is set
beta_max 200 # This gets loaded as the current position after homing when home_to_max is set
gamma_max 200 # This gets loaded as the current position after homing when home_to_max is set
While the max_travel
options are useful to make sure the axis doesn’t move forever if there is a problem with homing missing the endstop for some reason:
alpha_max_travel 500 # Max travel in mm for alpha/X axis when homing
beta_max_travel 500 # Max travel in mm for beta/Y axis when homing
gamma_max_travel 500 # Max travel in mm for gamma/Z axis when homing