PID-Tuning: Stabile Temperaturen für den Drucker
Eine relativ einfache, aber wirkungsvolle Möglichkeit, die Druckergebnisse zu optimieren ist das sogenannte PID-Tuning. Was das ist und wie das geht hier am Beispiel von Marlin, genutzt wird hier das Terminal & Temperatur-Graphen von Repetier Server – geht aber auch mit Octoprint, Pronterface oder allem anderen, was ein Terminal hat
Eine möglichst gleichbleibende Temperatur sorgt für schönere Drucke. Wenn die Temperatur um mehr als nur ein oder zwei Grad schwankt, dann kann sich das schon im Druckergebnis abzeichen.
Um diese Schwankungen zu verringern, gibt es in der Marlin Firmware (und anderen) eine kleine Automatik, welche das Heizverhalten des HotEnds (und auch des Betts) messen kann und so eine genauere Temperatursteuerung ermöglicht.
Nicht alle Temperaturschwankungen sind zwangsläufig Folge schlechter PID Einstellungen – gerade bei sehr hohen Schwankungen 10°C und mehr ist häufig auch ein Wackler oder Kabelbruch im Thermistor oder der Heizpatrone vorhanden. Die Schwankungen, die durch das PID Tuning behoben werden, sind meist auffällig zyklisch / regelmäßig und sehen in einem Temperaturgraphen aus wie eine Wellenlinie.
Grundsätzlich ist die Sache so: unsere HotEnds heizen nicht nur mit stupidem An/Aus der Heizung, sondern die Heizleistung wird geregelt in Abhängigkeit der Differenz aus Soll und Ist Temperatur. Ist die aktuelle Temperatur deutlich unter der gewünschten Temperatur, wird mit mehr Leistung geheizt, ist die Temperatur nahe am Sollwert, entsprechend weniger.
Damit das überhaupt erst mal funktionieren kann, existiert in der Marlin Firmware (configuration.h) ein grober Standardwert, je nachdem wieviel Mühe sich der Druckerhersteller gemacht hat, ist der relativ passend – oder auch nicht. Auch reagiert jedes HotEnd ein kleines bissl anders, so dass es in aller Regel durchaus lohnenswert ist, diese Standardwerte durch die selbst ermittelten Werte zu ersetzen.
PID Tuning, wie geht das?
Ganz einfach. Zunächst müssen wir irgendwie dafür sorgen, dass wir Befehle an den Drucker senden können. Ich benutze dafür das Terminal Fenster von Repetier-Server, andere bevorzugen Octoprint. Einfacher für die Meisten dürfte es allerdings sein, einfach nur den Drucker per USB an den PC anzustecken und dann mit der Freeware Pronterface zu arbeiten.
Ganz selten findet man auch im Menü des Druckers selber einen Punkt, um ein PID Tuning auszuführen. (Ultimaker mit TinkerGnome, Prusa MK2&MK3, BCN3D Sigma, ich glaub der Wanhao i3 hat den Punkt auch.. um nur ein paar Modelle zu nennen, die mir jetzt spontan so einfallen) Aber die lassen wir jetzt mal unter den Tisch fallen.
- Wir verbinden den Drucker also irgendwie mit dem PC oder RasPi, starten das Programm unserer Wahl, stellen die Verbindung zum Drucker her und öffnen das Terminal Fenster.
- Wir überlegen uns die Zieltemperatur. Die Zieltemperatur ist im Idealfall genau die Temperatur, mit der Ihr am Ende auch (am häufigsten) drucken werdet, also in meinem Fall ist das 205°C für PLA. (wer es ganz genau machen will, ermittelt die korrekten PID Werte für alle seine Filamentarten PLA, ABS, PETG, usw. einzeln oder sucht sich nen Mittelwert)
- Wenn dieser Filamenttyp mit eingeschaltetem Bauteillüfter gedruckt wird, ist es auch sinnvoll, das PID Tuning mit eingeschaltetem Lüfter vorzunehmen. Also starten wir den Lüfter, in dem wir den folgenden Befehl an den Drucker schicken: M106 E0 S255
= starte Lüfter mit voller Leistung für PLA für den ersten Extruder. Für PETG, dass ich nur mit ca 25% Leistung drucke, würde ich M106 E0 S65 senden. Bei ABS, das ich in der Regel ohne Bauteillüftung drucke, lass ich den Lüfter aus (M106 E0 S0).
- Der Start des PID Tuning sollte bei normaler Raumtemperatur erfolgen, wenn ihr also vorher grad noch was gedruckt habt, macht das PID Tuning lieber später.
Und so startet ich das PID Tuning für PLA auf einem Drucker, der Marlin benutzt:
M303 E0 S205 C5
Das sind
- M303 der Befehl zum Start des Tunings
- E0 für den ersten Extruder (E1 wäre der zweite in einem DualExtruder) (diese Angabe kann in anderen Firmwares als Marlin abweichen!)
- S205 – die gewünschte Zieltemperatur
- C5 = Anzahl Testzyklen aus denen dann ein Mittelwert gebildet wird (C für Cycles)
Weitere Beispiele:
- Ich will PID Tuning für ABS vornehmen:
M106 E0 S0
den Lüfter abschalten und dann
M303 E0 S240 C5 - Oder doch lieber PETG?
M106 E0 S65
Lüfter auf 25% und dann
M303 E0 S220 C5
Und dann heisst es abwarten. In Zwischenzeit spuckt der Drucker ein Haufen Zahlen aus, die Düsen werden aufgeheizt und wieder abgekühlt, das ganze 5 mal – oder so oft wie halt bei C angegeben.
Ganz am Ende steht dann sowas am Bildschirm:
Für uns sind die 3 rot umrandeten Werte interessant:
Kp 21.71
Ki: 1.48
Kd: 79.61
Die müssen wir uns mal schnell notieren, die brauchen wir jetzt gleich wieder..
Was mach ich mit den Werten?
Hier gibts 3 Methoden:
- Wenn Euer Drucker das Speichern von Einstellungen in der Firmware mit M500 erlaubt, dann könnt Ihr nun die ermittelten Werte mit
M301 E0 P21.71 I1.48 D79.61
an den Drucker senden und dann mit
M500
im EEPROM speichern. - Erlaubt Euer Drucker das Speichern mittels M500 nicht, dann könnt Ihr die Zeile
M301 E0 P21.71 I1.48 D79.61
auch einfach in den Start-Code in Eurem Slicer eintragen.
Wer sich die Mühe gemacht hat und für ABS & PETG auch Werte ermittelt hat, kann nun also die zum Material passenden Werte in seinem Slicer hinterlegen. In Cura müsste man unterschiedliche Druckerprofile dazu anlegen, aber hat auch was.. - Wer weiss, wie man die Firmware für seinen Drucker selber editiert, der kann auch in der configuration.h die dort hinterlegten Standardwerte übertippen:
#define DEFAULT_Kp 21.71
#define DEFAULT_Ki 1.49
#define DEFAULT_Kd 79.61
PID Tuning fürs Bett?
Auch das geht. Allerdings nur, wenn das Bett auch tatsächlich per PID geregelt und nicht, wie häufig bei den Heizbetten der Fall nicht stupide per „Bang Bang“ – also simples Ein/Aus gesteuert wird. Wer Zugriff auf den Quellcode der Firmware hat, kann eventuell selber auf PID Steuerung umstellen – dazu wird die configuration.h wie folgt geändert:
#define PIDTEMPBED
//#define BED_LIMIT_SWITCHING
also die // Kommentarzeichen in der oberen Zeile weg und dafür vor die untere Zeile schreiben.
Die ID des Betts, also der Wert für E ist -1. Unser Befehl zum Start des PID Tunings fürs Bett wäre dann z.b.: M303 E-1 S55 C5 und setzen der Werte mit M304 Pxxx.xx Iyyy.yy Dzzz.zz. Danach wie gehabt, entweder ins Eeprom speichern mit M500 oder in den Startcode oder in der Configuration.h hinterlegen bei:
#define DEFAULT_bedKp xxx.xx
#define DEFAULT_bedKi yyy.yy
#define DEFAULT_bedKd zzz.zz
Hallo und vielen Dank für diese Anleitung.
Wenn ich das richtig verstehe, sollte man vor dem PID-Tuning am besten einen TempTower drucken, um die optimale Drucktemperatur zu finden, richtig?
Wie ist das jedoch mit den Bauteilelüfter? Manche haben den original Einseitigen, dann gibt es verschiedene zweiseitige und dann noch die Rundumlüfter. Mit wie viel % sollte man starten? Oder verschiedene Lüfter-Prozente einen TempTower?
Als Einsteiger ist das doch etwas überfordernd. Aber macht irgendwie Spaß.
Vielen lieben Dank für Infos und Tipps. Liebe Grüße Clara
Ich würds nicht übertreiben, damit kann man sich auch kirre machen.. und müsste dann auch in den Slicer Profilen filamentabhängig stets andere PID Werte mitschicken.
Was druckst du am häufigsten, damit machste das Tuning. Wenn es jetzt eh schon keine großen Schwankungen hat, kannst es auch komplett sein lassen.
Ansonsten, wer mag, darf natürlich für jedes Material, mit jedem Lüfterzustand separat testen, das in den Filamentprofilen so ergänzen, wäre mir zu mühsam, ehrlich gesagt.
Die Firmware kann nur für eine Temperatur die PID-Werte speichern. Filamentwechsel PLA, PET, ABS… wäre also jedes Mal ein PID-Tuning erforderlich. Beim Vergleich der ermittelten Werte mit denen in der Firmware wirst Du große Unterschiede feststellen. Nur gefühlt hab ich dabei eher selten einen Unterschied feststellen können. Wenn der Drucker keine starken Schwankungen der Temperatur beim Druck zeigt, kann man auf das PID-Tuning eher verzichten.
Hallo, bei meinem Drucker habe ich auch noch einen Wert „Faktor“, kann dazu jemand was sagen was er bewirkt? Danke
Kleine Frage:
Ich habe bei meinem Slicer eingestellt, das(?) Bridging mit 100 % Lüfter zu drucken, den Rest ohne.
Soll ich beim PID Tuning jetzt den Lüfter anlassen oder abschalten?
Das ist ne spannende Frage, auf die ich keine Antwort habe. Oftmals (vor allem bei Hotends ohne Silikonsocke oder die alte Steinwolle-Isolierung) kann der Lüfter einen Unterschied machen und auch der Moment des Zuschaltens deutlich in der Temperaturkurve sichtbar werden.
Wenn man es genau nimmt, müßte man für jeden Druck ein neues PID-Tuning durchführen, da nur für eine Temperatur die Werte abgespeichert werden. Macht aber auch keiner. Bin mir nicht sicher ob das wirklich so wirksam ist.
Vielen Dank !!!! Echt eine tolle Anleitung. Super, dass Du diese mit unsgeteilt hast
bei mir ist das gleiche problem.
Tronxy X5SA Pro. der lässt noch nicht mal M503 in Pronter face zu.
Habe ich jetzt auch im start GCode geschrieben
Hallo,
ich habe mit dem Autotune ein Problem… Besser gesagt mit meinem neuen Hotend….
das Autotune bricht ab :
Recv: PID Autotune start
[…]
Recv: PID Autotune failed! Temperature too high
die Temperatur des Hotend schwankt während des Druckes um bis zu 5 Grad um den Soll-Wert… Beim Autotune schiesst die Temperatur aber um etwa 30 Grad über den Sollwert hinaus…
mein Hotend hat laut Hersteller „12V/24V 40W“ ich betreibe ihn mit 24 V.
Gibt es eine andere Möglichkeit die PID-Werte zu ermitteln? Oder doch ein anderes Hotend? die Drucke sehen aber eigentlich gut aus…
Mein Drucker ist ein Ender3 – das Hotend angeblich für ein Ender CR10 – dachte das passt…
Vielleicht habt ihr eine Idee?
Ich hab ein Drucker, wo mir das genau so ging. Durch rumprobieren fand ich dann ne Zieltemperatur, die funktioniert hat (180°C), danach konnte ich dann ein Tuning auf meine üblichen 205°C machen.
In der Configuration.h gibt es ein define namens #define PID_FUNCTIONAL_RANGE das du ändern kannst wenn das Overshooting (Überschwingen) zu groß ist. Es befindet sich etwa ab Zeile ~380.
Den Wert kannst du mal auf z.B. 35 setzen.
Hallo,
ich komme miit meinem 8Bit Board (Marlin 1.1.9) nicht klar. Es scheint, als ist PID für den Extruder nicht aktiv und die Temperatur wird nur 2-Punkt- geregelt. (P 0,1 I0,01 D0.01 eingestellt, keine Änderung des Verhaltens).
Ist define PIDTEMP alles, was ich aktiviern muß?
Ich hab den Fall noch nie gehabt, dass PID fürs HotEnd aus war und mich daher noch nie drum gekümmert.. Spontan würde ich sagen: Define PIDTEMP, MaxPower und Default_Kp, Ki und Kd.. Aber nur geraten, sorry 🙁
In der Vorgängerversion funktionierte es. Möglich aber auch, dass es mit dem Einsatz eines Thermocuple zusammenhängt (allerdings Eines mit Analogsignal- Ausgang, nicht digital). Die Messung hat eigenartige Unstetigkeiten im Temperaturverlauf. Einen Knick in der Kennlinie.
Habe jetzt auf ein 32 Bit- System umgestellt (2.0 Bugfix). in 8Bit investieren ist ohnehin vertane Mühe.
Hierzu auch eine Frage:
Beim I3 Mega Gestern gemacht….aber wenn ich am Ende M500 sende bestätigt er mir das speichern nicht (beim Extruder zb gings ohne Probleme)
Danach scheint er auch keine weiteren Befehel mehr zu aktzeptieren, erst nach einem AEG.
Zweiter Versuch…genau dasselbe… aber andere viel geringere Ergebnis Werte.
Mit welchem Befehl kann ich die Aktuellen Einstellungen für PID aufrufen um zu sehen ob er es gespeichert hat?
FW ist die aktuelle 1.1.2 von der Anycubic HP
Mfg
M503 sollte die PID Werte (neben vielem anderen) anzeigen:
M503
…
13:19:47.622: echo:PID settings:
13:19:47.622: echo: M301 P22.20 I1.08 D114.00 C100.00 L20
…
Eine vielleicht blöde Frage, aber wenn man das PID-Tuning erledigt hat inkl. übernehmen und speichern der Werte, und danach das PID-Tuning nochmal macht (egal wie oft), bekommt man immer wieder neue Werte. Ist das normal, oder sollten immer zumindest einigermaßen die selben Werte rauskommen
?
Einen Wesentlichen Unterschied in den ausgegebenen min- und max- Werten sehe ich nicht vor und nach dem PID-Tuning.
Wär fein wenn ihr mir da eine Antwort geben könntet.
Die Umgebungsfaktoren ändern sich ständig und da wär es verwunderlich, würde sich das Ergebnis nicht ändern. Unter vergleichbaren Bedingungen sollten aber auch vergleichbare Werte entstehen. Ich kenn nun die Abweichungen bei Dir nicht. Am Ende soll der Druck vernünftig auf dem Drucker laufen und das ist das Entscheidende.
Wenn es direkt mit M500 eingespeichert werden kann dann kann man auch den Befehl M303 E0 S205 C5 U1 eingeben. Mit U1 werden die ermittelten Werte dann direkt übernommen. Somit fällt das aufschreiben der einzelnen Zahlen und das manuelle ausführen des Befehl weg.
Ah… dann könnte man das auch in ne gcode Datei schreiben und quasi blind machen.. Auch ne nette Idee.. Danke 🙂
Danke für die Anleitung!
Du schreibst: „(wer es ganz genau machen will, ermittelt die korrekten PID Werte für alle seine Filamentarten PLA, ABS, PETG, usw. einzeln oder sucht sich nen Mittelwert)“ .
Hierzu meine Frage. Müsste ich, wenn ich ganz genau sein möchte, vor jedem Filamentwechsel die korrekten PID Werte speichern? Speichert der Drucker Hersteller nicht auch die PID Werte für einen Mittelwert von z.B. PLA und ABS?
Mittelwert eben. Der Hersteller testet nicht jede Heizpatrone und jeden Sensor. Der testet mal eine Hand voll und bildet den Mittelwert. Der kommt dann auf jeden Drucker. Das kann so einiger maßen passen oder man paßt den Wert für den eigenen Drucker an.
Ja..
wenn ich oberpenibel wäre, dann würde ich die PID Einstellungen in der Tat für jedes einzelne Filament in seiner optimalen Drucktemperatur ermitteln und dann die PID Werte im StartCode des Slicers eintragen, pro Material ein eigenes Profil mit eigenem Startcode..
Das ist mir aber deutlich zuviel Mühe bei wahrscheinlich kaum nennenswerten Verbesserungen.
Vielen Dank für die schnelle Antwort.
Da ich auch gerade PID für das Heizbett einstelle eine letzte Frage. Stelle ich für das Heizbett PID Werte auf 60° ein, so kann der Drucker auch Temperaturen von 110° für ABS erreichen, hällt sie nur nicht so schön wie die 60°, oder?
Das ist zumindest meine Erfahrung bisher gewesen, ja.
Vorgeplänkel:
==========
@Stephan: Bist Du sicher, dass es „M106 E0 S0“ ist? bei mir (am E3) geht mit M106 der Bauteillüfter und nicht der vom Hotend aus. (mehr im letzten Absatz)
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
.
Hauptteil
========
ich überlege, ob es Sinn macht die Ergebnisse der Filamentsorte direkt zuzuordnen. Das verwirrt vielleicht einige und führt dann zu der Frage, ob man bei jedem Filamentwechsel einen neuen Test mach soll oder auch ob man die Messung für PLA bei 220 und PETG bei 220 erneut durchführen muss.
Entscheidend ist ja nicht das Filament, sondern die gewählte Temperatur und die Kühlleistung.
Die Hardware des Druckers scheint aber entscheidend und dass in der Zwischenzeit nicht am Hotend rumgefummelt / repariert / ersetzt wurde. Es bilden sich zwar beim Drucken mit den Filamenten dann eigene Lieblingswete heruas, aber der Drucker bleibt ja unverändert…
.
Mein (gedanklicher) Vorschlag also: eine 3D-Tabelle
=========================================
1. eine Reihe von Tests durchführen, wie beim Temp-Tower (190 … 200 ..210 … 220) ggf Zwischentemperaturen ebenfalls messen und sich daraus eine Tabelle machen oder, wie von Panduin oben bemerkt einen Wert auch mal automatisch speichern.
(Mindestens bei mir wartet der Ender 3 nach einem Test auf eine Benutzereingabe und müllt das Terminal mit „echo:busy: paused for user“ voll. Diese Gelegenheit kann man nutzen und villeicht eine Reihe dieser Befehle für die Temperaturreihe nacheinander abzuarbeiten.)
2. Für die Lüfterleistung könnte man ebenfalls einen „Temp-Tower“ (100% … 80% … 60% … 40% … 20% … 0%) anfertigen. Das multipliziert sich natürlich schnell in einen ausgefüllten Nachmittag. Aber man kann dann ja ausgewählte Temperaturen und ausgewählte Kühlleistungen für diese Matrix ausmessen. Und dann kommen erst die Filamentarten und die bevorzugten Temperaturen zum Zug.
3. Dann kann man die Werte von Kp, Ki und Kd in eine Tabelle eintragen die in einer Richtung (x) die Temperatur und in y-Richtung die Luftleistung aufzeigt.
Dumm nur, dass man scheinbar nach jedem Rumfummeln am Hotend (Düsenwechsel, mechanische Beanspruchung, etc.) diese Tabelle neu anfertigen müsste…. THEORETISCH.
Man kann sich ja zur Überprüfung ja ein oder zwei vorherige Messwerte herausfischen und auf Veränderungen überprüfen. Wenn die Werte identsich geblieben sind, müsste auch mechanisch noch alles wie vorher sein….
@Stephan…. vielleicht machst Du das mit dem U1 und Deine Idee mit dem GCode noch oben in die Anleitung.?
Du müsstes nur darauf achten, dass Du eine Zweiteilung beachtest: Wer die Werte für verschiedene Temperaturen und Kühlleistungen aufschreiben will, kann natürlich nicht alles mit U1 speichern. Da wird nur ein Wert hineinpassen. ODER?
Das Speichern mit U1 wird nur sinnvoll sein, wenn man sich für längere Zeit auf eine Temperatur festlegen will. Mit einem Wechsel von 190 auf 250 müsste man den Wert neu abspeichern.
.
ne schöne Grafik
=============
Und jetzt gucke ich mal, wie weit mich meine Idee mit der großen Tabelle bringt und ob man das halbwegs sauber auf Papier bannen kann. Schön wäre natürlich eine 3dimensionale Tabelle in Excel / Calc und ein schönes Diagramm über die Werte.
Sowas in der Art: http://www.graytechnical.com/blog/xyz-data-inside-excel/
Diese Grafik KÖNNTE dann zeigen, bei welchen Temperaturen sich das Diagramm am meisten ändert und wo es sich am ehesten lohnt weitere Zwischenwerte zu ermitteln.
Idee, zu der ich derzeit noch nichts sagen kann…. Vielleicht kann Pronterface ja diese Werte ALLE alleine ermitteln?
WENN man die Befehle alle nacheinander in Deine G-Code-Datei schreibt, müsste er das ganze Programm sauber alle Temperaturen und Lüfterleistungen nacheinander durchnudeln, ohne dass man eingreifen muss….
DANN müsste man nur noch das Protokoll auslesen und die Werte für Kp, Ki und Kd herausfischen.
.
Code für G-Code
=============
Beim Erstellen der G-Code-Datei kann dann jeder entscheiden mit wie vielen Werten er seine G-Code Datei laufen lassen will oder die nach und nach ausweiten. Wer nur drei Werte haben will… wer mehr will eben mehr..
Geht natürlich auch alles mit der Hand… Kann jemand ein Script schreiben, dass die G-Code-Datei(en) erstellt?
Eingabewerte:
—————-
– unterste Temperatur
– oberste Temperatur
– Temperaturspung
– höchte Lüfterleistung
– kleinste Lüfterleistung
– Lüfter-„Leistungssprung“
– Zusatzfeature: weitere Extruder/Hotends
– Zusatzfeature: Name / Art des Temperatursensors
Dateiname = Druckerkonfiguration + diese 6 Zahlen + Datum + Druckername + Dateiendung“
Dann kann man das speichern, aufheben und die Dateien wiederverwenden
… und prüfen!
.
Praxis
=====
In der Praxis könnte sich diese Mühe trotzdem auf wenige Einzelwerte verdichten und die Mühe war „umsonst“ (aka kostenlos) Also wer immer das gleiche Filament, bei der gleichen Temperatur verarbeitet, immer das gleiche Hotend hat, den Temperatursensor nicht auswechselt und keine Reparaturen am Hotend hatte, braucht das alles nicht.
3D Drucker braucht man ja auch nicht! 😉
.
falsche Überlegungen?
=================
Ich muss noch mal überlegen, ob mein Fan-Duct-Ring einen Einfluss auf diese Messungen haben könnte. Bei dem Lüfter (M106) sollte es sich ja um den vom Hotend handeln und nicht dem für die Bauteilkühlung. hmmmmmmmm Das birngt mich vielleicht auch der Abschaltung des Lüfters im Standby bsi 40 Grad näher. Meine 1. Suche war noch nicht erfolgreich.
Mit „M106 E0 S0“ bekomme ich zumindest schon mal EINEN Lüfter aus. Muss ich nur noch den 2. Lüfter und die Stellen finden, wo die Temperaturabhängigkeit in Marlin geregelt wird…
Weiß schon jemand den Befehl für den Lüfter vom Hotend? M___
Wie schrieb Uwe? „Viel, alles wichtig, neu und ich hab da noch nicht rein geschnüffelt.“
Überall neue Bautellen!
M106 ist in der Regel der Bauteillüfter – den Hotend Lüfter willst Du nicht ausschalten im Druck, also würde ich ihn auch wenn es ginge im PID Tuning auch nicht ausschalten. Ein allgemein gültigen oder für den Ender3 passenden Befehl zum Ausschalten des Hotendlüfters ist mir nicht bekannt, zumal die öfter als nicht an nem nicht steuerbar Ausgang klemmen, teilweise auch mal am Netzteil.
Die ermittelten Kp, Ki & Kd gehen über einen recht großen Temperaturbereich recht ordentlich, allzufein würde ichs also gar nicht machen. Aber ich bin gespannt, was da bei rumkommen würde. Wobei das mit der Wiederholgenauigkeit auch schon so ne Sache ist.
Abhängigkeit von Temperatur und Lüfterdrehzahl würde ich auch sagen, ja – und dann dürfte auch der Fanduct eine Auswirkung habe.
U1 speichert einen Wert, ja. Immer den letzten.
Wenn Du das im Batchbetrieb machen willst, müsstest Du gucken, ob Du das Protokoll aus Pronterface exportiert werden kann (Ich habs nicht hier) und dann das Protokoll auswerten.
Wie sich das Busy auswirkt weiss ich nicht. Ich kenns nur vom Hörensagen, weil ich normalerweise keinen PC am Drucker habe. Aber eigentlich müsste das im Batch als Gcode gehen. Versuch macht kluch?
Es heißt natürlich nicht Bautellen, sondern Baustellen 😉
Zum Hotend-Ventilator
—————————
Ich habe bei Marlin (http://marlinfw.org/docs/gcode/M106.html) keine Infos gefunden, dass es neben E0 … E1 … E2 weitere Ventilatoren für Hotends gibt. Habe auch bis E6 alles mal durch…. Und E0 ist gleich E1. Der vom Hotend läuft weiter.
Alles scheint Bauteilkühlung zu sein. (Falsch verdrahtet? nicht anzunehmen.)
.
Ergänzung zum möglichen Skript:
—————————————
Ab „M106 E0 S55“ (aka 20%) geht meine Bauteilkühlung überhaupt erst so weit an, dass ich den Flügel anschubsen kann und er alleine weiterläuft. Erst ab S60 läuft der Motor alleine an und weiter.
Alles unterhalb müsste das Skript ausschließen!
– Ausschluss von unnötigen Messungen!
– Laufzeitverkürzung
.
Eine halbautomatische Testfunktion für Ventilatoren wäre möglich:
—————————————————————————–
(solange es keine Ventilatoren mit 4-Anschlussleitungen, wie im PC, gibt)
Ab welcher Leistung läuft der Motor an und alleine weiter? Ändert sich die Zahl über die Monate? DANN ist der Ventilator evt. verdreckt und müsste getauscht werden.
.
Theorie
———
In einem PC haben Lüfter ja eine Rückmeldung über die Drehzahl und dort ist eine optische Kontrolle nicht möglich. Beim Drucker ist das Problem nicht ganz so tragisch. Aber ein verdreckter Ventilator könnte über längere Zeit ebenfalls die Druckergebnisse verschlechtern, weil die Kühlleistung nicht mehr mit dem sauberen Anfangszustand übereinstimmt.
Den Parameter E0 hätte ich oben besser weggelassen, im Standard Marlin gibts den gar nicht, Der Ender ignoriert es einfach. Das muss ich bei Gelegenheit mal korrigieren. Marlin kennt Px,
Der Ender reagiert (mit Marlin 1.1.9) auf „E0“ UND auf „E1“
Du kannst zB mit E1 ein und mit E0 wieder ausschalten. Px sagt mir jetzt erst mal nix in dem Zusammenhang, das muss nichts heißen.
Mit den Parameter P soll man unterschiedliche Lüfter am Extruder wählen können. E (was es gar nicht gibt) schaltet den Extruder durch.. Ich weiss nur nimmer welcher Drucker das war 😀
http://marlinfw.org/docs/gcode/M106.html
oder hier: https://reprap.org/wiki/G-code/de#M106:_Fan_On
Ja, mit P kann man auch ein bisschen spielen. (bis P10 bin ich gegangen) Wirkt sich aber auch nur auf die Bauteilkühlung aus. Der vom Hotend reagiert nicht. (Ich muss scheinbar meine Playlist von Youtube mal durchforsten, ob ich den Beitrag nicht finde.) … Das werde ich mal SOFORT machen…. 😉
„lustiger“ Nebeneffekt in Pronterface: Das Diagramm reagiert auf alle Eingaben für alle Lüfter. Eigentlich müssten sie für x Lüfter auch x-Diagramme auf den Monitor platzieren, damit man JEDEN Lüfter einzeln verfolgen kann.
Kommt „vielleicht“ in einem zukünftigen Update, wenn sich Systeme mit mehr Extrudern durchsetzen. Nicht umsonst haben Kraftwerke eine Schalttafelwände mit mehr als einer Anzeige.
Cool, danke Stephan. Hab das heute direkt ausprobiert mit dem Any, alles neu eingestellt. Meiner hatte Abweichungen von 10Crad laut Messung. Hab dann bei der Gelegenheit auch gerade die E-Steps Config gemacht. Danach den xyz Würfel gedruckt. Er hat die Temp so accurate gehalten, höchstens mal +/- 1 Crad Unterschied.
Ich finde man sieht den Unterschied schon ganz schön. Auch das er nun die richtige Menge Fila extruiert, macht was aus. Hatte vorher nie mit 100 % Extrution drucken können, nu das erste Mal. Wundert aber nicht, wenn man sieht das er von 100 mm länge die er extruden soll, nur 85mm durchgezogen hat.
Danke nochmal für die super Anleitung.
Danke für diese ausführliche Anleitung! Ich gebe zu, damit hab ich mich bisher noch nicht beschäftigt und nach dem ersten Lesen bin ich noch ein wenig verwirrt. Zumindest weiß ich mal, wovon unser Urlauber gesprochen hat. Wenn ich den X5S soweit mechanisch zurecht gebogen habe muß ich mich sicher auch mal damit beschäftigen. Zumindest weiß ich nun wo es steht!
Wo steckt die Verwirrung. vielleicht sollte ich den Teil besser erklären?
Viel, alles wichtig, neu und ich hab da noch nicht rein geschnüffelt. Bevor ich aber Fragen dazu stellen kann muß ich zunächst selber mal das Ganze in live ausprobieren. Vermutlich wird es an Ecken klemmen von denen ich noch nicht weiß das es sie gibt.