|
|
@ -14,7 +14,7 @@
|
|
|
|
*
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
#define EEPROM_VERSION "V20"
|
|
|
|
#define EEPROM_VERSION "V21"
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* V19 EEPROM Layout:
|
|
|
|
* V19 EEPROM Layout:
|
|
|
@ -60,6 +60,7 @@
|
|
|
|
* M301 E1 PIDC Kp[1], Ki[1], Kd[1], Kc[1]
|
|
|
|
* M301 E1 PIDC Kp[1], Ki[1], Kd[1], Kc[1]
|
|
|
|
* M301 E2 PIDC Kp[2], Ki[2], Kd[2], Kc[2]
|
|
|
|
* M301 E2 PIDC Kp[2], Ki[2], Kd[2], Kc[2]
|
|
|
|
* M301 E3 PIDC Kp[3], Ki[3], Kd[3], Kc[3]
|
|
|
|
* M301 E3 PIDC Kp[3], Ki[3], Kd[3], Kc[3]
|
|
|
|
|
|
|
|
* M301 L lpq_len
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* PIDTEMPBED:
|
|
|
|
* PIDTEMPBED:
|
|
|
|
* M304 PID bedKp, bedKi, bedKd
|
|
|
|
* M304 PID bedKp, bedKi, bedKd
|
|
|
@ -227,6 +228,11 @@ void Config_StoreSettings() {
|
|
|
|
|
|
|
|
|
|
|
|
} // Extruders Loop
|
|
|
|
} // Extruders Loop
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if DISABLED(PID_ADD_EXTRUSION_RATE)
|
|
|
|
|
|
|
|
int lpq_len = 20;
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
EEPROM_WRITE_VAR(i, lpq_len);
|
|
|
|
|
|
|
|
|
|
|
|
#if DISABLED(PIDTEMPBED)
|
|
|
|
#if DISABLED(PIDTEMPBED)
|
|
|
|
float bedKp = DUMMY_PID_VALUE, bedKi = DUMMY_PID_VALUE, bedKd = DUMMY_PID_VALUE;
|
|
|
|
float bedKp = DUMMY_PID_VALUE, bedKi = DUMMY_PID_VALUE, bedKd = DUMMY_PID_VALUE;
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
@ -393,6 +399,11 @@ void Config_RetrieveSettings() {
|
|
|
|
for (int q=16; q--;) EEPROM_READ_VAR(i, dummy); // 4x Kp, Ki, Kd, Kc
|
|
|
|
for (int q=16; q--;) EEPROM_READ_VAR(i, dummy); // 4x Kp, Ki, Kd, Kc
|
|
|
|
#endif // !PIDTEMP
|
|
|
|
#endif // !PIDTEMP
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#if DISABLED(PID_ADD_EXTRUSION_RATE)
|
|
|
|
|
|
|
|
int lpq_len;
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
EEPROM_READ_VAR(i, lpq_len);
|
|
|
|
|
|
|
|
|
|
|
|
#if DISABLED(PIDTEMPBED)
|
|
|
|
#if DISABLED(PIDTEMPBED)
|
|
|
|
float bedKp, bedKi, bedKd;
|
|
|
|
float bedKp, bedKi, bedKd;
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
@ -539,6 +550,9 @@ void Config_ResetDefault() {
|
|
|
|
PID_PARAM(Kc, e) = DEFAULT_Kc;
|
|
|
|
PID_PARAM(Kc, e) = DEFAULT_Kc;
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#if ENABLED(PID_ADD_EXTRUSION_RATE)
|
|
|
|
|
|
|
|
lpq_len = 20; // default last-position-queue size
|
|
|
|
|
|
|
|
#endif
|
|
|
|
// call updatePID (similar to when we have processed M301)
|
|
|
|
// call updatePID (similar to when we have processed M301)
|
|
|
|
updatePID();
|
|
|
|
updatePID();
|
|
|
|
#endif // PIDTEMP
|
|
|
|
#endif // PIDTEMP
|
|
|
@ -744,7 +758,8 @@ void Config_PrintSettings(bool forReplay) {
|
|
|
|
SERIAL_ECHOPAIR(" D", unscalePID_d(PID_PARAM(Kd, i)));
|
|
|
|
SERIAL_ECHOPAIR(" D", unscalePID_d(PID_PARAM(Kd, i)));
|
|
|
|
#if ENABLED(PID_ADD_EXTRUSION_RATE)
|
|
|
|
#if ENABLED(PID_ADD_EXTRUSION_RATE)
|
|
|
|
SERIAL_ECHOPAIR(" C", PID_PARAM(Kc, i));
|
|
|
|
SERIAL_ECHOPAIR(" C", PID_PARAM(Kc, i));
|
|
|
|
#endif
|
|
|
|
if (i == 0) SERIAL_ECHOPAIR(" L", lpq_len);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
SERIAL_EOL;
|
|
|
|
SERIAL_EOL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -758,7 +773,8 @@ void Config_PrintSettings(bool forReplay) {
|
|
|
|
SERIAL_ECHOPAIR(" D", unscalePID_d(PID_PARAM(Kd, 0)));
|
|
|
|
SERIAL_ECHOPAIR(" D", unscalePID_d(PID_PARAM(Kd, 0)));
|
|
|
|
#if ENABLED(PID_ADD_EXTRUSION_RATE)
|
|
|
|
#if ENABLED(PID_ADD_EXTRUSION_RATE)
|
|
|
|
SERIAL_ECHOPAIR(" C", PID_PARAM(Kc, 0));
|
|
|
|
SERIAL_ECHOPAIR(" C", PID_PARAM(Kc, 0));
|
|
|
|
#endif
|
|
|
|
SERIAL_ECHOPAIR(" L", lpq_len);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
SERIAL_EOL;
|
|
|
|
SERIAL_EOL;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif // PIDTEMP
|
|
|
|
#endif // PIDTEMP
|
|
|
|