While heating, BLTouch mesh data gets worse and worse the more times you probe


The title pretty much sums up the issue. It was happening before moving to an SKR Mini E3 V1.2 and is still happening with the new board. If I run A G28, then a G29 - while not heated - I will get some mesh data (poor mesh data because I haven't levelled the bed but that's not the main issue). If I then repeatedly run G29 (lets say 5 times) there will be variation between the measurement but only and expected amount and nothing more.

Bilinear Leveling Grid:
      0      1      2
 0 +0.592 +0.270 +0.010
 1 +0.082 +0.010 -0.062
 2 +0.215 +0.078 -0.065
Bilinear Leveling Grid:
      0      1      2
 0 +0.597 +0.267 +0.002
 1 +0.085 +0.007 -0.065
 2 +0.215 +0.078 -0.065
Bilinear Leveling Grid:
      0      1      2
 0 +0.607 +0.267 -0.002
 1 +0.085 +0.010 -0.065
 2 +0.212 +0.075 -0.060

Although it does continue to climb a bit, it's a BLTouch they're not the most accurate things so I'm not worrying about it.

However, if I heat the nozzle (200 °C) and bed (60 °C):

Bilinear Leveling Grid:
      0      1      2
 0 +0.537 +0.252 +0.022
 1 +0.057 -0.002 -0.050
 2 +0.200 +0.075 -0.087
Bilinear Leveling Grid:
      0      1      2
 0 +0.495 +0.203 -0.030
 1 +0.020 -0.027 -0.097
 2 +0.150 +0.027 -0.127
Bilinear Leveling Grid:
      0      1      2
 0 +0.462 +0.180 -0.067
 1 -0.002 -0.072 -0.150
 2 +0.122 -0.010 -0.170
Bilinear Leveling Grid:
      0      1      2
 0 +0.422 +0.132 -0.105
 1 -0.057 -0.140 -0.192
 2 +0.075 -0.043 -0.215
Bilinear Leveling Grid:
      0      1      2
 0 +0.367 +0.082 -0.165
 1 -0.110 -0.155 -0.233
 2 +0.030 -0.102 -0.255
Bilinear Leveling Grid:
      0      1      2
 0 +0.347 +0.045 -0.190
 1 -0.135 -0.180 -0.250
 2 +0.002 -0.127 -0.280
Bilinear Leveling Grid:
      0      1      2
 0 +0.322 +0.032 -0.215
 1 -0.155 -0.230 -0.280
 2 -0.020 -0.142 -0.315

As you can see the variations in the measurements are very high. This must be a known issue because Marlin does have a PROBING_HEATERS_OFF option but this would take even more time and I'm just curious if there is a reason for this or another fix to it. I don't believe it would be a current issue since the power supply used can deliver many amps so it's probably something like electrical noise. I think it's fine to leave it because you only home and probe once during a print so the measurements would be 'accurate' but it would be reassuring to find out a reason and a possible fix.

I measured the rail with my oscilloscope and it actually isn't very noisy, whether I was heating or not. However, Vmax was 4.6 and Vmin was 4.4 and I'm wondering if that is too low. These voltages didn't change while heating so I think they are always that low.


For completeness, here an image of the printer:

enter image description here

and here graphs about the BLtouch data over time:

enter image description here


Posted 2020-09-19T19:51:13.253

Reputation: 31

sometimes i have to re-level once the bed heats up, i assumed it was the metal expanding. – dandavis – 2020-09-21T02:30:31.950



It looks like the changes are always going in the same direction for a given probe point (each point increases steadily or decreases steadily, there is no oscillation).

This means that the bed is not warm yet and you should wait longer.

In theory the heating of the BLtouch itself may affect the readings, and the air surely gets progressively warmer around it, but since some values increase and other ones decrease, that's not the cause.

The values change because the bed is still adapting to the temperature increase.

For a more systematic and scientific approach, do the following.

With the bed cold, heating off, probe a single point 10 times without any delay, then put the data in a spreadsheet and calculate the standard deviation, to know how accurate the sensor is.

After that probe the whole bed every 5 minutes during heating for half an hour and then plot the values on a graph (each point separately). At a certain point you will see that the values will oscillate about as much as they did when the bed was cold. That is the time you need to wait for proper bee heating. Different parts of the bed may reach the temperature in different times, that's why each probed point has to be graphed separately over time.

If you use an enclosure, as you do, the continuous change of BLtouch output can also be dependent on the overall heating of the printer frame and structure: instead of heating only the bed, in an environment which stays the same, you are heating the whole environment through the bed. It becomes more complex. The BLtouch may be fine, but you may need to keep heating it until the readings stabilise.


Posted 2020-09-19T19:51:13.253

Reputation: 2 532

I can see that being the case. Probing itself takes adds a fair bit of time and I have to wait for it to fully heat up (with a thicker glass bed as well) it's gonna take a while. is there anything wrong with just probing anyway, even if they change slightly? – DreamingInsanity – 2020-09-23T14:51:53.887

Well I'm confused... do you use BLtouch to get an accurate bed calibration or for the fun of it? if you want an accurate bed calibration "just probing anyway, even if they change slightly" seems pointless. – FarO – 2020-09-23T20:56:53.077

No, of course not but I also don't want to wait 20 minutes for everything to fully heat up and probe. I'm pretty certain I'd already left it for quite a while because I do other things while it heats and usually get distracted. I can speed it up a bit by heating both nozzle and bed at the same time but it's not anything groundbreaking. – DreamingInsanity – 2020-09-24T15:23:43.433

Just probe every 5 minutes and see when it stops changing. Then you'll know for the future. – FarO – 2020-09-24T16:56:02.563

I haven't yet done that (will right now) but I have left the bed to heat up for at least half an hour. In the probes I get a variation of about +-0.010 to +-0.040 but it doesn't just keep increasing which is good. – DreamingInsanity – 2020-09-25T09:25:20.890

I probed every 5 minutes and from the start there was no change at all. I did leave it to heat up for a little bit but no where near as long as before so to be honest I'm not really sure. I'll just have to roll with it and see how it goes. – DreamingInsanity – 2020-09-25T10:35:33.067

See my updated answer – FarO – 2020-09-25T20:44:43.220

I'll give that a go. Also, do you know how to probe just 1 point? I haven't been able to figure it out yet. – DreamingInsanity – 2020-09-26T07:46:27.510

G30, check Marlin GCodes – FarO – 2020-09-27T18:31:10.053

Ah thanks - I totally forgot to check there. – DreamingInsanity – 2020-09-28T15:05:51.360

All done! image The info is written in the description of the image.

– DreamingInsanity – 2020-09-29T19:49:42.837

@DreamingInsanity you never mentioned how long it takes for the bed temperature sensor to reach the desired value. Anyway it looks like that your bed does not stabilise for a long time, or that there are further issues which I cannot identify. At this point, two options can be tried: 1) borrow a thermal camera to check that the upper surface of the bed reaches the temperature the sensor tells you; 2) heat the bed for another hour, and see if it stabilises! Can you post in the question (together with the graphs you made) also a picture of the whole printer? maybe there is something we miss! – FarO – 2020-09-29T20:11:08.300

There's a picture of the printer, main board and also the raw data for the graphs here. I times the heating and it takes roughly 1:50 for the nozzle to heat up and 2:22 for the bed to heat up. Oh and don't mind the mess the printer is in ;).

– DreamingInsanity – 2020-09-30T16:39:42.963

Answer updated, I think there's not much more to say... – FarO – 2020-09-30T19:06:24.443