Page MenuHomeAleph Objects Inc

start/end gcode retract/prime not cooperating
Closed, ResolvedPublic

Description

After finishing a print, whichever nozzle is printed with last will not be primed for the next print and misses a lot of first layer despite a purge being present prior to the print. The purge and the skirt is not enough to make up the distance so something is off by a good distance.

Event Timeline

logan created this task.Jan 4 2019, 11:28 AM
logan created this object with edit policy "LulzBot Hardware Products (Project)".
logan added a comment.EditedJan 4 2019, 2:13 PM
G1 F1800 X131.465 Y134.406 E40.12234
G1 F1200 E24.12234
G1 F180 Z10.925
G92 E0
T0
G92 E0
M104 T1 S0
G1 F1200 E14.25
G0 F10500 X148.75 Y144.911 Z10.925


In the above gcode it looks like when finished with one nozzle it is retracting 16mm that isn't accounted for elsewhere

alexei assigned this task to karrad.Jan 9 2019, 2:08 PM
alexei changed the edit policy from "LulzBot Hardware Products (Project)" to "Restricted Project (Project)".
karrad added a subscriber: matth.Jan 10 2019, 2:28 PM

@logan I recall seeing a ticket about this behaving better in the latest firmware, is this one still an issue? (I think @matth tested that one)

logan added a comment.Jan 10 2019, 2:50 PM

I haven't had time to run prints on quiver, my unit here is also taken apart currently. I can update when I get it back together.

I talked about it in T5135, and was solved for me with firmware version .67.

karrad reassigned this task from karrad to logan.Jan 11 2019, 12:54 PM

@logan Kicking this one back to you for testing, feel free to close out if it looks sorted when you get a chance.

logan added a subscriber: kent.Jan 14 2019, 2:12 PM

@karrad Might be a bit until I get Q11 back together @kent @MikeR Since you've been printing more lately, have you noticed an improvement on this issue with the latest FW and CuraLE build set?

karrad reassigned this task from logan to MikeR.Jan 16 2019, 4:26 PM

No change for me. Nozzle 2 still does not purge and misses a portion of the print start.
Sliced on 3.6.3 CuraLE, default polylite high speed settings, cache cleared before launching this build. Q11 is running m.73 right now

Checking the numbers in your posted gcode:

Start Gcode:

T1                                        ; switch extruders
M82                                       ; set extruder to absolute mode
G92 E0                                    ; set extruder to zero
G1  E-10 F100                             ; suck up XXmm of filament

Retract 10mm from E2

T1                                        ; set extruder
G1  E0 F100                               ; undo retraction
G92 E-20                                  ; set extruder negative amount to purge
G1 E0 F200

This will put 10 back into the hot end to undo previous retraction and, set the steps to -20, this then extrudes 20 to give us a net positive of 20mm from beginning to end.

End Gcode

G91                            ; relative positioning
T0
G1 E-1 F300                    ; retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 Z20 E-1 X-20 Y-20 F2000     ; move Z up a bit and retract filament even more
G1 E0                          ; re-prime extruder 1
T1
G1 E-1 F300                    ; retract the filament a bit before lifting the nozzle, to release some of the pressure
G1 E0                          ; re-prime extruder 2

This section of end gcode will retract 1mm, then extrude 1mm as well for a net 0 gain.

The issue is, hot end 2 was not the last used. So depending on what the profile is set to the additional purge will need to cover the "nozzle switch retraction distance".

Were both nozzles primed before starting the print? Was a print recently canceled halfway through, and then restarted?

logan added a comment.Jan 23 2019, 3:40 PM

Test confirmed no change by the following:
Prime both nozzles
Start print
let print finish
start another print <no purge at start on E2

logan added a comment.Jan 23 2019, 3:42 PM

The issue is, hot end 2 was not the last used. So depending on what the profile is set to the additional purge will need to cover the "nozzle switch retraction distance".

Yes, that is the issue being reported here.

karrad added a subscriber: TyTh.Jan 29 2019, 12:45 PM

@logan As there is no way to determine which nozzle was used, if we increase the purge length we will have on purging an extra 20mm or so, while the other just barely gets primed.

@TyTh What do you think customers would prefer? The potential to miss a prime on one nozzle, or always purging an extra 20mm on one nozzle?

TyTh added a comment.Jan 29 2019, 1:05 PM

@karrad
I think the customer would prefer to always purge an extra 20mm than have the change the next print be messed up. There are a lot of users that just hit print and leave as well, so this causing adhesion issues on the second layer can cause the globs we sometimes see.

We already purge a couple mm in our other toolheads, and extra 20 or so shouldn't matter.

@TyTh This will be an extra 20mm of material fed into the nozzle. The extruded amount will be closer to 75mm. Here is some modified gcode for testing:

; This profile is designed specifically for the dual-extruder Q 3D Printer
M73 P0                                    ; clear GLCD progress bar
M75			          	  ; start GLCD timer
M107                                      ; disable fans
G90                                       ; absolute positioning
M420 S0                                   ; disable previous leveling matrix
M104 S{material_soften_temperature_0} T0  ; soften filament
M104 S{material_soften_temperature_1} T1  ; soften filament
M140 S{material_bed_temperature_layer_0}  ; get bed heating up
G28                                       ; home
M117 Heating...                           ; LCD status message
M109 R{material_soften_temperature_0} T0  ; wait for temp
M109 R{material_soften_temperature_1} T1  ; wait for temp
T0                                        ; select this extruder first
M82                                       ; set extruder to absolute mode
G92 E0                                    ; set extruder to zero
G1 E-10 F100                              ; suck up XXmm of filament
G0 X50 F1000                              ; move over to switch extruders
T1                                        ; switch extruders
M82                                       ; set extruder to absolute mode
G92 E0                                    ; set extruder to zero
G1  E-10 F100                             ; suck up XXmm of filament
M104 S{material_wipe_temperature_0} T0    ; set to wipe temp
M104 S{material_wipe_temperature_1} T1    ; set to wipe temp
M106                                      ; turn on fans to speed cooling
T0                                        ; select first extruder for probing
G1 X-17 Y90 F2000                         ; move above wiper pad
M104                                      ;
M117 Cooling...                           ; LCD status message
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
M107                                      ; turn off fan
G1 Z 1.0                                  ; push nozzle into wiper
G1 X -18 Y95 F1000                        ; slow wipe
G1 X -16 Y90 F1000                        ; slow wipe
G1 X -18 Y85 F1000                        ; slow wipe
G1 X -16 Y90 F1000                        ; slow wipe
G1 X -18 Y80 F1000                        ; slow wipe
G1 X -16 Y95 F1000                        ; slow wipe
G1 X -18 Y75 F2000                        ; fast wipe
G1 X -16 Y65 F2000                        ; fast wipe
G1 X -18 Y70 F2000                        ; fast wipe
G1 X -16 Y60 F2000                        ; fast wipe
G1 X -18 Y55 F2000                        ; fast wipe
G1 X -16 Y50 F2000                        ; fast wipe
G1 X -18 Y40 F2000                        ; fast wipe
G1 X -16 Y45 F2000                        ; fast wipe
G1 X -18 Y35 F2000                        ; fast wipe
G1 X -16 Y40 F2000                        ; fast wipe
G1 X -18 Y70 F2000                        ; fast wipe
G1 X -16 Y30 F2000                        ; fast wipe
G1 X -18 Y35 F2000                        ; fast wipe
G1 X -16 Y25 F2000                        ; fast wipe
G1 X -18 Y30 F2000                        ; fast wipe
G1 X -16 Y25 F1000                        ; slow wipe
G1 X -18 Y23 F1000                        ; slow wipe
G1 X -16 Z15 F2000                        ; raise extruder
M106 S255                                 ; turn on fan to blow away fuzzies
G4 S5                                     ; wait 5 seconds
M107                                      ; turn off fan
G0 X50 F1000                              ; move over to switch extruders
T1                                        ; switch to second extruder
G1 X295 Y90  F5000                        ; move E2 above second wiper pad
G1 Z 1.0                                  ; push nozzle into wiper
G1 X296 Y95 F1000                         ; slow wipe
G1 X294 Y90 F1000                         ; slow wipe
G1 X296 Y85 F1000                         ; slow wipe
G1 X294 Y90 F1000                         ; slow wipe
G1 X296 Y80 F1000                         ; slow wipe
G1 X294 Y95 F1000                         ; slow wipe
G1 X296 Y75 F2000                         ; fast wipe
G1 X294 Y65 F2000                         ; fast wipe
G1 X296 Y70 F2000                         ; fast wipe
G1 X294 Y60 F2000                         ; fast wipe
G1 X296 Y55 F2000                         ; fast wipe
G1 X294 Y50 F2000                         ; fast wipe
G1 X296 Y40 F2000                         ; fast wipe
G1 X294 Y45 F2000                         ; fast wipe
G1 X296 Y35 F2000                         ; fast wipe
G1 X294 Y40 F2000                         ; fast wipe
G1 X296 Y70 F2000                         ; fast wipe
G1 X294 Y30 F2000                         ; fast wipe
G1 X296 Y35 F2000                         ; fast wipe
G1 X294 Y25 F2000                         ; fast wipe
G1 X296 Y30 F2000                         ; fast wipe
G1 X294 Y25 F1000                         ; slow wipe
G1 X296 Y23 F1000                         ; slow wipe
G1 X294 Z15 F2000                         ; raise extruder
M106 S255                                 ; turn on fan to blow away fuzzies
G4 S5                                     ; wait 5 seconds
M107                                      ; turn off fan
G0 X247 F1000                             ; move over to switch extruders
T0                                        ; switch to first extruder
M109 R{material_probe_temperature_0}      ; heat to probe temp
M204 S100                                 ; set accel for probing
G29                                       ; probe sequence (for auto-leveling)
M420 S1                                   ; enable leveling matrix
M204 S500                                 ; set accel back to normal
M104 S{material_print_temperature_0}  T0  ; set extruder temp
M104 S{material_print_temperature_1}  T1  ; set extruder temp
G1 X100 Y-29 Z0.5 F3000                   ; move to open space
M400                                      ; clear buffer
M117 Heating...                           ; LCD status message
M109 R{material_print_temperature_0}  T0  ; set extruder temp and wait
M109 R{material_print_temperature_1}  T1  ; set extruder temp and wait
M117 Purging...                           ; LCD status message
T0                                        ; select this extruder first
G1 E0 F100				  ; undo retraction
G92 E-30				  ; set extruder negative amount to purge
G1 E0 F200				  ; purge XXmm of filament
T1                                        ; set extruder
G1  E0 F100                               ; undo retraction
G92 E-30                                  ; set extruder negative amount to purge
G1 E0 F200                                ; purge XXmm of filament
G1 Z0.5                                   ; clear bed (barely)
G1 X100 Y10 F5000                         ; move above bed to shear off filament
T0                                        : set extruder
M190 S{material_bed_temperature_layer_0}  ; get bed temping up during first layer
G1 Z2 E0 F75                              ; raise head and 0 extruder
M400                                      ; clear buffer
M117 TAZ Printing...                      ; LCD status message

@logan Give it a try and let us know what you think

karrad triaged this task as Normal priority.Jan 29 2019, 2:26 PM
karrad claimed this task.
karrad moved this task from Restricted Project Column to Restricted Project Column on the Restricted Project board.Jan 30 2019, 10:40 AM

Trying this out, looks to be a good amount of purge. Not a lot of waste, but both nozzle primed accordingly.

@TyTh @tutley @west @DaniAO @matth Can someone else give this a try before I update Cura?

Double checked this one on consecutive prints, I feel it is solid. Will push once we have another opinion

@karrad this one looks good to me! sorry for the delayed response

@karrad even if you restart a print with the filament retracted on one, it is a good prime amount and both nozzles are properly primed when the print restarts

woot woot, pushed

karrad closed this task as Resolved.Jan 30 2019, 2:55 PM