Retract question.
-
Hi there,
Got a nice Hemera and tried to get the retract settings for TPU right.
Made some test, but no matter what, it´s stringing and blobbing.
i created a retract test part, sliced it with prusaslicer and added after 10mm commands like M207 S or F
I didn´t noticed any difference, so i searched the problem and found it.
In prusaslicer, retract is set to 40mm/s and 0.5mm retract.
When i do a single "M207" before starting a print, i get the following:
M207
Retraction/un-retraction settings: length 2.00/2.00mm, speed 1000/1000mm/min, Z hop 0.00mmThen i start the print and typing again M207, the console answers this:
M207
Retraction/un-retraction settings: length 2.00/2.00mm, speed 1000/1000mm/min, Z hop 0.00mmWhere gets the duet2 these settings for retract?!?
my congig.g:
; General preferences
M80
G90 ; Send absolute coordinates...
M83 ; ...but relative extruder movesM669 K1 ; Select CoreXY mode
; Network
M550 P"MKC" ; Set machine name
M552 S1 ; Enable network
M586 P0 S1 ; Enable HTTP
M586 P1 S0 ; Disable FTP
M586 P2 S0 ; Disable Telnet; Specials
M307 H2 A-1 C-1 D-1 ; disable the heater functionality
; Drives
M569 P0 S1 ; Drive 0 goes forwards X
M569 P1 S1 ; Drive 1 goes forwards Y
M569 P2 S1 ; Drive 2 goes forwards Z @ Xmin
M569 P3 S1 ; Drive 3 goes forwards Z @ Xmax
M569 P4 S0 ; Drive 4 goes backwards Extruder
M584 X0 Y1 Z2:3 U3 E4 P3 ; two Z motors connected to driver outputs Z and E1 Hide U
M350 X16 Y16 Z16 U16 E16 I1 ; Configure microstepping with interpolation
M92 X80.00 Y80.00 Z160 U160 E394.00 ; Set steps per mm
M566 X1100.00 Y1100.00 Z12.00 U12.00 E2500.00 ; Set maximum instantaneous speed changes (mm/min)
M203 X30000.00 Y30000.00 Z4000.00 U4000.00 E12000.00 ; Set maximum speeds (mm/min)
M201 X1200.00 Y1200.00 Z500.00 U500.00 E1000.00 ; Set accelerations (mm/s^2)
M906 X800.00 Y800.00 Z800.00 U800.00 E1000.00 I40 ; Set motor currents (mA) and motor idle factor in per cent
M84 S3000 ; Set idle timeout
; M556 S100 X0 Y1 Z1 ; Axis Skew Compensation
M564 H0 S1; Axis Limits
M208 X0 Y0 Z0 S1 ; Set axis minima
M208 X210 Y240 Z288 S0 ; Set axis maxima; Endstops
M574 X1 Y1 S0 ; Set active high endstops
M574 Z1 U1 S1; Z-Probe
M558 P0 H1 F200 T9000 B0 ; Disable Z probe but set dive height, probe speed and travel speed;
;G31 P500 X0 Y50 Z1.45
;M557 X10:230 Y10:240 S20 ; Define mesh grid; Heaters
M305 P0 T100000 B4388 C7.060000e-8 R4700 ; Set thermistor + ADC parameters for heater 0
M143 H0 S130 ; Set temperature limit for heater 0 to 120C
M305 P1 T100000 B4725 C7.060000e-8 R4700 ; Set thermistor + ADC parameters for heater 1
M143 H1 S280 ; Set temperature limit for heater 1 to 280C
M301 H1 P33.6 I1.616 D65.8; Hotend PID values
M307 H1 A294.3 C155.1 D2.8 B0 ; Hotend Heater parameters; Fans
M106 P0 S0 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
M106 P2 T45:55 H100:101:102 ; Set fan 2 value,
M912 P0 S-3.5; Tools
M563 P0 D0 H1 ; Define tool 0
G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets
G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C; Automatic power saving
M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss; Custom settings are not configured
First lines of a gcode: editor didn´t find ANY M207 commands
; generated by PrusaSlicer 2.3.3+win64 on 2021-08-08 at 17:22:24 UTC
;
; external perimeters extrusion width = 0.45mm
; perimeters extrusion width = 0.45mm
; infill extrusion width = 0.45mm
; solid infill extrusion width = 0.45mm
; top infill extrusion width = 0.40mm
; first layer extrusion width = 1.00mmM107
M190 S60 ; set bed temperature and wait for it to be reached
;TYPE:Custom
T0 ; Sets Tool0 as default
M106 P0 S0 ; Stop Part Cooling Fan
M109 S220
G28 ; home all axes
G91 ; relative mode
G1 E2 F300 ; Fill Nozzle alt
G1 E-0,5 F1800 ; Fill Nozzle
G90 ; absolute Mode
G21 ; set units to millimeters
G90 ; use absolute coordinates
M82 ; use absolute distances for extrusion
G92 E0
M572 D0 S0.07
;LAYER_CHANGE
;Z:0.3
;HEIGHT:0.3
G1 Z0.300 F9000.000
G1 E-0.50000 F2400.000
G92 E0
G1 X46.824 Y102.993 F9000.000
G1 E0.50000 F1500.000
M204 S1000
;TYPE:Skirt
;WIDTH:1
G1 F427.524
G1 X48.055 Y102.453 E0.67250
G1 X50.249 Y101.738 E0.96873
G1 X51.560 Y101.445 E1.14123
G1 X52.880 Y101.250 E1.31248
G1 X55.141 Y101.130 E1.60310
G1 X154.851 Y101.130 E14.40244
G1 X157.118 Y101.249 E14.69378 -
@torro said in Retract question.:
Where gets the duet2 these settings for retract?!?
You.
You must define the settings yourself in M207 in config.g or elsewhere before the print starts. The slicer must be configured to use firmware retraction (in prusaslicer its in printer settings page also make sure you're using reprap gcode flavor) so that instead of sending a specific retraction amount in the gcode file, it just sends G10/G11 commands and the firmware will use the values defined in M207 to do the retraction.
https://duet3d.dozuki.com/Wiki/Gcode?revisionid=HEAD#Section_M207_Set_retract_length
-
Sorry for hijacking the thread
What are the pro and cons of using firmware retractions?To me it seems a lot easier to use the settings in the slicer so you can have different settings for different materials e.g PLA and TPU, rather than changing your config.g. But maybe I’m missing something?
-
@tmicke said in Retract question.:
But maybe I’m missing something?
Well the nice thing about it is that it's not baked into the sliced file so you can change it on the fly which is great for tuning. You can send a new M207 command or part of it anytime during a print and see how the change affects retraction behavior.
For different materials there are a few different ways to deal with that. In DWC you can setup different material profiles and load whichever material you're using and it can load settings unique for that material like different acceleration, jerk, retraction, etc.
https://duet3d.dozuki.com/Wiki/Filaments
Or if your slicer has a custom gcode section specifically for filaments (like prusa slicer / slic3r) then you could have a custom M207 command there.
-
@phaedrux
That makes a lot of sense, thank you.
I’m adapting to the wonderful world of RRF and g-codes from more than five years with Marlin -
OK, thanks.
-
@tmicke In addition to @Phaedrux 's answer, if you use a mixing hot end, then firmware retraction will retract all filaments whereas slicer retraction will only retract filaments associated with the current tool. This means that filament can be drawn from other inputs rather than the nozzle. So firmware retraction is a must for hot ends which have multiple inputs.