One thing I see is that creality did some weirdness with the heater bed class.
self.max_temp = config.getfloat('max_temp', above=0.0)
def cmd_M140(self, gcmd, wait=False):
# Set Bed Temperature
temp = gcmd.get_float('S', 0.)
if temp > self.max_temp - 15.0:
temp = self.max_temp - 15.0
The bed temp will ALWAYS be at least 15 degrees cooler than the “max temp”.
The bed will be 15 degrees cooler than the max temp is there is an attempt to set the temp higher than the max temp.
Plus it looks like there are macros that are setting the bed max temp in them
[gcode_macro G29]
gcode =
{% if 'PROBE_COUNT' in params|upper %}
{% set get_count = ('PROBE_COUNT' + params.PROBE_COUNT) %}
{%else %}
{% set get_count = "" %}
{% endif %}
{% set bed_temp = printer.custom_macro.default_bed_temp %}
{% set extruder_temp = printer.custom_macro.g28_ext_temp %}
{% set nozzle_clear_temp = printer.custom_macro.default_extruder_temp %}
{% if 'BED_TEMP' in params|upper %}
{% set bed_temp = params.BED_TEMP %}
{% endif %}
{% if 'EXTRUDER_TEMP' in params|upper %}
{% set nozzle_clear_temp = params.EXTRUDER_TEMP %}
{% endif %}
SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0
SET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0
G28
BED_MESH_CLEAR
NOZZLE_CLEAR HOT_MIN_TEMP={extruder_temp} HOT_MAX_TEMP=
{nozzle_clear_temp} **BED_MAX_TEMP**={bed_temp}
ACCURATE_G28
M204 S5000
SET_VELOCITY_LIMIT ACCEL_TO_DECEL=5000
BED_MESH_CALIBRATE {get_count}
BED_MESH_OUTPUT
{% set y_park = printer.toolhead.axis_maximum.y/2 %}
{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}
G1 X{x_park} Y{y_park} F2000
CXSAVE_CONFIG
TURN_OFF_HEATERS
SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1
SET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1
By their own code whatever that max temp is will always be 15 degrees cooler. If it’s setting your bed temp to something lower than it later commands it’ll drop the temp by 15 additional degrees.
The big issue with this is
self.max_temp = config.getfloat('max_temp', above=0.0)
Since temp is a floating point number, and floating point numbers are notorious for rounding oddities, the following situation could occur
(exaggerated but possible)
Bed Temp Max: 100.000000000001
Bed Temp Set: 100.000000000002
Now your actual bed temp is 85 because of the heater bed code above.
Another edit:
Here’s the fun part, elsewhere in your gcode is…
[custom_macro]
default_bed_temp = 50
default_extruder_temp = 240
g28_ext_temp = 140
which is used here
{% set **bed_temp** = **printer.custom_macro.default_bed_temp** %}
{% set extruder_temp = printer.custom_macro.g28_ext_temp %}
{% set nozzle_clear_temp = printer.custom_macro.default_extruder_temp %}
{% if 'BED_TEMP' in params|upper %}
{% set bed_temp = params.BED_TEMP %}
{% endif %}
{% if 'EXTRUDER_TEMP' in params|upper %}
{% set nozzle_clear_temp = params.EXTRUDER_TEMP %}
{% endif %}
SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0
SET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0
G28
BED_MESH_CLEAR
NOZZLE_CLEAR HOT_MIN_TEMP={extruder_temp} HOT_MAX_TEMP=
{nozzle_clear_temp} **BED_MAX_TEMP**={**bed_temp**}
It MUST be setting that somewhere else as well. It seems like they’re jacked up and trying to set the temp and they’re setting the MAX temp. MAX temp should never change. I don’t know why you’d change it in macros. That’s what the config section is for?
This is 10000000% up to you, but have you considered flashing the NON-CREALITY Klipper to your machine? They’ve edited so much stuff and added so much junk I don’t know where to begin.