Skip to content

Commit

Permalink
🐛 Fix PID edit menu for Bed, Chamber (MarlinFirmware#23987)
Browse files Browse the repository at this point in the history
  • Loading branch information
GMagician authored and Omkar Dhekne committed Mar 25, 2024
1 parent d61ab12 commit b99d561
Showing 1 changed file with 35 additions and 8 deletions.
43 changes: 35 additions & 8 deletions Marlin/src/lcd/menu/menu_advanced.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@
#include "../../module/probe.h"
#endif

#if ENABLED(PIDTEMP)
#if ANY(PIDTEMP, PIDTEMPBED, PIDTEMPCHAMBER)
#include "../../module/temperature.h"
#endif

Expand Down Expand Up @@ -190,7 +190,12 @@ void menu_backlash();
#if ENABLED(PIDTEMPCHAMBER)
case H_CHAMBER: tune_temp = autotune_temp_chamber; break;
#endif
default: tune_temp = autotune_temp[hid]; break;
default:
#if ENABLED(PIDTEMP)
tune_temp = autotune_temp[hid]; break;
#else
return;
#endif
}
sprintf_P(cmd, PSTR("M303 U1 E%i S%i"), hid, tune_temp);
queue.inject(cmd);
Expand All @@ -206,14 +211,36 @@ void menu_backlash();
// Helpers for editing PID Ki & Kd values
// grab the PID value out of the temp variable; scale it; then update the PID driver
void copy_and_scalePID_i(int16_t e) {
UNUSED(e);
PID_PARAM(Ki, e) = scalePID_i(raw_Ki);
thermalManager.updatePID();
switch (e) {
#if ENABLED(PIDTEMPBED)
case H_BED: thermalManager.temp_bed.pid.Ki = scalePID_i(raw_Ki); break;
#endif
#if ENABLED(PIDTEMPCHAMBER)
case H_CHAMBER: thermalManager.temp_chamber.pid.Ki = scalePID_i(raw_Ki); break;
#endif
default:
#if ENABLED(PIDTEMP)
PID_PARAM(Ki, e) = scalePID_i(raw_Ki);
thermalManager.updatePID();
#endif
break;
}
}
void copy_and_scalePID_d(int16_t e) {
UNUSED(e);
PID_PARAM(Kd, e) = scalePID_d(raw_Kd);
thermalManager.updatePID();
switch (e) {
#if ENABLED(PIDTEMPBED)
case H_BED: thermalManager.temp_bed.pid.Kd = scalePID_d(raw_Kd); break;
#endif
#if ENABLED(PIDTEMPCHAMBER)
case H_CHAMBER: thermalManager.temp_chamber.pid.Kd = scalePID_d(raw_Kd); break;
#endif
default:
#if ENABLED(PIDTEMP)
PID_PARAM(Kd, e) = scalePID_d(raw_Kd);
thermalManager.updatePID();
#endif
break;
}
}

#define _DEFINE_PIDTEMP_BASE_FUNCS(N) \
Expand Down

0 comments on commit b99d561

Please sign in to comment.