From 2b32b419697e743f3bd355da657166098af27d88 Mon Sep 17 00:00:00 2001 From: PavelSindler Date: Mon, 27 Aug 2018 05:53:39 +0200 Subject: [PATCH 1/4] MK2.5 build error hotfix --- Firmware/ultralcd.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 37114398..08490dbc 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -4496,6 +4496,7 @@ void lcd_settings_linearity_correction_menu(void) { MENU_BEGIN(); MENU_ITEM_BACK_P(_T(MSG_SETTINGS)); +#ifdef TMC2130 #ifdef TMC2130_LINEARITY_CORRECTION_XYZ //tmc2130_wave_fac[X_AXIS] @@ -4504,6 +4505,7 @@ void lcd_settings_linearity_correction_menu(void) MENU_ITEM_EDIT_int3_P(_i("Z-correct"), &tmc2130_wave_fac[Z_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=9 r=0 #endif //TMC2130_LINEARITY_CORRECTION_XYZ MENU_ITEM_EDIT_int3_P(_i("E-correct"), &tmc2130_wave_fac[E_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=9 r=0 +#endif MENU_END(); if(menu_leaving) { From 191e5dfddda1b8f679bfccb5484b9a71c7471243 Mon Sep 17 00:00:00 2001 From: PavelSindler Date: Mon, 27 Aug 2018 16:12:10 +0200 Subject: [PATCH 2/4] mmu M600: dont use change extruder posibility; unload starts always imidiately --- Firmware/Marlin_main.cpp | 2 +- Firmware/mmu.cpp | 44 +++++++++++++++++++++++++++++++++++++++- Firmware/mmu.h | 2 +- 3 files changed, 45 insertions(+), 3 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index e9fea8c2..bbcbeff5 100644 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -3097,7 +3097,7 @@ void gcode_M600(bool automatic, float x_position, float y_position, float z_shif st_synchronize(); //Beep, manage nozzle heater and wait for user to start unload filament - if(!automatic) M600_wait_for_user(); + if(!mmu_enabled) M600_wait_for_user(); lcd_change_fil_state = 0; diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index 73caf79d..b402c102 100644 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -9,6 +9,7 @@ #include "Configuration_prusa.h" #include "fsensor.h" #include "cardreader.h" +#include "sound.h" extern const char* lcd_display_message_fullscreen_P(const char *msg); @@ -410,6 +411,43 @@ void mmu_load_to_nozzle() if (!saved_e_relative_mode) axis_relative_modes[E_AXIS] = false; } +void mmu_M600_wait_and_beep() { + //Beep and wait for user to remove old filament and prepare new filament for load + + KEEPALIVE_STATE(PAUSED_FOR_USER); + + int counterBeep = 0; + lcd_display_message_fullscreen_P(_i("Remove old filament and press the knob to start loading new filament.")); + bool bFirst=true; + + while (!lcd_clicked()){ + manage_heater(); + manage_inactivity(true); + + #if BEEPER > 0 + if (counterBeep == 500) { + counterBeep = 0; + } + SET_OUTPUT(BEEPER); + if (counterBeep == 0) { + if((eSoundMode==e_SOUND_MODE_LOUD)||((eSoundMode==e_SOUND_MODE_ONCE)&&bFirst)) + { + bFirst=false; + WRITE(BEEPER, HIGH); + } + } + if (counterBeep == 20) { + WRITE(BEEPER, LOW); + } + + counterBeep++; + #endif //BEEPER > 0 + + delay_keep_alive(4); + } + WRITE(BEEPER, LOW); +} + void mmu_M600_load_filament(bool automatic) { //load filament for mmu v2 @@ -417,10 +455,14 @@ void mmu_M600_load_filament(bool automatic) bool response = false; bool yes = false; if (!automatic) { + mmu_M600_wait_and_beep(); +#ifdef MMU_M600_SWITCH_EXTRUDER yes = lcd_show_fullscreen_message_yes_no_and_wait_P(_i("Do you want to switch extruder?"), false); if(yes) tmp_extruder = choose_extruder_menu(); else tmp_extruder = mmu_extruder; - +#else + tmp_extruder = mmu_extruder; +#endif //MMU_M600_SWITCH_EXTRUDER } else { tmp_extruder = (tmp_extruder+1)%5; diff --git a/Firmware/mmu.h b/Firmware/mmu.h index 05f8e358..e7ad6030 100644 --- a/Firmware/mmu.h +++ b/Firmware/mmu.h @@ -56,7 +56,7 @@ extern void manage_response(bool move_axes, bool turn_off_nozzle); extern void mmu_load_to_nozzle(); extern void mmu_M600_load_filament(bool automatic); - +extern void mmu_M600_wait_and_beep(); extern void extr_mov(float shift, float feed_rate); extern void change_extr(int extr); From 7aadb2f660f315094994c229b2bdd01bdd8a90d0 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Mon, 27 Aug 2018 20:57:57 +0200 Subject: [PATCH 3/4] Fix compile time error: default argument given for parameter 2 of int8_t lcd_show_fullscreen_message_yes_no_and_wait_P --- Firmware/mmu.cpp | 9 +-------- Firmware/ultralcd.h | 1 + 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/Firmware/mmu.cpp b/Firmware/mmu.cpp index 73caf79d..a32a9a6a 100644 --- a/Firmware/mmu.cpp +++ b/Firmware/mmu.cpp @@ -9,14 +9,7 @@ #include "Configuration_prusa.h" #include "fsensor.h" #include "cardreader.h" - - -extern const char* lcd_display_message_fullscreen_P(const char *msg); -extern void lcd_show_fullscreen_message_and_wait_P(const char *msg); -extern int8_t lcd_show_fullscreen_message_yes_no_and_wait_P(const char *msg, bool allow_timeouting = true, bool default_yes = false); -extern void lcd_return_to_status(); -extern void lcd_wait_for_heater(); -extern char choose_extruder_menu(); +#include "ultralcd.h" #define CHECK_FINDA ((IS_SD_PRINTING || is_usb_printing) && (mcode_in_progress != 600) && !saved_printing && e_active()) diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index 29a13a9c..69faadbb 100644 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -45,6 +45,7 @@ void lcd_menu_statistics(); extern const char* lcd_display_message_fullscreen_P(const char *msg, uint8_t &nlines); extern const char* lcd_display_message_fullscreen_P(const char *msg); +extern void lcd_return_to_status(); extern void lcd_wait_for_click(); extern void lcd_show_fullscreen_message_and_wait_P(const char *msg); // 0: no, 1: yes, -1: timeouted From 72cd0d26f94abecbfa4081ca7807053d3f1e83de Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Mon, 27 Aug 2018 21:08:40 +0200 Subject: [PATCH 4/4] Increase scope of code disabled by macro TMC2130 to whole lcd_settings_linearity_correction_menu. --- Firmware/ultralcd.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 08490dbc..36c70d7a 100644 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -4492,11 +4492,11 @@ void lcd_wizard(int state) { lcd_update(2); } +#ifdef TMC2130 void lcd_settings_linearity_correction_menu(void) { MENU_BEGIN(); MENU_ITEM_BACK_P(_T(MSG_SETTINGS)); -#ifdef TMC2130 #ifdef TMC2130_LINEARITY_CORRECTION_XYZ //tmc2130_wave_fac[X_AXIS] @@ -4505,13 +4505,13 @@ void lcd_settings_linearity_correction_menu(void) MENU_ITEM_EDIT_int3_P(_i("Z-correct"), &tmc2130_wave_fac[Z_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=9 r=0 #endif //TMC2130_LINEARITY_CORRECTION_XYZ MENU_ITEM_EDIT_int3_P(_i("E-correct"), &tmc2130_wave_fac[E_AXIS], TMC2130_WAVE_FAC1000_MIN-TMC2130_WAVE_FAC1000_STP, TMC2130_WAVE_FAC1000_MAX);////MSG_EXTRUDER_CORRECTION c=9 r=0 -#endif MENU_END(); if(menu_leaving) { lcd_settings_linearity_correction_menu_save(); } } +#endif // TMC2130 static void lcd_settings_menu() {