From 8882d8f2c80f1da51213b196dbebe93a7a02220f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gu=C3=B0ni=20M=C3=A1r=20Gilbert?= Date: Sun, 9 Oct 2022 09:57:12 +0000 Subject: [PATCH] Only move XY when position is known I had a crash when producing an error screen and printer was unhomed. Extruder was located at the far right side, and immediately crashed when attempting to park. --- Firmware/mmu2.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Firmware/mmu2.cpp b/Firmware/mmu2.cpp index 365ac4b71..a0db68b9e 100644 --- a/Firmware/mmu2.cpp +++ b/Firmware/mmu2.cpp @@ -573,10 +573,13 @@ void MMU2::SaveAndPark(bool move_axes, bool turn_off_nozzle) { raise_z(MMU_ERR_Z_PAUSE_LIFT); // move XY aside - current_position[X_AXIS] = MMU_ERR_X_PAUSE_POS; - current_position[Y_AXIS] = MMU_ERR_Y_PAUSE_POS; - plan_buffer_line_curposXYZE(NOZZLE_PARK_XY_FEEDRATE); - st_synchronize(); + if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS]) + { + current_position[X_AXIS] = MMU_ERR_X_PAUSE_POS; + current_position[Y_AXIS] = MMU_ERR_Y_PAUSE_POS; + plan_buffer_line_curposXYZE(NOZZLE_PARK_XY_FEEDRATE); + st_synchronize(); + } } if (turn_off_nozzle){