diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 8a944aa77..d10450c7f 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -2894,9 +2894,9 @@ void process_commands() repeatcommand_front(); // repeat G80 with all its parameters enquecommand_front_P((PSTR("G28 W0"))); break; - } + } - if (run == false) { + if (run == false && card.sdprinting == true) { temp_compensation_start(); run = true; repeatcommand_front(); // repeat G80 with all its parameters @@ -3108,6 +3108,11 @@ void process_commands() SERIAL_ECHOLNPGM("Mesh bed leveling activated"); go_home_with_z_lift(); SERIAL_ECHOLNPGM("Go home finished"); + //unretract (after PINDA preheat retraction) + if (card.sdprinting == true && degHotend(active_extruder) > EXTRUDE_MINTEMP) { + 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); + } // Restore custom message state custom_message = custom_message_old; custom_message_type = custom_message_type_old; @@ -6208,6 +6213,9 @@ void bed_analysis(float x_dimension, float y_dimension, int x_points_num, int y_ #endif void temp_compensation_start() { + if (degHotend(active_extruder)>EXTRUDE_MINTEMP) 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); + current_position[X_AXIS] = PINDA_PREHEAT_X; current_position[Y_AXIS] = PINDA_PREHEAT_Y; current_position[Z_AXIS] = 0; @@ -6217,8 +6225,6 @@ void temp_compensation_start() { while (fabs(degBed() - target_temperature_bed) > 3) delay_keep_alive(1000); for(int i = 0; i < PINDA_HEAT_T; i++) delay_keep_alive(1000); - - } void temp_compensation_apply() { diff --git a/Firmware/language_all.cpp b/Firmware/language_all.cpp index 8adb002c0..eddaa8ef2 100644 --- a/Firmware/language_all.cpp +++ b/Firmware/language_all.cpp @@ -1741,6 +1741,11 @@ const char * const MSG_PINDA_NOT_CALIBRATED_LANG_TABLE[1] PROGMEM = { MSG_PINDA_NOT_CALIBRATED_EN }; +const char MSG_PINDA_PREHEAT_EN[] PROGMEM = "Preheating"; +const char * const MSG_PINDA_PREHEAT_LANG_TABLE[1] PROGMEM = { + MSG_PINDA_PREHEAT_EN +}; + const char MSG_PLANNER_BUFFER_BYTES_EN[] PROGMEM = " PlannerBufferBytes: "; const char * const MSG_PLANNER_BUFFER_BYTES_LANG_TABLE[1] PROGMEM = { MSG_PLANNER_BUFFER_BYTES_EN diff --git a/Firmware/language_all.h b/Firmware/language_all.h index 1386a7602..a49d098e1 100644 --- a/Firmware/language_all.h +++ b/Firmware/language_all.h @@ -347,6 +347,8 @@ extern const char* const MSG_PICK_Z_LANG_TABLE[LANG_NUM]; #define MSG_PICK_Z LANG_TABLE_SELECT(MSG_PICK_Z_LANG_TABLE) extern const char* const MSG_PINDA_NOT_CALIBRATED_LANG_TABLE[1]; #define MSG_PINDA_NOT_CALIBRATED LANG_TABLE_SELECT_EXPLICIT(MSG_PINDA_NOT_CALIBRATED_LANG_TABLE, 0) +extern const char* const MSG_PINDA_PREHEAT_LANG_TABLE[1]; +#define MSG_PINDA_PREHEAT LANG_TABLE_SELECT_EXPLICIT(MSG_PINDA_PREHEAT_LANG_TABLE, 0) extern const char* const MSG_PLANNER_BUFFER_BYTES_LANG_TABLE[1]; #define MSG_PLANNER_BUFFER_BYTES LANG_TABLE_SELECT_EXPLICIT(MSG_PLANNER_BUFFER_BYTES_LANG_TABLE, 0) extern const char* const MSG_PLEASE_WAIT_LANG_TABLE[LANG_NUM]; diff --git a/Firmware/language_en.h b/Firmware/language_en.h index be262e261..3793f8b70 100644 --- a/Firmware/language_en.h +++ b/Firmware/language_en.h @@ -268,3 +268,4 @@ #define MSG_CALIBRATE_PINDA "Calibrate PINDA" #define MSG_PINDA_NOT_CALIBRATED "PINDA probe has not been calibrated" +#define MSG_PINDA_PREHEAT "Preheating" \ No newline at end of file diff --git a/Firmware/language_it.h b/Firmware/language_it.h index dc9e2a3a2..fcb40120d 100644 --- a/Firmware/language_it.h +++ b/Firmware/language_it.h @@ -248,4 +248,5 @@ #define MSG_WAITING_TEMP "In attesa del raffreddamento della testina e del piatto" #define MSG_FILAMENT_CLEAN "Il colore e' nitido?" #define MSG_UNLOADING_FILAMENT "Rilasc. filamento" -#define MSG_PAPER "Porre un foglio sotto l'ugello durante la calibrazione dei primi 4 punti. In caso l'ugello muova il foglio spegnere prontamente la stampante." \ No newline at end of file +#define MSG_PAPER "Porre un foglio sotto l'ugello durante la calibrazione dei primi 4 punti. In caso l'ugello muova il foglio spegnere prontamente la stampante." +