Jump to content
Ultimaker Community of 3D Printing Experts
3DStyle

Auto Bed Leveling while Nozzle & Bed Heats Up

Recommended Posts

Hi folks,

 

I'm trying to edit my start G-Code so while my printer is heating the nozzle and/or the heatbed, it will also perform auto bed leveling simultaneously.

 

I was thinking about implementing it as the following: 

IF PRINT JOB USES HEATBED - then the printer will first heat up the bed, then wait for it to reach its desired temperature

Once the bed is heated, it will proceed to auto bed leveling + heating up the nozzle. 

 

IF PRINT JOB DOESN'T USE HEATBED - the printer will heat up the nozzle + auto bed level at the same time.

 

I used the following G-Code: 

G21 ;metric values
G90 ;absolute positioning
M82 ;set extruder to absolute mode
M107 ;Turn layer fan OFF

M140 S[bed0_temperature] ;set bed temperature
G28 ;home all axis
M190 S[bed0_temperature] ;wait for bed temperature

M104 [extruder0_temperature] ;set extruder temperature
G29 ;auto bed leveling
M109 S[extruder0_temperature] ;wait for hotend temperature

However, it didn't work.

When I start a print job, the printer will first heat up the nozzle or the heatbed, and then will procced to G28 and then G29.

 

Am I doing something wrong? Will Cura even allow to heat nozzle and auto bed level at the same time?

By the way, my printer is running with the latest Marlin 1.1.9 version. BLTouch probe leveling is enabled. 

 

 

Thanks for any help guys.

Edited by 3DStyle
typo

Share this post


Link to post
Share on other sites

Hi

I am not really sure if this is your problem, but as far as I know, the leveling of the bed comes from the firmware itself (if you use an Ultimaker). So if you want to do it on your own, you have to switch the g-code flavor in Cura to ??? (I think Marlin).

 

Edited by Smithy

Share this post


Link to post
Share on other sites

I meant, that the Ultimaker printers do the bed leveling on their own before a print, regardless what you set in your g-code. (will maybe ignored) And as far as I know, you can override this behavior when setting the g-code flavor to Marlin.

 

But I am not an expert, just give some advise what I have read in the past. And if you already set it to Marlin, it will be probably something else.

  • Like 1

Share this post


Link to post
Share on other sites
12 hours ago, 3DStyle said:

Am I doing something wrong?

 

I think so...? It looks like a start script for Simplify3D, not for Cura?

Have you inspected the generated gcode?

 

The variable names are different for Cura and curly brackets are used:

 

; for example:
;
M190 S{material_bed_temperature_layer_0}
;
M109 T0 S{material_standby_temperature, 0}
;
M104 T0 S{material_print_temperature_layer_0, 0}
;

AFAIK all variable names that are defined in "fdmprinter.def.json" can be used.

 

  • Like 1

Share this post


Link to post
Share on other sites
10 hours ago, tinkergnome said:

 

I think so...? It looks like a start script for Simplify3D, not for Cura?


; for example:
;
M190 S{material_bed_temperature_layer_0}
;
M109 T0 S{material_standby_temperature, 0}
;
M104 T0 S{material_print_temperature_layer_0, 0}
;

 

 

You were right! I took those lines from a Simplify3D forum, now I understand why it didn't work out.

 

Anyways, I used M140 S{material_bed_temperature_layer_0} and M190 S{material_bed_temperature_layer_0} and it

works - when I start a print job that includes a build plate temperature, the bed is heating and once it's done - printer starts to initialize a G29 command. While the printer is auto bed leveling, I want the extruder to heat up, and let the machine wait until the extruder reached its temperature before starting to print.

 

Since my extruder is on E1, I used M104 T1 S{material_print_temperature, 1} and M109 T1 S{material_print_temperature, 1}.

Unfortunately, the extruder is not heating up. The printer starts to print and the extruder is cold. Do you know why?

 

Here's how my G-Code looks like now:

G21 ;metric values
G90 ;absolute positioning
M82 ;set extruder to absolute mode
M107 ;Turn layer fan OFF

M140 S{material_bed_temperature_layer_0} ;set bed temperature
G28 ;home all axis
M190 S{material_bed_temperature_layer_0} ;wait for bed temperature

M104 T1 S{material_print_temperature, 1} ; set hotend temperature
G29 ;auto bed leveling
M109 T1 S{material_print_temperature, 1} ;wait for hotend temperature

 

Edited by 3DStyle

Share this post


Link to post
Share on other sites

I was able to make it to work! This is how the G-Code looks now:

M140 S{material_bed_temperature} ;set bed temperature
G28 ;home all axis
M190 S{material_bed_temperature} ;wait for bed temperature

M104 T0 S{material_print_temperature} ;set hotend temperature
G29 ;auto bed leveling
M109 T0 S{material_print_temperature} ;wait for hotend temperature

Now my prints are more "productive" - instead of waiting for the nozzle and/or the bed to heat up, then home XYZ, then start to auto bed leveling; now it first heats up the bed (if it set to do it), in the same time it homes XYZ, and wait for the bed's target temperature. 

When the bed reaches to its temperatures, the printer will proceed to heat the nozzle and while the nozzle heats up, auto bed leveling is being executed. When the heating is all done, print starts. 

  • Like 1

Share this post


Link to post
Share on other sites

I do something similar with my start code, but my bed temperature heat up takes the  longest time, start the head heating at the same time too, but I don't M190 until after all the levelling, and then park & wait at a wait point. I also use the Cura standby temperature setting to partially heat up the nozzle, before going to the higher print temperature at the wait point, as too much heat here can damage the LokBuild on probing with my printhead nozzle. Cuts my preheat time and start to print time down too, so win win for me. ?

 

Share this post


Link to post
Share on other sites

Here's what I've got for a Prusa i3 Mk3 (edited down to show warmups only). I raise the nozzle for inspection and bed cleaning, then set the nozzle up to a no-ooze temp and set the bed to a warming temp for the PINDA leveling probe . This has the side benefit of waiting to cool down to this temp if the nozzle is hot, which is good for the Prusa PINDA probe. I then drop the nozzle near the bed center for warming the PINDA probe (consistent temp yields consistent results). Once it's warmed, I re-home, set final bed and nozzle temps, wait for them to warm up, then print the prime line and go.

; Last updated 20180910
M104 S140 ; Set nozzle no-ooze warmup temp
M140 S65 ; set bed PINDA warmup temp
G28 W ; home all without mesh bed level
G0 X0 Y200 Z100.0 F1000 ; raise nozzle and present bed for cleaning
M109 ; wait for extruder no-ooze warmup temp before mesh bed leveling, cool hot PINDA
G0 X125 Y105 Z0.10 F1000; PINDA warming position
M190 S65 ; wait for bed PINDA warmup temp
M860 S35 ; wait for PINDA temp to stabilize
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
M140 S{material_bed_temperature_layer_0} ; set bed final temp
M104 S{material_print_temperature_layer_0} ; set extruder final temp
M109 S{material_print_temperature_layer_0} ; wait for extruder final temp
M190 S{material_bed_temperature_layer_0} ; wait for bed final temp
; Print prime line
G92 E0.0 ; reset extrusion distance
G1 Y-3.0 F1000.0 ; go outside print area
G1 X20.0 E6 F1000.0 ; 20mm intro line @ 0.30
G1 X60.0 E3.2 F1000.0 ; +40mm intro line @ 0.08
G1 X100.0 E6 F1000.0 ; +40mm intro line @ 0.15
G1 E-1.0 F900; retract to avoid string
G1 X95.0 E0 F1000.0 ; -5mm intro line @ 0.00
G1 X106.0 E0 F1000.0 ; +6mm intro line @ 0.00
G92 E0.0 ; reset extrusion distance
M82 ; absolute extrusion mode

 

Share this post


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

  • Our picks

    • Introducing Ultimaker Cura 3.6 | Beta
      Ultimaker Cura 3.6 | Beta is available. It comes with new features, bug fixes, and UX improvements. We would really like to have your feedback on it to make our stable release as good as it can be. As always, you can download the beta for free from our website, for Windows, MacOS, and Linux.
        • Like
      • 75 replies
    • Print Core CC | Red for Ruby
      Q: For some users, abrasive materials may be a new subject matter. Can you explain what it is that makes a material abrasive when you are not sure which print core to use?
      A: Materials which are hard in a solid piece (like metals, ceramics and carbon fibers) will generally also wear down the nozzle. In general one should assume...
        • Like
      • 26 replies
    • "Back To The Future" using Generative Design & Investment Casting
      Designing for light-weight parts is becoming more important, and I’m a firm believer in the need to produce lighter weight, less over-engineered parts for the future. This is for sustainability reasons because we need to be using less raw materials and, in things like transportation, it impacts the energy usage of the product during it’s service life.
        • Like
      • 12 replies
×

Important Information

Welcome to the Ultimaker Community of 3D printing experts. Visit the following links to read more about our Terms of Use or our Privacy Policy. Thank you!