From b9b0d6049e13d37d4dcffc11576d3ab063b7edc0 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Mon, 26 Aug 2019 19:48:39 +0200 Subject: [PATCH 01/14] Fix formatting. --- Firmware/ultralcd.cpp | 217 +++++++++++++++++++++--------------------- 1 file changed, 109 insertions(+), 108 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index e601fd755..58995ddc3 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2360,118 +2360,119 @@ else { } */ -void mFilamentItem(uint16_t nTemp,uint16_t nTempBed) +void mFilamentItem(uint16_t nTemp, uint16_t nTempBed) { -static int nTargetOld,nTargetBedOld; -uint8_t nLevel; + static int nTargetOld; + static int nTargetBedOld; + uint8_t nLevel; -//if(bPreheatState) // not necessary - nTargetOld=target_temperature[0]; - nTargetBedOld=target_temperature_bed; -setTargetHotend0((float)nTemp); -setTargetBed((float)nTempBed); -lcd_timeoutToStatus.stop(); -if(current_temperature[0]>(target_temperature[0]*0.95)) - { - switch(eFilamentAction) - { - case FilamentAction::Load: - case FilamentAction::AutoLoad: - case FilamentAction::UnLoad: - if(bFilamentWaitingFlag) - menu_submenu(mFilamentPrompt); - else { - nLevel=bFilamentPreheatState?1:2; - menu_back(nLevel); - if((eFilamentAction==FilamentAction::Load)||(eFilamentAction==FilamentAction::AutoLoad)) - { - loading_flag=true; - enquecommand_P(PSTR("M701")); // load filament - if(eFilamentAction==FilamentAction::AutoLoad) - eFilamentAction=FilamentAction::None; // i.e. non-autoLoad - } - if(eFilamentAction==FilamentAction::UnLoad) - enquecommand_P(PSTR("M702")); // unload filament - } - break; - case FilamentAction::MmuLoad: - nLevel=bFilamentPreheatState?1:2; - bFilamentAction=true; - menu_back(nLevel); - menu_submenu(mmu_load_to_nozzle_menu); - break; - case FilamentAction::MmuUnLoad: - nLevel=bFilamentPreheatState?1:2; - bFilamentAction=true; - menu_back(nLevel); - extr_unload(); - break; - case FilamentAction::MmuEject: - nLevel=bFilamentPreheatState?1:2; - bFilamentAction=true; - menu_back(nLevel); - menu_submenu(mmu_fil_eject_menu); - break; - case FilamentAction::MmuCut: + nTargetOld = target_temperature[0]; + nTargetBedOld = target_temperature_bed; + setTargetHotend0((float )nTemp); + setTargetBed((float) nTempBed); + + lcd_timeoutToStatus.stop(); + + if (current_temperature[0] > (target_temperature[0] * 0.95)) + { + switch (eFilamentAction) + { + case FilamentAction::Load: + case FilamentAction::AutoLoad: + case FilamentAction::UnLoad: + if (bFilamentWaitingFlag) menu_submenu(mFilamentPrompt); + else + { + nLevel = bFilamentPreheatState ? 1 : 2; + menu_back(nLevel); + if ((eFilamentAction == FilamentAction::Load) || (eFilamentAction == FilamentAction::AutoLoad)) + { + loading_flag = true; + enquecommand_P(PSTR("M701")); // load filament + if (eFilamentAction == FilamentAction::AutoLoad) eFilamentAction = FilamentAction::None; // i.e. non-autoLoad + } + if (eFilamentAction == FilamentAction::UnLoad) + enquecommand_P(PSTR("M702")); // unload filament + } + break; + case FilamentAction::MmuLoad: + nLevel = bFilamentPreheatState ? 1 : 2; + bFilamentAction = true; + menu_back(nLevel); + menu_submenu(mmu_load_to_nozzle_menu); + break; + case FilamentAction::MmuUnLoad: + nLevel = bFilamentPreheatState ? 1 : 2; + bFilamentAction = true; + menu_back(nLevel); + extr_unload(); + break; + case FilamentAction::MmuEject: + nLevel = bFilamentPreheatState ? 1 : 2; + bFilamentAction = true; + menu_back(nLevel); + menu_submenu(mmu_fil_eject_menu); + break; + case FilamentAction::MmuCut: #ifdef MMU_HAS_CUTTER - nLevel=bFilamentPreheatState?1:2; - bFilamentAction=true; - menu_back(nLevel); - menu_submenu(mmu_cut_filament_menu); + nLevel=bFilamentPreheatState?1:2; + bFilamentAction=true; + menu_back(nLevel); + menu_submenu(mmu_cut_filament_menu); #endif //MMU_HAS_CUTTER - break; - case FilamentAction::None: - break; - } - if(bFilamentWaitingFlag) - Sound_MakeSound(e_SOUND_TYPE_StandardPrompt); - bFilamentWaitingFlag=false; - } -else { - bFilamentWaitingFlag=true; - lcd_set_cursor(0,0); - lcdui_print_temp(LCD_STR_THERMOMETER[0],(int)degHotend(0),(int)degTargetHotend(0)); - lcd_set_cursor(0,1); - switch(eFilamentAction) - { - case FilamentAction::Load: - case FilamentAction::AutoLoad: - case FilamentAction::MmuLoad: - lcd_puts_P(_i("Preheating to load")); ////MSG_ c=20 r=1 - break; - case FilamentAction::UnLoad: - case FilamentAction::MmuUnLoad: - lcd_puts_P(_i("Preheating to unload")); ////MSG_ c=20 r=1 - break; - case FilamentAction::MmuEject: - lcd_puts_P(_i("Preheating to eject")); ////MSG_ c=20 r=1 - break; - case FilamentAction::MmuCut: - lcd_puts_P(_i("Preheating to cut")); ////MSG_ c=20 r=1 - break; - case FilamentAction::None: - break; - } - lcd_set_cursor(0,3); - lcd_puts_P(_i(">Cancel")); ////MSG_ c=20 r=1 - if(lcd_clicked()) - { - bFilamentWaitingFlag=false; - if(!bFilamentPreheatState) - { - setTargetHotend0(0.0); - setTargetBed(0.0); - menu_back(); - } - else { - setTargetHotend0((float)nTargetOld); - setTargetBed((float)nTargetBedOld); - } - menu_back(); - if(eFilamentAction==FilamentAction::AutoLoad) - eFilamentAction=FilamentAction::None; // i.e. non-autoLoad - } - } + break; + case FilamentAction::None: + break; + } + if (bFilamentWaitingFlag) Sound_MakeSound(e_SOUND_TYPE_StandardPrompt); + bFilamentWaitingFlag = false; + } + else + { + bFilamentWaitingFlag = true; + lcd_set_cursor(0, 0); + lcdui_print_temp(LCD_STR_THERMOMETER[0], (int) degHotend(0), (int) degTargetHotend(0)); + lcd_set_cursor(0, 1); + switch (eFilamentAction) + { + case FilamentAction::Load: + case FilamentAction::AutoLoad: + case FilamentAction::MmuLoad: + lcd_puts_P(_i("Preheating to load")); ////MSG_ c=20 r=1 + break; + case FilamentAction::UnLoad: + case FilamentAction::MmuUnLoad: + lcd_puts_P(_i("Preheating to unload")); ////MSG_ c=20 r=1 + break; + case FilamentAction::MmuEject: + lcd_puts_P(_i("Preheating to eject")); ////MSG_ c=20 r=1 + break; + case FilamentAction::MmuCut: + lcd_puts_P(_i("Preheating to cut")); ////MSG_ c=20 r=1 + break; + case FilamentAction::None: + break; + } + lcd_set_cursor(0, 3); + lcd_puts_P(_i(">Cancel")); ////MSG_ c=20 r=1 + if (lcd_clicked()) + { + bFilamentWaitingFlag = false; + if (!bFilamentPreheatState) + { + setTargetHotend0(0.0); + setTargetBed(0.0); + menu_back(); + } + else + { + setTargetHotend0((float )nTargetOld); + setTargetBed((float) nTargetBedOld); + } + menu_back(); + if (eFilamentAction == FilamentAction::AutoLoad) eFilamentAction = FilamentAction::None; // i.e. non-autoLoad + } + } } static void mFilamentItem_PLA() From 3628d893eed766eb69e8eb36cc0edb27672697ec Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Mon, 26 Aug 2019 20:11:52 +0200 Subject: [PATCH 02/14] Remove duplicate preheat menu. Known limitations: farm_mode missing, wizard_active missing, cooldown missing, ASA missing, print fan missing. --- Firmware/ultralcd.cpp | 30 +++++++++--------------------- Firmware/ultralcd.h | 1 + 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 58995ddc3..31af3e8cb 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2025,27 +2025,8 @@ static void lcd_menu_test_restore() static void lcd_preheat_menu() { - MENU_BEGIN(); - - if (!wizard_active) MENU_ITEM_BACK_P(_T(MSG_MAIN)); - - if (farm_mode) { - MENU_ITEM_FUNCTION_P(PSTR("farm - " STRINGIFY(FARM_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(FARM_PREHEAT_HPB_TEMP)), lcd_preheat_farm); - MENU_ITEM_FUNCTION_P(PSTR("nozzle - " STRINGIFY(FARM_PREHEAT_HOTEND_TEMP) "/0"), lcd_preheat_farm_nozzle); - MENU_ITEM_FUNCTION_P(_T(MSG_COOLDOWN), lcd_cooldown); - } else { - MENU_ITEM_FUNCTION_P(PSTR("PLA - " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PLA_PREHEAT_HPB_TEMP)), lcd_preheat_pla); - MENU_ITEM_FUNCTION_P(PSTR("PET - " STRINGIFY(PET_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PET_PREHEAT_HPB_TEMP)), lcd_preheat_pet); - MENU_ITEM_FUNCTION_P(PSTR("ASA - " STRINGIFY(ASA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ASA_PREHEAT_HPB_TEMP)), lcd_preheat_asa); - MENU_ITEM_FUNCTION_P(PSTR("ABS - " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ABS_PREHEAT_HPB_TEMP)), lcd_preheat_abs); - MENU_ITEM_FUNCTION_P(PSTR("HIPS - " STRINGIFY(HIPS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(HIPS_PREHEAT_HPB_TEMP)), lcd_preheat_hips); - MENU_ITEM_FUNCTION_P(PSTR("PP - " STRINGIFY(PP_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PP_PREHEAT_HPB_TEMP)), lcd_preheat_pp); - MENU_ITEM_FUNCTION_P(PSTR("FLEX - " STRINGIFY(FLEX_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(FLEX_PREHEAT_HPB_TEMP)), lcd_preheat_flex); - if (!wizard_active) MENU_ITEM_FUNCTION_P(_T(MSG_COOLDOWN), lcd_cooldown); - } - - - MENU_END(); + eFilamentAction = FilamentAction::Preheat; + mFilamentMenu(); } static void lcd_support_menu() @@ -2371,6 +2352,13 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed) setTargetHotend0((float )nTemp); setTargetBed((float) nTempBed); + if (eFilamentAction == FilamentAction::Preheat) + { + eFilamentAction = FilamentAction::None; + lcd_return_to_status(); + return; + } + lcd_timeoutToStatus.stop(); if (current_temperature[0] > (target_temperature[0] * 0.95)) diff --git a/Firmware/ultralcd.h b/Firmware/ultralcd.h index f414a1cc1..516a31356 100755 --- a/Firmware/ultralcd.h +++ b/Firmware/ultralcd.h @@ -167,6 +167,7 @@ enum class FilamentAction : uint_least8_t MmuUnLoad, MmuEject, MmuCut, + Preheat, }; extern FilamentAction eFilamentAction; From 52ae62bbba94e09113fa32edf00336f187a51e2a Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Mon, 26 Aug 2019 20:14:00 +0200 Subject: [PATCH 03/14] Fix formatting. --- Firmware/ultralcd.cpp | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 31af3e8cb..1dc094d7e 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2509,15 +2509,15 @@ if(eFilamentAction==FilamentAction::AutoLoad) void mFilamentMenu() { -MENU_BEGIN(); -MENU_ITEM_FUNCTION_P(_T(MSG_MAIN),mFilamentBack); -MENU_ITEM_SUBMENU_P(PSTR("PLA - " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PLA_PREHEAT_HPB_TEMP)),mFilamentItem_PLA); -MENU_ITEM_SUBMENU_P(PSTR("PET - " STRINGIFY(PET_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PET_PREHEAT_HPB_TEMP)),mFilamentItem_PET); -MENU_ITEM_SUBMENU_P(PSTR("ABS - " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ABS_PREHEAT_HPB_TEMP)),mFilamentItem_ABS); -MENU_ITEM_SUBMENU_P(PSTR("HIPS - " STRINGIFY(HIPS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(HIPS_PREHEAT_HPB_TEMP)),mFilamentItem_HIPS); -MENU_ITEM_SUBMENU_P(PSTR("PP - " STRINGIFY(PP_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PP_PREHEAT_HPB_TEMP)),mFilamentItem_PP); -MENU_ITEM_SUBMENU_P(PSTR("FLEX - " STRINGIFY(FLEX_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(FLEX_PREHEAT_HPB_TEMP)),mFilamentItem_FLEX); -MENU_END(); + MENU_BEGIN(); + MENU_ITEM_FUNCTION_P(_T(MSG_MAIN),mFilamentBack); + MENU_ITEM_SUBMENU_P(PSTR("PLA - " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PLA_PREHEAT_HPB_TEMP)),mFilamentItem_PLA); + MENU_ITEM_SUBMENU_P(PSTR("PET - " STRINGIFY(PET_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PET_PREHEAT_HPB_TEMP)),mFilamentItem_PET); + MENU_ITEM_SUBMENU_P(PSTR("ABS - " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ABS_PREHEAT_HPB_TEMP)),mFilamentItem_ABS); + MENU_ITEM_SUBMENU_P(PSTR("HIPS - " STRINGIFY(HIPS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(HIPS_PREHEAT_HPB_TEMP)),mFilamentItem_HIPS); + MENU_ITEM_SUBMENU_P(PSTR("PP - " STRINGIFY(PP_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PP_PREHEAT_HPB_TEMP)),mFilamentItem_PP); + MENU_ITEM_SUBMENU_P(PSTR("FLEX - " STRINGIFY(FLEX_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(FLEX_PREHEAT_HPB_TEMP)),mFilamentItem_FLEX); + MENU_END(); } void mFilamentItemForce() From 668e89e5a96f35d8fc2d0fc9a792697571664cee Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Mon, 26 Aug 2019 20:18:34 +0200 Subject: [PATCH 04/14] Preheat menu: Add ASA, hide menu item back when in wizard. --- Firmware/ultralcd.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 1dc094d7e..a307a174e 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2475,6 +2475,12 @@ bFilamentPreheatState=false; mFilamentItem(PET_PREHEAT_HOTEND_TEMP,PET_PREHEAT_HPB_TEMP); } +static void mFilamentItem_ASA() +{ +bFilamentPreheatState=false; +mFilamentItem(ASA_PREHEAT_HOTEND_TEMP,ASA_PREHEAT_HPB_TEMP); +} + static void mFilamentItem_ABS() { bFilamentPreheatState=false; @@ -2510,9 +2516,10 @@ if(eFilamentAction==FilamentAction::AutoLoad) void mFilamentMenu() { MENU_BEGIN(); - MENU_ITEM_FUNCTION_P(_T(MSG_MAIN),mFilamentBack); + if (!wizard_active) MENU_ITEM_FUNCTION_P(_T(MSG_MAIN),mFilamentBack); MENU_ITEM_SUBMENU_P(PSTR("PLA - " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PLA_PREHEAT_HPB_TEMP)),mFilamentItem_PLA); MENU_ITEM_SUBMENU_P(PSTR("PET - " STRINGIFY(PET_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PET_PREHEAT_HPB_TEMP)),mFilamentItem_PET); + MENU_ITEM_SUBMENU_P(PSTR("ASA - " STRINGIFY(ASA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ASA_PREHEAT_HPB_TEMP)),mFilamentItem_ASA); MENU_ITEM_SUBMENU_P(PSTR("ABS - " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ABS_PREHEAT_HPB_TEMP)),mFilamentItem_ABS); MENU_ITEM_SUBMENU_P(PSTR("HIPS - " STRINGIFY(HIPS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(HIPS_PREHEAT_HPB_TEMP)),mFilamentItem_HIPS); MENU_ITEM_SUBMENU_P(PSTR("PP - " STRINGIFY(PP_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PP_PREHEAT_HPB_TEMP)),mFilamentItem_PP); From aa13f9e809ed16a47d03c8ded2cf38fc1b6b03b5 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Mon, 26 Aug 2019 20:19:34 +0200 Subject: [PATCH 05/14] Fix formatting. --- Firmware/ultralcd.cpp | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index a307a174e..dc4c97d37 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2465,52 +2465,50 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed) static void mFilamentItem_PLA() { -bFilamentPreheatState=false; -mFilamentItem(PLA_PREHEAT_HOTEND_TEMP,PLA_PREHEAT_HPB_TEMP); + bFilamentPreheatState = false; + mFilamentItem(PLA_PREHEAT_HOTEND_TEMP, PLA_PREHEAT_HPB_TEMP); } static void mFilamentItem_PET() { -bFilamentPreheatState=false; -mFilamentItem(PET_PREHEAT_HOTEND_TEMP,PET_PREHEAT_HPB_TEMP); + bFilamentPreheatState = false; + mFilamentItem(PET_PREHEAT_HOTEND_TEMP, PET_PREHEAT_HPB_TEMP); } static void mFilamentItem_ASA() { -bFilamentPreheatState=false; -mFilamentItem(ASA_PREHEAT_HOTEND_TEMP,ASA_PREHEAT_HPB_TEMP); + bFilamentPreheatState = false; + mFilamentItem(ASA_PREHEAT_HOTEND_TEMP, ASA_PREHEAT_HPB_TEMP); } static void mFilamentItem_ABS() { -bFilamentPreheatState=false; -mFilamentItem(ABS_PREHEAT_HOTEND_TEMP,ABS_PREHEAT_HPB_TEMP); + bFilamentPreheatState = false; + mFilamentItem(ABS_PREHEAT_HOTEND_TEMP, ABS_PREHEAT_HPB_TEMP); } static void mFilamentItem_HIPS() { -bFilamentPreheatState=false; -mFilamentItem(HIPS_PREHEAT_HOTEND_TEMP,HIPS_PREHEAT_HPB_TEMP); + bFilamentPreheatState = false; + mFilamentItem(HIPS_PREHEAT_HOTEND_TEMP, HIPS_PREHEAT_HPB_TEMP); } static void mFilamentItem_PP() { -bFilamentPreheatState=false; -mFilamentItem(PP_PREHEAT_HOTEND_TEMP,PP_PREHEAT_HPB_TEMP); + bFilamentPreheatState = false; + mFilamentItem(PP_PREHEAT_HOTEND_TEMP, PP_PREHEAT_HPB_TEMP); } static void mFilamentItem_FLEX() { -bFilamentPreheatState=false; -mFilamentItem(FLEX_PREHEAT_HOTEND_TEMP,FLEX_PREHEAT_HPB_TEMP); + bFilamentPreheatState = false; + mFilamentItem(FLEX_PREHEAT_HOTEND_TEMP, FLEX_PREHEAT_HPB_TEMP); } - void mFilamentBack() { -menu_back(); -if(eFilamentAction==FilamentAction::AutoLoad) - eFilamentAction=FilamentAction::None; // i.e. non-autoLoad + menu_back(); + if (eFilamentAction == FilamentAction::AutoLoad) eFilamentAction = FilamentAction::None; // i.e. non-autoLoad } void mFilamentMenu() From 4792559536f30fed4a36c57de43418745b4d84c4 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Mon, 26 Aug 2019 21:00:30 +0200 Subject: [PATCH 06/14] Add farm preheat items. Add setWatch() call. --- Firmware/ultralcd.cpp | 53 +++++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 25 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index dc4c97d37..e8fb8524b 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1665,24 +1665,6 @@ static void lcd_move_menu_axis(); /* Menu implementation */ -static void lcd_preheat_farm() -{ - setTargetHotend0(FARM_PREHEAT_HOTEND_TEMP); - setTargetBed(FARM_PREHEAT_HPB_TEMP); - fanSpeed = 0; - lcd_return_to_status(); - setWatch(); // heater sanity check timer -} - -static void lcd_preheat_farm_nozzle() -{ - setTargetHotend0(FARM_PREHEAT_HOTEND_TEMP); - setTargetBed(0); - fanSpeed = 0; - lcd_return_to_status(); - setWatch(); // heater sanity check timer -} - static void lcd_preheat_pla() { setTargetHotend0(PLA_PREHEAT_HOTEND_TEMP); @@ -2355,6 +2337,7 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed) if (eFilamentAction == FilamentAction::Preheat) { eFilamentAction = FilamentAction::None; + setWatch(); lcd_return_to_status(); return; } @@ -2463,6 +2446,17 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed) } } +static void mFilamentItem_farm() +{ + bFilamentPreheatState = false; + mFilamentItem(FARM_PREHEAT_HOTEND_TEMP, FARM_PREHEAT_HPB_TEMP); +} +static void mFilamentItem_farm_nozzle() +{ + bFilamentPreheatState = false; + mFilamentItem(FARM_PREHEAT_HOTEND_TEMP, 0); +} + static void mFilamentItem_PLA() { bFilamentPreheatState = false; @@ -2515,13 +2509,22 @@ void mFilamentMenu() { MENU_BEGIN(); if (!wizard_active) MENU_ITEM_FUNCTION_P(_T(MSG_MAIN),mFilamentBack); - MENU_ITEM_SUBMENU_P(PSTR("PLA - " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PLA_PREHEAT_HPB_TEMP)),mFilamentItem_PLA); - MENU_ITEM_SUBMENU_P(PSTR("PET - " STRINGIFY(PET_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PET_PREHEAT_HPB_TEMP)),mFilamentItem_PET); - MENU_ITEM_SUBMENU_P(PSTR("ASA - " STRINGIFY(ASA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ASA_PREHEAT_HPB_TEMP)),mFilamentItem_ASA); - MENU_ITEM_SUBMENU_P(PSTR("ABS - " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ABS_PREHEAT_HPB_TEMP)),mFilamentItem_ABS); - MENU_ITEM_SUBMENU_P(PSTR("HIPS - " STRINGIFY(HIPS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(HIPS_PREHEAT_HPB_TEMP)),mFilamentItem_HIPS); - MENU_ITEM_SUBMENU_P(PSTR("PP - " STRINGIFY(PP_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PP_PREHEAT_HPB_TEMP)),mFilamentItem_PP); - MENU_ITEM_SUBMENU_P(PSTR("FLEX - " STRINGIFY(FLEX_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(FLEX_PREHEAT_HPB_TEMP)),mFilamentItem_FLEX); + if (farm_mode) + { + MENU_ITEM_FUNCTION_P(PSTR("farm - " STRINGIFY(FARM_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(FARM_PREHEAT_HPB_TEMP)), mFilamentItem_farm); + MENU_ITEM_FUNCTION_P(PSTR("nozzle - " STRINGIFY(FARM_PREHEAT_HOTEND_TEMP) "/0"), mFilamentItem_farm_nozzle); + } + else + { + MENU_ITEM_SUBMENU_P(PSTR("PLA - " STRINGIFY(PLA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PLA_PREHEAT_HPB_TEMP)),mFilamentItem_PLA); + MENU_ITEM_SUBMENU_P(PSTR("PET - " STRINGIFY(PET_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PET_PREHEAT_HPB_TEMP)),mFilamentItem_PET); + MENU_ITEM_SUBMENU_P(PSTR("ASA - " STRINGIFY(ASA_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ASA_PREHEAT_HPB_TEMP)),mFilamentItem_ASA); + MENU_ITEM_SUBMENU_P(PSTR("ABS - " STRINGIFY(ABS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(ABS_PREHEAT_HPB_TEMP)),mFilamentItem_ABS); + MENU_ITEM_SUBMENU_P(PSTR("HIPS - " STRINGIFY(HIPS_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(HIPS_PREHEAT_HPB_TEMP)),mFilamentItem_HIPS); + MENU_ITEM_SUBMENU_P(PSTR("PP - " STRINGIFY(PP_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(PP_PREHEAT_HPB_TEMP)),mFilamentItem_PP); + MENU_ITEM_SUBMENU_P(PSTR("FLEX - " STRINGIFY(FLEX_PREHEAT_HOTEND_TEMP) "/" STRINGIFY(FLEX_PREHEAT_HPB_TEMP)),mFilamentItem_FLEX); + } + if (!wizard_active && eFilamentAction == FilamentAction::Preheat) MENU_ITEM_FUNCTION_P(_T(MSG_COOLDOWN), lcd_cooldown); MENU_END(); } From 3da43ae8c2ea43c22d33e99dc299106163b83616 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Mon, 26 Aug 2019 21:14:07 +0200 Subject: [PATCH 07/14] Do not port print fan preheat speed preset, as it was never used. And it was broken until recently fixed when adding ASA profile. --- Firmware/ultralcd.cpp | 7 ------- Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h | 8 -------- Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h | 8 -------- Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h | 8 -------- Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h | 8 -------- Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h | 8 -------- Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h | 8 -------- Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h | 8 -------- 8 files changed, 63 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index e8fb8524b..49e54c493 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1669,7 +1669,6 @@ static void lcd_preheat_pla() { setTargetHotend0(PLA_PREHEAT_HOTEND_TEMP); if (!wizard_active) setTargetBed(PLA_PREHEAT_HPB_TEMP); - fanSpeed = PLA_PREHEAT_FAN_SPEED; lcd_return_to_status(); setWatch(); // heater sanity check timer if (wizard_active) lcd_wizard(WizState::Unload); @@ -1679,7 +1678,6 @@ static void lcd_preheat_asa() { setTargetHotend0(ASA_PREHEAT_HOTEND_TEMP); if (!wizard_active) setTargetBed(ASA_PREHEAT_HPB_TEMP); - fanSpeed = ASA_PREHEAT_FAN_SPEED; lcd_return_to_status(); setWatch(); // heater sanity check timer if (wizard_active) lcd_wizard(WizState::Unload); @@ -1689,7 +1687,6 @@ static void lcd_preheat_abs() { setTargetHotend0(ABS_PREHEAT_HOTEND_TEMP); if (!wizard_active) setTargetBed(ABS_PREHEAT_HPB_TEMP); - fanSpeed = ABS_PREHEAT_FAN_SPEED; lcd_return_to_status(); setWatch(); // heater sanity check timer if (wizard_active) lcd_wizard(WizState::Unload); @@ -1699,7 +1696,6 @@ static void lcd_preheat_pp() { setTargetHotend0(PP_PREHEAT_HOTEND_TEMP); if (!wizard_active) setTargetBed(PP_PREHEAT_HPB_TEMP); - fanSpeed = PP_PREHEAT_FAN_SPEED; lcd_return_to_status(); setWatch(); // heater sanity check timer if (wizard_active) lcd_wizard(WizState::Unload); @@ -1709,7 +1705,6 @@ static void lcd_preheat_pet() { setTargetHotend0(PET_PREHEAT_HOTEND_TEMP); if (!wizard_active) setTargetBed(PET_PREHEAT_HPB_TEMP); - fanSpeed = PET_PREHEAT_FAN_SPEED; lcd_return_to_status(); setWatch(); // heater sanity check timer if (wizard_active) lcd_wizard(WizState::Unload); @@ -1719,7 +1714,6 @@ static void lcd_preheat_hips() { setTargetHotend0(HIPS_PREHEAT_HOTEND_TEMP); if (!wizard_active) setTargetBed(HIPS_PREHEAT_HPB_TEMP); - fanSpeed = HIPS_PREHEAT_FAN_SPEED; lcd_return_to_status(); setWatch(); // heater sanity check timer if (wizard_active) lcd_wizard(WizState::Unload); @@ -1729,7 +1723,6 @@ static void lcd_preheat_flex() { setTargetHotend0(FLEX_PREHEAT_HOTEND_TEMP); if (!wizard_active) setTargetBed(FLEX_PREHEAT_HPB_TEMP); - fanSpeed = FLEX_PREHEAT_FAN_SPEED; lcd_return_to_status(); setWatch(); // heater sanity check timer if (wizard_active) lcd_wizard(WizState::Unload); diff --git a/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h index fbbc332da..997ab3d46 100644 --- a/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK2-RAMBo13a-E3Dv6full.h @@ -319,35 +319,27 @@ PREHEAT SETTINGS #define FARM_PREHEAT_HOTEND_TEMP 250 #define FARM_PREHEAT_HPB_TEMP 80 -#define FARM_PREHEAT_FAN_SPEED 0 #define PLA_PREHEAT_HOTEND_TEMP 215 #define PLA_PREHEAT_HPB_TEMP 55 -#define PLA_PREHEAT_FAN_SPEED 0 #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 -#define ASA_PREHEAT_FAN_SPEED 0 #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 -#define ABS_PREHEAT_FAN_SPEED 0 #define HIPS_PREHEAT_HOTEND_TEMP 220 #define HIPS_PREHEAT_HPB_TEMP 100 -#define HIPS_PREHEAT_FAN_SPEED 0 #define PP_PREHEAT_HOTEND_TEMP 254 #define PP_PREHEAT_HPB_TEMP 100 -#define PP_PREHEAT_FAN_SPEED 0 #define PET_PREHEAT_HOTEND_TEMP 240 #define PET_PREHEAT_HPB_TEMP 90 -#define PET_PREHEAT_FAN_SPEED 0 #define FLEX_PREHEAT_HOTEND_TEMP 230 #define FLEX_PREHEAT_HPB_TEMP 50 -#define FLEX_PREHEAT_FAN_SPEED 0 /*------------------------------------ THERMISTORS SETTINGS diff --git a/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h index d0d0341ca..80616763e 100644 --- a/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25-RAMBo10a-E3Dv6full.h @@ -377,35 +377,27 @@ #define FARM_PREHEAT_HOTEND_TEMP 250 #define FARM_PREHEAT_HPB_TEMP 80 -#define FARM_PREHEAT_FAN_SPEED 0 #define PLA_PREHEAT_HOTEND_TEMP 215 #define PLA_PREHEAT_HPB_TEMP 60 -#define PLA_PREHEAT_FAN_SPEED 0 #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 -#define ASA_PREHEAT_FAN_SPEED 0 #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 -#define ABS_PREHEAT_FAN_SPEED 0 #define HIPS_PREHEAT_HOTEND_TEMP 220 #define HIPS_PREHEAT_HPB_TEMP 100 -#define HIPS_PREHEAT_FAN_SPEED 0 #define PP_PREHEAT_HOTEND_TEMP 254 #define PP_PREHEAT_HPB_TEMP 100 -#define PP_PREHEAT_FAN_SPEED 0 #define PET_PREHEAT_HOTEND_TEMP 230 #define PET_PREHEAT_HPB_TEMP 85 -#define PET_PREHEAT_FAN_SPEED 0 #define FLEX_PREHEAT_HOTEND_TEMP 240 #define FLEX_PREHEAT_HPB_TEMP 50 -#define FLEX_PREHEAT_FAN_SPEED 0 /*------------------------------------ THERMISTORS SETTINGS diff --git a/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h index c931b7db0..ad95d1178 100644 --- a/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25-RAMBo13a-E3Dv6full.h @@ -378,35 +378,27 @@ #define FARM_PREHEAT_HOTEND_TEMP 250 #define FARM_PREHEAT_HPB_TEMP 80 -#define FARM_PREHEAT_FAN_SPEED 0 #define PLA_PREHEAT_HOTEND_TEMP 215 #define PLA_PREHEAT_HPB_TEMP 60 -#define PLA_PREHEAT_FAN_SPEED 0 #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 -#define ASA_PREHEAT_FAN_SPEED 0 #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 -#define ABS_PREHEAT_FAN_SPEED 0 #define HIPS_PREHEAT_HOTEND_TEMP 220 #define HIPS_PREHEAT_HPB_TEMP 100 -#define HIPS_PREHEAT_FAN_SPEED 0 #define PP_PREHEAT_HOTEND_TEMP 254 #define PP_PREHEAT_HPB_TEMP 100 -#define PP_PREHEAT_FAN_SPEED 0 #define PET_PREHEAT_HOTEND_TEMP 230 #define PET_PREHEAT_HPB_TEMP 85 -#define PET_PREHEAT_FAN_SPEED 0 #define FLEX_PREHEAT_HOTEND_TEMP 240 #define FLEX_PREHEAT_HPB_TEMP 50 -#define FLEX_PREHEAT_FAN_SPEED 0 /*------------------------------------ THERMISTORS SETTINGS diff --git a/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h index c5df948c2..b43a1674c 100644 --- a/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25S-RAMBo10a-E3Dv6full.h @@ -377,35 +377,27 @@ #define FARM_PREHEAT_HOTEND_TEMP 250 #define FARM_PREHEAT_HPB_TEMP 80 -#define FARM_PREHEAT_FAN_SPEED 0 #define PLA_PREHEAT_HOTEND_TEMP 215 #define PLA_PREHEAT_HPB_TEMP 60 -#define PLA_PREHEAT_FAN_SPEED 0 #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 -#define ASA_PREHEAT_FAN_SPEED 0 #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 -#define ABS_PREHEAT_FAN_SPEED 0 #define HIPS_PREHEAT_HOTEND_TEMP 220 #define HIPS_PREHEAT_HPB_TEMP 100 -#define HIPS_PREHEAT_FAN_SPEED 0 #define PP_PREHEAT_HOTEND_TEMP 254 #define PP_PREHEAT_HPB_TEMP 100 -#define PP_PREHEAT_FAN_SPEED 0 #define PET_PREHEAT_HOTEND_TEMP 230 #define PET_PREHEAT_HPB_TEMP 85 -#define PET_PREHEAT_FAN_SPEED 0 #define FLEX_PREHEAT_HOTEND_TEMP 240 #define FLEX_PREHEAT_HPB_TEMP 50 -#define FLEX_PREHEAT_FAN_SPEED 0 /*------------------------------------ THERMISTORS SETTINGS diff --git a/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h b/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h index cc2498d63..5765c1c7a 100644 --- a/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK25S-RAMBo13a-E3Dv6full.h @@ -378,35 +378,27 @@ #define FARM_PREHEAT_HOTEND_TEMP 250 #define FARM_PREHEAT_HPB_TEMP 80 -#define FARM_PREHEAT_FAN_SPEED 0 #define PLA_PREHEAT_HOTEND_TEMP 215 #define PLA_PREHEAT_HPB_TEMP 60 -#define PLA_PREHEAT_FAN_SPEED 0 #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 -#define ASA_PREHEAT_FAN_SPEED 0 #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 -#define ABS_PREHEAT_FAN_SPEED 0 #define HIPS_PREHEAT_HOTEND_TEMP 220 #define HIPS_PREHEAT_HPB_TEMP 100 -#define HIPS_PREHEAT_FAN_SPEED 0 #define PP_PREHEAT_HOTEND_TEMP 254 #define PP_PREHEAT_HPB_TEMP 100 -#define PP_PREHEAT_FAN_SPEED 0 #define PET_PREHEAT_HOTEND_TEMP 230 #define PET_PREHEAT_HPB_TEMP 85 -#define PET_PREHEAT_FAN_SPEED 0 #define FLEX_PREHEAT_HOTEND_TEMP 240 #define FLEX_PREHEAT_HPB_TEMP 50 -#define FLEX_PREHEAT_FAN_SPEED 0 /*------------------------------------ THERMISTORS SETTINGS diff --git a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h index b2b266171..d55d63862 100644 --- a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h @@ -487,35 +487,27 @@ #define FARM_PREHEAT_HOTEND_TEMP 250 #define FARM_PREHEAT_HPB_TEMP 80 -#define FARM_PREHEAT_FAN_SPEED 0 #define PLA_PREHEAT_HOTEND_TEMP 215 #define PLA_PREHEAT_HPB_TEMP 60 -#define PLA_PREHEAT_FAN_SPEED 0 #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 -#define ASA_PREHEAT_FAN_SPEED 0 #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 -#define ABS_PREHEAT_FAN_SPEED 0 #define HIPS_PREHEAT_HOTEND_TEMP 220 #define HIPS_PREHEAT_HPB_TEMP 100 -#define HIPS_PREHEAT_FAN_SPEED 0 #define PP_PREHEAT_HOTEND_TEMP 254 #define PP_PREHEAT_HPB_TEMP 100 -#define PP_PREHEAT_FAN_SPEED 0 #define PET_PREHEAT_HOTEND_TEMP 230 #define PET_PREHEAT_HPB_TEMP 85 -#define PET_PREHEAT_FAN_SPEED 0 #define FLEX_PREHEAT_HOTEND_TEMP 240 #define FLEX_PREHEAT_HPB_TEMP 50 -#define FLEX_PREHEAT_FAN_SPEED 0 /*------------------------------------ THERMISTORS SETTINGS diff --git a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h index 5736b632f..ce7318caf 100644 --- a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h @@ -489,35 +489,27 @@ #define FARM_PREHEAT_HOTEND_TEMP 250 #define FARM_PREHEAT_HPB_TEMP 80 -#define FARM_PREHEAT_FAN_SPEED 0 #define PLA_PREHEAT_HOTEND_TEMP 215 #define PLA_PREHEAT_HPB_TEMP 60 -#define PLA_PREHEAT_FAN_SPEED 0 #define ASA_PREHEAT_HOTEND_TEMP 260 #define ASA_PREHEAT_HPB_TEMP 105 -#define ASA_PREHEAT_FAN_SPEED 0 #define ABS_PREHEAT_HOTEND_TEMP 255 #define ABS_PREHEAT_HPB_TEMP 100 -#define ABS_PREHEAT_FAN_SPEED 0 #define HIPS_PREHEAT_HOTEND_TEMP 220 #define HIPS_PREHEAT_HPB_TEMP 100 -#define HIPS_PREHEAT_FAN_SPEED 0 #define PP_PREHEAT_HOTEND_TEMP 254 #define PP_PREHEAT_HPB_TEMP 100 -#define PP_PREHEAT_FAN_SPEED 0 #define PET_PREHEAT_HOTEND_TEMP 230 #define PET_PREHEAT_HPB_TEMP 85 -#define PET_PREHEAT_FAN_SPEED 0 #define FLEX_PREHEAT_HOTEND_TEMP 240 #define FLEX_PREHEAT_HPB_TEMP 50 -#define FLEX_PREHEAT_FAN_SPEED 0 /*------------------------------------ THERMISTORS SETTINGS From 269aef1696da5346f35e202f665dc1630b5721c5 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 27 Aug 2019 20:05:10 +0200 Subject: [PATCH 08/14] Remove unused code guarded by WATCH_TEMP_PERIOD macro as most of the functionality is duplicate to what is implemented in temp_runaway_check(). This will release us from porting setWatch() to unified preheat menu and maintaining it. --- Firmware/Configuration.h | 5 --- Firmware/Configuration_adv.h | 12 ------- Firmware/Marlin_main.cpp | 2 -- Firmware/temperature.cpp | 68 ++---------------------------------- Firmware/temperature.h | 4 --- Firmware/ultralcd.cpp | 8 ----- 6 files changed, 2 insertions(+), 97 deletions(-) diff --git a/Firmware/Configuration.h b/Firmware/Configuration.h index 870eee89a..e456b2415 100644 --- a/Firmware/Configuration.h +++ b/Firmware/Configuration.h @@ -113,11 +113,6 @@ extern PGM_P sPrinterName; // #define PS_DEFAULT_OFF - -// This makes temp sensor 1 a redundant sensor for sensor 0. If the temperatures difference between these sensors is to high the print will be aborted. -//#define TEMP_SENSOR_1_AS_REDUNDANT -#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 - // Actual temperature must be close to target for this long before M109 returns success #define TEMP_RESIDENCY_TIME 3 // (seconds) #define TEMP_HYSTERESIS 5 // (degC) range of +/- temperatures considered "close" to the target one diff --git a/Firmware/Configuration_adv.h b/Firmware/Configuration_adv.h index 951302877..dd77c91c6 100644 --- a/Firmware/Configuration_adv.h +++ b/Firmware/Configuration_adv.h @@ -10,14 +10,6 @@ #endif #define BED_CHECK_INTERVAL 5000 //ms between checks in bang-bang control -//// Heating sanity check: -// This waits for the watch period in milliseconds whenever an M104 or M109 increases the target temperatureLCD_PROGRESS_BAR -// If the temperature has not increased at the end of that period, the target temperature is set to zero. -// It can be reset with another M104/M109. This check is also only triggered if the target temperature and the current temperature -// differ by at least 2x WATCH_TEMP_INCREASE -//#define WATCH_TEMP_PERIOD 40000 //40 seconds -//#define WATCH_TEMP_INCREASE 10 //Heat up at least 10 degree in 20 seconds - #ifdef PIDTEMP // this adds an experimental additional term to the heating power, proportional to the extrusion speed. // if Kc is chosen well, the additional required power due to increased melting should be compensated. @@ -400,10 +392,6 @@ const unsigned int dropsegments=5; //everything with less than this number of st //============================= Define Defines ============================ //=========================================================================== -#if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT - #error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1" -#endif - #if EXTRUDERS > 1 && defined HEATERS_PARALLEL #error "You cannot use HEATERS_PARALLEL if EXTRUDERS > 1" #endif diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index 10c5437ed..1aa435cfe 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -5880,7 +5880,6 @@ Sigma_Exit: { setTargetHotendSafe(code_value(), extruder); } - setWatch(); break; } @@ -6025,7 +6024,6 @@ Sigma_Exit: } #endif - setWatch(); codenum = _millis(); /* See if we are heating up or cooling down */ diff --git a/Firmware/temperature.cpp b/Firmware/temperature.cpp index 391607e8c..3c7f5fbc4 100755 --- a/Firmware/temperature.cpp +++ b/Firmware/temperature.cpp @@ -73,10 +73,6 @@ int current_voltage_raw_bed = 0; int current_temperature_bed_raw = 0; float current_temperature_bed = 0.0; -#ifdef TEMP_SENSOR_1_AS_REDUNDANT - int redundant_temperature_raw = 0; - float redundant_temperature = 0.0; -#endif #ifdef PIDTEMP @@ -175,13 +171,8 @@ static int bed_minttemp_raw = HEATER_BED_RAW_LO_TEMP; static int bed_maxttemp_raw = HEATER_BED_RAW_HI_TEMP; #endif -#ifdef TEMP_SENSOR_1_AS_REDUNDANT - static void *heater_ttbl_map[2] = {(void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE }; - static uint8_t heater_ttbllen_map[2] = { HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN }; -#else - static void *heater_ttbl_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( (void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE, (void *)HEATER_2_TEMPTABLE ); - static uint8_t heater_ttbllen_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN, HEATER_2_TEMPTABLE_LEN ); -#endif +static void *heater_ttbl_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( (void *)HEATER_0_TEMPTABLE, (void *)HEATER_1_TEMPTABLE, (void *)HEATER_2_TEMPTABLE ); +static uint8_t heater_ttbllen_map[EXTRUDERS] = ARRAY_BY_EXTRUDERS( HEATER_0_TEMPTABLE_LEN, HEATER_1_TEMPTABLE_LEN, HEATER_2_TEMPTABLE_LEN ); static float analog2temp(int raw, uint8_t e); static float analog2tempBed(int raw); @@ -195,11 +186,6 @@ enum TempRunawayStates TempRunaway_ACTIVE = 2, }; -#ifdef WATCH_TEMP_PERIOD -int watch_start_temp[EXTRUDERS] = ARRAY_BY_EXTRUDERS(0,0,0); -unsigned long watchmillis[EXTRUDERS] = ARRAY_BY_EXTRUDERS(0,0,0); -#endif //WATCH_TEMP_PERIOD - #ifndef SOFT_PWM_SCALE #define SOFT_PWM_SCALE 0 #endif @@ -728,34 +714,6 @@ void manage_heater() { soft_pwm[e] = 0; } - - #ifdef WATCH_TEMP_PERIOD - if(watchmillis[e] && _millis() - watchmillis[e] > WATCH_TEMP_PERIOD) - { - if(degHotend(e) < watch_start_temp[e] + WATCH_TEMP_INCREASE) - { - setTargetHotend(0, e); - LCD_MESSAGEPGM("Heating failed"); - SERIAL_ECHO_START; - SERIAL_ECHOLN("Heating failed"); - }else{ - watchmillis[e] = 0; - } - } - #endif - #ifdef TEMP_SENSOR_1_AS_REDUNDANT - if(fabs(current_temperature[0] - redundant_temperature) > MAX_REDUNDANT_TEMP_SENSOR_DIFF) { - disable_heater(); - if(IsStopped() == false) { - SERIAL_ERROR_START; - SERIAL_ERRORLNPGM("Extruder switched off. Temperature difference between temp sensors is too high !"); - LCD_ALERTMESSAGEPGM("Err: REDUNDANT TEMP ERROR"); - } - #ifndef BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE - Stop(); - #endif - } - #endif } // End extruder for loop #define FAN_CHECK_PERIOD 5000 //5s @@ -907,11 +865,7 @@ void manage_heater() // Derived from RepRap FiveD extruder::getTemperature() // For hot end temperature measurement. static float analog2temp(int raw, uint8_t e) { -#ifdef TEMP_SENSOR_1_AS_REDUNDANT - if(e > EXTRUDERS) -#else if(e >= EXTRUDERS) -#endif { SERIAL_ERROR_START; SERIAL_ERROR((int)e); @@ -1054,10 +1008,6 @@ static void updateTemperaturesFromRawValues() current_temperature_bed = analog2tempBed(current_temperature_bed_raw); #endif //DEBUG_HEATER_BED_SIM - #ifdef TEMP_SENSOR_1_AS_REDUNDANT - redundant_temperature = analog2temp(redundant_temperature_raw, 1); - #endif - CRITICAL_SECTION_START; temp_meas_ready = false; CRITICAL_SECTION_END; @@ -1221,20 +1171,6 @@ void tp_init() #endif //BED_MAXTEMP } -void setWatch() -{ -#ifdef WATCH_TEMP_PERIOD - for (int e = 0; e < EXTRUDERS; e++) - { - if(degHotend(e) < degTargetHotend(e) - (WATCH_TEMP_INCREASE * 2)) - { - watch_start_temp[e] = degHotend(e); - watchmillis[e] = _millis(); - } - } -#endif -} - #if (defined (TEMP_RUNAWAY_BED_HYSTERESIS) && TEMP_RUNAWAY_BED_TIMEOUT > 0) || (defined (TEMP_RUNAWAY_EXTRUDER_HYSTERESIS) && TEMP_RUNAWAY_EXTRUDER_TIMEOUT > 0) void temp_runaway_check(int _heater_id, float _target_temperature, float _current_temperature, float _output, bool _isbed) { diff --git a/Firmware/temperature.h b/Firmware/temperature.h index e9ba11b47..7f4daa2e4 100755 --- a/Firmware/temperature.h +++ b/Firmware/temperature.h @@ -74,9 +74,6 @@ extern int current_voltage_raw_pwr; extern int current_voltage_raw_bed; #endif -#ifdef TEMP_SENSOR_1_AS_REDUNDANT - extern float redundant_temperature; -#endif #if defined(CONTROLLERFAN_PIN) && CONTROLLERFAN_PIN > -1 extern unsigned char soft_pwm_bed; @@ -220,7 +217,6 @@ FORCE_INLINE bool isCoolingBed() { int getHeaterPower(int heater); void disable_heater(); -void setWatch(); void updatePID(); diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 49e54c493..8127730f3 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1670,7 +1670,6 @@ static void lcd_preheat_pla() setTargetHotend0(PLA_PREHEAT_HOTEND_TEMP); if (!wizard_active) setTargetBed(PLA_PREHEAT_HPB_TEMP); lcd_return_to_status(); - setWatch(); // heater sanity check timer if (wizard_active) lcd_wizard(WizState::Unload); } @@ -1679,7 +1678,6 @@ static void lcd_preheat_asa() setTargetHotend0(ASA_PREHEAT_HOTEND_TEMP); if (!wizard_active) setTargetBed(ASA_PREHEAT_HPB_TEMP); lcd_return_to_status(); - setWatch(); // heater sanity check timer if (wizard_active) lcd_wizard(WizState::Unload); } @@ -1688,7 +1686,6 @@ static void lcd_preheat_abs() setTargetHotend0(ABS_PREHEAT_HOTEND_TEMP); if (!wizard_active) setTargetBed(ABS_PREHEAT_HPB_TEMP); lcd_return_to_status(); - setWatch(); // heater sanity check timer if (wizard_active) lcd_wizard(WizState::Unload); } @@ -1697,7 +1694,6 @@ static void lcd_preheat_pp() setTargetHotend0(PP_PREHEAT_HOTEND_TEMP); if (!wizard_active) setTargetBed(PP_PREHEAT_HPB_TEMP); lcd_return_to_status(); - setWatch(); // heater sanity check timer if (wizard_active) lcd_wizard(WizState::Unload); } @@ -1706,7 +1702,6 @@ static void lcd_preheat_pet() setTargetHotend0(PET_PREHEAT_HOTEND_TEMP); if (!wizard_active) setTargetBed(PET_PREHEAT_HPB_TEMP); lcd_return_to_status(); - setWatch(); // heater sanity check timer if (wizard_active) lcd_wizard(WizState::Unload); } @@ -1715,7 +1710,6 @@ static void lcd_preheat_hips() setTargetHotend0(HIPS_PREHEAT_HOTEND_TEMP); if (!wizard_active) setTargetBed(HIPS_PREHEAT_HPB_TEMP); lcd_return_to_status(); - setWatch(); // heater sanity check timer if (wizard_active) lcd_wizard(WizState::Unload); } @@ -1724,7 +1718,6 @@ static void lcd_preheat_flex() setTargetHotend0(FLEX_PREHEAT_HOTEND_TEMP); if (!wizard_active) setTargetBed(FLEX_PREHEAT_HPB_TEMP); lcd_return_to_status(); - setWatch(); // heater sanity check timer if (wizard_active) lcd_wizard(WizState::Unload); } @@ -2330,7 +2323,6 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed) if (eFilamentAction == FilamentAction::Preheat) { eFilamentAction = FilamentAction::None; - setWatch(); lcd_return_to_status(); return; } From ffc5a64154789c5839132867e280b8096990a6e9 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 27 Aug 2019 20:06:48 +0200 Subject: [PATCH 09/14] Remove commented out code. --- Firmware/ultralcd.cpp | 104 ------------------------------------------ 1 file changed, 104 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 8127730f3..f0ce1de17 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2205,110 +2205,6 @@ if(lcd_clicked()) } } -/* -void _mFilamentItem(uint16_t nTemp,uint16_t nTempBed) -{ -static int nTargetOld,nTargetBedOld; -uint8_t nLevel; -static bool bBeep=false; - -//if(bPreheatState) // not necessary - nTargetOld=target_temperature[0]; - nTargetBedOld=target_temperature_bed; -setTargetHotend0((float)nTemp); -setTargetBed((float)nTempBed); -lcd_timeoutToStatus.stop(); -lcd_set_cursor(0,0); -lcdui_print_temp(LCD_STR_THERMOMETER[0],(int)degHotend(0),(int)degTargetHotend(0)); -lcd_set_cursor(0,1); -switch(eFilamentAction) - { - case eFILAMENT_ACTION::load: - case eFILAMENT_ACTION::autoLoad: - case eFILAMENT_ACTION::mmuLoad: - lcd_puts_P(_i("Preheating to load")); ////MSG_ c=20 r=1 - break; - case eFILAMENT_ACTION::unLoad: - case eFILAMENT_ACTION::mmuUnLoad: - lcd_puts_P(_i("Preheating to unload")); ////MSG_ c=20 r=1 - break; - case eFILAMENT_ACTION::mmuEject: - lcd_puts_P(_i("Preheating to eject")); ////MSG_ c=20 r=1 - break; - case eFILAMENT_ACTION::mmuCut: - lcd_puts_P(_i("Preheating to cut")); ////MSG_ c=20 r=1 - break; - } -lcd_set_cursor(0,3); -lcd_puts_P(_i(">Cancel")); ////MSG_ c=20 r=1 -if(lcd_clicked()) - { - if(!bFilamentPreheatState) - { - setTargetHotend0(0.0); - setTargetBed(0.0); - menu_back(); - } - else { - setTargetHotend0((float)nTargetOld); - setTargetBed((float)nTargetBedOld); - } - menu_back(); - if(eFilamentAction==eFILAMENT_ACTION::autoLoad) - eFilamentAction=eFILAMENT_ACTION::none; // i.e. non-autoLoad - } -else { - if(current_temperature[0]>(target_temperature[0]*0.95)) - { - switch(eFilamentAction) - { - case eFILAMENT_ACTION::load: - case eFILAMENT_ACTION::autoLoad: - case eFILAMENT_ACTION::unLoad: - menu_submenu(mFilamentPrompt); - break; - case eFILAMENT_ACTION::mmuLoad: - nLevel=1; - if(!bFilamentPreheatState) - nLevel++; - bFilamentAction=true; - menu_back(nLevel); - menu_submenu(mmu_load_to_nozzle_menu); - break; - case eFILAMENT_ACTION::mmuUnLoad: - nLevel=1; - if(!bFilamentPreheatState) - nLevel++; - bFilamentAction=true; - menu_back(nLevel); - extr_unload(); - break; - case eFILAMENT_ACTION::mmuEject: - nLevel=1; - if(!bFilamentPreheatState) - nLevel++; - bFilamentAction=true; - menu_back(nLevel); - menu_submenu(mmu_fil_eject_menu); - break; - case eFILAMENT_ACTION::mmuCut: - nLevel=1; - if(!bFilamentPreheatState) - nLevel++; - bFilamentAction=true; - menu_back(nLevel); - menu_submenu(mmu_cut_filament_menu); - break; - } - if(bBeep) - Sound_MakeSound(e_SOUND_TYPE_StandardPrompt); - bBeep=false; - } - else bBeep=true; - } -} -*/ - void mFilamentItem(uint16_t nTemp, uint16_t nTempBed) { static int nTargetOld; From cef7f31b9f12c57cbd20d5a76af46a48d1323a62 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 27 Aug 2019 20:13:55 +0200 Subject: [PATCH 10/14] Set FilamentAction to None if mFilamentMenu left by cooldown or menu back action. --- Firmware/ultralcd.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index f0ce1de17..8d89024b2 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1727,6 +1727,7 @@ static void lcd_cooldown() setAllTargetHotends(0); setTargetBed(0); fanSpeed = 0; + eFilamentAction = FilamentAction::None; lcd_return_to_status(); } @@ -2383,7 +2384,11 @@ static void mFilamentItem_FLEX() void mFilamentBack() { menu_back(); - if (eFilamentAction == FilamentAction::AutoLoad) eFilamentAction = FilamentAction::None; // i.e. non-autoLoad + if (eFilamentAction == FilamentAction::AutoLoad || + eFilamentAction == FilamentAction::Preheat) + { + eFilamentAction = FilamentAction::None; // i.e. non-autoLoad + } } void mFilamentMenu() From d927d5b05df7a4c80d28fd444824264231fed063 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 27 Aug 2019 20:19:03 +0200 Subject: [PATCH 11/14] Port wizard_active to mFilamentItem(). --- Firmware/ultralcd.cpp | 60 ++----------------------------------------- 1 file changed, 2 insertions(+), 58 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index 8d89024b2..b195315ec 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -1665,63 +1665,6 @@ static void lcd_move_menu_axis(); /* Menu implementation */ -static void lcd_preheat_pla() -{ - setTargetHotend0(PLA_PREHEAT_HOTEND_TEMP); - if (!wizard_active) setTargetBed(PLA_PREHEAT_HPB_TEMP); - lcd_return_to_status(); - if (wizard_active) lcd_wizard(WizState::Unload); -} - -static void lcd_preheat_asa() -{ - setTargetHotend0(ASA_PREHEAT_HOTEND_TEMP); - if (!wizard_active) setTargetBed(ASA_PREHEAT_HPB_TEMP); - lcd_return_to_status(); - if (wizard_active) lcd_wizard(WizState::Unload); -} - -static void lcd_preheat_abs() -{ - setTargetHotend0(ABS_PREHEAT_HOTEND_TEMP); - if (!wizard_active) setTargetBed(ABS_PREHEAT_HPB_TEMP); - lcd_return_to_status(); - if (wizard_active) lcd_wizard(WizState::Unload); -} - -static void lcd_preheat_pp() -{ - setTargetHotend0(PP_PREHEAT_HOTEND_TEMP); - if (!wizard_active) setTargetBed(PP_PREHEAT_HPB_TEMP); - lcd_return_to_status(); - if (wizard_active) lcd_wizard(WizState::Unload); -} - -static void lcd_preheat_pet() -{ - setTargetHotend0(PET_PREHEAT_HOTEND_TEMP); - if (!wizard_active) setTargetBed(PET_PREHEAT_HPB_TEMP); - lcd_return_to_status(); - if (wizard_active) lcd_wizard(WizState::Unload); -} - -static void lcd_preheat_hips() -{ - setTargetHotend0(HIPS_PREHEAT_HOTEND_TEMP); - if (!wizard_active) setTargetBed(HIPS_PREHEAT_HPB_TEMP); - lcd_return_to_status(); - if (wizard_active) lcd_wizard(WizState::Unload); -} - -static void lcd_preheat_flex() -{ - setTargetHotend0(FLEX_PREHEAT_HOTEND_TEMP); - if (!wizard_active) setTargetBed(FLEX_PREHEAT_HPB_TEMP); - lcd_return_to_status(); - if (wizard_active) lcd_wizard(WizState::Unload); -} - - static void lcd_cooldown() { setAllTargetHotends(0); @@ -2215,12 +2158,13 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed) nTargetOld = target_temperature[0]; nTargetBedOld = target_temperature_bed; setTargetHotend0((float )nTemp); - setTargetBed((float) nTempBed); + if (!wizard_active) setTargetBed((float) nTempBed); if (eFilamentAction == FilamentAction::Preheat) { eFilamentAction = FilamentAction::None; lcd_return_to_status(); + if (wizard_active) lcd_wizard(WizState::Unload); return; } From e57fcc04a75b9ab1f4449f611215ac38cc93d291 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 27 Aug 2019 20:23:48 +0200 Subject: [PATCH 12/14] Fix compiler warnings. --- Firmware/ultralcd.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index b195315ec..e79db0bac 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2116,6 +2116,7 @@ switch(eFilamentAction) case FilamentAction::MmuEject: case FilamentAction::MmuCut: case FilamentAction::None: + case FilamentAction::Preheat: break; } if(lcd_clicked()) @@ -2144,6 +2145,7 @@ if(lcd_clicked()) case FilamentAction::MmuEject: case FilamentAction::MmuCut: case FilamentAction::None: + case FilamentAction::Preheat: break; } } @@ -2219,6 +2221,7 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed) #endif //MMU_HAS_CUTTER break; case FilamentAction::None: + case FilamentAction::Preheat: break; } if (bFilamentWaitingFlag) Sound_MakeSound(e_SOUND_TYPE_StandardPrompt); @@ -2248,6 +2251,7 @@ void mFilamentItem(uint16_t nTemp, uint16_t nTempBed) lcd_puts_P(_i("Preheating to cut")); ////MSG_ c=20 r=1 break; case FilamentAction::None: + case FilamentAction::Preheat: break; } lcd_set_cursor(0, 3); From 07169ad84a2049f103f8ff6e825f7e0218f57c90 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 27 Aug 2019 20:48:53 +0200 Subject: [PATCH 13/14] Make file local variable static. --- Firmware/ultralcd.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index e79db0bac..87092b2c3 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2091,7 +2091,7 @@ FilamentAction eFilamentAction=FilamentAction::None; // must be initialized as ' bool bFilamentFirstRun; bool bFilamentPreheatState; bool bFilamentAction=false; -bool bFilamentWaitingFlag=false; +static bool bFilamentWaitingFlag=false; static void mFilamentPrompt() { From 29c8cb29275fad8f0ac7a22283ea2ff5b2b01410 Mon Sep 17 00:00:00 2001 From: Marek Bel Date: Tue, 27 Aug 2019 22:22:36 +0200 Subject: [PATCH 14/14] Fix bad merge. --- Firmware/ultralcd.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/Firmware/ultralcd.cpp b/Firmware/ultralcd.cpp index dc721a1b2..87092b2c3 100755 --- a/Firmware/ultralcd.cpp +++ b/Firmware/ultralcd.cpp @@ -2305,12 +2305,6 @@ static void mFilamentItem_ASA() mFilamentItem(ASA_PREHEAT_HOTEND_TEMP, ASA_PREHEAT_HPB_TEMP); } -static void mFilamentItem_ASA() -{ - bFilamentPreheatState=false; - mFilamentItem(ASA_PREHEAT_HOTEND_TEMP,ASA_PREHEAT_HPB_TEMP); -} - static void mFilamentItem_ABS() { bFilamentPreheatState = false;