PID Tuning Qidi X-Max/Plus via OctoPrint

PID Tuning für Qidi X-Max und X-Plus 3D Drucker

PID (Proportional Integral Derivate) Tuning ist notwendig um den Temperatureinschwingvorgang an der Düse oder dem Bett zu optimieren.

Autotuning start

Dazu kann man einen Autotuningprocess im Drucker starten. Der Befehldazu lautet: M303 <extruder> <Zieltemperatur> <wiederholungen der Messung>


Beispiel:

Code
M303 E0 S250 C10


Wenn jetzt in dem Fall zehn Einschwingvorgänger bei einer Temperatur von 250Grad am Extruder 0 abgeschlossen sind kommt in etwas so etwas vom Drucker zurück:

Code
Repl: wait -> echo:busy processing
Recv: // bias:114 d:114 Ku: 23.411209  Tu:36.004002
Recv: // Kp: 14.046725  Ki:0.780287  Kd:63.217289
Recv: //PID Autotune finished!

Das zeigt aber auch - man könnte den Prozess zwar mit einer zu druckenden Datei und einer SD Karte starten, aber man kann ermittelten Werte nicht sehen oder ändern.

Anmerkung: evtl. funktioniert es das Tuning zu starten warten bis fertig (Düsenheizung geht aus) und dann eine Datei nur mit dem Speicherbefehl zu drucken. Ob das dann erfolgreich war sieht man aber leider nat. nicht. Von daher nutzt besser gleich so etwas wie Octoprint.

Werteübernahme

Die Werte muss man dann im Kommando M301 übernehmen also in etwas so

Code
M301 P14.046725 I0.78028 D63.217289
M8500


M8500 speichert die Werte so dass diese beim Neustart des Druckers nicht verloren gehen. Wenn Ihr viel mit wechselnden Temperaturen arbeitet oder öfters den Extruder wechselt, könnt Ihr das M301 Kommando natürlich auch im Slicer automatisch vor dem Druck setzen lassen.


Diesen Vorgang sollte man immer weiderholen wenn man etwas am Extruder ändert (Heizung, Lüfter....).


Anmerkung:

Es scheint wohl vorzukommen, dass die Werte nicht ausgegeben werden und auch nicht als flüchtige Werte übernommen werden (siehe Kommentar unten). Dann sollte folgendes helfen:

Code
M303 E0 S250 C10 U
M8500

U am Ende für die Übernahme (Update?) und dann direkt der Speicherbefehl. Wenn Ihre nur testen wollt lasst das mit dem M8500 weg. Kommentiert unten mal und gebt Euren FW stand / Version an wie das bei Euch ist.

Ergebnis

Vor dem Tuning:

Recht deutliche Überschwinger

Nach dem Tuning

Wenig Überschwingen

Simplify 3D: https://forum.simplify3d.com/viewtopic.php?t=11624#p45675

Drucktipps 3D: https://drucktipps3d.de/pid-tu…raturen-fuer-den-drucker/

Comments 4

  • Hallo Olaf


    Ich habe eben einen PID-Autotune gestartet und er läuft auch durch, aber ich erhalten kein Result (nur ein ok)


    Mein Log sagt folgendes:


    Code
    Send: N251 M303 E0 S250 C10*86
    [...]
    Recv: ok N:251

    Idee an was das liegt? Dazwischen kommen nur die normalen Temperatur-Status-Meldungen - wurden hier wegen "Suppress" im Octoprint ausgeblendet...

    • Evtl. mit ausgeblendet? Das OK kommt meine ich sofort oder? Das Ergebnis irgendwann nach Ende - bisserl runterscrollen und suchen.

      Wenn ich mich richtig erinnere werden die Werte auch gleich so eingestellt. Wenn Du also einfach die aktuelle Konfig nach dem Tuning speicherst, sollte das einen Neustart des Druckers überleben. Kann man ja leicht testen in dem man die Düse kurz anheizt und die Kurve anschaut.

    • So, habe das nochmal ausführlich getestet.

      • Es kommt bei mir keine Ausgabe
      • Die Werte werden nicht automatisch übernommen

      So geht es aber:

      Code
      M303 E0 S250 C10 U
      M8500

      Das Flag "U" sorgt dafür, dass die Werte nicht ausgegeben werden, sondern direkt angewandt werden.

      Damit spart man sich auch das Abtippen.


      Hatte ich hier in der Marlin Doku gefunden: https://marlinfw.org/docs/gcode/M303.html

      Keine Ahnung warum das bei mir so ist, aber solltest in deine Doku aufnehmen.

    • Echt merkwürdig, mir mir wurde es bei beiden Druckern ausgeben und übernommen ohne die Werte zu setzen. Werde den Hinweis gleich mal oben in die Anleitung packen.