diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index eee08b18..d1e9bdac 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2621,7 +2621,7 @@ void process_commands() { st_synchronize(); -#if 0 +#if 1 SERIAL_ECHOPGM("G28, initial "); print_world_coordinates(); SERIAL_ECHOPGM("G28, initial "); print_physical_coordinates(); #endif @@ -2866,7 +2866,7 @@ void process_commands() if (farm_mode) { prusa_statistics(20); }; homing_flag = false; -#if 0 +#if 1 SERIAL_ECHOPGM("G28, final "); print_world_coordinates(); SERIAL_ECHOPGM("G28, final "); print_physical_coordinates(); SERIAL_ECHOPGM("G28, final "); print_mesh_bed_leveling_table(); @@ -7353,6 +7353,13 @@ void long_pause() //long pause print pause_lastpos[Z_AXIS] = current_position[Z_AXIS]; pause_lastpos[E_AXIS] = current_position[E_AXIS]; + SERIAL_ECHOPGM("X: "); + MYSERIAL.println(pause_lastpos[X_AXIS]); + SERIAL_ECHOPGM("Y: "); + MYSERIAL.println(pause_lastpos[Y_AXIS]); + SERIAL_ECHOPGM("Z: "); + MYSERIAL.println(pause_lastpos[Z_AXIS]); + //retract current_position[E_AXIS] -= DEFAULT_RETRACTION; plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 400, active_extruder); diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index ab60e34e..f2135bb1 100644 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -501,6 +501,7 @@ void fanSpeedError(unsigned char _fan) { } else { setTargetHotend0(0); + Stop(); } SERIAL_ERROR_START; switch (_fan) { diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index ff0cc337..d7ed82c4 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -576,12 +576,17 @@ void lcd_commands() if (lcd_commands_type == LCD_COMMAND_LONG_PAUSE) { if(lcd_commands_step == 0) { - card.pauseSDPrint(); - lcd_setstatuspgm(MSG_FINISHING_MOVEMENTS); - lcdDrawUpdate = 3; - lcd_commands_step = 1; + if (card.sdprinting) { + card.pauseSDPrint(); + lcd_setstatuspgm(MSG_FINISHING_MOVEMENTS); + lcdDrawUpdate = 3; + lcd_commands_step = 1; + } + else { + lcd_commands_type = 0; + } } - if (lcd_commands_step == 1 && !blocks_queued()) { + if (lcd_commands_step == 1 && !blocks_queued() && !homing_flag) { lcd_setstatuspgm(MSG_PRINT_PAUSED); isPrintPaused = true; long_pause(); @@ -598,7 +603,7 @@ void lcd_commands() lcdDrawUpdate = 3; lcd_commands_step = 4; } - if (lcd_commands_step == 1 && !blocks_queued()) { //recover feedmultiply + if (lcd_commands_step == 1 && !blocks_queued() && (current_position[Z_AXIS] == pause_lastpos[Z_AXIS])) { //recover feedmultiply sprintf_P(cmd1, PSTR("M220 S%d"), saved_feedmultiply); enquecommand(cmd1); @@ -607,6 +612,7 @@ void lcd_commands() card.startFileprint(); lcd_commands_step = 0; lcd_commands_type = 0; + SERIAL_ECHOPGM("isPrintPaused set to false!!!"); } if (lcd_commands_step == 2 && !blocks_queued()) { //turn on fan, move Z and unretract