[gcode_macro PID_TEST_BED]
gcode:
    # Parameters
    {% set TARGETTEMP = params.TEMP|default(70)|int %}
    
    {% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}
    {% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %}
    G28
    G90
    G1 X{max_x/2} Y{max_y/2} Z40 F6000
    PID_CALIBRATE HEATER=heater_bed TARGET={TARGETTEMP}

[gcode_macro PID_TEST_HOTEND]
gcode:
    # Parameters
    {% set TARGETTEMP = params.TEMP|default(245)|int %}
    
    {% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %}
    {% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %}
    G28
    G90
    G1 X{max_x/2} Y{max_y/2} Z10 F6000
    M106 S64
    PID_CALIBRATE HEATER=extruder TARGET={TARGETTEMP}

# TODO test this
[gcode_macro PID_TEST_ALL]
gcode:
    PID_TEST_BED
    PID_TEST_HOTEND
    SAVE_CONFIG

[gcode_macro DO_PROBE_CALIBRATE]
gcode:
    SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=60
    SET_HEATER_TEMPERATURE HEATER=extruder TARGET=180
    TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM=60
    TEMPERATURE_WAIT SENSOR=extruder MINIMUM=180
    G28
    PROBE_CALIBRATE

[gcode_macro DO_CREATE_MESH]
gcode:
    SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=60
    SET_HEATER_TEMPERATURE HEATER=extruder TARGET=180
    TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM=60
    TEMPERATURE_WAIT SENSOR=extruder MINIMUM=180
    G28
    _BED_MESH_CALIBRATE