Standby temperature definition in dual extruder
-
it is a very strange graph showing the temperature followed by the second extruder.
The hot bed (blue) is correct and stable as well as the first extruder (red), it is the second extruder (green) which has a very erratic graph. I imagine you made the right tuning using the M303: Run heater tuning command on the second extruder as well -
@Pertti said in Standby temperature definition in dual extruder:
Ok, I put in config.g next lines:
; Tools
M563 P0 D0 H1 F0 ; define tool 0
G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets
G10 P1 R140 S0 ; set initial tool 0 active and standby temperaturesM563 P1 D1 H2 F0 ; define tool 1
G10 P1 X0 Y0 Z0 ; set tool 1 axis offsets
G10 P2 R140 ; set initial tool 1 active and standby temperatures
Heater 1 is my problem. Heater 2 reacts somehow.This line "G10 P1 R140 S0" sets the active temperature for tool 1 to zero and the standby temperature to 140.
This line "G10 P2 R140" sets the standby temperature for tool 2 to 140 but doesn't set the active temperature to anything. Most importantly - you don't have a tool 2 defined so that command won't do anything and may show an error. Neither of those lines set the temperatures for tool 0.
Try putting this in you slicer start code
G10 P0 R140 Snn (where nn is the active temperature you want to use) for tool 0 - the fist tool
G10 P1 R140 Snn for tool 1 - the second toolThen you don't need the slicer to set the active and standby temperatures. Remember to put the following in your slicer end code to turn return the active and standby temperature to zero
G10 P0 S0 R0
G10 P1 S0 R0 -
See if variations occur when there is a layer change. There are many slicers that in the layer change send the temperature values for the extruders. It seems that the temperature variation seen in the graph is between 140ºC (which are the ones you have defined in the G10 command) and 195ºC which are the ones that Cura must send to each layer change.
-
I changed slicer start and end codes. Heater fault occured two times.
It´s getting wild. -
@Pertti Those sudden temperature excursions for heater 2 look like a faulty thermistor or wiring. The actual temperature can't possibly change that fast.
-
Yes wiring was the reason. I changed hotends ant thermistors. Still I can´t control the standby temperature.
-
@Pertti said in Standby temperature definition in dual extruder:
.............. Still I can´t control the standby temperature.
Glad you sorted the wiring issue. What are you doing now to set standby temperatures? Are you using G10 S and R?
-
Hi and thank´s for help.
Here´s my printer settings in Cura:G28 ;Home
G1 Z15.0 F6000 ;Move the platform down 15mm
;Prime the extruderStart Gcode:
G10 P0 R140 S205
G10 P1 R140 S205
G92 E0
G1 F200 E3
G92 E0End gcode:
M104 S0
M140 S0
;Retract the filament
G10 P0 S0 R140
G10 P1 S0 R140
G92 E1
G1 E-1 F300
G28 X0 Y0
M84 -
@Pertti OK, that looks like it should work - it's more or less what I uses except that I have 6 extruders and 9 tools, not just 2.
Now what commands does Cura put in the gcode file when you change from one tool to another? What we want to happen is that there is simply a T0 or T1 and nothing else. We don't want to see any M104 or M109 commands. I'm not familiar with Cura so I can't advise on what you need to do to handle tool changes.
-
I've been checking, and I don't see Cura generating anything extra. No 104/109.Edit: I just checked again, and Cura definately DOES insert M104s and 109s throughout. In my prior looks, everything was set to the same temps, so it didn't have to change anything. If temps are different, it does insert the commands.
Here is a typical sequence. Comments are mine.
G1 X155.94 Y152.636 E0.00106 G1 X155.942 Y152.58 E0.0014 G0 F5400 X156.175 Y152.748 G1 F1200 E-16 G1 F600 Z1.45 T0 ; Mount T0 M109 S200 ; Set T0 to 200, and wait for that temp. M104 T1 S175 ; Set old tool to 175 G1 F1200 E9.5 G1 F600 Z0.45 ;MESH:twoColor1_2_7_10_53.stl G0 F5400 X152.093 Y128.068 M104 S210 ; Set current tool, T0, to 210. Do not wait. ;TYPE:WALL-INNER G1 F1500 E6.5 G1 F3300 X152.289 Y128.172 E0.00553 G1 X152.276 Y128.217 E0.00117 G1 X152.267 Y128.246 E0.00076
-
@Danal said in Standby temperature definition in dual extruder:
........... I'm curious why we don't want to see 104/109. I
Oh, because we are just trying to use G10 to set the active and standby temperatures for dual extruders, rather than the slicer. So to prevent any "interference", it'll be better if the slicer simply puts T"n" commands in the gcode file, and the firmware will take care of setting the tool temperatures and switching them between active and standby. The OP was struggling to get Cura to set the standby temperatures, hence the alternative G10 approach but that's not to say that it couldn't be done in Cura - not familiar with it so we don't know how.
-
Yeah, there is a "no right answer" to speeding up toolchange by pre-heating tools. Who should place the "raise yourself from standby" in advance of the actual mount. Slicer? Firmware via "look ahead"? Not sure. Today, the firmware does not do it. (to my knowledge).
I am aware that Cura does it, and of some scripts that can do it for any slicer. I don't have a real strong feeling as to which "should" do it, other than the look-ahead could be quite a large number of lines... and that could eventually get weird in the firmware.
-
@Danal Can that temperature sequence that Cura uses be changed? It looks like the "old" tool is held at print temperature while the new tool is heating up (M109) and only after the new tool has reached active temperature, is the old tool set to standby temperature. It would be better if the M104 "set (standby) temperature but don't wait" came before the M109 "set (active) temperature and wait" command.
-
@Danal said in Standby temperature definition in dual extruder:
Yeah, there is a "no right answer" to speeding up toolchange by pre-heating tools. Who should place the "raise yourself from standby" in advance of the actual mount. Slicer? Firmware via "look ahead"? Not sure. Today, the firmware does not do it. (to my knowledge). ............
AFAIK too, there is no look ahead feature in the firmware but I think it's on DC42s list of things to look into.
I do know that David thinks it's about time slicers caught up and started using G10 to set active and standby temperatures but (to the best of my knowledge), none of them do. Using G10 is much simpler because you simply set the desired active and standby temperatures for each of the tools at the start of a print, then all you have to do is switch between tools with Tn commands - no need to use M104 and 109s to set different temperatures for each tool every time you change between them.
-
Yeah, I thought that was odd as well. Let me look and see how much control we have. Ultimately... it is open source!
Also, if we don't want Cura to do this at all, just set standby = printing.
Also, just to be clear, Cura has no concept of 'standby' as Duet understands it, meaning two temperatures for the same tool. Cura simply sets 'the' temperature at the appropriate points in time, to either 'printing temperature' or 'standby temperature', these being specified in the GUI... but the difference between the two is when they get set, in terms of 'just mounted' vs. 'just parked' a tool. Don't know that this makes any real difference. Just a fact about how it works.
In fact, I just realized Cura is not 'pre' heating... it is doing it all at mount time. Therefore, I believe at this time, I know of only one script that 'pre' heats.
-
@deckingman said in Standby temperature definition in dual extruder:
Using G10 is much simpler because you simply set the desired active and standby temperatures for each of the tools at the start of a print, then all you have to do is switch between tools with Tn commands - no need to use M104 and 109s to set different temperatures for each tool every time you change between them.
Exactly.
Today, Cura doesn't seem to know about this. We could "override" by putting G10s in the start gcode, and setting Cura printing = Cura standby.
-
@deckingman Cura might be trying to pull off some timing tricks with the temperature of the extruder.
I'm experimenting with this type of feature in IceSL, it's quite neat. It will set the standby temp of the parked extruder to a value that will allow just the right amount of time for it to warm back up in time. Sometimes, that's not far from active temp. But if the tool is only parked for 20 seconds, that makes sense.
I haven't tested it in real prints yet, I'm just figuring it out and implementing it into the printer profile right now, but it's configurable via the slicer GUI with a rate of heating/cooling.
-
@bot said in Standby temperature definition in dual extruder:
@deckingman Cura might be trying to pull off some timing tricks with the temperature of the extruder.
I'm experimenting with this type of feature in IceSL, it's quite neat. It will set the standby temp of the parked extruder to a value that will allow just the right amount of time for it to warm back up in time. Sometimes, that's not far from active temp. But if the tool is only parked for 20 seconds, that makes sense.
Nice!!
-
@bot That looks like a significant step in the right direction. Ultimately we need a look ahead function but it's awkward because it would need to be done on a time basis. i.e. we need to start heating a tool from standby to active nnn minutes before we need to use it. How does one work out nn minutes back from a Tn command in gcode file? Is that how IceSL does it? - If so, that's a very clever trick!
-
Looks like SlicerPE also has the capability to do this. Very clear how you turn it off/on, it is called "ooze prevention".
Typical G-Code snip. In this case, the comments were already there.
G1 E-4.96836 F2400.00000 ; Filament-specific end gcode G1 X128.341 Y161.138 F7800.000 M104 S235 T1 ; set temperature ; perform tool change wipe retract G91 G1 X2.5 Y2.5 E-0.25 ; complete remainder of retraction at defined speed G1 F2400 E-4.75 ; return to absolute coordinates and perimeter printing speed G90 G1 F3600 M106 S255 T0 M900 K30 ; Filament gcode M109 S210 T0 ; set temperature and wait for it to be reached G1 X147.977 Y147.194 F7800.000 G1 E10.00000 F2400.00000 G1 F1800.000