Browse Source

Fix error next command in autotune (PR#2274)

Now send only temperature for T or B, but not send OK.
Host interprets the line to show the right temperature, but not in
response to M105 then stop and send commands until it ends the autotune.
pull/1/head
MagoKimbra 9 years ago
committed by Richard Wackerbarth
parent
commit
eb81982fcd
  1. 3
      Marlin/Marlin_main.cpp
  2. 4
      Marlin/language.h
  3. 7
      Marlin/temperature.cpp

3
Marlin/Marlin_main.cpp

@ -4510,9 +4510,6 @@ inline void gcode_M303() {
int c = code_seen('C') ? code_value_short() : 5; int c = code_seen('C') ? code_value_short() : 5;
float temp = code_seen('S') ? code_value() : (e < 0 ? 70.0 : 150.0); float temp = code_seen('S') ? code_value() : (e < 0 ? 70.0 : 150.0);
PID_autotune(temp, e, c); PID_autotune(temp, e, c);
// Suppress a line mismatch error
gcode_LastN += 1;
FlushSerialRequestResend();
} }
#ifdef SCARA #ifdef SCARA

4
Marlin/language.h

@ -195,8 +195,8 @@
#define MSG_KP " Kp: " #define MSG_KP " Kp: "
#define MSG_KI " Ki: " #define MSG_KI " Ki: "
#define MSG_KD " Kd: " #define MSG_KD " Kd: "
#define MSG_OK_B "ok B:" #define MSG_B "B:"
#define MSG_OK_T "ok T:" #define MSG_T "T:"
#define MSG_AT " @:" #define MSG_AT " @:"
#define MSG_PID_AUTOTUNE_FINISHED MSG_PID_AUTOTUNE " finished! Put the last Kp, Ki and Kd constants from below into Configuration.h" #define MSG_PID_AUTOTUNE_FINISHED MSG_PID_AUTOTUNE " finished! Put the last Kp, Ki and Kd constants from below into Configuration.h"
#define MSG_PID_DEBUG " PID_DEBUG " #define MSG_PID_DEBUG " PID_DEBUG "

7
Marlin/temperature.cpp

@ -191,8 +191,7 @@ static void updateTemperaturesFromRawValues();
//================================ Functions ================================ //================================ Functions ================================
//=========================================================================== //===========================================================================
void PID_autotune(float temp, int extruder, int ncycles) void PID_autotune(float temp, int extruder, int ncycles) {
{
float input = 0.0; float input = 0.0;
int cycles = 0; int cycles = 0;
bool heating = true; bool heating = true;
@ -324,11 +323,11 @@ void PID_autotune(float temp, int extruder, int ncycles)
int p; int p;
if (extruder < 0) { if (extruder < 0) {
p = soft_pwm_bed; p = soft_pwm_bed;
SERIAL_PROTOCOLPGM(MSG_OK_B); SERIAL_PROTOCOLPGM(MSG_B);
} }
else { else {
p = soft_pwm[extruder]; p = soft_pwm[extruder];
SERIAL_PROTOCOLPGM(MSG_OK_T); SERIAL_PROTOCOLPGM(MSG_T);
} }
SERIAL_PROTOCOL(input); SERIAL_PROTOCOL(input);

Loading…
Cancel
Save