"Absorbing Heat" waits longer than necessary

Updated 2026-06-03
CoreOne

The firmware waits for the steel frame beneath the heated bed to thermally stabilize before mesh bed leveling. The frame heats more slowly than the bed surface because heat must propagate from the bed PCB heater through metal spacers and an air gap to the frame. Without a sensor on the frame, the firmware estimates its temperature using a rate-limited follower model.

The estimation algorithm uses a step formula with no documented physical basis:

float step = (0.06f + (100.0f - temp_bed.celsius) * 0.0015f) * dt;
bed_frame_est_celsius += std::clamp(temp_bed.celsius - bed_frame_est_celsius, -step, +step);

The coefficients 0.06 and 0.0015 were introduced in BFW-5085 (May 2024) with no derivation from heat transfer theory and no measurement of the frame's thermal response. As temp_bed.celsius increases, step decreases — at 60 °C the step is 0.12 °C/s, at 100 °C it drops to 0.06 °C/s. The code comment states this reaches equilibrium "after about 150s for 60°C and about 10 minutes for 100°C."

The practical consequence is material-dependent:

Material Typical bed temp Current wait
PLA 55–60 °C ~3 min
PETG 70–80 °C ~6–9 min
ABS / ASA 100–110 °C ~16–19 min
PC / PA 100–115 °C ~16–20 min

Heat transfer through the spacers

Preliminary thermal imaging indicates that the dominant heat path from the bed PCB heater to the frame is conduction through the metal spacers between them, not radiation or convection through the air gap. The spacers are steel standoffs that bridge the gap and conduct heat directly into the frame.

Replacing the center and right-center metal spacers with thermally insulating equivalents yields a substantially faster frame stabilization response:

Thermal image: original configuration with metal spacers

Thermal image: insulated configuration with non-conductive spacers

The mechanical implications — rigidity, vibration coupling, long-term durability — have not been evaluated. This is an experimental observation, not a recommended modification.

The step formula is backwards

Newton's law of cooling predicts that heat flow is proportional to the temperature difference between bed and frame. The larger the gap, the faster the frame should catch up. The firmware's step formula does the opposite: it slows down as the bed gets hotter, when the temperature gap is largest and heat transfer should be fastest.

This is why 100 °C takes disproportionately long. The step formula makes convergence inversely proportional to temperature:

A first-order exponential model is more physically sound: the frame temperature approaches the bed temperature proportionally to the remaining gap:

Tframe(t)=Tbed(TbedTinitial)et/τT_{\text{frame}}(t) = T_{\text{bed}} - (T_{\text{bed}} - T_{\text{initial}}) \, e^{-t/\tau}

With τ = 100 s (a reasonable guess for a steel frame) and a 1.0 °C convergence threshold:

Model 60 °C 100 °C
Current (linear, 0.5 °C) ~203 s ~952 s
Exponential τ=100 (1.0 °C) ~323 s ~366 s

The exponential model eliminates the disproportionate slowdown at high temperatures. The exact time constant depends on the actual heat path — which the spacer experiment suggests is faster than an air-gap model would predict.

History and status

References

Research Notes

The original step formula 0.06 + (100 − T_bed) × 0.0015 has no documented physical derivation. The coefficients appear arbitrary. Preliminary thermal imaging shows the dominant heat path is conduction through the metal spacers between the bed PCB and the frame, not through the air gap. Insulating the center and right-center spacers yields a substantially faster stabilization response. The mechanical implications of this modification have not been evaluated.

All convergence times come from simulation, not from timing a real printer. The underlying physical time constant (τ) is unmeasured. A single thermocouple measurement on the frame and a heatup log would pin it down.

Prusa Research has not publicly acknowledged the step formula as a bug. Only the abs/fabs truncation error was addressed (BFW-7600). The enhancement request for a smarter absorb heat algorithm remains open.