Skip to content

Changes from grbl 1.1

Terje Io edited this page Jul 8, 2021 · 4 revisions

A number of changes/extensions has been made to grblHAL over grbl 1.1, some of which may break current senders.

Out of the box these are:

  • Error handling
    When a GCode results in an error this will persist for all subsequent GCodes processed until a reset, an empty line or system command ($ command) is issued. This change is for reducing the risk of dangerous moves following the error.

  • Tool changes
    grblHAL can handle tool changes natively if the sender supports the new tool change protocol. A number of tool change modes are available if it does.

  • Homing
    grblHAL keeps track of which axes has been homed and reports the published "Home" status during homing (grbl 1.1 does not). If homing is enabled and set as required on startup it is no longer possible to continue after a reset if homing fails. grblHAL will reissue the homing required message until homing is successful. Optional manual homing is also possible, this does not require homing switches and can be useful for homing a rotary axis.

  • Control and limit switches
    For safety reasons the default configuration is for normally closed switches (NC).

  • Reset input
    For safety reasons this must be deasserted, i.e. connected to ground if the default configuration is used. If not error 18 will be returned and operation is not possible.

  • New settings
    Many of the configuration settings done by modifying #define statements in the source code has been made available as $xxsettings to make it easier for the end-user to configure the behaviour. This may break some senders.

  • Other useful stuff
    If soft limits are enabled and a rotary axis is in use for which it is not desirable to apply soft limits then this can be avoided by setting the maximum travel length to 0. This will disable soft limits for that axis.

Workaround

A new conditional compilation statement COMPATIBILITY_LEVEL has been added to config.h in order to increase backwards compatibility with grbl 1.1.

COMPATIBILITY_LEVEL 1 - this disables some extensions such as manual tool change support and makes grblHAL report itself as Grbl 1.1... instead of grblHAL 1.1...

COMPATIBILITY_LEVEL 2 - in addtion to level 1 this disables new $$-settings as well. Change #define statements in defaults.h to set default values for these instead.

COMPATIBILITY_LEVEL 10 - in addition to level 2 this disables support for extra coordinate systems (G59.1, G59.2 and G59.3) as well as some $G report extensions.

See Compatiblity levels for further details.

Changes will be made to this workaround if required.


2021-07-08