Let's discuss how to use the Simplify3D slicer with the retractable purge mechanism.
Cecil asked us:
"
I'm trying to integrate your gcode for the retractable purge mechanism with my current starting script using Simplified3D. My current starting script will be listed below. Where should I put the gcode to allow the retractable purge mechanism to function during a print. I'm using a CR-10S with a palette 2 and an EZABL
M75 ; Start Print Timer and Engage Fil Sensor if USB Printing
G92 E0 ; Reset Extruder distance to 0
G1 E-2 ; Retracts filament to prevent blobs during probing
M84 E ; Disable E Motor for probe accuracy on direct drive systems
G28 ; home all axes
G28 Z ; home Z to get more accurate Z position
G29; EZABL mesh generation
G4 S10; wait for heaters to recover
M92 E2650 ; Set steps/mm extrusion
M201 E120 ; Set Extruder acceleration
M204 R120 ; Set Retract acceleration
M205 E3 ; Set Extruder Jerk
M203 E45 ; Maximum feed rate
M117 Purge extruder
G92 E0 ; reset extruder
G1 Z1.0 F3000 ; move z up little
G1 X0.1 Y20 Z0.3 F5000.0 ; move to start-line position
G1 X0.1 Y100.0 Z0.3 F1000.0 E15 ; draw 1st line
G1 X0.4 Y100.0 Z0.3 F5000.0 ; move to side a little
G1 X0.4 Y20 Z0.3 F1000.0 E30 ; draw 2nd line
G92 E0 ; reset extruder
G1 Z1.0 F3000 ; move z up little
M211 S0; disable software endstop
M117 Printing....."
Israel wrote to us and suggested the following:
"I think i have a solution to using the purge gcode on S3D. From what I have determined when adding the code to the tool change tab in S3D. The purge happens before the tool change. To make it work after the tool changes, add the following to the beginning of the gcode....
Here is an example of the purge gcode to be added to the process->scripts->Tool change script
Image attached.
We haven't tested this ourselves. But it seems that others have had success with it. Please use caution at first.
"
T[new_tool]
G1 X200 F12000 ;move head into position
G4 S0 ;clear movement buffer
G1 X250 F12000 ;move head to purge zone
G1 X254.6 F1000 ;extend purge arm
M107 ;turn off fan
G92 E0 ;reset extrusion position
G1 E0.8 F2100 ;issue after retract
G92 E0 ;reset extrusion position
G1 E40 F200 ;1st purge extrude onto thumb tack
M106 S255 ;turn on fan
G4 S12 ;blob cooling
G92 E0 ;reset extrusion position
G1 E-0.8 F2100 ;retract extruder to prevent oozing
G1 X240 F12000 ;whack blob off tack 1
G1 X254.6 F3000 ;reset for another blob whack
G1 X240 F12000 ;whack blob off tack 2
G1 X200 F12000
G4 S0
G1 X250 F12000
G1 X254.6 F1000
M107
G92 E0
G1 E0.8 F2100 ;issue
G92 E0
G1 E40 F200 ;2nd purge
M106 S255 ;blob cooling
G4 S12 ;blob cooling
G92 E0
G1 E-0.8 F2100
G1 X240 F12000
G1 X254.6 F3000
G1 X240 F12000
G1 X200 F12000
G4 S0
G1 X250 F12000
G1 X254.6 F1000
M107
G92 E0
G1 E0.8 F2100 ;issue
G92 E0
G1 E40 F200 ;3rd purge
M106 S255 ;blob cooling
G4 S12 ;blob cooling
G92 E0
G1 E-0.8 F2100
G1 X240 F12000
G1 X254.6 F3000
G1 X240 F12000
G1 X200 F12000
G4 S0
G1 X250 F12000
G1 X254.6 F1000
M107
G92 E0
G1 E0.8 F2100 ;issue
G92 E0
G1 E40 F200 ;4th purge
M106 S255 ;blob cooling
G4 S12 ;blob cooling
G92 E0
G1 E-0.8 F2100
G1 X240 F12000
G1 X254.6 F3000
G1 X240 F12000
M907 X650 ;set the current back to normal
"
Just a quick note on the change, and how to use it on S3D with a printer that the tip of the nozzle does not go beyond the right side edge of the bed. When using a purge line in the startup script, DO NOT put text in the first process to change tool. If you do, when the arm extends it will crash on the edge of the bed. You need to determine the distance between the bottom edge of the purge device and the tip of the nozzle (the zed distance). Do not purge below that distance.
You should also test how far you x carriage will travel to the right furthermost point. Edit the gcode for the tool change to reflect that distance, make appropriate changes to the other X movement changes in the gcode to kick out the ball of filament, etc.
I hope this makes sense.
This isnt working for me on my MK3S with MMU2
I am using Simplify 4.1.2. and have inserted the gcode into the tool change script
First run, after the simplify inbuilt purge line on the front, it crashes the leaver arm into the bed because it isnt high enough.
Could I be supplied with a working profile, or gcode that works.
Hi @martin-ferguson,
We've revamped the instructions and the gcode for Simplify3D. Here are the video instructions. Here is the updated 'on tool change' gcode:
;*Begin pre-tool change gcode
M907 X800 ;set current of X motor. May need to set Y as well if your printers head moves on x & y
M106 S0 ;turn off fan
G92 E0 ;reset extrusion distance
G1 E-0.8 F2100 ;retract
G1 Y100 F12000 ;Break string before Z lift
G1 X200 F12000 ;move head into position
G91;Change to relative position
G1 Z15 ;change 15 to the height you need to clear your bed
G90;Change to absolute position
G4 S0 ;clear movement buffer
G1 X250 F12000 ;move head to purge zone
G1 X254.6 F1000 ;extend purge arm
;*End pre-tool change gcode
M702 ;unload filament
T[new_tool] ;this signifies the filament change
;*Begin after tool change purge gcode
G1 X200 F12000 ;move head into position
G4 S0 ;clear movement buffer
G1 X250 F12000 ;move head to purge zone
G1 X254.6 F1000 ;extend purge arm
M107 ;turn off fan
G92 E0 ;reset extrusion position
G1 E0.8 F2100 ;issue after retract
G92 E0 ;reset extrusion position
G1 E40 F200 ;1st purge extrude onto thumb tack
M106 S255 ;turn on fan
G4 S12 ;blob cooling
G92 E0 ;reset extrusion position
G1 E-0.8 F2100 ;retract extruder to prevent oozing
G1 X240 F12000 ;whack blob off tack 1
G1 X254.6 F3000 ;reset for another blob whack
G1 X240 F12000 ;whack blob off tack 2
;add additional purge blobs as needed by copying the block above. You need 1 block for each blob.
M907 X650 ;set the current back to normal
;End after tool Change Purge gcode
Hi @martin-ferguson,
We've revamped the instructions and the gcode for Simplify3D. Here are the video instructions. Here is the updated 'on tool change' gcode:
;*Begin pre-tool change gcode
M907 X800 ;set current of X motor. May need to set Y as well if your printers head moves on x & yM106 S0 ;turn off fan
G92 E0 ;reset extrusion distance
G1 E-0.8 F2100 ;retract
G1 Y100 F12000 ;Break string before Z lift
G1 X200 F12000 ;move head into positionG91;Change to relative position
G1 Z15 ;change 15 to the height you need to clear your bed
G90;Change to absolute positionG4 S0 ;clear movement buffer
G1 X250 F12000 ;move head to purge zone
G1 X254.6 F1000 ;extend purge arm
;*End pre-tool change gcodeM702 ;unload filament
T[new_tool] ;this signifies the filament change;*Begin after tool change purge gcode
G1 X200 F12000 ;move head into position
G4 S0 ;clear movement buffer
G1 X250 F12000 ;move head to purge zone
G1 X254.6 F1000 ;extend purge arm
M107 ;turn off fan
G92 E0 ;reset extrusion position
G1 E0.8 F2100 ;issue after retract
G92 E0 ;reset extrusion position
G1 E40 F200 ;1st purge extrude onto thumb tack
M106 S255 ;turn on fan
G4 S12 ;blob cooling
G92 E0 ;reset extrusion position
G1 E-0.8 F2100 ;retract extruder to prevent oozing
G1 X240 F12000 ;whack blob off tack 1
G1 X254.6 F3000 ;reset for another blob whack
G1 X240 F12000 ;whack blob off tack 2;add additional purge blobs as needed by copying the block above. You need 1 block for each blob.
M907 X650 ;set the current back to normal
;End after tool Change Purge gcode
Something isnt right with that code either, I did the old copy paste, and followed the video exactly. After the purge it does not go back to the starting position but floats above. It doesn't even use the MMU start code. I think it needs a G90 to return it.
Please look into it, I truly want this to work. If anyone could put in their MMU start code, and tool change script I would appreciate it.
Normal MK3S w/MMU start code:
M115 U3.7.0 ; use the latest firmware version
M104 S[extruder0_temperature]
M140 S[bed0_temperature]
M109 S[extruder0_temperature]
M190 S[bed0_temperature]
M140 S0
G28 W ; home all axes without mesh bed leveling
G80 ; run mesh bed leveling routine
M190 S[bed0_temperature]
; Send the filament type to the MMU2.0 unit.
; E stands for extruder number
; F stands for filament type (0: default; 1:flex; 2: PVA)
M403 E0 F0 ; send T0 filament code
M403 E1 F0 ; send T1 filament code
M403 E2 F0 ; send T2 filament code
M403 E3 F0 ; send T3 filament code
M403 E4 F0 ; send T4 filament code
G92 E0 ; reset extrusion distance
T0
G1 X0 Y-3.0 Z0.5 F1000.0 ; prepare to prime
G92 E0.0
G1 E60.0 F2000 ; load filament
G1 Z0.3 F1000.0
G92 E0.0
G1 X240.0 E45 F1000.0 ; prime line
G1 Y-2.0 Z0.20 F1000.0 ; wipe
G92 E0.0
Just about up to the "yeet this out the window" phase.
Im willing to help troubleshoot this, but having documented and verified steps would be a bonus. I know you say that others have worked, I am sure you have a MK3s with MMU2 profile somewhere. Or export it.
I have tried it in Prusa slicer (shudder) where it ran a purge line, then raised for a filament change, dropped then ran into the bed. This was with the supplied code and the only change was my nozzle position.
Have tried in Simplify, which just fails to export a code that does not have the printer air printing.