General question about Eddy and temperature drift calibration

Basic Information:

Printer Model: SV08
MCU / Printerboard:
Host / SBC
klippy.log

General question about Eddy temperature drift calibration

I have a general question about Eddy and temperature drift calibration using the following command:

TEMPERATURE_PROBE_CALIBRATE PROBE=btt_eddy TARGET=56 STEP=4

This procedure is proposed in the BTT Eddy calibration wiki and requires the bed to be heated to 100 °C and the nozzle to 220 °C.

My concern is, that a heated bed expands as its temperature increases. Therefore, during the calibration procedure, the measured Z position is affected not only by the temperature drift of the Eddy probe itself, but also by the thermal expansion of the bed and the resulting change in the actual nozzle-to-bed distance.

Does this mean that the resulting temperature calibration data contains the bed’s thermal expansion effect and is therefore only accurate for a bed temperature of around 100 °C?

If so, the temperature compensation would not be correct at lower bed temperatures, because the calibration would compensate for both Eddy’s temperature drift and the thermal expansion of the bed.

What is the correct way to account for or eliminate the effect of bed thermal expansion during Eddy temperature drift calibration?

As far as my understanding goes, by default, nozzle heating is disabled, and it is “intended” to be disabled, as we are actually trying to heat only the coil.

So, if you have a way to somehow heat the coil without heating the bed and maintaining a stable temperature, you can do that.

About bed thermal expansion, it seems negligible to me simply because this will be within our measurement error.

Thermal expansion of aluminium roughly equals expansion 22.87×10−6/K (at 20 °C) Aluminium - Wikipedia

That means that per 1 degree of temperature increase, 1 meter of aluminium will expand by 23 µm
For your example we are talking about 20C +80C, so 80 * 23us = 0.0018 m ~= 1.8mm

I guess you had a bed with a thickness of 10mm, so 1/100 of 1 meter.
That means that it will expand by 1.8 / 100 = 0.018mm
Not exactly zero, of course, but much less than the expansion of the hotend or the frame.

Regards,
-Timofey


Otherwise, there is a discussion about allowing to define multiple z_thermal_adjust: PR: Enable multiple z_thermal_adjust sections by garethky · Pull Request #6855 · Klipper3d/klipper · GitHub
Which should allow to account for bed/frame/nozzle expansion separately.