This is an old revision of the document!


If you are a GRBL user moving to a Smoothie system, you might have an existing configuration you want to port over.

This is not an alternative to reading the documentation

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.

Commands

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

$2 – Step port invert mask:binary

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

$3 – Direction port invert mask:binary

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

$4 – Enable port invert mask:binary

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

$5 – Limit pins invert, bool

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

$6 – Probe pin invert, bool

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

$11 - Junction deviation, mm

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

$12 – Arc tolerance, mm

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

$21 - Hard limits, bool

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

$22 - Homing cycle, bool

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

$23 - Homing dir invert mask, int:binary

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

$24 - Homing feed, mm/min

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

$25 - Homing seek, mm/min

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

$26 - Homing debounce, ms

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

$27 - Homing pull-off, mm

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