Marlin PID Autotuning für 3D-Drucker

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:

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:

 

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

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. 

 

 

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

 

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

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:

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

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. 

Das war es auch schon :o)

6 thoughts on “Marlin PID Autotuning für 3D-Drucker

  1. Ich habe nun viele Foren in Bezug AutoPID Einstellung virgrfunden und meinen Daycom 3dp-100 versucht die ruchtigen PID-Daten zu erhalten.wenn ich daa Heatbed aufheize, zeigt mir der Thermistor zwar konstant 60°C an, aber die messung mit meinem Laserthermomessgerät zeigt mir 54°C an. Im Markin ist PID Aktiviert und auch gespeichert. Wie kann ich das nun anpassen? Anfangs hatte ich eine Temperaturtabelle Nr.11 aktiviert. Muss diese evtl.deaktiviert werden? Mein MK3 Heatbed ist zusätzlich mit einer Borosilikatglas bestückt.
    Mit freundlichen Grüßen Falko

    1. Die Abweichungen sind ganz normal , da dein Temperatursensor eine Toleranz von ca. 5 % besitzt und Du auch ein anderen Messpunkt gewählt hast wie der Sensor in nutzt.
      Steuert tut man auch nicht über die PID.

      Ich könnte z.B. in meinem Octoprint ein „Temp Offset“ einstellen.
      Ein Weg über die Firmware wäre mir das nicht bekannt.

    1. Ich mache das aktuell immer über Octoprint,
      geht aber auch mit jeden Slicer wenn du den Drucker mit deinen PC / Lappi verbunden hast.

  2. Hallo Shojo,

    sehr gute Anleitung:)
    Eine Frage hätte ich. Sollte man evtl. beim Tuning den Nozzle-Lüfter manuell aktivieren (M106=ON M107=OFF), da ja beim Betrieb die Nozzle indirekt mitgekühlt wird, was beim Tuning mit einberechnet werden sollte? Ich kann mir gut vorstellen das die Temperatur sonnst zu stark absackt, wenn der Lüfter ab 0.5mm anspringt.
    Oder sind die PID-Werte nur für das „Anheizen“?

    VG

    Tobias

    1. Hi Tobias,

      so unrecht hast Du da nicht…
      Hatte ich glatt verpennt 😉

      Die PID-Werte sind für den ganzen Druck gültig.

      Gruß
      Dennis (Shojo)

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.