Feature idea: bed temperature loss compensation

For what it’s worth, the simple solution is often the easy solution. The V2.4 bed is pretty massive and generally people run it at about 10% hotter than other beds just because the mass will cause things to deviate. Since I’m a sucker for not creating printer specific setups in slicers, I have the following macros set up in the printer:

############### BED TEMPERATURE CORRECTION #############
[gcode_macro M140]
rename_existing: M99140
gcode:
    {% set s = params.S|float %}
    {% set adjust = printer["gcode_macro _SET_BED_ADJUSTED_TEMP"].adjustment|float %}

    M99140 S{(s * adjust)|round|int}

[gcode_macro M190]
rename_existing: M99190
gcode:
    {% set s = params.S|float %}
    {% set adjust = printer["gcode_macro _SET_BED_ADJUSTED_TEMP"].adjustment|float %}

    M99190 S{(s * adjust)|round|int}

[gcode_macro _SET_BED_ADJUSTED_TEMP]
variable_adjustment: 1
gcode:
    {% set adjust = params.ADJUSTMENT|default(1)|float %}
    SET_GCODE_VARIABLE MACRO=_SET_BED_ADJUSTED_TEMP VARIABLE=adjustment VALUE={adjust}

I just call _SET_BED_ADJUSTED_TEMP in print start with the value 1.1 and all following temperatures are then adjusted accordingly.

This works very nicely across my printers and I don’t need to remember to adjust anything for printer specific things. If you need high precision temperatures for printing, this definitely won’t work for you. But for my use case of glorified hot glue guns on motors, this is more than enough for precision.

1 Like