Homing_heaters doesn't turn bed off during Adaptive Mesh

Basic Information:

RatRig V-Core 4 with Beacon probe
Octopus V1.1
Pi4

[homing_heaters] doesn’t turn off the bed heater when the Beacon probe is scanning during the CALIBRATE_ADAPTIVE_MESH macro. I’ve attempted to work around this issue by placing this at the top of the macro:

gcode:
# parameters
{% set bed_temp = params.BED_TEMP|default(85)|int %}
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=0

This has greatly improved the first layer quality. The issue I’m fighting is how to turn the heater back on to the first layer temperature at the end of this macro. When I place this at the end of the macro it only sets the bed to the default temperature of 85°C:

SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={bed_temp}

This indicates to me that I’m not correctly defining “bed_temp”. I know there is a disconnect between the slicer’s first layer temp and getting that value into “bed_temp”, but I’m new enough at Klipper where I can’t connect the dots. I suspect the answer is straight forward and would appreciate some help.

Hi @Jeffbrook ,

  1. Please provide a klippy.log as requested.
  2. Which slicer are you using?
1 Like

Thank you for reaching out so quickly. Apologies on my side for the delay and the missing klippy.log. I’m using PrusaSlicer-2.9.0, as it seemed the most efficient way to quickly get started with an IDEX printer.

Let me know if there is any additional information I may provide.

klippy(1).log (498.7 KB)

Regards,

Jeffbrook

Thanks for providing the log.

The main issue is the bed_temp variable isn’t getting passed through your PRINT_START_START_PRINT_BED_MESHCALIBRATE_ADAPTIVE_MESH macro.


In your _START_PRINT_BED_MESH macro, this line:

CALIBRATE_ADAPTIVE_MESH PROFILE={default_profile} X0={X[0]} X1={X[1]} Y0={Y[0]} Y1={Y[1]} T={params.T|int} BOTH_TOOLHEADS={params.BOTH_TOOLHEADS} IDEX_MODE={idex_mode}

needs this added to the end:

BED_TEMP={bed_temp}

And in your START_PRINT macro, you need to edit this line:

_START_PRINT_BED_MESH X0={X0} X1={X1} Y0={Y0} Y1={Y1} T={initial_tool} BOTH_TOOLHEADS={both_toolheads} IDEX_MODE={idex_mode}

and add this to the end:

BED_TEMP={bed_temp}
1 Like

Thank you for looking into the code - you nailed it. I had wrongly been under the impression that bed_temp was a global parameter and available to any macro. That was my C-code train of thought coming through. Now I know and I’m better off for it for when I try other modifications in the future.

I appreciate the time you made here to help me out.

Regards and take care,

Jeffbrook

1 Like

Glad it worked. Could you please mark my post as a solution so that other people know the issue has been resolved?

1 Like