Die Marlin Firmware hat paar echt nette Features am Board,
unter anderem das „PID Autotuning“.

Es sind zwar PID-Werte schon in der Firmware vordefiniert aber
diese sind in der Regel als Richtwerte anzusehen.

Grade wenn man wie ich ein komplett anderes HotEnd verbaut hat wie es
ursprünglich angedacht war.

Zum Glück hat die Marlin-Firmware ein nettes Tool mit an Board..
das PID Autotuning. 

Dies macht es einen sehr einfach die richtigen PID-Werte zu ermitteln.

Als erstes nehmen wir und das HotEnd vor.

 

Nun erst einmal der G-Code zur Ermittlung der PID-Wete für das HotEnd in 8 Zyklen:

M106
M303 E-0 S230 C8

Erläuterung:

  • M106 Nozzel Lüfter auf 100%
  • M303 startet das PID Autotuning
  • E-0 wählt das erste HotEnd
  • S230 die zu erreichende Temperatur (230°C)
  • C8 gibt die Zyklen der Messungen an ( 8 Stk. )

 

Nach dem nun die 8 Heizzyklen durchgelaufen sind habe ein Ergebnis in dieser Art:

Kp 21.0
Ki 1.25
Kd 86.0

 

Diese werden nun mit folgenden G-Code im EEPROM gepeichert.

M301 P21.0 I1.25 D86.0
M500

Erläuterung:

  • M301 setzt die PID-Werte temporär
  • P = KP
  • I = KI
  • D = KD
  • M500 speichert die temporären PID-Werte im EEPROM

 

Oder direkt in die Firmware (Configuration.h)  eingetragen. 

#define  DEFAULT_Kp 21.0
#define  DEFAULT_Ki 1.25
#define  DEFAULT_Kd 86.0

 

 

Um auch das HotBed über PID zu regeln, muss es erst mal in der Firmware aktiviert werden.  

So muss das dann ein und auch auskommentiert werden in der Configuration.h

#define PIDTEMPBED
//#define BED_LIMIT_SWITCHING

 

Auch hier können wir nun wieder das Autotuning Tool nutzen

M303 E-1 S60 C8

Erläuterung:

  • M303 startet das PID Autotuning
  • E-1 wählt das erste HotBed
  • S60 die zu erreichende Temperatur (60°C)
  • C8 gibt die Zyklen der Messungen an ( 8 Stk. )

Nach dem nun die 8 Heizzyklen durchgelaufen sind habe wir auch wieder hier ein Ergebnis in dieser Art:

Kp 579.01
Ki 100.87
Kd 586.0

Diese werden nun mit folgenden G-Code im EEPROM gepeichert.

M304 P579.01 I100.87 D586.0
M500

Erläuterung:

  • M304 setzt die PID-Werte für das HotBed temporär
  • P = KP
  • I = KI
  • D = KD
  • M500 speichert die temporären PID-Werte im EEPROM

Oder auch hier direkt in die Firmware (Configuration.h)  eingetragen. 

#define  DEFAULT_bedKp 579.01
#define  DEFAULT_bedKi 100.87
#define  DEFAULT_bedKd 586.0

Das war es auch schon :o)