summaryrefslogtreecommitdiff
path: root/Sprinter/Sprinter.pde
diff options
context:
space:
mode:
Diffstat (limited to 'Sprinter/Sprinter.pde')
-rw-r--r--Sprinter/Sprinter.pde30
1 files changed, 28 insertions, 2 deletions
diff --git a/Sprinter/Sprinter.pde b/Sprinter/Sprinter.pde
index 3620030..b3373a0 100644
--- a/Sprinter/Sprinter.pde
+++ b/Sprinter/Sprinter.pde
@@ -127,7 +127,16 @@
- Extra Parameter for Max Extruder Jerk
- New Parameter (max_e_jerk) in EEPROM --> Default settings after update !
+ Version 1.3.20T
+- fix a few typos and correct english usage
+- reimplement homing routine as an inline function
+- refactor eeprom routines to make it possible to modify the value of a single parameter
+- calculate eeprom parameter addresses based on previous param address plus sizeof(type)
+- add 0 C point in Thermistortable 7
+ Version 1.3.21T
+- M301 set PID Parameter, and Store to EEPROM
+- If no PID is used, deaktivate Variables for PID settings
*/
@@ -219,6 +228,7 @@ void __cxa_pure_virtual(){};
// M220 - set speed factor override percentage S=factor in percent
// M221 - set extruder multiply factor S100 --> original Extrude Speed
+// M301 - Set PID parameters P I and D
// M303 - PID relay autotune S<temperature> sets the target temperature. (default target temperature = 150C)
// M400 - Finish all moves
@@ -234,7 +244,7 @@ void __cxa_pure_virtual(){};
// M603 - Show Free Ram
-#define _VERSION_TEXT "1.3.19T / 11.06.2012"
+#define _VERSION_TEXT "1.3.21T / 17.07.2012"
//Stepper Movement Variables
char axis_codes[NUM_AXIS] = {'X', 'Y', 'Z', 'E'};
@@ -250,7 +260,9 @@ float max_xy_jerk = _MAX_XY_JERK;
float max_z_jerk = _MAX_Z_JERK;
float max_e_jerk = _MAX_E_JERK;
unsigned long min_seg_time = _MIN_SEG_TIME;
-unsigned int Kp = PID_PGAIN, Ki = PID_IGAIN, Kd = PID_DGAIN;
+#ifdef PIDTEMP
+ unsigned int PID_Kp = PID_PGAIN, PID_Ki = PID_IGAIN, PID_Kd = PID_DGAIN;
+#endif
long max_acceleration_units_per_sq_second[4] = _MAX_ACCELERATION_UNITS_PER_SQ_SECOND; // X, Y, Z and E max acceleration in mm/s^2 for printing moves or retracts
@@ -851,6 +863,10 @@ void setup()
//second value --> Print settings to UART
EEPROM_RetrieveSettings(false,false);
#endif
+
+ #ifdef PIDTEMP
+ updatePID();
+ #endif
//Free Ram
showString(PSTR("Free Ram: "));
@@ -1817,6 +1833,16 @@ FORCE_INLINE void process_commands()
}
}
break;
+#ifdef PIDTEMP
+ case 301: // M301
+ {
+ if(code_seen('P')) PID_Kp = code_value();
+ if(code_seen('I')) PID_Ki = code_value();
+ if(code_seen('D')) PID_Kd = code_value();
+ updatePID();
+ }
+ break;
+#endif //PIDTEMP
#ifdef PID_AUTOTUNE
case 303: // M303 PID autotune
{