<p>Since the bed usually takes longer to heat than the nozzle, the nozzle is in a pre-warmup stage so that it doesn't ooze filament waiting for the bed while homing and/or finding the Z limit.</p>
<p>Once the bed is warmed up and the Z limit is reached the nozzle heats up to the final temperature and the print starts.</p>
<p>If you go to the <strong>Printer Settings</strong> tab of Prusaslicer and click on <strong>Custom G-Code</strong>, you'll see the initial temp in the <strong>Start G-Code</strong> section. Mine even says:</p>
<pre><code>M104 S150 ; set temporary nozzle temp to prevent oozing during homing
</code></pre>
<p>A temperature of 150 °C is low enough that the filament doesn't melt but close enough to the final temperature so that you're not waiting for a full heat cycle.</p>

CC BY-SA 4.0
2023-01-18T14:24:21.777Z
Good answer, and most probably **the** answer, but I still hope the OP adds the first lines of G-code, then we will know for sure!
0scar
CC BY-SA 4.0
2023-01-18T15:35:21.257Z
FWIW I think it's worth fixing this to just heat directly. At least on my machine, with temperatures I use, bed heating and hotend heating take comparable time, and the nozzle will not significantly ooze at print temperature if your end gcode properly retracts the filament all the way out of the melt zone for the start gcode to reverse.
R.. GitHub STOP HELPING ICE
CC BY-SA 4.0
2023-01-18T17:40:51.153Z
You can't retract the filament at the start of the print, however, since the nozzle is cold. You'd have to make sure your g-code retracts at the end of the previous print, which is no guarantee. The temp setting is a workaround for either case.
LarryBud
CC BY-SA 4.0
2023-01-18T22:01:14.657Z
R was hinting to retract in the end G-code, the start code needs to reverse it.
0scar
CC BY-SA 4.0
2023-01-18T22:53:49.580Z
Accepted as answer as this sounds reasonable to me.
Zeik0s
CC BY-SA 4.0
2023-01-19T03:45:18.473Z
Yes, what @0scar said: retract the whole melt zone length at the end of the print, and unretract the same amount in the start gcode, after heating but before priming.
R.. GitHub STOP HELPING ICE
CC BY-SA 4.0
2023-01-19T15:06:21.327Z
I'm going to have to play around with that idea. Have you tried it? Seems like there would still be material in the hotend that would ooze.
LarryBud
CC BY-SA 4.0
2023-01-20T16:54:24.083Z
@R..GitHubSTOPHELPINGICE that only works if every one of your prints is perfect and you never abort a spaghetti print, have broken filament, or anything else that ends up not executing the retraction code.
simpleuser
CC BY-SA 4.0
2023-01-24T08:58:40.727Z
@simpleuser: My abort-print gcode also performs the retraction.
R.. GitHub STOP HELPING ICE
CC BY-SA 4.0
2023-01-24T16:15:23.210Z
@R..GitHubSTOPHELPINGICE What about if a power loss occurs?
LarryBud
CC BY-SA 4.0
2023-01-24T16:20:25.497Z
@LarryBud: Then you potentially have various things to get in proper order before printing again - for example, possible clogs from heat creep with no cooling on the hotend. But the worst that happens from the missing retract is pooping out a bunch of extra filament on the unretract.
R.. GitHub STOP HELPING ICE
CC BY-SA 4.0
2023-01-24T16:42:40.177Z
@R..GitHubSTOPHELPINGICE I'm just trying to figure out the benefits of doing it the way you do, when you have to account for additional scenarios.
LarryBud
CC BY-SA 4.0
2023-01-25T05:13:10.670Z
@LarryBud: That you don't have unpredictable oozing, and don't waste time heating and cooling the nozzle trying to use temperature to control oozing. It's necessary for working pause and resume anyway, and once you have that, it makes sense to do the same for stop/start print. It also lets you leave the nozzle at temp between prints for instant start of the next job.
R.. GitHub STOP HELPING ICE
CC BY-SA 4.0
2023-03-04T07:52:06.070Z
I almost always have my nozzle and bed preheated either manually or because I just finished a previous print. This cooling to 150 while moving the print head around then waiting to heat up again is getting to be quite tedious with repeated prints! I would put up with oozing in return for getting prints going quicker.
Greg H
CC BY-SA 4.0
2023-01-18T13:40:09.073Z
2023-01-18T14:24:36.160Z
2023-01-18T14:24:36.160Z
LarryBud
<p>I'm using PrusaSlicer 2.5.0 and printing the sliced G-code on a Creality CR-6 SE via a USB-connected OctoPrint/OctoPi. As you can see, the slicer sets the temperature by G-code commands in two steps (final temperature is 205 °C). This seems strange to me, as the printer can go directly to the final temperature. Also, this screenshot shows the case where I'm switching filament, therefore I have to heat up the extruder and when I start printing, the hotend cools for some time, because the target temperature is way lower set by PrusaSlicer.</p>
<p>Is there a setting for configuring this in PrusaSlicer?
These are the first few lines in the G-code file:</p>
<pre><code>; generated by PrusaSlicer 2.5.0+win64 on 2023-01-18 at 12:15:56 UTC

; 

; external perimeters extrusion width = 0.42mm
; perimeters extrusion width = 0.44mm
; infill extrusion width = 0.44mm
; solid infill extrusion width = 0.44mm
; top infill extrusion width = 0.40mm
; support material extrusion width = 0.36mm
; first layer extrusion width = 0.42mm

M201 X500 Y500 Z100 E5000 ; sets maximum accelerations, mm/sec^2
M203 X500 Y500 Z10 E60 ; sets maximum feedrates, mm / sec
M204 P500 R1000 T500 ; sets acceleration (P, T) and retract acceleration (R), mm/sec^2
M205 X8.00 Y8.00 Z0.40 E5.00 ; sets the jerk limits, mm/sec
M205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec
M107
;TYPE:Custom
G90 ; use absolute coordinates
M83 ; extruder relative mode
M109 S180 ; set temporary nozzle temp to prevent oozing during homing
M190 S70 ; wait for bed temp to stabilize
M140 S70 ; set final bed temp
G28 ; home all axis
G1 Z50 F240
G1 X2.0 Y10 F3000
M104 S230 ; set final nozzle temp
M109 S230 ; wait for nozzle temp to stabilize
G1 Z0.28 F240
G92 E0
G1 X2.0 Y140 E10 F1500 ; prime the nozzle
G1 X2.3 Y140 F5000
G92 E0
G1 X2.3 Y10 E10 F1200 ; prime the nozzle
G92 E0
G21 ; set units to millimeters
G90 ; use absolute coordinates
M83 ; use relative distances for extrusion
; Filament gcode
</code></pre>

CC BY-SA 4.0
2023-01-18T12:51:37.637Z
Hi, welcome to 3DPrinting.SE! Can you share the first 30 lines or so from the G-code file? The image doesn't really help that much. We have to discard the first 2/3 of the image (unrelated to the problem) and do not see the final temperature being reached, in fact it settles at the 165 °C mark. Please update your question by [edit]. Also look into you start G-code scripts in PrusaSlicer, maybe post them as well.
0scar
CC BY-SA 4.0
2023-01-22T14:02:21.167Z
I have replaced the initial gcode in prusaslicer.  I've found those defaults degrade print quality on my E3.  I typically preheat the nozzle so the temp is stable, and then the default code drops the temp and then raises it, guaranteeing that the temp will be unstable.  The rest of the surrounding code causes other issues.
user10489
<octoprint><prusaslicer><creality-cr-6>
Why does Prusaslicer set the final temperature in two steps?
Zeik0s
# Why does Prusaslicer set the final temperature in two steps?

(Asked by: username_0 on 2023-01-18)

I'm using PrusaSlicer 2.5.0 and printing the sliced G-code on a Creality CR-6 SE via a USB-connected OctoPrint/OctoPi. As you can see, the slicer sets the temperature by G-code commands in two steps (final temperature is 205 °C). This seems strange to me, as the printer can go directly to the final temperature. Also, this screenshot shows the case where I'm switching filament, therefore I have to heat up the extruder and when I start printing, the hotend cools for some time, because the target temperature is way lower set by PrusaSlicer.
Is there a setting for configuring this in PrusaSlicer?
These are the first few lines in the G-code file:
; generated by PrusaSlicer 2.5.0+win64 on 2023-01-18 at 12:15:56 UTC

; 

; external perimeters extrusion width = 0.42mm
; perimeters extrusion width = 0.44mm
; infill extrusion width = 0.44mm
; solid infill extrusion width = 0.44mm
; top infill extrusion width = 0.40mm
; support material extrusion width = 0.36mm
; first layer extrusion width = 0.42mm

M201 X500 Y500 Z100 E5000 ; sets maximum accelerations, mm/sec^2
M203 X500 Y500 Z10 E60 ; sets maximum feedrates, mm / sec
M204 P500 R1000 T500 ; sets acceleration (P, T) and retract acceleration (R), mm/sec^2
M205 X8.00 Y8.00 Z0.40 E5.00 ; sets the jerk limits, mm/sec
M205 S0 T0 ; sets the minimum extruding and travel feed rate, mm/sec
M107
;TYPE:Custom
G90 ; use absolute coordinates
M83 ; extruder relative mode
M109 S180 ; set temporary nozzle temp to prevent oozing during homing
M190 S70 ; wait for bed temp to stabilize
M140 S70 ; set final bed temp
G28 ; home all axis
G1 Z50 F240
G1 X2.0 Y10 F3000
M104 S230 ; set final nozzle temp
M109 S230 ; wait for nozzle temp to stabilize
G1 Z0.28 F240
G92 E0
G1 X2.0 Y140 E10 F1500 ; prime the nozzle
G1 X2.3 Y140 F5000
G92 E0
G1 X2.3 Y10 E10 F1200 ; prime the nozzle
G92 E0
G21 ; set units to millimeters
G90 ; use absolute coordinates
M83 ; use relative distances for extrusion
; Filament gcode

**Tags:** octoprint, prusaslicer, creality-cr-6
> **Comments:**
> **username_1**: Hi, welcome to 3DPrinting.SE! Can you share the first 30 lines or so from the G-code file? The image doesn't really help that much. We have to discard the first 2/3 of the image (unrelated to the problem) and do not see the final temperature being reached, in fact it settles at the 165 °C mark. Please update your question by [edit]. Also look into you start G-code scripts in PrusaSlicer, maybe post them as well.  
> **username_2**: I have replaced the initial gcode in prusaslicer.  I've found those defaults degrade print quality on my E3.  I typically preheat the nozzle so the temp is stable, and then the default code drops the temp and then raises it, guaranteeing that the temp will be unstable.  The rest of the surrounding code causes other issues.  

---

## 1 answers

### Answer by username_3 on 2023-01-18. Score: 7 | Accepted answer

Since the bed usually takes longer to heat than the nozzle, the nozzle is in a pre-warmup stage so that it doesn't ooze filament waiting for the bed while homing and/or finding the Z limit.
Once the bed is warmed up and the Z limit is reached the nozzle heats up to the final temperature and the print starts.
If you go to the Printer Settings tab of Prusaslicer and click on Custom G-Code, you'll see the initial temp in the Start G-Code section. Mine even says:
M104 S150 ; set temporary nozzle temp to prevent oozing during homing

A temperature of 150 °C is low enough that the filament doesn't melt but close enough to the final temperature so that you're not waiting for a full heat cycle.

> **Comments:**
> **username_1**: Good answer, and most probably **the** answer, but I still hope the OP adds the first lines of G-code, then we will know for sure!  
> **username_4**: FWIW I think it's worth fixing this to just heat directly. At least on my machine, with temperatures I use, bed heating and hotend heating take comparable time, and the nozzle will not significantly ooze at print temperature if your end gcode properly retracts the filament all the way out of the melt zone for the start gcode to reverse.  
> **username_3**: You can't retract the filament at the start of the print, however, since the nozzle is cold. You'd have to make sure your g-code retracts at the end of the previous print, which is no guarantee. The temp setting is a workaround for either case.  
> **username_1**: R was hinting to retract in the end G-code, the start code needs to reverse it.  
> **username_0**: Accepted as answer as this sounds reasonable to me.  
> **username_4**: Yes, what @0scar said: retract the whole melt zone length at the end of the print, and unretract the same amount in the start gcode, after heating but before priming.  
> **username_3**: I'm going to have to play around with that idea. Have you tried it? Seems like there would still be material in the hotend that would ooze.  
> **username_5**: @R..GitHubSTOPHELPINGICE that only works if every one of your prints is perfect and you never abort a spaghetti print, have broken filament, or anything else that ends up not executing the retraction code.  
> **username_4**: @simpleuser: My abort-print gcode also performs the retraction.  
> **username_3**: @R..GitHubSTOPHELPINGICE What about if a power loss occurs?  
> **username_4**: @LarryBud: Then you potentially have various things to get in proper order before printing again - for example, possible clogs from heat creep with no cooling on the hotend. But the worst that happens from the missing retract is pooping out a bunch of extra filament on the unretract.  
> **username_3**: @R..GitHubSTOPHELPINGICE I'm just trying to figure out the benefits of doing it the way you do, when you have to account for additional scenarios.  
> **username_4**: @LarryBud: That you don't have unpredictable oozing, and don't waste time heating and cooling the nozzle trying to use temperature to control oozing. It's necessary for working pause and resume anyway, and once you have that, it makes sense to do the same for stop/start print. It also lets you leave the nozzle at temp between prints for instant start of the next job.  
> **username_6**: I almost always have my nozzle and bed preheated either manually or because I just finished a previous print. This cooling to 150 while moving the print head around then waiting to heat up again is getting to be quite tedious with repeated prints! I would put up with oozing in return for getting prints going quicker.  

---

