Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 0 additions & 4 deletions Marlin/src/Marlin.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -204,10 +204,6 @@ millis_t max_inactive_time, // = 0
bool chdkActive; // = false;
#endif

#if ENABLED(PID_EXTRUSION_SCALING)
int lpq_len = 20;
#endif

#if ENABLED(I2C_POSITION_ENCODERS)
I2CPositionEncodersMgr I2CPEM;
#endif
Expand Down
4 changes: 0 additions & 4 deletions Marlin/src/Marlin.h
Original file line number Diff line number Diff line change
Expand Up @@ -207,10 +207,6 @@ extern millis_t max_inactive_time, stepper_inactive_time;
extern uint8_t controllerFanSpeed;
#endif

#if ENABLED(PID_EXTRUSION_SCALING)
extern int lpq_len;
#endif

#if HAS_POWER_SWITCH
extern bool powersupply_on;
#define PSU_PIN_ON() do{ OUT_WRITE(PS_ON_PIN, PS_ON_AWAKE); powersupply_on = true; }while(0)
Expand Down
7 changes: 4 additions & 3 deletions Marlin/src/gcode/config/M301.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
* With PID_EXTRUSION_SCALING:
*
* C[float] Kc term
* L[float] LPQ length
* L[int] LPQ length
*/
void GcodeSuite::M301() {

Expand All @@ -51,8 +51,9 @@ void GcodeSuite::M301() {
if (parser.seen('D')) PID_PARAM(Kd, e) = scalePID_d(parser.value_float());
#if ENABLED(PID_EXTRUSION_SCALING)
if (parser.seen('C')) PID_PARAM(Kc, e) = parser.value_float();
if (parser.seen('L')) lpq_len = parser.value_float();
NOMORE(lpq_len, LPQ_MAX_LEN);
if (parser.seenval('L')) thermalManager.lpq_len = parser.value_int();
NOMORE(thermalManager.lpq_len, LPQ_MAX_LEN);
NOLESS(thermalManager.lpq_len, 0);
#endif

thermalManager.updatePID();
Expand Down
20 changes: 12 additions & 8 deletions Marlin/src/module/configuration_store.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,10 @@
#include "../feature/pause.h"
#endif

#if ENABLED(PID_EXTRUSION_SCALING)
#define LPQ_LEN thermalManager.lpq_len
#endif

#pragma pack(push, 1) // No padding between variables

typedef struct PID { float Kp, Ki, Kd; } PID;
Expand Down Expand Up @@ -198,7 +202,7 @@ typedef struct SettingsDataStruct {
//
PIDC hotendPID[MAX_EXTRUDERS]; // M301 En PIDC / M303 En U

int lpq_len; // M301 L
int16_t lpq_len; // M301 L

//
// PIDTEMPBED
Expand Down Expand Up @@ -594,9 +598,9 @@ void MarlinSettings::postprocess() {
_FIELD_TEST(lpq_len);

#if DISABLED(PID_EXTRUSION_SCALING)
int lpq_len = 20;
const int16_t LPQ_LEN = 20;
#endif
EEPROM_WRITE(lpq_len);
EEPROM_WRITE(LPQ_LEN);

#if DISABLED(PIDTEMPBED)
dummy = DUMMY_PID_VALUE;
Expand Down Expand Up @@ -1199,9 +1203,9 @@ void MarlinSettings::postprocess() {
_FIELD_TEST(lpq_len);

#if DISABLED(PID_EXTRUSION_SCALING)
int lpq_len;
int16_t LPQ_LEN;
#endif
EEPROM_READ(lpq_len);
EEPROM_READ(LPQ_LEN);

//
// Heated Bed PID
Expand Down Expand Up @@ -1812,7 +1816,7 @@ void MarlinSettings::reset(PORTARG_SOLO) {
#endif
}
#if ENABLED(PID_EXTRUSION_SCALING)
lpq_len = 20; // default last-position-queue size
thermalManager.lpq_len = 20; // default last-position-queue size
#endif
#endif // PIDTEMP

Expand Down Expand Up @@ -2288,7 +2292,7 @@ void MarlinSettings::reset(PORTARG_SOLO) {
SERIAL_ECHOPAIR_P(port, " D", unscalePID_d(PID_PARAM(Kd, e)));
#if ENABLED(PID_EXTRUSION_SCALING)
SERIAL_ECHOPAIR_P(port, " C", PID_PARAM(Kc, e));
if (e == 0) SERIAL_ECHOPAIR_P(port, " L", lpq_len);
if (e == 0) SERIAL_ECHOPAIR_P(port, " L", thermalManager.lpq_len);
#endif
SERIAL_EOL_P(port);
}
Expand All @@ -2303,7 +2307,7 @@ void MarlinSettings::reset(PORTARG_SOLO) {
SERIAL_ECHOPAIR_P(port, " D", unscalePID_d(PID_PARAM(Kd, 0)));
#if ENABLED(PID_EXTRUSION_SCALING)
SERIAL_ECHOPAIR_P(port, " C", PID_PARAM(Kc, 0));
SERIAL_ECHOPAIR_P(port, " L", lpq_len);
SERIAL_ECHOPAIR_P(port, " L", thermalManager.lpq_len);
#endif
SERIAL_EOL_P(port);
}
Expand Down
4 changes: 4 additions & 0 deletions Marlin/src/module/temperature.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,10 @@ uint8_t Temperature::soft_pwm_amount[HOTENDS];
uint8_t Temperature::ADCKey_count = 0;
#endif

#if ENABLED(PID_EXTRUSION_SCALING)
int16_t Temperature::lpq_len; // Initialized in configuration_store
#endif

#if HAS_PID_HEATING

/**
Expand Down
4 changes: 4 additions & 0 deletions Marlin/src/module/temperature.h
Original file line number Diff line number Diff line change
Expand Up @@ -299,6 +299,10 @@ class Temperature {
static uint8_t ADCKey_count;
#endif

#if ENABLED(PID_EXTRUSION_SCALING)
static int16_t lpq_len;
#endif

/**
* Instance Methods
*/
Expand Down