[Bug]? Bed not Cooling Before Leveling  

  RSS
kraemerjacob
(@kraemerjacob)
New Member

I'm not 100% sure this is the proper place to submit this potential bug so it can be moved/deleted if it's wrong.

I do a lot of PETG and PLA print and often swap between the 2. When unloading PETG, the presets will warm the bed up to 85C, and then I will autoload the PLA since I want to load it at the elevated PETG temps. The printer will stay at those elevated temps until I start my PLA print. The firmware will wait for the appropriate hotend temp to drop to my slicer's settings, but it doesn't for the bed. The gcode will run through the mesh bed leveling with the bed still at ~80C since it's only cooled a little naturally. Wouldn't this throw the mesh off since it's probing at 80C and I'm printing at 50-60C? Shouldn't the firmware also wait for the bed the reach an acceptable range like it does for the hotend?

 

Prusa i3 mk3

Firmware 3.9.1-3518

Prusa Slicer 2.2.0

Best Answer by Neophyl:

I think you are missing the point of the temperature sensitivity of the pinda probe.  Its not to compensate for the temperature during probing.  But to compensate for runs at different temperatures.

If your pinda probe is at say 20 degrees C when you probe it will detect the metal sheet at distance X.  If its at 35 degrees it will detect the steel sheet at distance Y.  So for example you do an initial print and calibrate your live Z for that so that you get a perfect  first layer with all the lines nicely squished together.  Then you start a second print, at which point the probe is warmer as it has been moving about above a nice warm bed and next to a hot extruder.  Now when you mesh level at the start of this second print the starting distance between probe and bed is different, so the distance between nozzle and bed is also different.  This can lead to having a not great layer 1, so potentially it could loose adhesion etc.

If you are in a climate controlled space with nice consistent temperatures in your print room then yes there may be no need as the differences will be minimal.  However for 'normal' rooms it can make a difference. 

Doing it that way also has a nice secondary effect.  Using the bed heater to get the pinda probe to a known temperature means that the bed warms up for awhile before proceeding, this gives the heat time to soak through and warm up properly towards the outer edges more.  

As for changing the gcode to use R, as I pointed out the MK3 firmware does not support that, only the S version so you can not use it.

Posted : 16/10/2020 2:22 pm
Neophyl
(@neophyl)
Noble Member

The behavior is controlled by the printers firmware reacting to whatever gcode you have in your printers Start gcode block in the slicer you are using.  If you go to Printer Settings > Custom G-Code (must be in Expert Mode for it to be visible) then there will be a section called Start G-Code.  This contains the start commands that are run before it starts with the actual print commands.

The command used for heating the bed is M190 S[first_layer_bed_temperature] ; wait for bed temp,  but the S prefix indicates that it only waits in the heating direction, it will not wait for it to cool to that temperature if it is hotter.  For that it should be -

M190 R[first_layer_bed_temperature] ; wait for bed temp, the R prefix means wait until the specific temperature is reached on either heating or cooling.  Unfortunately the Mk3/s firmware does not support the R option (unless they have implemented it recently).

I wouldn't worry though.  Many of us use a modified startup routine that positions the pinda probe above the middle of the bed, heats the bed up to around 75 degrees and then waits for the PINDA probe temperature to reach a set stable value (around 35) before it goes on and does mesh leveling.  As the PINDA is temperature sensitive this helps the first layer/mesh probing to be more consistent.  After its probed (which is at 75 anyway) then it goes on and prints. 
I use this all the time for printing PLA so the bed is cooling from 75 to 55 for my prints and it makes no difference.  The important bit is to make sure the PINDA is at the same temperature before mesh leveling.  A 15-20 degrees difference at  these temps doesn't seem to make a jot of difference.

If you want details about the pinda warmup process then have a look at Bob's website here http://projects.ttlexceeded.com/3dprinting_mk3_pinda_warmup.html   
lots of handy tips and notes he has collected there.

 

Posted : 16/10/2020 3:26 pm
karl-herbert
(@karl-herbert)
Famed Member
Posted by: @kraemerjacob

I'm not 100% sure this is the proper place to submit this potential bug so it can be moved/deleted if it's wrong.

I do a lot of PETG and PLA print and often swap between the 2. When unloading PETG, the presets will warm the bed up to 85C, and then I will autoload the PLA since I want to load it at the elevated PETG temps. The printer will stay at those elevated temps until I start my PLA print. The firmware will wait for the appropriate hotend temp to drop to my slicer's settings, but it doesn't for the bed. The gcode will run through the mesh bed leveling with the bed still at ~80C since it's only cooled a little naturally. Wouldn't this throw the mesh off since it's probing at 80C and I'm printing at 50-60C? Shouldn't the firmware also wait for the bed the reach an acceptable range like it does for the hotend?

 

Prusa i3 mk3

Firmware 3.9.1-3518

Prusa Slicer 2.2.0

What does your gcode startcode in PrusaSlicer look like. With M190 R60 for example, the system waits until the bed has cooled down to 60 degrees C.

https://marlinfw.org/docs/gcode/M190.html

Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen....
Posted : 16/10/2020 3:29 pm
karl-herbert
(@karl-herbert)
Famed Member

sorry, the post has overlapped with the previous one from @neophyl.

 
Statt zu klagen, dass wir nicht alles haben, was wir wollen, sollten wir lieber dankbar sein, dass wir nicht alles bekommen, was wir verdienen....
Posted : 16/10/2020 3:32 pm
kraemerjacob
(@kraemerjacob)
New Member
Posted by: @neophyl

The behavior is controlled by the printers firmware reacting to whatever gcode you have in your printers Start gcode block in the slicer you are using.  If you go to Printer Settings > Custom G-Code (must be in Expert Mode for it to be visible) then there will be a section called Start G-Code.  This contains the start commands that are run before it starts with the actual print commands.

The command used for heating the bed is M190 S[first_layer_bed_temperature] ; wait for bed temp,  but the S prefix indicates that it only waits in the heating direction, it will not wait for it to cool to that temperature if it is hotter.  For that it should be -

M190 R[first_layer_bed_temperature] ; wait for bed temp, the R prefix means wait until the specific temperature is reached on either heating or cooling.  Unfortunately the Mk3/s firmware does not support the R option (unless they have implemented it recently).

I wouldn't worry though.  Many of us use a modified startup routine that positions the pinda probe above the middle of the bed, heats the bed up to around 75 degrees and then waits for the PINDA probe temperature to reach a set stable value (around 35) before it goes on and does mesh leveling.  As the PINDA is temperature sensitive this helps the first layer/mesh probing to be more consistent.  After its probed (which is at 75 anyway) then it goes on and prints. 
I use this all the time for printing PLA so the bed is cooling from 75 to 55 for my prints and it makes no difference.  The important bit is to make sure the PINDA is at the same temperature before mesh leveling.  A 15-20 degrees difference at  these temps doesn't seem to make a jot of difference.

If you want details about the pinda warmup process then have a look at Bob's website here http://projects.ttlexceeded.com/3dprinting_mk3_pinda_warmup.html   
lots of handy tips and notes he has collected there.

 

Interesting. Isn't the temperature sensitivity of the PINDA used to react to a large variation of ambient temps between prints? So probing in 20C ambient temp will get different values then probing at 40C ambient with the same bed temp. I guess I don't see the benefit of heating the PINDA since the probing process only takes 15 seconds, and I wouldn't think the PINDA will fluctuate significantly during that time. The probe will be (roughly) the same temp throughout the probing process and will only need to deviate if the ambient temp changes, for example printing the same print in a warm enclosure vs colder one. Maybe it heats up quicker than I think and I should implement a probe heating step in my gcode.

 

However, it does sound like the solution for this would be to do M190 R60 so that I guarantee the bed is probed at the printing temps and not whatever the previous temp was.

Posted : 16/10/2020 4:15 pm
Neophyl
(@neophyl)
Noble Member

I think you are missing the point of the temperature sensitivity of the pinda probe.  Its not to compensate for the temperature during probing.  But to compensate for runs at different temperatures.

If your pinda probe is at say 20 degrees C when you probe it will detect the metal sheet at distance X.  If its at 35 degrees it will detect the steel sheet at distance Y.  So for example you do an initial print and calibrate your live Z for that so that you get a perfect  first layer with all the lines nicely squished together.  Then you start a second print, at which point the probe is warmer as it has been moving about above a nice warm bed and next to a hot extruder.  Now when you mesh level at the start of this second print the starting distance between probe and bed is different, so the distance between nozzle and bed is also different.  This can lead to having a not great layer 1, so potentially it could loose adhesion etc.

If you are in a climate controlled space with nice consistent temperatures in your print room then yes there may be no need as the differences will be minimal.  However for 'normal' rooms it can make a difference. 

Doing it that way also has a nice secondary effect.  Using the bed heater to get the pinda probe to a known temperature means that the bed warms up for awhile before proceeding, this gives the heat time to soak through and warm up properly towards the outer edges more.  

As for changing the gcode to use R, as I pointed out the MK3 firmware does not support that, only the S version so you can not use it.

Posted : 16/10/2020 5:17 pm
--
 -2
(@-2)
Illustrious Member

The PINDA detection error will vary from run to run, ambient temps, and even during bed level. All because the PINDA temperature is not constant.

There is a PINDA temperature response calibration - but it is notoriously inaccurate and ignorable. In some cases running it makes things worse.

Ensuring the PINDA is the same temperature before initiating a bed level is the best you can do.  I wait until my PINDA is about 37C before running bed level. I wait for it to heat to that temp before the first run of the day; and I let it cool to below that temp after a prior print. It is all for the sake of a consistent bed level and layer one.

Regarding the bed temp -- the bed and nozzle temp command should and normally do wait for the proper temperature range: too cold or too hot, the commands wait. Well, that is if the right commands are used in the custom g-code for the printer.

[I<index>]
Material preset index. Overrides S.

[R<temp>]
Target temperature (wait for cooling or heating).

[S<temp>]
Target temperature (wait only when heating). Also AUTOTEMP: The min auto-temperature.

And Prusa does it a bit differently:

M190 - Wait for bed temperature

Parameters (not mandatory):

  • S <temp> set extruder temperature and wait for heating
  • R <temp> set extruder temperature and wait for heating or cooling
This post was modified 2 months ago 2 times by --
It is always wise to get more than one opinion... as for trusting Prusa? No way man....
Posted : 16/10/2020 8:01 pm
kraemerjacob
(@kraemerjacob)
New Member
Posted by: @neophyl

I think you are missing the point of the temperature sensitivity of the pinda probe.  Its not to compensate for the temperature during probing.  But to compensate for runs at different temperatures.

If your pinda probe is at say 20 degrees C when you probe it will detect the metal sheet at distance X.  If its at 35 degrees it will detect the steel sheet at distance Y.  So for example you do an initial print and calibrate your live Z for that so that you get a perfect  first layer with all the lines nicely squished together.  Then you start a second print, at which point the probe is warmer as it has been moving about above a nice warm bed and next to a hot extruder.  Now when you mesh level at the start of this second print the starting distance between probe and bed is different, so the distance between nozzle and bed is also different.  This can lead to having a not great layer 1, so potentially it could loose adhesion etc.

If you are in a climate controlled space with nice consistent temperatures in your print room then yes there may be no need as the differences will be minimal.  However for 'normal' rooms it can make a difference. 

Doing it that way also has a nice secondary effect.  Using the bed heater to get the pinda probe to a known temperature means that the bed warms up for awhile before proceeding, this gives the heat time to soak through and warm up properly towards the outer edges more.  

As for changing the gcode to use R, as I pointed out the MK3 firmware does not support that, only the S version so you can not use it.

Okay, that makes more sense, thanks for the explanation.

Posted : 16/10/2020 8:43 pm
Share:

Please Login or Register