Und er limitiert doch! Retract Speeds getestet

Retract / Rückzug oder Einzug: Geschwindigkeiten über der per Firmware gesetzen Maximalgeschwindigkeit – was ist da dran?



Immer wieder wundere ich mich über die meiner Meinung abstrus hohen Retract Geschwindigkeiten in machen Druckerprofilen. Und in meinen eigenen Retracttestreihen konnte ich mit der Retract-Geschwindigkeit ab einer magischen Grenze auch nix mehr erreichen. (siehe auch: https://drucktipps3d.de/forum/topic/retraction-experimente-teil-2/ )

 

Was ist diese magische Grenze? Nun, es gibt in Marlin ein Limit, welches per M503 bei den meisten Druckern auch abgefragt werden kann:

Diese Version vom 26. März 2018 des Ender3 limitiert also die Maximalgeschwindigkeit und damit die Rückzugsgeschwindigkeit des Extruders auf 25mm/s. Die Frage war, ob Marlin dieses Limit tatsächlich forciert oder ob das da nur zur Zierde oder für die Hardware Retracts gilt..

Die meisten Slicer wandeln Retracts in explizite G1 Befehle um:

Das heisst also, um das Retract Speed Limit zu forcieren muss Marlin alle G1 Befehle überwachen und entsprechend dann modifizieren. Die Frage war bislang: tut es das?

Hier der Testaufbau:

Mein Ender3, Firmwarestand siehe oben, Bowden entfernt, einen Abschnitt von 100mm auf dem Filamentstrang markiert, nur zu Kontrolle, dass er sich ned verhaspelt. Düse auf 200°C, damit der Schutz vor Cold Extrusion nicht greift. Pronterface zur Steuerung. Vor jedem Test ein M92 E0. Dann die Zeit gemessen, die er benötigt und dann das Filament wieder rausgezogen.

  

Hier die Antwort in Form einer Messwerttabelle:

Befehl: wären Ist tatsächlich
G1 E-100 F100 1,66mm/s 60,2s = 1,66mm/s
G1 E-100 F500 8,3mm/s 12,2s = 8,2mm/s
G1 E-100 F1000 16,66mm/s 6,2s =  16,1mm/s
G1 E-100 F1500 25mm/s 4,1s = 24,4mm/s
G1 E-100 F2000 33,3mm/s 4,0s = 25,0mm/s
G1 E-100 F3000 50mm/s 4,1s = 24,4mm/s
G1 E-100 F6000 100mm/s 4,1s = 24,4mm/s

Ok, meine Reaktionszeiten an der Stoppuhr sind lausig, aber es langt.

Die Tabelle zeigt eindeutig und zweifelsfrei:

Marlin forciert das Limit, eine Retraction Geschwindigkeit größer als das in der Firmware hinterlegte Limit bringt nichts, weil Marlin auf das Limit runter regelt.

Hier bei meinem Ender3 mit o.g. Firmwarestand ist bei einer Retract Geschwindigkeit von 25mm/s (1500mm/min) das Ende erreicht. Maximale Retract Geschwindigkeit, die ich künftig im Slicer eintrage ist demnach der Wert, der in der Firmware hinterlegt wurde, siehe M503 – Zeile: M203 .. E25.00.

Einfach nur einen höheren Wert im Feld Retract Speed einzutragen hilft nix.

Wenn dann muss noch M203 mit in den Startcode oder beim Kompilieren der Firmware  das Limit erhöht werden.

Ich möchte Wetten, diese Erkenntnis tritt auf viele Marlin basierten Drucker zu, ich werds mal bei Gelegenheit mit anderen Druckern weiter überprüfen.

Probierts mal aus, würde mich über Eure Ergebnisse freuen.

15 Kommentare

  • Habe mir diesen Bericht und andere Berichte die Stephan geschrieben hat bzgl.. des Themas Retraction und Stringing sehr aufmerksam durchgelesen. Habe in den vergangenen Tage auf meinem Corexy Drucker mal ein paar Settings ausprobiert.
    Ergebnis:
    Die Bewegungsgeschwindigkeit zu erhöhen von 30 auf 60 bis auf 80 mm/s hat bzgl. Stringing nichts gebracht. Das Druckergebnis wurde sogar schlechter bei höhere Bewegungsgeschwindigkeit. Ich drucke vor allem Zubehör für Modelleisenbahnen Spurweite H0. Da sind die Objekte nicht al zu groß und wenn es dann noch zum Stringing kommt bedeutet das eine erhebliche Nacharbeit.
    Ich habe heute die max. Feedrate in Marlin erhöht auf 50 mm/s (M203). In Cura 4.0.0 habe ich die Retraction für den Einzug erhöht auf 35 mm/s und die Vorschubbewegung auf 25 mm/s. Bewegungsgeschwindigkeit habe ich auf 60 mm/s eingestellt und die Druckgeschwindigkeit auf 30 mm/s. Retraction Länge bei meinem Bowden Extruder steht auf 2mm in Cura. Übrigens der Blaue Schlauch ist tatsächlich eine Wunderwaffe. Siehe da, das Ergebnis war fast perfekt und es waren nur noch ganz geringe Nacharbeiten nötig. Morgen werde ich die Settings für den Retraction auf 45 mm/s und Vorschub auf 30 mm/s einstellen. Bin sehr gespannt wie das Resultat ist.

    Wenn das gelingt bin ich sogar in der Lage Modelleisenbahn Zubehör für die Spurweite Z (1:220) auszudrucken.
    Aber wie immer „Versuch macht Klug“.
    Übrigens finde ich das Forum und die ganze Web Site sehr gut. Endlich mal eine Möglichkeit sich in interessante Themen einzulesen und auszutauschen.

  • wenn ich schon nach G-Code gucke kann ich hier noch ein Fundstück einwerfen:

    http://marlinfw.org/docs/gcode/M207.html … M207 – Set Firmware Retraction

    Vielleicht übrschreibt der Dir Dein Limit?!?!? Es klingt jedenfalls vielversprechend: SET und Firmware; beides drin

    • So weit musst du gar nicht gehen, du musst nur das Limit erhöhen, wenn Du unbedingt schnellere Retracts haben willst: M203 E99 oder sowas. Wobei Firmware Retracts über G10 / G11 auch ihren Reiz haben.

  • Moin und frohes Neues,

    ich hab ja schon mal was getestet und ab 30mm/s keine Unterschiede im Druckbild feststellen können.
    Da ich überall Marlin 2.0 installiert habe, kann ich direkt im LCD die Max Feedrate ändern und scpeichern und meine Feedrate steht überall auf 50mm/s. Was ich aber festgestellt habe ist, das eine zu großer Retraction-Weg wie auch ein zu kleiner Weg,sich negativ auswirken.

    • Ja, das unterschreibe ich gerne.. Retract Länge ist der Schlüsselparameter. Nicht zu kurz aber auch ja nicht zu lang. Ich denke wenns dazu mal nen Blogpost gibt („Eigenen Druckerprofile von Null an erstellen“), dann würde ichs so formulieren: Grade kurz genug, dass es sauber ist und bei Retract Geschwindigkeit sich nicht zu sehr verkünsteln. Schnell nen Blick wo das Limit ist und daran orientieren.

      Zu Temperatur, Travelspeed als Faktor bei Stringing/Oozing etc hab ich noch Testreihen zu machen..

  • ach ja später noch guten Rutsch!

  • klar sind die werte in den Firmwares immer die max werte.
    Druckgröße, Geschwindigkeiten, Beschleunigungen, Schritte
    damit wird der Drucker quasi definiert
    daher ist es bei den klassischen FW ja so umständlich schnell mal was zu ändern, gerade wenn bootloader fehlt und FW kastriert sind.
    jedesmal die arduino ide starten und FW neu kompilieren war mir zu blöd

    daher bin ich auf duet umgestiegen.
    alles viel einfacher und via webgui zugänglich
    auch klipper hatte ich laufen
    (vom prinzip her eine gute idee)

  • Ich guck bei sowas in den Quälcode 😉

    Marlin original:
    https://github.com/MarlinFirmware/Marlin/blob/1.1.x/Marlin/planner.cpp#L2074

    Speziell die heißen Spanerinnen:
    https://github.com/BCN3D/BCN3DSigma-Firmware/blob/master/Marlin/planner.cpp#L926

    Da wird live jede Bewegung aller Motoren, die dort vorausberechnet wird, mit dem jeweils hinterlegtem Maximalwert verglichen und nötigenfalls begrenzt. (hmm, ich hab hier noch ein paar Kommas übrig 😛 )

  • Das ist erhellend. Danke, Stephan.

    Ich hab gleich mal nachgeschaut: Das RepRap-Konfigurationstool setzt für den Extruder eine maximale Geschwindigkeit von 20mm/s als Default. So läuft im Moment auch mein Duet 2 im X5PO.

    Ich hab noch eine interessante Quelle gefunden, die das Thema Retractions detaillierter beleuchtet:
    http://www.sublimelayers.com/2016/10/some-musings-on-retracts.html
    Demnach wäre es optimal, beim Rückzug mit höherer, beim Wiedervorschieben mit geringerer Geschwindigkeit zu arbeiten, was zur Zeit nur Klipper ermöglicht.

Kommentar hinterlassen

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