Dual Extruder V2 Start Gcode
Open, NormalPublic

Description

In the Start Gcode for the Dual Extruder V2 (and, I'm guessing, all the other dual extruders) the following command:

G1 X0 Y0 Z15 F5000 ; get out the way

causes the front nozzle to hang off the bed surface. Any ooze or other filament priming of the front nozzle will spill onto the frame of the printer or the surface it is sitting on. A simple change of this line to:

G1 X0 Y50 Z15 F5000 ; get out the way

will drip onto the bed instead (change Y50 to the appropriate value for each dual extruder).

I also believe that the rear nozzle loses track of the filament position and as a result, the skirt is mostly missing. I'll investigate this issue and add to this task if I discover the cause and/or the solution.

b-morgan updated the task description. (Show Details)Nov 13 2017, 10:23 AM

After studying the Marlin sources, I believe that the current E value is not "per extruder" but is "global". Therefore switching nozzles appears to require G92 commands to set the current E value for each nozzle. The Gcode generated for the .stl file seems to bear this theory out, so here is my modified Start Gcode for the Dual Extruder V2:

;This profile is designed specifically for LulzBot TAZ6 3D Printer
;{material_print_temperature}
G26 ; clear potential 'probe fail' condition
G21 ; set units to Millimetres
M107 ; disable fans
G90 ; absolute positioning
T0 ; select this extruder first
M82 ; set extruder to absolute mode
G92 E0 ; set extruder position to 0
M140 S{material_bed_temperature}; get bed heating up
M104 R{material_soften_temperature_0} T0 ; soften filament
M104 R{material_soften_temperature_1} T1 ; soften filament
M109 R{material_soften_temperature_0} T0 ; soften filament
M109 R{material_soften_temperature_1} T1 ; soften filament
G28 X Y ; home X and Y
G1 X-19 Y258 ; move over the Z_MIN switch
M104 R{material_wipe_temperature_0} T0 ; wait for T0 to reach temp
M104 R{material_wipe_temperature_1} T1 ; wait for T1 to reach temp
M109 R{material_wipe_temperature_0} T0 ; wait for T0 to reach temp
M109 R{material_wipe_temperature_1} T1 ; wait for T1 to reach temp
G28 Z ; home Z
G1 E-15 F100 ; suck up XXmm of filament
T1 ; switch extruders
M82 ; set extruder to absolute mode
G92 E0 ; set E to 0
G1 E-15 F100 ; suck up filament
T0 ; switch extruders
G92 E-15 ; adjust E value
G1 X-17 Y100 F3000 ; move above wiper pad
G1 Z1 ; push nozzle into wiper
G1 X-19 Y95 F1000 ; slow wipe
G1 X-17 Y90 F1000 ; slow wipe
G1 X-19 Y85 F1000 ; slow wipe
G1 X-17 Y90 F1000 ; slow wipe
G1 X-19 Y80 F1000 ; slow wipe
G1 X-17 Y95 F1000 ; slow wipe
G1 X-19 Y75 F2000 ; fast wipe
G1 X-17 Y85 F2000 ; fast wipe
G1 X-19 Y80 F2000 ; fast wipe
G1 X-17 Y70 F2000 ; fast wipe
G1 X-19 Y75 F2000 ; fast wipe
G1 X-17 Y95 F1000 ; slow wipe
G1 X-19 Y90 F1000 ; slow wipe
G1 X-17 Y85 F1000 ; slow wipe
G1 X-19 Y90 F1000 ; slow wipe
G1 X-17 Y80 F1000 ; slow wipe
G1 X-19 Y95 F1000 ; slow wipe
G1 X-17 Y75 F2000 ; fast wipe
G1 X-19 Y85 F2000 ; fast wipe
G1 X-17 Y80 F2000 ; fast wipe
G1 X-19 Y90 F2000 ; fast wipe
G1 X-17 Y85 F2000 ; fast wipe
G1 Z10 ; raise extruder
M109 R{material_probe_temperature_0} ; heat to probe temp
G1 X-9 Y-9 ; move above first probe point
M204 S100 ; set accel for probing
G29 ; probe sequence (for auto-leveling)
M204 S500 ; set accel back to normal
G1 X0 Y0 Z15 F5000 ; get out the way
M400 ; clear buffer
M140 S{material_bed_temperature}; get bed heating up
M104 S{material_print_temperature_0} T0 ; set extruder temp
M104 S{material_print_temperature_1} T1; set extruder temp
M109 R{material_print_temperature_0} T0 ; set extruder temp and wait
M109 R{material_print_temperature_1} T1; set extruder temp and wait
T1 ; switch to second extruder
G92 E-15 ; adjust E value
G1 E0 F100 ; prime nozzle from previous print
G1 F100 E-{retraction_amount} ;retract second nozzle before print
T0 ; switch back to back
G92 E-15 ; adjust to E value
M190 R{material_bed_temperature_layer_0}; get bed temping up during first layer
G1 Z2 E0 F75 ; extrude filament back into nozzle
M117 TAZ Printing... ; LCD status message

Add the "M83" line to the Dual Extruder V2 End Gcode after the "G91" line:

G91 ; relative positioning
M83 ; relative E positioning

I think this may be unnecessary but it doesn't hurt and makes sense given the "G90" and "M82" in the Start Gcode.

alexei triaged this task as Normal priority.Jun 12 2018, 11:22 AM
alexei changed the edit policy from "Custom Policy" to "Cura LulzBot Edition (Project)".
alexei added a project: Cura LulzBot Edition.
karrad added a subscriber: karrad.Jun 12 2018, 2:42 PM

@b-morgan How has your testing gone with this modified Gcode?

karrad claimed this task.Jun 12 2018, 2:43 PM

The Dual V2 start gcode in 3.2.21 still has some issues with the E values.

The commented ;G92 E-60 should be removed, it just confuses the issue.

At the end:

T1                           ; switch to second extruder
G1 E0 F100                   ; prime nozzle from previous print
G1 F100 E-{retraction_amount} ;retract second nozzle before print
G92 E-30                     ; adjust to 1st nozzle e value
T0                           ; switch back to back
M190 R{material_bed_temperature_layer_0}; get bed temping up during first layer
G1 Z2 E0 F75                 ; extrude filament back into nozzle
M117 TAZ Printing...         ; LCD status message

Should be:

T1                           ; switch to second extruder
G1 E0 F100                   ; prime nozzle from previous print
G1 F100 E-{retraction_amount} ;retract second nozzle before print
G92 E-15                     ; adjust to 1st nozzle e value
T0                           ; switch back to back
M190 R{material_bed_temperature_layer_0}; get bed temping up during first layer
G1 Z2 E0 F75                 ; extrude filament back into nozzle
M117 TAZ Printing...         ; LCD status message

This puts the filament in T1 retracted by {retraction_amount} and the filament in T0 at the nozzle.

I'd still make the change noted in the original post unless you want to hang each nozzle over the edge and extrude extra filament like is done with the V3. With the V2 you will have to hang one nozzle off the front and the other off the back. You guys should be able to figure this out but if you want me to do it, let me know.

karrad reassigned this task from karrad to anolen.Tue, Nov 20, 12:29 PM
karrad moved this task from Backlog to Profiles on the Cura LulzBot Edition board.
karrad added a subscriber: anolen.

@anolen While you are working on the Polydissolve profiles for the V2 Flexy Dually, please test the posted start gcode above. This one kinda fell off the radar, and would like to get it in for next release if possible.

Didn't see this before starting my 1st test, will get it in later

I have been using these edits for the Flexy Dualy for a bit now and I havent had any issues starting my prints or getting material to start printing when expected. This all looks good on my end, Here was the combined edit I used:

;This profile is designed specifically for LulzBot TAZ6 3D Printer
;{material_print_temperature}
G26 ; clear potential 'probe fail' condition
G21 ; set units to Millimetres
M107 ; disable fans
G90 ; absolute positioning
T0 ; select this extruder first
M82 ; set extruder to absolute mode
G92 E0 ; set extruder position to 0
M140 S{material_bed_temperature}; get bed heating up
M104 R{material_soften_temperature_0} T0 ; soften filament
M104 R{material_soften_temperature_1} T1 ; soften filament
M109 R{material_soften_temperature_0} T0 ; soften filament
M109 R{material_soften_temperature_1} T1 ; soften filament
G28 X Y ; home X and Y
G1 X-19 Y258 ; move over the Z_MIN switch
M104 R{material_wipe_temperature_0} T0 ; wait for T0 to reach temp
M104 R{material_wipe_temperature_1} T1 ; wait for T1 to reach temp
M109 R{material_wipe_temperature_0} T0 ; wait for T0 to reach temp
M109 R{material_wipe_temperature_1} T1 ; wait for T1 to reach temp
G28 Z ; home Z
G1 E-15 F100 ; suck up XXmm of filament
T1 ; switch extruders
M82 ; set extruder to absolute mode
G92 E0 ; set E to 0
G1 E-15 F100 ; suck up filament
T0 ; switch extruders
G92 E-15 ; adjust E value
G1 X-17 Y100 F3000 ; move above wiper pad
G1 Z1 ; push nozzle into wiper
G1 X-19 Y95 F1000 ; slow wipe
G1 X-17 Y90 F1000 ; slow wipe
G1 X-19 Y85 F1000 ; slow wipe
G1 X-17 Y90 F1000 ; slow wipe
G1 X-19 Y80 F1000 ; slow wipe
G1 X-17 Y95 F1000 ; slow wipe
G1 X-19 Y75 F2000 ; fast wipe
G1 X-17 Y85 F2000 ; fast wipe
G1 X-19 Y80 F2000 ; fast wipe
G1 X-17 Y70 F2000 ; fast wipe
G1 X-19 Y75 F2000 ; fast wipe
G1 X-17 Y95 F1000 ; slow wipe
G1 X-19 Y90 F1000 ; slow wipe
G1 X-17 Y85 F1000 ; slow wipe
G1 X-19 Y90 F1000 ; slow wipe
G1 X-17 Y80 F1000 ; slow wipe
G1 X-19 Y95 F1000 ; slow wipe
G1 X-17 Y75 F2000 ; fast wipe
G1 X-19 Y85 F2000 ; fast wipe
G1 X-17 Y80 F2000 ; fast wipe
G1 X-19 Y90 F2000 ; fast wipe
G1 X-17 Y85 F2000 ; fast wipe
G1 Z10 ; raise extruder
M109 R{material_probe_temperature_0} ; heat to probe temp
G1 X-9 Y-9 ; move above first probe point
M204 S100 ; set accel for probing
G29 ; probe sequence (for auto-leveling)
M204 S500 ; set accel back to normal
G1 X0 Y0 Z15 F5000 ; get out the way
M400 ; clear buffer
M140 S{material_bed_temperature}; get bed heating up
M104 S{material_print_temperature_0} T0 ; set extruder temp
M104 S{material_print_temperature_1} T1; set extruder temp
M109 R{material_print_temperature_0} T0 ; set extruder temp and wait
M109 R{material_print_temperature_1} T1; set extruder temp and wait
T1 ; switch to second extruder
G1 E0 F100 ; prime nozzle from previous print
G1 F100 E-{retraction_amount} ;retract second nozzle before print
G92 E-15 ; adjust to 1st nozzle e value
T0 ; switch back to back
M190 R{material_bed_temperature_layer_0}; get bed temping up during first layer
G1 Z2 E0 F75 ; extrude filament back into nozzle
M117 TAZ Printing... ; LCD status message

anolen added a comment.EditedFri, Dec 7, 7:50 AM

;This profile is designed specifically for LulzBot TAZ6 Flexy Dually 3D Printer
;{material_print_temperature}
G26 ; clear potential 'probe fail' condition
G21 ; set units to Millimetres
M107 ; disable fans
G90 ; absolute positioning
T0 ; select this extruder first
M82 ; set extruder to absolute mode
G92 E0 ; set extruder position to 0
M140 S{material_bed_temperature}; get bed heating up
M104 S{material_soften_temperature_0} T0 ; set T0 to soften temp
M109 S{material_soften_temperature_1} T1 ; soften filament and wait
M109 S{material_soften_temperature_0} T0 ; soften filament and wait
G28 X Y ; home X and Y
G1 X-19 Y258 ; move over the Z_MIN switch
M104 S{material_wipe_temperature_0} T0 ; set T0 to wipe temp
M109 S{material_wipe_temperature_1} T1 ; wait for T1 to reach temp
M109 S{material_wipe_temperature_0} T0 ; wait for T0 to reach temp
G28 Z ; home Z
G1 E-15 F100 ; suck up XXmm of filament
T1 ; switch extruders
M82 ; set extruder to absolute mode
G92 E0 ; set E to 0
G1 E-15 F100 ; suck up filament
T0 ; switch extruders
G92 E-15 ; adjust E value
G1 X-17 Y100 F3000 ; move above wiper pad
G1 Z1 ; push nozzle into wiper
G1 X-19 Y95 F1000 ; slow wipe
G1 X-17 Y90 F1000 ; slow wipe
G1 X-19 Y85 F1000 ; slow wipe
G1 X-17 Y90 F1000 ; slow wipe
G1 X-19 Y80 F1000 ; slow wipe
G1 X-17 Y95 F1000 ; slow wipe
G1 X-19 Y75 F2000 ; fast wipe
G1 X-17 Y85 F2000 ; fast wipe
G1 X-19 Y80 F2000 ; fast wipe
G1 X-17 Y70 F2000 ; fast wipe
G1 X-19 Y75 F2000 ; fast wipe
G1 X-17 Y95 F1000 ; slow wipe
G1 X-19 Y90 F1000 ; slow wipe
G1 X-17 Y85 F1000 ; slow wipe
G1 X-19 Y90 F1000 ; slow wipe
G1 X-17 Y80 F1000 ; slow wipe
G1 X-19 Y95 F1000 ; slow wipe
G1 X-17 Y75 F2000 ; fast wipe
G1 X-19 Y85 F2000 ; fast wipe
G1 X-17 Y80 F2000 ; fast wipe
G1 X-19 Y90 F2000 ; fast wipe
G1 X-17 Y85 F2000 ; fast wipe
G1 Z10 ; raise extruder
M109 S{material_probe_temperature_0} ; heat to probe temp
G1 X-9 Y-9 ; move above first probe point
M204 S100 ; set accel for probing
G29 ; probe sequence (for auto-leveling)
M204 S500 ; set accel back to normal
G1 X0 Y0 Z15 F5000 ; get out the way
M400 ; clear buffer
M140 S{material_bed_temperature}; get bed heating up
M104 S{material_print_temperature_0} T0 ; set extruder temp
M109 S{material_print_temperature_1} T1; set extruder temp
M109 S{material_print_temperature_0} T0 ; set extruder temp and wait
T1 ; switch to second extruder
G1 E0 F100 ; prime nozzle from previous print
G1 F100 E-{retraction_amount} ;retract second nozzle before print
G92 E0 ; adjust to 1st nozzle e value
T0 ; switch back to back
M190 S{material_bed_temperature_layer_0}; get bed temping up during first layer
G1 Z2 E0 F75 ; extrude filament back into nozzle
M117 TAZ Printing... ; LCD status message

karrad claimed this task.Tue, Dec 11, 3:53 PM
karrad reassigned this task from karrad to alexei.Wed, Dec 12, 7:34 AM
karrad moved this task from Profiles to Release 3.2.xx on the Cura LulzBot Edition board.
karrad added a subscriber: alexei.

@alexei Local build looks good here, ready for merge into master