Lese hier nach wie das PID Tuning in deinem 3D Drucker mit Marlin Firmware durchgeführt werden kann.

Mit dem PID Tuning kannst du für dein Gerät spezifisch die optimalen Werte ermitteln, die dein Gerät als Faktor-Variablen für das Heizen von Hotend und Heizbett einsetzt.

Beim PID Tuning versucht der 3D Drucker bzw. die Firmware selbständig optimale Faktor-Variablen für das Halten der Temperatur zu ermitteln. Davor geht er zyklisch in mehreren Durchgängen vor.

Temperatur Kurve während des Drucks
Temperatur-Kurve während des Drucks: Der 3D Drucker muss ständig schauen, dass die eingestellten Temperaturen gehalten werden. PID Tuning kann diesen Prozess optimieren. Sollte dein 3D Drucker größere Schwankungen als im Bild aufweisen, kannst du eventuell mit PID Tuning optimieren.
Das Ergebnis eines guten PID Tunings sind stabilere Temperaturen am Hotend und am Heizbett und somit sichtbar bessere Druck-Ergebnisse. Es lohnt sich also.

Übrigens: Auch interessant zum Thema Temperaturen ist unser Artikel zum Warping.

Notwendige Vorbereitung und Informationen

Um die PID Einstellungen dauerhaft in deiner Konfiguration zu hinterlegen, muss der EEPROM von deinem 3D Drucker aktiviert und beschreibbar sein. Das ist ein Festspeicher auf der Platine deines 3D Druckers, der Werte dauerhaft speichern kann aber auch per Signal wieder gelöscht werden kann.
(EEPROM auf Wikipedia)

GCODE Befehle für den EEPROM

Die folgenden Befehle solltest du für das Handling mit dem EEPROM kennen:

# Werte auf Werks-Einstellungen setzen:
M502

# Aktuell im EEPROM gespeicherte Werte laden:
M501

# Werte speichern:
M500

Ob dein EEPROM derzeit aktiviert ist, kannst du einfach mit einem "M500" in einer aktiven Konsole z.B. über Octoprint testen. Meldet der 3D Drucker OK zurück, ist alles bereits richtig konfiguriert. Sollte dein 3D Drucker mit einem Fehler antworten, musst du den EEPROM aktivieren. Alternativ kannst du die PID-Settings aber auch im Startcode deines Slicers hinterlegen.

Repetier Server Konsole
Octoprint oder Repetier Server bieten sehr komfortabel Zugang zur Konsole deines 3D Druckers

EEPROM unter Marlin aktivieren

Um den beschreibbaren EEPROM unter Marlin zu aktivieren, musst du die Firmware ändern, neu kompilieren und hochladen. Dafür brauchst Du den Source-Code deiner 3D Drucker Firmware, passend für dein Modell. Inzwischen stellen alle Hersteller diesen meist über ihre Website oder Github bereit.

Außerdem brauchst du die Arduino Entwicklungsumgebung für die Änderungen. Solltest du das haben und nicht zum ersten Mal damit hantieren, hier die Lösung in Kurz und knapp:

Öffne den Sketch der Firmware in der Arduino IDE. Suche nach der Zeile mit

#define EEPROM_SETTINGS

und entferne den Kommentar-Marker (#) am Anfang der Zeile. Anschließend Firmware neu kompilieren und auf das Board deines 3D Druckers flashen.

Fertig, EEPROM ist aktiviert!

PID Einstellungen direkt im GCODE hinterlegen (Startcode)

Im EEPROM solltest du die PID-Einstellungen für deine Alltags-Temperaturen hinterlegen.

Solltest du keinen Zugriff auf den internen Festspeicher haben, ist das aber kein Problem. Du kannst die PID Settings auch einfach in den Startcode deines Slicers aufnehmen.

Diese werden dann vor jedem Druckauftrag einfach geladen und angewendet. Gehe dazu wie folgt vor:

  1. Führe das PID Tuning durch
  2. Notiere dir die Ergebnisse
  3. Füge im Startcode eine neue Zeile ein mit dem Befehl M301 am Zeilenanfang. Achte auf Punkt statt Komma!
#Beispiel für das Hotend:

M301 E0 P46.33 I55.05 D112.3

Das war es auch schon. In jeder GCODE-Datei stehen fortan diese Werte und werden vor dem Heizen geladen. Achte darauf den Befehl direkt am Anfang zu platzieren, damit dieser auch rechtzeitig geladen wird.

Übrigens: Ich nutze trotz optimerter Werte in meinem Profilen in S3D trotzdem PID Tuning Werte. Im 3D Drucker sind standardmäßig meine optimierten Werte für den Standard Temperatur Bereich hinterlegt. Wenn ich aber Nylon oder ABS drucke, verwende ich andere Werte und löse das über den Startcode direkt im GCODE

Hotend PID Tuning

Um das PID Tuning durchzuführen, benötigst du den Konsolen  Zugriff auf deinen 3D Drucker und den Befehl M303

# Beispiel für Hotend PID Tuning:
# Hotend 0, Ziel-Temperatur 215 Grad und 6 Test-Zyklen

M303 E0 S215 C6

# Der Befehl setzt sich dabei wie folgt zusammen:

M303 E[Hotend-Kenner] S[Temperatur in Grad Celsius] C[Anzahl Test-Zyklen]

Der Vorgang kann eine ganze Weile dauern. Der Drucker meldet ganz am Ende "PID Autotune finished". Warte unbedingt diese Meldung ab!

Nach Abschluss des PID-Tunings meldet der 3D Drucker seine ermittelten optimalen Werte. Diese speicherst du mit dem Befehl M301 in Drucker.

#Beispiel für das Hotend :

M301 E0 P46.33 I55.05 D112.3

Anschließend die Werte im EEPROM dauerhaft speichern:

M500

Heizbett PID Tuning

Zumindest vor einigen Jahren war das PID Tuning für das Heizbett in den meisten Firmwares ab Werk noch deaktiviert. Inzwischen ist dieses aber oft offen und kann verändert werden.

Heizbett PID aktivieren in Marlin

Um das PID Tuning für das Heizbett unter Marlin zu aktivieren, müssen in der Configuration.h 2 Zeilen geändert werden:

Folgende Zeilen müssen geändert werden:

#define PIDTEMPBED
define BED_LIMIT_SWITCHING

zu:

define PIDTEMPBED
#define BED_LIMIT_SWITCHING

Anschließend kannst du das PID Tuning auch für das Heizbett durchführen und deine Einstellungen optimieren.

Gehe dazu vor wie beim Hotend, allerdings verwende den richtigen Kenner für das Heizbett (üblicherweise E1) und natürlich eine angepasste Temperatur (z.B. 60 Grad).

Nutzt du PID Tuning bereits? Lass gerne einen Kommentar da.

Viele Grüße
tm