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.
- 1
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.
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!
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}".
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?
Cura looks for neither M109 or M104, it looks for the text {material_print_temperature} (including curly braces)
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 ChrisPrefect6 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.
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!
And in case you are wondering if there are more variables, there are (lots of them):
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
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.
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 😎
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.
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
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
Small point - do you want to use "print temp" or first layer temp?
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
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.
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} ;
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?
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.
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):
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?
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
Recommended Posts
Aemeth 0
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