Articles, Blog

Faster Hot End & Heated Bed warm-up in Cura

February 14, 2020

Have you ever noticed that if you slice
with Cura and 3D print something that first the heated bed heats up and then the
hot end and then it starts printing but with Prusaslicer they both heat up
together and start your print a lot faster so I wondered if there was a way
to do that in Cura turns out there is and I’ll show you how
to do it on today’s filament Friday filament Friday is brought to you by
these patreon supporters. to show this I’m just going to take my CHEP cube here
and cura 4.3 I’m going to use a creality ender 3 profile which comes with
the Cura software. I’m going to slice this at a magic 0.28 my
profile and it says 22 minutes so we’re gonna save this file and it’s a g-code
file so i’ll save it on my computer and now let’s print it. I’ll take that g-code
file put it on the SD card select it here and it’ll start to heat up and you
notice right away that there’s 50 degrees on the bed and it starts to heat
up but the hot end is at zero it’s not starting to heat up. this is the normal
process and this is because if I go look inside the g-code the Cura slicer
automatically generates this g-code highlighted in blue here based on the
temperature settings we had in a slicer. M140 heats the bed to s 50, 50 degrees
C and M 190 says wait until it’s done before moving on then it does M 104
which is heat the hot end to 205 and m109 wait until it’s done. so it does
this serially, that way it doesn’t pull too much power from the power supply. first
it heats the bed then it heats the hot end. but many printers can handle heating
both at the same time because they have enough power in their power supply so
the idea can we change the Cura slicer to make it not generate this code and
actually generate code that heats them both at the same time. let’s see if we
can do that if I go to settings>printers>manage printers back in Cura and look at
the standard profile we’ve been using machine settings there’s some start G
code and nowhere in this start G code, let me expand it here, nowhere here is there
temperature settings. there’s some acceleration at the top there’s a home
and then there’s a test strip that it’s going to print so
this is what they recommend for the start gcode but there’s nothing here it says
temperature. it turns out there’s a variable for both the bed temperature
and print temperature. if you use those which I’m gonna add them here for start
preheating and end preheating if you use those it will override those automatic
settings so now I’m going to come in here at the M 140 only I’m going to say
s instead of a number use their variable, material bed temperature and then I’m
also gonna start the hot end with an M 104 for the material print temperature
so these two lines will actually start the heated bed and the hot end at the
same time and then I’ll follow it up after it homes the device, it’s going to
M 190 which says wait until the bed is heated up and m109
wait until the hot end is heated up before moving on. so both of them have to reach their temperature before it’ll move on and then it goes and does a test
trip and everything like that so I’m gonna change the profile and make a new
profile with this in it and I called it CHEP Ender3 so I’m gonna go into
machine settings and they go down to the start G code and all I really did is copy
and pasted it here you can see that section is right around where that home
section was so you can see that is the M 140 when i’m 104 the g28 home and 109
and M 190 so now let’s use that profile the CHEP Ender 3. everything else
is the same I’m gonna slice the same CHEP cube and
save this to a file now let’s look at the g-code file. up here were generated
steam engine 4.3 there is no temperature setting so it goes right into our start g
code and so if i scroll further down you can see that that start preheating is
right here but instead of the variable it’s saying s 50 and s 205 which is
what I wanted. I want them to heat together at the same time and in both of
them wait until they’re done before moving on. so instead of auto-generating
it, it’s now using that code that was inside the start G code
so now let’s actually print this and see what happens. I’ll select the file we
just created and right away you may notice that the hot end shows 205
degrees C and the bed shows 50 degrees C so both of them have a set point and
both of them are heating up together and over time you’ll notice at least on my
machine that the hot end and the heated bed reached their set temperature at
about the same time so I’ve essentially cut my heat time in half and once
they’ve reached that point and a little beep and it starts printing. so there you
have it, add a little start g-code to your printer profile and you’re ready to go.
now I’ve only tested this on Ender three which has a small bed and a pretty good
size power supply. the CR 10 I haven’t but that’s got a bigger bed it draws a lot
more power and a rather small power supply so I’d be a little bit worried
about testing it on there, but the Ender 3 works great. now if you like that
little beep I’ll show you how I did that and added beeps to the end so it tells me
when the print is complete. let me show you how I do that.
if you’re curious where that little beep came from it’s right here in the startup
code M 300 s 1000 P 500 creates a little chirp to tell me that the print is
started and then it does the test strip so it’s something I added right there to
the startup code. here’s an example I also like to get a little notification
or beep when the print is done so I have a message here M 117 says print
completed and right after that it does three tones. the print completed message is really really quick so see if you can catch it in this example. both of these are either in the start
gCode or End Gcode. the single chirp for starting ofcourse is in the start g code
the end g code displays the print completed briefly and then the three chirps. so both
of these are in the G code also in the start G Code where I added the temperature
settings to control that, all done right within Cura. I hope it helps you
out I know it helped me. I use it all the time. In fact I have two G code files: a
text file for the start G code in a text file for the end code. I’ll link to them
in the description below. you can download them, open them and and copy and
paste it into your start G code and you’re ready to go. so if you like this
maybe check out some of the other videos that are popping up, if you want to help
support the channel patreon is one way or just by through the affiliate links
in the description below, it all helps a lot. and if nothing else click on a CHEP
logo and subscribe. and click the little bell that way you don’t miss an episode.
I’ll see you next time right here at filament Friday


  • Reply CHEP October 12, 2019 at 3:06 am

    I’ve updated the .txt files. No more hidden characters from my Mac.

  • Reply Abdullah Al-Dar October 13, 2019 at 1:29 pm

    I believe the reason for heating the bed then the nozzle is to lessen oozing not to slowly work out the power supply. Printing some CPE or exotic dilaments requires 90 or even 100+ C which could take a long time for large build plates. Some machines take 5 or more minutes to get to 100 and it would be bad for the nozzle to be at said temp for that long since it can cook certain materials and cause jams.

  • Reply Abdullah Al-Dar October 13, 2019 at 1:35 pm

    I loved that little beep at the end! Thanks for sharing this tip!!!

  • Reply Val Peterson October 13, 2019 at 1:43 pm

    I just got my first Creality machine Friday. The new Ender 5 Pro. I immediately incorporated your heating settings into all my profiles and it works great. Huge reduction in time to start the actual printing. Thanks, and keep up the good work.

  • Reply Eyal Siryon October 13, 2019 at 6:29 pm

    Hi Chuck. I really liked the idea and added the needed gcode as you show. from some reason, the cura adds its own lines before the lines added.
    you can see in the following. all the lines from ; generated with… until the M82 (included) are not shown in the start G-code area and added automatically.
    Any idea?
    ;Generated with Cura_SteamEngine 4.3.0

    M140 S50


    M190 S50

    M104 S205


    M109 S205

    M82 ;absolute extrusion mode

    M201 X500.00 Y500.00 Z100.00 E5000.00 ;Setup machine max acceleration

    M203 X500.00 Y500.00 Z10.00 E50.00 ;Setup machine max feedrate

    M204 P500.00 R1000.00 T500.00 ;Setup Print/Retract/Travel acceleration

    M205 X8.00 Y8.00 Z0.40 E5.00 ;Setup Jerk

    M220 S100 ;Reset Feedrate

    M221 S100 ;Reset Flowrate

    ;*** Start Preheating *

    M140 S50 ; start preheating the bed

    M104 S205 T0 ; start preheating hotend

    G28 ; home

    M190 S50 ; heat to bed setting in Cura and WAIT

    M109 S205 T0 ; heat hotend to setting in Cura and WAIT

    ;*** End Preheating *

  • Reply seventyfive1 October 13, 2019 at 10:06 pm

    I use a spring steel sheet so my bed level changes often if I bend the sheet to pop off the print. You can insert the G29 in the middle right after the G28 if you want to do bed leveling while you wait for the heating to finish.

  • Reply REDxFROG October 14, 2019 at 6:54 am

    Not recommended due to several reasons.

  • Reply n0maps October 14, 2019 at 7:34 am

    Thanks!. Why do you set the jerk and acceleration settings on your start code?

  • Reply Mark October 14, 2019 at 12:18 pm

    Awesome video, there's so many things we just accept as normal and don't question. I have ofton wondered why it takes so long but never thought to look into it… Thanks Chep

  • Reply Externet October 14, 2019 at 1:40 pm

    You should only do this if both heaters reach the temperature at the same time. Its not recommended if the bed takes a long time to heat. For example with ABS which has to reach ~100°c and that takes like 5-10 minutes or longer if you have no isulation. Its never a good idea to keep the nozzle "empty" (after the filament ozzed off) on high temperatures for too long in the first place. Since it may can burn small bits of plasic and could cause clogs in the future.

    I did this when i got my first printer with ABS. Bad idea. And i learned: Id rather wait 1 additional minute then spending hours unclogging my nozzle 🙂

    PS: This trick doesnt even matter when using exotic filaments like ABS, you still have to wait like 10 minues until the bed reaches the temperature. That one additional minute you have to wait until your nozzle reaches the temperature feels like a second then, trust me.

  • Reply Fred Banionis October 14, 2019 at 2:32 pm

    With that changes where I put my BL-Touch g-code line?

  • Reply Thug Lincoln October 14, 2019 at 4:15 pm

    if you put the "print completed" message after the tones, would the message stay on the screen?

  • Reply Timo Röschenthaler October 14, 2019 at 5:37 pm

    Hey Chuck. I added your start and end G-Codes to my Cura profile. Additionally I added "M109 R30 ;cool down hotend to 30 degrees and wait" after the beep, followed by the Turn-off fan command shifted to this position. I think this could be helpful to cool down the hotend with the help of the fan.

  • Reply Pierre LE COZ October 14, 2019 at 6:37 pm

    Thank you VERY VERY MUCH !

    Also added G29 (Auto Bed Leveling with BLTouch) after G28, so ABL is performed while heating

  • Reply Žan Pekošak October 14, 2019 at 9:56 pm

    I think its not as much of a problem with overloading the power supply but if you think about it, Cura was made for the Ultimaker. And the Ultimaker has a glass bed which takes a lkt longer to heat up than the hotend. That would result in the hotend reaching its temp and than basically cooking the filament inside for the time it takes for the bed to heat. And we all know what cooking the filament does in bowden setups 😆

  • Reply PK F October 15, 2019 at 12:44 pm

    Don't stop what you do … 🙂

  • Reply Dan Ko October 15, 2019 at 1:43 pm

    Thank you; this tip will prove very useful. I know that if I go into my Anycubic Mega temperature settings and manually set the hot end, I can heat both hot end and bed at the same time without blowing a fuse. This is what I have been doing before seeing this video.

    I can see why Cura would want to be conservative, but they should make it an option.

  • Reply Matt Helton October 15, 2019 at 2:57 pm

    Heating both at the same time = decent. Determining the rate of heating for both and applying some math so they end heating about the same time = pro. You've given me ideas! 😀

  • Reply Dave Kline October 15, 2019 at 3:19 pm

    Your startup Gcode would be better like below. I use a hotter temperature for my first layer on my Artillery X1 so it needs to use (first_layer_bed_temperature) and (first_layer_temperature) to use the initial layer temperature instead of the Default Printing temperature.

    ;*** Start Preheating *
    M140 S{first_layer_bed_temperature} ; start preheating the bed
    M104 S{first_layer_temperature} ?T0 ; start preheating hotend
    G28 ; home
    M190 S{first_layer_bed_temperature} ; heat to bed setting in Cura and WAIT
    M109 S{first_layer_temperature} ?T0 ; heat hotend to setting in Cura and WAIT
    ;*** End Preheating *

  • Reply Joe Perch October 15, 2019 at 3:46 pm

    I did not use the trick you used for Cura to automatically do this. But I have manually edited the Gcode to do this on my CR10S and it seems to work fine.

  • Reply GunPilot64 October 16, 2019 at 1:36 am

    Very nice tip. I applied it to my Ender 5 and it's working great.

  • Reply Dax Burnett October 16, 2019 at 1:54 am

    Is petg filament strong enough to be used to make 3d printer parts? to build a new printer??

  • Reply Joe M October 16, 2019 at 2:07 am

    Did u know if u do a preheat both the bed and hot end heat up together. I will be grabbing those text files thanx chep for sharing your knowledge with us.

  • Reply Phil Grant October 16, 2019 at 6:07 pm

    Thanks for the tip, a really good one.

  • Reply No Page October 16, 2019 at 6:50 pm

    For print and bed temperature, your start gcode should use {material_print_temperature_layer_0} and {material_bed_temperature_layer_0} to allow for the first layer temperature to be different than the rest of the print. Also, I read in the comments that you updated the txt file to remove the bad characters, the web snippets still have errors (guess which I tried to use…). Thanks for the great tip!

  • Reply Robert George October 16, 2019 at 8:06 pm

    Couldn't you just change the m190 code to say "m190 S1" or something low like that and be done?

  • Reply Joshua Parker October 16, 2019 at 9:30 pm

    Hey CHEP, I noticed in the video your print time for the cube was 22 minutes whereas mine, using the Magic0.20- 0.2mm profile was 37 minutes? any thoughts on why the discrepancy? Thanks! Your video help a lot!

  • Reply Thomas October 17, 2019 at 5:02 am

    is it compatible with the anycubic i3 mega?

  • Reply Chester Rayos October 17, 2019 at 5:15 am

    I was scanning the cura settings 4.3 and found that there is a printer setting after the experimental settings that you could do that easily now. and i remembered watching this video but now after checking it again it was gone. I must have done something to show those settings

  • Reply Markus Krause October 17, 2019 at 10:04 am

    Will this work with an skr 1.3? I am never quite sure how I can find out how much I can draw out of which output when. I mean it's not just what the power supply can deliver, but also what the board can stand right?

  • Reply Hardi Saputra October 17, 2019 at 8:38 pm

    Cool. I used to choose preheat ABS in prepare menu before printing because they heat up bed and hotend the same time

  • Reply Tyler Snider October 17, 2019 at 10:15 pm

    Thanks again Chep! I took the easy route and copied your start gcode into Cura. However I noticed with my slightly smaller glass bed the test / purge strip is further to the left and actually doesn't print on my bed. Just wondering if this working as intended or are my settings messed up? Before copying your code the purge was on my glass. I will go back and add your code changes to my original start. Im new Cura and 3d printing in general so if you could tell me what to look for in the start code that would be awesome! Really appreciate all the help you are to the community!

  • Reply Dave Scott October 17, 2019 at 10:52 pm

    Works like a champ Chep! Thanks and keep 'em coming.

  • Reply BBpatrick1291 October 18, 2019 at 5:37 am

    From what I remember reading the primary reason for heating the bed and the hotend separately in series instead of in parallel is more so that you're not cooking your filament in your hotend while waiting for your bed to head up. The hotend can warm up so much faster than the bed (at least in my printer) due to the differences in mass.

  • Reply Marcelo October 18, 2019 at 6:48 am

    Like if Cura 4.3 won't open in windows 10 🙁

  • Reply Jake Heuft October 18, 2019 at 7:56 am

    There might be a caveat worth mentioning here. I have a glass bed and personally I prefer to preheat the bed for longer than even the delay in the nozzle heatup allows for because the bed feedback temp is for the plate not necessarily the bed. Glass takes a bit longer to soak the heat into especially when started up cold. This may or may not actually be a problem, just my preference.

  • Reply Jacques Carvalho October 18, 2019 at 11:07 am


  • Reply Dennis Lubert October 18, 2019 at 1:17 pm

    Note that there is a couple of bad printers out there where the PSU isn't made to handle the power needed for both to heat up from cold, thus potentially reducing the PSUs lifetime. If you have an 8 hour print, saving these 5 minutes isn't really worth it.

  • Reply Chon Wang October 19, 2019 at 1:38 am

    Great Tip!! Thanks Much!

  • Reply Davey Schepens October 20, 2019 at 7:48 am

    Thank you for the great tips. I inserted the text in Cura and when it heats up my printer, it homes, does the bed leveling and start printing before hitting the desired temerature. I did insert the M190 and M109 codes. I have an ender 3 Pro. Does anyone know what might be the issue? Thanks in advance 🙂

  • Reply Jay Weston October 20, 2019 at 10:57 am

    Fantastic, worked liked a charm and speeds up the auto bed levelling too.

  • Reply Jabberie October 21, 2019 at 3:26 pm

    I allow my bed to heat first. And while my BLTouch is doing it's grid, start the hotend heating. That way there no chance of dragging any leaking filament around.

  • Reply Rafael Estevez October 22, 2019 at 1:29 am

    Thanks for the heat tips, I''ll try it soon. BTW I used the mario bros song for the end scripts, to make sure I heard it at night when the print is completed.😂

  • Reply Alejandro Zarantonello October 22, 2019 at 11:06 pm

    Hi CHEP!
    Instead of using the material_bed_temperature variable I use the material_bed_temperature_layer_0 variable if not the first layer temperature setting will not be used at all. I made this change on the Start G-Code and worked like a charm!

  • Reply Giacomo Ciani October 23, 2019 at 8:34 pm

    Great tip! But… for me it only works if I save on SD card. If I "print via USB" the heating sequence is as usual… is that supposed to be so?

  • Reply David Paul October 25, 2019 at 10:34 am

    I always preheat my Ender3 using the LCD option to preheat the hot end and bed at the same time.

  • Reply Delta Lima October 26, 2019 at 1:23 pm

    Thanks for all your Tips and Contributions Chad.

    My problem with the G-Code modifications is, however, that any modification is reset after I close Cura. Is there a way to make changes permanent without setting up a new printer in Cura Preferences?

  • Reply Misadventures in 3D printing. October 26, 2019 at 10:49 pm

    Why not jusy preheat the bed and hotend.

  • Reply Sangeeta Shah October 30, 2019 at 8:49 pm

    Thanks for your wonderful tutorials for beginners. Where do we add the end G-code?

  • Reply FJ November 4, 2019 at 9:57 am

    Hi CHEP. Could you indicate to me what initial g-code lines I need for introduce on Simplify 3D? I don't know why it doesn't work like Cura.

  • Reply tablatronix November 7, 2019 at 3:55 am

    I had to move the home to after preheat or else it homes and just sits there on my bed while heating up, the hotend should be raised up when preheating not close to the bed.

  • Reply Marc Landry November 15, 2019 at 7:12 pm

    Thanks CHEP! Works like a charm: Just Copy/Paste.

  • Reply CafeBikeGirl November 16, 2019 at 8:02 pm

    Most, if not all beds change shape when the initially heat up until the entire bed reaches a consistent temperature, that takes a little time after the thermistor indicates the set point has been reached, so it's probably better to leave the bed heating up first as it gives it some time to equalize while the hot end warms up.

  • Reply Mark Lawry November 26, 2019 at 1:06 pm

    Thanks. Your videos are really helpful

  • Reply Jonathan Viterise December 1, 2019 at 2:00 am

    Why not heat your machine while you're slicing. Then it's ready to print once you insert your SD card? Not sure why anyone wouldn't do it this way.

  • Reply blasko229 December 1, 2019 at 5:40 am

    This works on my Tevo Nereus, saves about a 1:30. Much better!

  • Reply Spartacusse December 1, 2019 at 2:50 pm

    If you go to "Preheat ABS/PLA" and immediately go to "Print from TF card", choose the model and confirm, it will heat both at the same time.

  • Reply Roy Schmidt December 4, 2019 at 7:48 pm

    I tried your g_code input for heating both bed and nozzle first now neither one heats. any ideas? thanks Roy rc

  • Reply Cutler Cycles December 11, 2019 at 12:39 am

    The power theory is bunk… The hotend and bed are always heated together during printing. They make it staggered so that you don't cook the filament in the hotend which can lead to heat creep and clogging. and since some hotbeds can take 15 mins or more to get up to a certain temp you definitely wouldn't want your filament sitting at 210 in the hotend for that long

  • Reply trohn_javolta December 15, 2019 at 8:33 am

    Putting this in start gcode doesn't work for me. I also noticed different variables used in the video vs the files on your homepage. Do i need to remove other start gcode in addition to make this work? What happens when I hit print is that the bed heats up….that's it. nothing more happens. No hot end heating = no printing.

  • Reply todd coello December 18, 2019 at 11:33 pm

    this G-Code you did I can confirm works on my Ender 3 and my Geeetech A20M. for start and finish for heating and beeps.

  • Reply josef gstoettner December 23, 2019 at 2:24 pm

    Awesome tip, thank you! I was always wondering if it were possible to heat up at the same time.
    Another Question, how could you view the G-Code?

  • Reply mlee6050 December 25, 2019 at 9:33 am

    “First heated bed heats up and then hot end” how? My one does hot end first

  • Reply Stan Cook December 27, 2019 at 2:55 am

    Chick, I have been trying to find out how to make them both heat at the same time and eventually, I came upon your video. On my Ender 3 the Gcode looks very different from what the Youtube video show so I am hesitant to try it. Correct? Example Cure 4.4 shows M204 and your change show M104s. Just change the numbers?

  • Reply Benny Andén January 1, 2020 at 10:49 am

    Hello CHEP!
    You make very nice videos, thank you!
    I did just order E3dp and looking at Your videos during waiting.
    I wonder if there is not an built in overload protection on the PWR supply? In that case it is not, could it be mede with an external fuse?

  • Reply Fawzi Osta January 9, 2020 at 1:22 pm

    I have cr10 and cura 4.4 but not work with me

  • Reply JupTuber January 14, 2020 at 3:38 pm


  • Reply Dan January 16, 2020 at 8:08 pm

    Thanks!!! I print through USB with my Ender 3 Pro and always click preheat manually for each so it's faster.

  • Reply Navi January 20, 2020 at 10:05 am

    Just recently started 3d printing. I always assumed there's a good reason for this. Have you noticed any downsides to doing this? Maybe shorter PSU life, higher power usage or something?

  • Reply Ron B January 23, 2020 at 5:52 am

    I use a separate heat bed and it is hot all the time, I keep it pretty hot, 65c to 70c but I have a 1/4 aluminum tool flat bed, I use a mirror, stick glue and I have no problem with parts not sticking, unless the bed is not leveled correctly, love it! I have a CR10 self upgraded to CR10s.

  • Reply Iavor Hristov January 26, 2020 at 9:27 am

    Doesn't seem to quite work on Anycubic I3 mega with Cura 4.0.0

  • Reply Lude Nation January 27, 2020 at 10:49 pm

    How are you viewing the code from cura like that?

  • Reply BlindDude February 1, 2020 at 5:01 pm

    I always just turn on my printer then preheat pla.. this heats both up at the same time. Then when it's warmed up just print file.

  • Reply pedro gardin February 2, 2020 at 8:00 pm

    is that possibel that the g code not cane be copie paste in g code ender 3 pro i try he don't wond to do it.

  • Reply Dave Napox February 3, 2020 at 5:18 pm

    I just use the prepare menu on the endear 3 Pro, select the preheat both and then select print from card and the item. It preheats both at once and then starts printing as son as its done.

  • Reply andrewforte February 3, 2020 at 6:04 pm

    I have been using Octoprint to preheat my CR-10S. The extruder heats up a lot faster than the bed. So usually I start the pre-heat, then submit the job. As soon as the bed reaches temp, it starts printing.

    Printer settings:
    Firmware Marlin 1.9
    Cura 4.4.1
    Profiles, modified Magic .20 and .28
    modified: temps, infills and supports depending on the print job.
    Extruder 205 initial layer, 200 after that
    Bed 65 initial layer, 60 after that.
    Stock glass bed, sometimes add glue for difficult filaments.

  • Reply Sam Song February 5, 2020 at 2:20 pm

    2020 and you are great it's working thanks for share man

  • Reply pedro gardin February 8, 2020 at 4:39 pm

    i used the code in mine ender 3 pro it works perfect but is it not possibel to heat faster the bed if you start normal the bed heated 2a3degrees a time with the code is that 1°c, so if i used the code the nozzle stays 4/5 min faster hot thane the bed i print abs 110°c bed and 245°c nozzle.

  • Leave a Reply