diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index d8f37baa9..685f788e1 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -1892,7 +1892,6 @@ void trace() { noTone(BEEPER); delay(20); } - /* void ramming() { // float tmp[4] = DEFAULT_MAX_FEEDRATE; @@ -1949,9 +1948,9 @@ void ramming() { plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 3000 / 60, active_extruder); st_synchronize(); //current_position[X_AXIS] += 23; //delay - //plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], //current_position[E_AXIS], 600/60, active_extruder); //delay + //plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 600/60, active_extruder); //delay //current_position[X_AXIS] -= 23; //delay - plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 600/60, active_extruder); //delay + //plan_buffer_line(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS], 600/60, active_extruder); //delay delay(4700); max_feedrate[E_AXIS] = 80; current_position[E_AXIS] -= 92; @@ -2875,6 +2874,7 @@ void process_commands() lcd_update(2); + } break; @@ -2938,20 +2938,33 @@ void process_commands() // We don't know where we are! HOME! // Push the commands to the front of the message queue in the reverse order! // There shall be always enough space reserved for these commands. - repeatcommand_front(); // repeat G80 with all its parameters - enquecommand_front_P((PSTR("G28 W0"))); + if (lcd_commands_type != LCD_COMMAND_STOP_PRINT) { + repeatcommand_front(); // repeat G80 with all its parameters + enquecommand_front_P((PSTR("G28 W0"))); + } + else { + mesh_bed_leveling_flag = false; + } break; } if (run == false && temp_cal_active == true && calibration_status_pinda() == true && target_temperature_bed >= 50) { - temp_compensation_start(); - run = true; - repeatcommand_front(); // repeat G80 with all its parameters - enquecommand_front_P((PSTR("G28 W0"))); + if (lcd_commands_type != LCD_COMMAND_STOP_PRINT) { + temp_compensation_start(); + run = true; + repeatcommand_front(); // repeat G80 with all its parameters + enquecommand_front_P((PSTR("G28 W0"))); + } + else { + mesh_bed_leveling_flag = false; + } break; } run = false; - + if (lcd_commands_type == LCD_COMMAND_STOP_PRINT) { + mesh_bed_leveling_flag = false; + break; + } // Save custom message state, set a new custom message state to display: Calibrating point 9. bool custom_message_old = custom_message; unsigned int custom_message_type_old = custom_message_type; diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index a4c21e308..8ac34d93d 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -662,7 +662,7 @@ void lcd_commands() cancel_heatup = true; setTargetBed(0); #ifndef SNMM - setTargetHotend(0, 0); //to heating when changing filament for multicolor + setTargetHotend(0, 0); //heating when changing filament for multicolor setTargetHotend(0, 1); setTargetHotend(0, 2); #endif @@ -3807,18 +3807,21 @@ void lcd_sdcard_stop() } if ((int32_t)encoderPosition == 2) { - cancel_heatup = true; + cancel_heatup = true; #ifdef MESH_BED_LEVELING mbl.active = false; #endif // Stop the stoppers, update the position from the stoppers. - planner_abort_hard(); - // Because the planner_abort_hard() initialized current_position[Z] from the stepper, - // Z baystep is no more applied. Reset it. - babystep_reset(); + if (mesh_bed_leveling_flag == false && homing_flag == false) { + planner_abort_hard(); + // Because the planner_abort_hard() initialized current_position[Z] from the stepper, + // Z baystep is no more applied. Reset it. + babystep_reset(); + } // Clean the input command queue. cmdqueue_reset(); lcd_setstatuspgm(MSG_PRINT_ABORTED); + lcd_update(2); card.sdprinting = false; card.closefile(); diff --git a/Firmware/ultralcd_implementation_hitachi_HD44780.h b/Firmware/ultralcd_implementation_hitachi_HD44780.h index c44ef6565..65402d170 100644 --- a/Firmware/ultralcd_implementation_hitachi_HD44780.h +++ b/Firmware/ultralcd_implementation_hitachi_HD44780.h @@ -978,6 +978,7 @@ static void lcd_implementation_status_screen() lcd_printPGM(PSTR(": ")); lcd.print(custom_message_state); //seconds lcd.print(' '); + } }