User avatar
BaronWilliams
Posts: 184
Joined: Tue Jul 15, 2014 8:30 pm

Only 1 Extruder On Per Process. Not Possible?

These are the steps I need to have working:
  • Heat up extruder 0 only.
  • Perform process 0 with extruder 1 off.
  • Heat up extruder 1 only. Turn off extruder 2.
  • Perform process 1 with extruder 0 off.
  • Repeat for each layer...
I can't figure out how to do this. It seems that Simplify3D always wants to turn both extruders on when it starts.

I see this at the start of the G-Code no matter what I do:

Code: Select all

M104 S220 T0
M104 S220 T1
M109 S220 T0
M109 S220 T1
Why? I have set Cooldown extruder while idle enabled for both processes, and still both extruders turn on at the start of the G-Code. This is frustrating. This causes both extruders to start oozing filament before the print even starts. I am printing 2 different colors and I don't ever want them both on at the same time. This is horrible.

How can this be done? Cooldown extruder while idle doesn't seem to actually do much of anything to fix this. Even when enabled, both extruders still turn on at the start of the print. I have Required Idle Time set to 1 second. Process 0 uses only extruder 0. It's the first process that runs. At the start of my print, process 0 takes more than 1 second to complete, so why is extruder 1 on while process 0 runs? It doesn't work. Obviously there's a bug.

Is there a workaround to this Cooldown extruder while idle bug? Some other trick to get this working?

Is what I want to do even possible in Simplify3D?
User avatar
BaronWilliams
Posts: 184
Joined: Tue Jul 15, 2014 8:30 pm

Re: Only 1 Extruder On Per Process. Not Possible?

Another problem with using Cooldown extruder while idle is that Simplify3D turns all extruders back on full blast at the layer change events where the extruder temperatures are specified, even if one of the extruders will be idle at that time, both go back full blast.

Cooldown extruder while idle is buggy. Seems that it was never tested properly.

Cooldown extruder while idle needs to override what happens at startup and on the layer changes. But it doesn't. It's almost useless with these bugs.
User avatar
BaronWilliams
Posts: 184
Joined: Tue Jul 15, 2014 8:30 pm

Re: Only 1 Extruder On Per Process. Not Possible?

I tried to fix the Cooldown extruder while idle bug where Simplify3D puts the extruders back at full blast at the layer change with a Layer Change script:

Code: Select all

{IF [current_tool]=0}M109 S[extruder0_temperature] T0 ; Wait for extruder 0 to reach temperature.
{IF [current_tool]=0}M104 S150 T1 ; Turn down extruder 1 to 150 C to prevent oozing.

{IF [current_tool]=1}M109 S[extruder1_temperature] T1 ; Wait for extruder 1 to reach temperature.
{IF [current_tool]=1}M104 S150 T0 ; Turn down extruder 0 to 150 C to prevent oozing.
Unfortunately the IF statement doesn't work in the Layer Change script. It works in the Tool Change scripts only.:( EDIT: This statement I made is not correct. I was using it wrong. It does work, but the syntax is like this: {IF "[current_tool]==1"}

It seems that what I'm trying to do is maybe impossible.:| EDIT: again, this is not correct. I was able to get it working. See my later posts.
Last edited by BaronWilliams on Wed Mar 12, 2025 1:54 pm, edited 1 time in total.
User avatar
BaronWilliams
Posts: 184
Joined: Tue Jul 15, 2014 8:30 pm

Re: Only 1 Extruder On Per Process. Not Possible?

I'm able to get want I want to work, but I need to do some hacky things to get it to work.

I have completely abandoned trying to use Cooldown extruder while idle. It doesn't work right and I can't fix it with scripts.

I also found that I cannot change the extruder temperature on a per layer basis, because that messes everything up by turning on both extruders, and I can't stop it from doing that. So it only gets set once at layer 1. There's no alternative.

I also turn off Stabilize temperature controller at beginning of print. With this is off, Simplify3D still sets the temperature, but doesn't wait for it. This allows a script to stops this bad behavior.

Using the Pre Tool Change script, I set both extruders to 170 C to prevent oozing. This works, even for the first layer, because it always gets called at the start of a print AFTER Simplify3D turns on both extruders. But it happens so fast with Stabilize temperature controller at beginning of print disabled that despite Simplify3D turning on both extruders, the script's settings override Simpify3D's detrimental action. After that, the script sets the correct extruder to it's correct temperature, and leaves the other one at 170 C.

Here's the Pre Tool Change script:

Code: Select all

M106 S255 P0 ; Set fan 0 to 100% to help cool extruders.
M104 S170 T0 ; Turn down extruder to prevent oozing.
M104 S170 T1 ; Turn down extruder to prevent oozing.

; The QIDI I-fast tool change process moves very slow.
; Move to the front center quickly, so nothing drips onto the print before the too change takes place.
; Y is set to 8 so that it won't bump the purge line.
G0 X165 Y8 F3600

{IF NEWTOOL=0}G0 X330 Y8 F3600 ; Move to the right.
{IF NEWTOOL=1}G0 X0 Y8 F3600 ; Move to the left.

M400 ; Wait for movement to stop.

M106 S0 P0 ; Set fan 0 off so the extruder will heat up faster.

{IF NEWTOOL=0}M109 S[extruder0_temperature] T0 ; Wait for extruder 0 to reach temperature.
{IF NEWTOOL=1}M109 S[extruder1_temperature] T1 ; Wait for extruder 1 to reach temperature.

M106 S[fan0_speed_pwm] P0 ; Set fan 0 to current fan setting.
This is working pretty well actually. I am also using prime pillars, which does a purge after the tool head change occurs.

Quality wise, it's now printing like a Bambu Lab printer that has AMS (because of the unique dual head system on the QIDI I-Fast with the tilting action, so the inactive extruder doesn't touch anything).

Since I'm using PETG, this works, but there is still some minor stringing, but it's now only from the active extruder, the inactive extruder is no longer oozing at all.
S3D-Taylor
Posts: 102
Joined: Tue Jun 20, 2023 10:55 am

Re: Only 1 Extruder On Per Process. Not Possible?

There are a lot of statements to unpack here, I'll try my best to address some of them for now!

1. The temperature commands that are populated in the starting script are from the temperature controllers in the starting process that are enabled (the Enable Temperature controller checkbox). If you would like to replace or disable them, you can simply add the [extruder0_temperature] and other placeholder variables in the starting script (see example):
; commented out [extruder0_temperature] [extruder1_temperature]

2. IF statements works fine, the syntax just needs to be corrected to include double quotes:
{IF "1+1==2"}

3. I've used and tested Cooldown extruder while idle and it seems to be functioning as expected, can you attach the factory file here so we can look at it?
User avatar
BaronWilliams
Posts: 184
Joined: Tue Jul 15, 2014 8:30 pm

Re: Only 1 Extruder On Per Process. Not Possible?

Hi S3D-Taylor, thanks for responding.
1. The temperature commands that are populated in the starting script are from the temperature controllers in the starting process that are enabled (the Enable Temperature controller checkbox). If you would like to replace or disable them, you can simply add the [extruder0_temperature] and other placeholder variables in the starting script (see example):
; commented out [extruder0_temperature] [extruder1_temperature]
This is good to know.
2. IF statements works fine, the syntax just needs to be corrected to include double quotes:
{IF "1+1==2"}
Yes, it's working if I use the double quotes. Excellent. :D
3. I've used and tested Cooldown extruder while idle and it seems to be functioning as expected, can you attach the factory file here so we can look at it?
So here's a factory file I created to specifically showcase the Cooldown extruder while idle problems I ran into, along with the G-Code.

G-Code line 695:

line 695: M104 S220 T0
line 696: M104 S220 T1
line 697: M109 S220 T0
line 698: M109 S220 T1

Only T0 extruder is active, but Simplify3D turns them both on at full blast, ignoring the value in Cooldown extruder while idle. This is the first issue.

Line 718 is where the first cooldown occurs:

Line 718: M104 S150 T1

This should have been at line 696 and the corresponding M109 at line 698, not here. It's too late. At this point T1 has oozed filament and there's filament hanging out of the extruder which will contaminate the print.

Line 1056 is the first T0 cooldown:

Line 1056: M104 S150 T0

At layer 2 where I told Simplify3D to change the temperature of T0 and T1, Simplify3D decides to put them both at full power, ignoring the value in Cooldown extruder while idle. This is the second issue. This starts at Line 1400:

Line 1400: M104 S210 T1
Line 1415: M104 S210 T0


At this point both extruders are set to full power.

At line 1751, finally T1 is told to cooldown. Both T0 and T1 have been at full power until this line despite only 1 extruder being active.

Line 1751: M104 S150 T1

At line 1751, it's already drawn a prime pillar with both T0 and T1 at full power. Not good. The idle extruder oozed all over the prime pillar and has some filament hanging at this point.

So those are 2 cases where both extruders are told to go on at full blast when only 1 is active.

You can clearly see this in the G-Code.

I hope this gets fixed. It's a nice feature. Fortunately I was able to get around these bugs with an alternate method, and I'll be using that until this gets fixed.
Attachments
CooldownExtruderWhileIdle.factory
(15.67 KiB) Downloaded 813 times
CooldownExtruderWhileIdle.gcode
(284.53 KiB) Downloaded 819 times

Return to “General Discussion and Tips”