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..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 @@ -5762,10 +5759,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/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; 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") 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) { 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);