|
@@ -293,7 +293,7 @@ unsigned long pause_time = 0;
|
|
unsigned long start_pause_print = millis();
|
|
unsigned long start_pause_print = millis();
|
|
unsigned long t_fan_rising_edge = millis();
|
|
unsigned long t_fan_rising_edge = millis();
|
|
|
|
|
|
-unsigned long load_filament_time;
|
|
|
|
|
|
+//unsigned long load_filament_time;
|
|
|
|
|
|
bool mesh_bed_leveling_flag = false;
|
|
bool mesh_bed_leveling_flag = false;
|
|
bool mesh_bed_run_from_menu = false;
|
|
bool mesh_bed_run_from_menu = false;
|
|
@@ -5386,64 +5386,113 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
|
|
}
|
|
}
|
|
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], FILAMENTCHANGE_XYFEED, active_extruder);
|
|
plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], FILAMENTCHANGE_XYFEED, active_extruder);
|
|
st_synchronize();
|
|
st_synchronize();
|
|
- custom_message = true;
|
|
|
|
- lcd_setstatuspgm(MSG_UNLOADING_FILAMENT);
|
|
|
|
|
|
+ KEEPALIVE_STATE(PAUSED_FOR_USER);
|
|
|
|
|
|
- // Unload filament
|
|
|
|
- if(code_seen('L'))
|
|
|
|
- {
|
|
|
|
- target[E_AXIS]+= code_value();
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- #ifdef SNMM
|
|
|
|
|
|
+ uint8_t cnt = 0;
|
|
|
|
+ int counterBeep = 0;
|
|
|
|
+ lcd_display_message_fullscreen_P(MSG_PRESS_TO_UNLOAD);
|
|
|
|
+ while (!lcd_clicked()) {
|
|
|
|
|
|
- #else
|
|
|
|
- #ifdef FILAMENTCHANGE_FINALRETRACT
|
|
|
|
- target[E_AXIS] += FILAMENTCHANGE_FINALRETRACT;
|
|
|
|
- #endif
|
|
|
|
- #endif // SNMM
|
|
|
|
- }
|
|
|
|
|
|
+ cnt++;
|
|
|
|
+ manage_heater();
|
|
|
|
+ manage_inactivity(true);
|
|
|
|
+
|
|
|
|
+ /*#ifdef SNMM
|
|
|
|
+ target[E_AXIS] += 0.002;
|
|
|
|
+ plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 500, active_extruder);
|
|
|
|
+
|
|
|
|
+ #endif // SNMM*/
|
|
|
|
+
|
|
|
|
+ if (cnt == 0)
|
|
|
|
+ {
|
|
|
|
+#if BEEPER > 0
|
|
|
|
+ if (counterBeep == 500) {
|
|
|
|
+ counterBeep = 0;
|
|
|
|
+ }
|
|
|
|
+ SET_OUTPUT(BEEPER);
|
|
|
|
+ if (counterBeep == 0) {
|
|
|
|
+ WRITE(BEEPER, HIGH);
|
|
|
|
+ }
|
|
|
|
+ if (counterBeep == 20) {
|
|
|
|
+ WRITE(BEEPER, LOW);
|
|
|
|
+ }
|
|
|
|
+ counterBeep++;
|
|
|
|
+#else
|
|
|
|
+#if !defined(LCD_FEEDBACK_FREQUENCY_HZ) || !defined(LCD_FEEDBACK_FREQUENCY_DURATION_MS)
|
|
|
|
+ lcd_buzz(1000 / 6, 100);
|
|
|
|
+#else
|
|
|
|
+ lcd_buzz(LCD_FEEDBACK_FREQUENCY_DURATION_MS, LCD_FEEDBACK_FREQUENCY_HZ);
|
|
|
|
+#endif
|
|
|
|
+#endif
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ }
|
|
|
|
+ WRITE(BEEPER, LOW);
|
|
|
|
+
|
|
|
|
+ lcd_change_fil_state = 0;
|
|
|
|
+ while (lcd_change_fil_state == 0) {
|
|
|
|
+ lcd_display_message_fullscreen_P(MSG_UNLOADING_FILAMENT);
|
|
|
|
+ KEEPALIVE_STATE(IN_HANDLER);
|
|
|
|
+ custom_message = true;
|
|
|
|
+ lcd_setstatuspgm(MSG_UNLOADING_FILAMENT);
|
|
|
|
+
|
|
|
|
+ // Unload filament
|
|
|
|
+ if (code_seen('L'))
|
|
|
|
+ {
|
|
|
|
+ target[E_AXIS] += code_value();
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
#ifdef SNMM
|
|
#ifdef SNMM
|
|
- target[E_AXIS] += 12;
|
|
|
|
- plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 3500, active_extruder);
|
|
|
|
- target[E_AXIS] += 6;
|
|
|
|
- plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 5000, active_extruder);
|
|
|
|
- target[E_AXIS] += (FIL_LOAD_LENGTH * -1);
|
|
|
|
- plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 5000, active_extruder);
|
|
|
|
- st_synchronize();
|
|
|
|
- target[E_AXIS] += (FIL_COOLING);
|
|
|
|
- plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 50, active_extruder);
|
|
|
|
- target[E_AXIS] += (FIL_COOLING*-1);
|
|
|
|
- plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 50, active_extruder);
|
|
|
|
- target[E_AXIS] += (bowden_length[snmm_extruder] *-1);
|
|
|
|
- plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 3000, active_extruder);
|
|
|
|
- st_synchronize();
|
|
|
|
|
|
|
|
#else
|
|
#else
|
|
-// plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], FILAMENTCHANGE_RFEED, active_extruder);
|
|
|
|
- plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 3500/60, active_extruder);
|
|
|
|
|
|
+#ifdef FILAMENTCHANGE_FINALRETRACT
|
|
|
|
+ target[E_AXIS] += FILAMENTCHANGE_FINALRETRACT;
|
|
|
|
+#endif
|
|
#endif // SNMM
|
|
#endif // SNMM
|
|
-
|
|
|
|
|
|
+ }
|
|
|
|
|
|
- //finish moves
|
|
|
|
- st_synchronize();
|
|
|
|
- //disable extruder steppers so filament can be removed
|
|
|
|
- disable_e0();
|
|
|
|
- disable_e1();
|
|
|
|
- disable_e2();
|
|
|
|
- delay(100);
|
|
|
|
-
|
|
|
|
|
|
+#ifdef SNMM
|
|
|
|
+ target[E_AXIS] += 12;
|
|
|
|
+ plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 3500, active_extruder);
|
|
|
|
+ target[E_AXIS] += 6;
|
|
|
|
+ plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 5000, active_extruder);
|
|
|
|
+ target[E_AXIS] += (FIL_LOAD_LENGTH * -1);
|
|
|
|
+ plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 5000, active_extruder);
|
|
|
|
+ st_synchronize();
|
|
|
|
+ target[E_AXIS] += (FIL_COOLING);
|
|
|
|
+ plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 50, active_extruder);
|
|
|
|
+ target[E_AXIS] += (FIL_COOLING*-1);
|
|
|
|
+ plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 50, active_extruder);
|
|
|
|
+ target[E_AXIS] += (bowden_length[snmm_extruder] * -1);
|
|
|
|
+ plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 3000, active_extruder);
|
|
|
|
+ st_synchronize();
|
|
|
|
+
|
|
|
|
+#else
|
|
|
|
+ // plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], FILAMENTCHANGE_RFEED, active_extruder);
|
|
|
|
+ plan_buffer_line(target[X_AXIS], target[Y_AXIS], target[Z_AXIS], target[E_AXIS], 3500 / 60, active_extruder);
|
|
|
|
+#endif // SNMM
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ //finish moves
|
|
|
|
+ st_synchronize();
|
|
|
|
+ //disable extruder steppers so filament can be removed
|
|
|
|
+ disable_e0();
|
|
|
|
+ disable_e1();
|
|
|
|
+ disable_e2();
|
|
|
|
+ delay(100);
|
|
|
|
+ KEEPALIVE_STATE(PAUSED_FOR_USER);
|
|
|
|
+ lcd_change_fil_state = !lcd_show_fullscreen_message_yes_no_and_wait_P(MSG_UNLOAD_SUCCESSFULL, false, false);
|
|
|
|
+ //lcd_return_to_status();
|
|
|
|
+ lcd_update_enable(true);
|
|
|
|
+ }
|
|
//Wait for user to insert filament
|
|
//Wait for user to insert filament
|
|
- uint8_t cnt=0;
|
|
|
|
- int counterBeep = 0;
|
|
|
|
lcd_wait_interact();
|
|
lcd_wait_interact();
|
|
- load_filament_time = millis();
|
|
|
|
|
|
+ //load_filament_time = millis();
|
|
KEEPALIVE_STATE(PAUSED_FOR_USER);
|
|
KEEPALIVE_STATE(PAUSED_FOR_USER);
|
|
while(!lcd_clicked()){
|
|
while(!lcd_clicked()){
|
|
|
|
|
|
- cnt++;
|
|
|
|
|
|
+
|
|
manage_heater();
|
|
manage_heater();
|
|
manage_inactivity(true);
|
|
manage_inactivity(true);
|
|
|
|
|
|
@@ -5453,31 +5502,8 @@ case 404: //M404 Enter the nominal filament width (3mm, 1.75mm ) N<3.0> or disp
|
|
|
|
|
|
#endif // SNMM*/
|
|
#endif // SNMM*/
|
|
|
|
|
|
- if(cnt==0)
|
|
|
|
- {
|
|
|
|
- #if BEEPER > 0
|
|
|
|
- if (counterBeep== 500){
|
|
|
|
- counterBeep = 0;
|
|
|
|
- }
|
|
|
|
- SET_OUTPUT(BEEPER);
|
|
|
|
- if (counterBeep== 0){
|
|
|
|
- WRITE(BEEPER,HIGH);
|
|
|
|
- }
|
|
|
|
- if (counterBeep== 20){
|
|
|
|
- WRITE(BEEPER,LOW);
|
|
|
|
- }
|
|
|
|
- counterBeep++;
|
|
|
|
- #else
|
|
|
|
- #if !defined(LCD_FEEDBACK_FREQUENCY_HZ) || !defined(LCD_FEEDBACK_FREQUENCY_DURATION_MS)
|
|
|
|
- lcd_buzz(1000/6,100);
|
|
|
|
- #else
|
|
|
|
- lcd_buzz(LCD_FEEDBACK_FREQUENCY_DURATION_MS,LCD_FEEDBACK_FREQUENCY_HZ);
|
|
|
|
- #endif
|
|
|
|
- #endif
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
}
|
|
}
|
|
- WRITE(BEEPER, LOW);
|
|
|
|
|
|
+ //WRITE(BEEPER, LOW);
|
|
KEEPALIVE_STATE(IN_HANDLER);
|
|
KEEPALIVE_STATE(IN_HANDLER);
|
|
|
|
|
|
#ifdef SNMM
|
|
#ifdef SNMM
|