diff --git a/g2core/gcode_parser.cpp b/g2core/gcode_parser.cpp index eb65febb..8ea87704 100644 --- a/g2core/gcode_parser.cpp +++ b/g2core/gcode_parser.cpp @@ -600,14 +600,7 @@ stat_t _parse_gcode_block(char *buf, char *active_comment) case 21: SET_MODAL (MODAL_GROUP_G6, units_mode, MILLIMETERS); case 28: { switch (_point(value)) { - case 0: { -#if MARLIN_COMPAT_ENABLED == true - if (cm.gmx.marlin_flavor) { - SET_NON_MODAL (next_action, NEXT_ACTION_SEARCH_HOME); - } -#endif - SET_MODAL (MODAL_GROUP_G0, next_action, NEXT_ACTION_GOTO_G28_POSITION); - } + case 0: SET_MODAL (MODAL_GROUP_G0, next_action, NEXT_ACTION_GOTO_G28_POSITION); case 1: SET_MODAL (MODAL_GROUP_G0, next_action, NEXT_ACTION_SET_G28_POSITION); case 2: SET_NON_MODAL (next_action, NEXT_ACTION_SEARCH_HOME); case 3: SET_NON_MODAL (next_action, NEXT_ACTION_SET_ABSOLUTE_ORIGIN); @@ -872,6 +865,13 @@ stat_t _execute_gcode_block(char *active_comment) } } + if ((cm.gmx.marlin_flavor || (MARLIN_COMM_MODE == js.json_mode)) && + (NEXT_ACTION_GOTO_G28_POSITION == gv.next_action) + ) + { + gv.next_action = NEXT_ACTION_SEARCH_HOME; + } + switch (gv.next_action) { case NEXT_ACTION_MARLIN_PRINT_TEMPERATURES: { // M105 js.json_mode = MARLIN_COMM_MODE; // we use M105 to know when to switch