Temp going to zero at tool change
-
So I figured it out. My starting script was breaking things. For single extrusion (tool T0) it looks like this.
M140 S[bed0_temperature] ; set bed temp no wait
M104 S[extruder0_temperature] ; set extruder temp no wait
G28 ; home all
G1 Z250 Y-140 F6000; Lower nozzle for easy wiping of ooze
M190 S[bed0_temperature] ; wait for bed temp
M109 S[extruder0_temperature] ; wait for extruder temp
That will start warming the bed and hotend and then home, then drop the head to a reachable location in relation to where I'm sitting at my desk. What I had to do was add tool 2 (T1) into the mix for temp setting.
M140 S[bed0_temperature] ; set bed temp no wait
M104 T0 S[extruder0_temperature] ; set tool 0 hotend temp no wait
M104 T1 S[extruder1_temperature] ; set tool 1 hotend temp no wait
G28 ; home all
G1 Z250 Y-140 F6000; Lower nozzle for easy wiping of ooze
M109 T0 S[extruder0_temperature] ; wait for tool 0 hotend temp
M109 T1 S[extruder1_temperature] ; wait for tool 1 hotend temp
M190 S[bed0_temperature] ; wait for bed temp
I just added the last two m109 commands, so I have to test them to confirm they don't mess with anything.... but without them the tool changed happened correctly and I'm currently printing. -
@guycobb2 For info, I use a mixing hot end so have multiple tools (currently 9). The way I handle it is to use G10 in my start and end scripts. The tools all share a common heater so in my case the active and standby temperatures are the same So at the start I have :
G10 P1 R190 S190
G10 P2 R190 S190
G10 P3 R190 S190
G10 P4 R190 S190
G10 P5 R190 S190
G10 P6 R190 S190
G10 P7 R190 S190
G10 P8 R190 S190Then at the end I use similar commands but with the R and S parameters set to 0.
To make it simple for the slicer, I wrap all this stuff inside a macro and simple call the macro from the slicer start script. So my start script just has M98 P"0:/macros/PrePostPrintMacros/PrePrint3CBed50T190". This macro actually does everything from homing to setting the bed and hot end temps (which I disable in the slicer because I don't like the order of the commands that the slicer puts in).
-
@deckingman so you set your temps via a duet macro vs the slicer?
-
@guycobb2 said in Temp going to zero at tool change:
@deckingman so you set your temps via a duet macro vs the slicer?
Yes. What my macros actually do is start heating the bed to 40 deg C. When the bed reaches 40, then it starts to heat the bed to print temperature but also calls the homing macro. The homing macro itself pre-heats the nozzle to 140 because I use the nozzle itself as a probe so I need to soften any plastic that might have oozed. Once homing is completed, the macro sets the hot end to print temperature and moves the head to the rear of the bed. Then it waits for all temperatures to reach their set values and performs a nozzle wipe.
The net result of all that is that homing is completed and the hot end bought up to temperature in the time it takes to heat the bed, but not too long before. It's much easier to do all that via macros which can easily be edited, and simply call the macro from the start script.
-
Why do you set the temperatures multiple times?
Can you not simply set the temps, do those actions that can occur while the temps are rising, wait for the temps and then do the actions that should occur after the temps are stable?
That works for me.
And there is a command M116 that by itself will wait for all temperatures to reach their set point, you might find that useful.
Frederick
-
@fcwilt because if I use m109/m190 first it waits until temps are reached before advancing to any of the rest of my gcode. So it wouldn’t home or lower to my desired position until temp was reached.
-
@guycobb2 if you use G10 at the start of your start gcode to set the temperatures, then you can use M116 just before the print starts to ensure they are reached before the print starts.
-
@guycobb2 said in Temp going to zero at tool change:
@fcwilt because if I use m109/m190 first it waits until temps are reached before advancing to any of the rest of my gcode. So it wouldn’t home or lower to my desired position until temp was reached.
Hi,
Please read my post again.
It should be enough to use M104/M140 ONCE to start the heating processes and then use M116 ONCE where needed to wait for the heating to finish.
Frederick
-
@fcwilt yep, but G10 is preferred
-
@T3P3Tony said in Temp going to zero at tool change:
@fcwilt yep, but G10 is preferred
Hmm...
I don't see anything in the text on G10 that it actually starts the hearing process.
I just assumed it did what you can do from the DWC where the setting of temperatures is separate from the heater states (off, standby, active).
Frederick
-
@fcwilt G10 sets the temp both as standby and active for the tool it describes. Separately the tool state can be in one of three states, Standby, Active or Off. If it is Off then nothing happens, if it is standby the standby is set, if it is active the active is set.
That is why G10 is preferred in multiple tool (heater) setups because is explicitly sets those temperatures that are automatically toggled by Tn commands.
My answer was incomplete however because you do need to start with the tools in at least standby mode. My config.g does this by:
T3 P0
T2 P0
T1 P0
T0 P0
T-1 P0Which sets all the tools into standby without running any of the tool change macros (which would fail because the axis are not yet homed).
In @guycobb2 's case its a bit simpler because he has only 2 tools. I was just describing the general case.
-
@T3P3Tony said in Temp going to zero at tool change:
My answer was incomplete however because you do need to start with the tools in at least standby mode.
OK using G10 along with the T commands does make sense.
In reading the docs for G10 the form that allows setting the two temperatures is called out in the list of gcodes as "G10: Tool Offset"
Perhaps that should be altered to include something about setting of temps.
G10 certainly does a lot of different things.
Thanks.
Frederick
-
@fcwilt yes G10 is overloaded a lot.
The original logic for the temperatures being in G10 along with other offsets is that temperatures are just another offset that is applied to a tool!
-
@T3P3Tony said in Temp going to zero at tool change:
@fcwilt yes G10 is overloaded a lot.
The original logic for the temperatures being in G10 along with other offsets is that temperatures are just another offset that is applied to a tool!
Uh.... OK.... That seems a bit of a stretch.
Still the documentation of G10 could use a better heading than "Tool Offsets" don't you think?
Frederick
-
@fcwilt indeed:
https://duet3d.dozuki.com/Wiki/Gcode#Section_G10_Tool_Offset_and_Temperature_Setting(yes, i just added the temperature bit to the title!)
-
Thanks much!