From acec237092b16755c93d5f4eb2517cc8d9cd3624 Mon Sep 17 00:00:00 2001 From: Thomas Moore Date: Tue, 2 May 2017 18:41:26 -0500 Subject: [PATCH 1/4] Shutdown heaters and fan after canceling a print from the SD card --- Marlin/ultralcd.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Marlin/ultralcd.cpp b/Marlin/ultralcd.cpp index e08633aa55..2ba3ee5bdc 100644 --- a/Marlin/ultralcd.cpp +++ b/Marlin/ultralcd.cpp @@ -702,8 +702,9 @@ void kill_screen(const char* lcd_msg) { clear_command_queue(); quickstop_stepper(); print_job_timer.stop(); - #if ENABLED(AUTOTEMP) - thermalManager.autotempShutdown(); + thermalManager.disable_all_heaters(); + #if FAN_COUNT > 0 + for (uint8_t i = 0; i < FAN_COUNT; i++) fanSpeeds[i] = 0; #endif wait_for_heatup = false; LCD_MESSAGEPGM(MSG_PRINT_ABORTED); From 6854f08d22cf8f3c925ce526d5595389d86c2d4a Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 3 May 2017 20:43:00 -0500 Subject: [PATCH 2/4] Shut down autotemp in disable_all_heaters --- .travis.yml | 2 +- Marlin/Marlin_main.cpp | 4 ---- Marlin/temperature.cpp | 8 +++++++- Marlin/temperature.h | 11 ----------- 4 files changed, 8 insertions(+), 17 deletions(-) diff --git a/.travis.yml b/.travis.yml index e27c9c01a6..e29f7f6d71 100644 --- a/.travis.yml +++ b/.travis.yml @@ -141,7 +141,7 @@ script: - restore_configs - opt_enable NUM_SERVOS Z_ENDSTOP_SERVO_NR Z_SERVO_ANGLES DEACTIVATE_SERVOS_AFTER_MOVE - opt_enable AUTO_BED_LEVELING_3POINT DEBUG_LEVELING_FEATURE EEPROM_SETTINGS EEPROM_CHITCHAT - - opt_enable_adv EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES + - opt_enable_adv EXTENDED_CAPABILITIES_REPORT AUTO_REPORT_TEMPERATURES AUTOTEMP - build_marlin # # Test MESH_BED_LEVELING feature, with LCD diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index fcf92c6775..b53780b71f 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -5762,10 +5762,6 @@ inline void gcode_M31() { SERIAL_ECHO_START; SERIAL_ECHOLNPAIR("Print time: ", buffer); - - #if ENABLED(AUTOTEMP) - thermalManager.autotempShutdown(); - #endif } #if ENABLED(SDSUPPORT) diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp index eb20c5a5fe..7a480b87a9 100644 --- a/Marlin/temperature.cpp +++ b/Marlin/temperature.cpp @@ -25,9 +25,10 @@ */ #include "Marlin.h" -#include "ultralcd.h" #include "temperature.h" #include "thermistortables.h" +#include "ultralcd.h" +#include "planner.h" #include "language.h" #if ENABLED(HEATER_0_USES_MAX6675) @@ -1288,6 +1289,11 @@ void Temperature::init() { #endif // THERMAL_PROTECTION_HOTENDS || THERMAL_PROTECTION_BED void Temperature::disable_all_heaters() { + + #if ENABLED(AUTOTEMP) + planner.autotemp_enabled = false; + #endif + HOTEND_LOOP() setTargetHotend(0, e); setTargetBed(0); diff --git a/Marlin/temperature.h b/Marlin/temperature.h index f6ffd89e63..d37cb55931 100644 --- a/Marlin/temperature.h +++ b/Marlin/temperature.h @@ -27,7 +27,6 @@ #ifndef TEMPERATURE_H #define TEMPERATURE_H -#include "planner.h" #include "thermistortables.h" #include "MarlinConfig.h" @@ -418,16 +417,6 @@ class Temperature { */ static void updatePID(); - #if ENABLED(AUTOTEMP) - static void autotempShutdown() { - if (planner.autotemp_enabled) { - planner.autotemp_enabled = false; - if (degTargetHotend(EXTRUDER_IDX) > planner.autotemp_min) - setTargetHotend(0, EXTRUDER_IDX); - } - } - #endif - #if ENABLED(BABYSTEPPING) static void babystep_axis(const AxisEnum axis, const int distance) { From 1196e3ca592757b99bc4f681f66c2fc771bf7bb7 Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 3 May 2017 22:14:40 -0500 Subject: [PATCH 3/4] SDCard print completion can use "M0" --- Marlin/Marlin_main.cpp | 5 +---- Marlin/cardreader.cpp | 2 +- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index b53780b71f..0e530b75c7 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -1182,10 +1182,7 @@ inline void get_serial_commands() { LCD_MESSAGEPGM(MSG_INFO_COMPLETED_PRINTS); set_led_color(0, 255, 0); // Green #if HAS_RESUME_CONTINUE - KEEPALIVE_STATE(PAUSED_FOR_USER); - wait_for_user = true; - while (wait_for_user) idle(); - KEEPALIVE_STATE(IN_HANDLER); + enqueue_and_echo_commands_P(PSTR("M0")); // end of the queue! #else safe_delay(1000); #endif diff --git a/Marlin/cardreader.cpp b/Marlin/cardreader.cpp index ab4b659dae..a37389e457 100644 --- a/Marlin/cardreader.cpp +++ b/Marlin/cardreader.cpp @@ -552,7 +552,7 @@ void CardReader::checkautostart(bool force) { bool found = false; while (root.readDir(p, NULL) > 0) { - for (int8_t i = 0; i < (int8_t)strlen((char*)p.name); i++) p.name[i] = tolower(p.name[i]); + for (int8_t i = (int8_t)strlen((char*)p.name); i--;) p.name[i] = tolower(p.name[i]); if (p.name[9] != '~' && strncmp((char*)p.name, autoname, 5) == 0) { openAndPrintFile(autoname); found = true; From 399efd66ed02f7acc24c9e724f9c41cc02d6951e Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 3 May 2017 22:26:06 -0500 Subject: [PATCH 4/4] Click to resume --- Marlin/language_en.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Marlin/language_en.h b/Marlin/language_en.h index 80f17ea53e..78d674c715 100644 --- a/Marlin/language_en.h +++ b/Marlin/language_en.h @@ -355,7 +355,7 @@ #define MSG_DWELL _UxGT("Sleep...") #endif #ifndef MSG_USERWAIT - #define MSG_USERWAIT _UxGT("Wait for user...") + #define MSG_USERWAIT _UxGT("Click to resume...") #endif #ifndef MSG_RESUMING #define MSG_RESUMING _UxGT("Resuming print")