Jump to content
Ultimaker Community of 3D Printing Experts

Start heating bed and extruder and level bed at the same time


ChrisPrefect
 Share

Recommended Posts

Posted (edited) · Start heating bed and extruder and level bed at the same time

Hi!

 

I tried to add some gcode to the start gcode section in cura, but apparently that code only gets executed well after the bed and the extruder has reached it's temperatures.

I want to start heating the bed and the extruder at the same time, without waiting for one to reach it's temperature. There is enough power in the power supply to do so. And I want to simultaneously start leveling the bed with the BLTouch sensor.

 

These three gcodes can run at the same time. Why can't I set that in the start gcode section?

 

Thanks!

Edited by ChrisPrefect
  • Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    I have noticed the same problem. I thought it was made this way due to the fact that it takes much more time to heat the bed than the extruder and if started at one time the nozzle will stand hot and ooze.

  • Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    For an Ultimaker? There is just enough power to do so, but due to tolerances, it can happen that there is not enough power available (thus causing a shutdown). There is of course also the issue of oozing, but this can be fixed with a prime pruge.

    • Like 1
    Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    It's for an Ender 3 with 24V power supply. There is more than enough power. I frequently manually heat up the bed and nozzle at the same time.

    Ideally the nozzle and bed would heat up at the same time and as soon as the nozzle reaches 185 degrees it would retract 20mm. And the Bed-Leveling would start immediately while heating the bed and nozzle.

    How can I set this up? Why does Cura execute "hidden" gcode before the manually entered gcode in the start section? Can I override this in a settings file from Cura or something?

    Thanks!

  • Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    CuraEngine adds its "hidden" gcode (as you call it) heating up your bed and nozzle because Cura does not see you adding your own.

     

    As soon as you add the string "{material_print_temperature}" somewhere in your start gcode, Cura will know it does not have to add it by itself. Same with "{material_bed_temperature}".

    • Like 4
    Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    OK nice! I tried it with this start gcode but it does not work. Cura first heats the bed, then the nozzle and then executes this code, overwriting the temperatures set in the slicer settings. It should be the other way around. Cura should set the temperatures from the slicer settings after the start gcode was executed.

    M140 S60 ; start heating the bed to 60 degrees Celsius
    M104 S200 T0 ; start heating T0 to 200 degrees Celsius
    
    M280 P0 S160 ; BLTouch alarm release
    
    G4 P100 ; delay for BLTouch
    G28 ; home
    G29 ; auto bed leveling


    Does Cura only look for the code M109 or should M104 also work?

  • Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    Cura looks for neither M109 or M104, it looks for the text {material_print_temperature} (including curly braces)

    • Like 2
    Link to post
    Share on other sites

    Posted (edited) · Start heating bed and extruder and level bed at the same time

    Oh now I get it.

    OK but even if I add "{material_print_temperature}", will cura still set the temperatures for the initial layer and the following layers etc?

    So this should be in my start gcode section:

     

    {material_print_temperature}
    {material_bed_temperature}
    
    M140 S60 ; start heating the bed to 60 degrees Celsius
    M104 S200 T0 ; start heating T0 to 200 degrees Celsius
    
    M280 P0 S160 ; BLTouch alarm release
    
    G4 P100 ; delay for BLTouch
    G28 ; home
    G29 ; auto bed leveling

    And then Cura continues to heat to the set temperatures in the slicer, for example 215 degrees?

    Edited by ChrisPrefect
    • Like 1
    Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time
    6 minutes ago, ChrisPrefect said:

    Oh now I get it.

    No, not quite.

     

    M280 P0 S160 ; BLTouch alarm release
    
    G4 P100 ; delay for BLTouch
    G28 ; home
    G29 ; auto bed leveling
    
    M140 S{material_bed_temperature} ; start heating the bed to what is set in Cura
    M104 S{material_print_temperature} T0 ; start heating T0 to what is set in Cura

    Feel free to change the order, but the idea is that the {material_bed_temperature} (as is, including curly brackets) gets replaced by Cura.

    • Like 3
    Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    Ah! Those are variables! OK makes much more sense! Then the exact required temperatures are set automatically.

    OK I will have to add "M109 S{material_print_temperature}"  at the end so the printer waits to actually reach the temperature if it takes longer than the bed leveling requires.

    I will try. Thanks a lot!

  • Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    And in case you are wondering if there are more variables, there are (lots of them):

    http://files.fieldofview.com/cura/Replacement_Patterns.html

    • Like 4
    Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    It works perfectly! Thanks a lot! 😄

     

    The printer used 249 Watts while heating the bed, nozzle and doing the bed leveling at the same time.

     

    Bed leveling with the BLTouch and 9 points is finished before the nozzle has heated up completely, so I don't loose any time for bed leveling anymore.

     

    This is my whole start gcode for reference:

    
    M140 S{material_bed_temperature} ; start preheating the bed WITHOUT wait to what is set in Cura
    M104 S{material_print_temperature} T0 ; start preheating hotend WITHOUT wait to what is set in Cura
    
    M280 P0 S160 ; BLTouch alarm release
    G4 P100 ; delay for BLTouch
    G28 ; home
    G29 ; auto bed leveling
    
    M190 S{material_bed_temperature} ; start heating the bed to what is set in Cura and WAIT
    M109 S{material_print_temperature} T0 ; start heating hotend to what is set in Cura and WAIT
    
    G92 E0 ; Reset Extruder
    ; M92 E97 ; esteps hard set
    G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
    G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
    G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line
    G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little
    G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line
    G92 E0 ; Reset Extruder
    G1 E-2 F1800 ;retract 2mm at 30mm/s
    G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
    G1 E1.8 F1800 ;retract 2mm at 30mm/s

     

    • Thanks 1
    Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    Let me just give you one last reason not to do leveling and heating things up at the same time. Things expand when they get hotter. Not by an enormous lot, but they expand anyway. The nozzle will likely be slightly taller when hot, and your bed will probably warp ever so slightly differently when it is hot compared to when it is cold. If the top-left of your leveling procedure is done with a cold extruder and bed, and the bottom-right with a hot extruder, your leveling data will be skewed.

     

    The distortion may be smaller than the precision of your printer, or the convenience of a faster print start may outweigh the imprecision. This is up to you to decide.

    • Like 1
    Link to post
    Share on other sites

    Posted (edited) · Start heating bed and extruder and level bed at the same time

    I did some tests with bed leveling before, during and after I heated the bed and nozzle and the differences where inside the margin of error that the bltouch produces even when I do two measurements right after each other when the bed is cold.

    I have a glass bed, I think the thermal expansion coefficient of glass is fairly small.

    I did a calculation: A glass bed of 5mm thickness would expand to 5.0012mm when heated from 20C to 60C 😎

    Edited by ChrisPrefect
    • Like 2
    Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    I would not worry about the thickness of the glass, but warping of the glass and the (alu) part that holds the glass. But since you tested and meassured, I guess you know what works for your printer.

  • Link to post
    Share on other sites

    Posted (edited) · Start heating bed and extruder and level bed at the same time
    On 1/29/2019 at 3:23 PM, ahoeben said:

    M140 S{material_bed_temperature} ; start heating the bed to what is set in Cura

    M104 S{material_print_temperature} T0 ; start heating T0 to what is set in Cura

     

    I found this entry through a net search and it should answer my question and does, except that after adding them my printer begins warming and printing immediately, no wait for warm-up. Do these entries need to be in a specific place? I put them at the beginning! Here's my start Gcode entries:

     

    M140 S{material_bed_temperature} ; start heating the bed to what is set in Cura

    M104 S{material_print_temperature} T0 ; start heating T0 to what is set in Cura

    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

     

    G28 ;Home

     

    G92 E0 ;Reset Extruder

    G1 Z2.0 F3000 ;Move Z Axis up

    G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position

    G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line

    G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little

    G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line

    G92 E0 ;Reset Extruder

    G1 Z2.0 F3000 ;Move Z Axis up

     

     

    Edited by Big_O
  • Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time
    58 minutes ago, Big_O said:

     

    I found this entry through a net search and it should answer my question and does, except that after adding them my printer begins warming and printing immediately, no wait for warm-up. Do these entries need to be in a specific place? I put them at the beginning! Here's my start Gcode entries:

     

    M140 S{material_bed_temperature} ; start heating the bed to what is set in Cura

    M104 S{material_print_temperature} T0 ; start heating T0 to what is set in Cura

    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

     

    G28 ;Home

     

    G92 E0 ;Reset Extruder

    G1 Z2.0 F3000 ;Move Z Axis up

    G1 X10.1 Y20 Z0.28 F5000.0 ;Move to start position

    G1 X10.1 Y200.0 Z0.28 F1500.0 E15 ;Draw the first line

    G1 X10.4 Y200.0 Z0.28 F5000.0 ;Move to side a little

    G1 X10.4 Y20 Z0.28 F1500.0 E30 ;Draw the second line

    G92 E0 ;Reset Extruder

    G1 Z2.0 F3000 ;Move Z Axis up

     

     

     

    put these 2 lines just after the G28

    M190 S{material_bed_temperature} ; start heating the bed to what is set in Cura and WAIT
    M109 S{material_print_temperature} T0 ; start heating hotend to what is set in Cura and WAIT
    
    • Like 1
    Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    Small point - do you want to use "print temp" or first layer temp?

  • Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    I have a Sovol SV01 running vanilla Marlin 2 and I found that the "fix" above didn't work, the printer still waited for the bed to reach temp. This worked placed immeadiatly after the G28

     

    M104 S{material_print_temperature} ; start heating but don't wait

    M190 S{material_bed_temperature} ; start heating the bed to what is

     

     

     

     

  • Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    To be clear - you put the M104 and the M140 before the G28?  it looks like you put the M190 before the G28 and of course that won't work.

     

    The two gcodes with the "4" in them get things started but keep running to the next command (e.g. G28 - home).  The codes with the "9" in them should be after the G28.  They tell the printer to not proceed to the next gcode until they are completely done.

     

    If you did it right (put the "4" commands before the G28 and the "9" commands after) then it's something about your printer's firmware and you should talk to people with the same printer.

  • Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    i really like this post and wanted to try to let the hotend and bed heat up at the same time, but with those lines above i can't get that to work. i tried different order and with and without _wait but even when is set the nozzle first and then the bed with wait like below, the printr still heats the bed first and wait with heating the nozzle.

    i just want them to heat together. 

    and if we want to make it really good, only pre-heat the nozzle to for example 180 degrees

    or set a time delay for the nozzle heat up before they heat together, so they reach goal temperatures approx. at the same time.

    that would be great, anyone knows if any of this is possible?

    M104 S{material_print_temperature} T0 ;
    M140 S{material_bed_temperature_wait} ;
    
  • Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    is there by the way a way to see all the code that is excecuted by cura (that we can't see) before the start gcode?

  • Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time
    2 hours ago, JazekerXX said:

    M140 S{material_bed_temperature_wait}

    Where did you get the "_wait" from? It is incorrect. Use this instead:

    M140 S{material_bed_temperature}

     

    2 hours ago, JazekerXX said:

    is there by the way a way to see all the code that is excecuted by cura

    I'm guessing you mean the Gcode? You can save the generated gcode to a file on your disk instead of sending it to the printer directly, and then inspect that file in a texteditor such as notepad.

    • Like 1
    Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

     

     

    hi Ahoeben, thx for your reply!

     

    23 hours ago, ahoeben said:

    Where did you get the "_wait" from? It is incorrect. Use this instead:

     

    i got it from the link you gave higher in this thread: 

    On 1/29/2019 at 3:27 PM, ahoeben said:

    And in case you are wondering if there are more variables, there are (lots of them):

    http://files.fieldofview.com/cura/Replacement_Patterns.html

     

    i must say with the _wait it waits untill the temperature is reached, without it it sets the temperature and does a g28 immediate (while still cold)

     

    23 hours ago, ahoeben said:

    I'm guessing you mean the Gcode? You can save the generated gcode to a file on your disk instead of sending it to the printer directly, and then inspect that file in a texteditor such as notepad.

     

    you are absolutely right, that's so stupid of me, haha. thx

     

    any idea if it's possible to let them heat together?

  • Link to post
    Share on other sites

    Posted · Start heating bed and extruder and level bed at the same time

    FYI this is what cura sends before the start gcode:

    ;FLAVOR:Marlin
    ;TIME:271
    ;Filament used: 0.300314m
    ;Layer height: 0.3
    ;MINX:64.694
    ;MINY:55.895
    ;MINZ:0.3
    ;MAXX:175.983
    ;MAXY:177.194
    ;MAXZ:0.3
    ;Generated with Cura_SteamEngine 4.8.0
    M140 S70
    M105
    M190 S70
    M104 S245
    M105
    M109 S245
    M82 ;absolute extrusion mode
    ; Ender 3 Custom Start G-code
    G92 E0 ; Reset Extruder
    G28 ; Home all axes

     

    i checked the meaning of the gcodes on https://marlinfw.org/meta/gcode/

     

    M140 - Set Bed Temperature

    M105 - Report Temperatures

    M190 - Wait for Bed Temperature

    M104 - Set Hotend Temperature

    M105 - Report Temperatures

    M109 - Wait for Hotend Temperature

     

    i see now that M109 and M190 is used for the wait command.

    so i think it should be something like this:

    M140 S{material_bed_temperature}

    M104 S180 ;pre-heat to 180C

    M105 ;not shure if this is necessary

    M190 S{material_bed_temperature}

    M109 S{material_print_temperature}

    M82

  • Link to post
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now
     Share

    • Our picks

      • New here? Get ahead with a free onboarding course
        Hi,
         
        Often getting started is the most difficult part of any process. A good start sets you up for success and saves you time and energy that could be spent elsewhere. That is why we have a onboarding course ready for
        Ultimaker S5 Pro Bundle, Ultimaker S5, Ultimaker S3 Ultimaker 2+ Connect.   
        They're ready for you on the Ultimaker Academy platform. All you need to do to gain access is to register your product to gain free access. 
        Ready? Register your product here in just 60 seconds.
          • Like
        • 11 replies
    ×
    ×
    • Create New...