diff --git a/Firmware/cmdqueue.cpp b/Firmware/cmdqueue.cpp index 1ff5521e5..ee08f4fc4 100755 --- a/Firmware/cmdqueue.cpp +++ b/Firmware/cmdqueue.cpp @@ -438,11 +438,16 @@ void get_command() if(strcmp_P(cmd_start, PSTR("M112")) == 0) kill(MSG_M112_KILL, 2); + // Bypass Stopped for some commands + bool allow_when_stopped = false; + if(strncmp_P(cmd_start, PSTR("M310"), 4) == 0) + allow_when_stopped = true; + // Handle the USB timer if ((*cmd_start == 'G') && !IS_SD_PRINTING) usb_timer.start(); - if (Stopped == true) { + if (allow_when_stopped == false && Stopped == true) { // Stopped can be set either during error states (thermal error: cannot continue), or // when a printer-initiated action is processed. In such case the printer will send to // the host an action, but cannot know if the action has been processed while new