[Level None] 2024-04-13 06:50:49,972 [None] [:None:0] ===== Config file ===== [virtual_pins] [force_move] enable_force_move = true [gcode_macro xyz_ready] variable_x_ready = 0 variable_y_ready = 0 variable_z_ready = 0 variable_xy_moved = 0 variable_z_moved = 0 variable_safe_z = 3 gcode = [gcode_macro _IF_HOME_Z] gcode = {% if printer['gcode_macro xyz_ready'].z_ready|int == 1 %} {% if printer.toolhead.position.z|int < 5 %} {% set z_park = 5.0 - printer.toolhead.position.z|int %} G91 G1 z{z_park} F600 G90 {% endif %} {% else %} {% if printer['gcode_macro xyz_ready'].z_moved|int == 0 %} {% if printer.print_stats.z_pos|float <= 20.0 or printer.print_stats.power_loss == 1 %} FORCE_MOVE STEPPER=stepper_z DISTANCE={printer["gcode_macro PRINTER_PARAM"].z_safe_g28} VELOCITY=10 {% else %} FORCE_MOVE STEPPER=stepper_z DISTANCE=0.1 VELOCITY=10 {% endif %} SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=1 {% endif %} {% endif %} [gcode_macro _IF_MOVE_XY] gcode = _IF_HOME_Z {% if printer['gcode_macro xyz_ready'].xy_moved|int == 0 %} {action_respond_info("move xy\n")} FORCE_MOVE STEPPER=stepper_y DISTANCE=-14 VELOCITY=50 FORCE_MOVE STEPPER=stepper_y DISTANCE=7 VELOCITY=50 SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=1 G4 P1000 {% endif %} [gcode_macro _HOME_X] gcode = _IF_MOVE_XY {% if printer['gcode_macro xyz_ready'].x_ready|int == 1 %} {% if (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x)|round < 10 %} {% set x_park = (10 - (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x))|round %} {% if x_park > 0 %} G91 G1 x-{x_park} F3600 G90 G4 P1000 {% endif %} {% endif %} {% endif %} G28 X SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=1 G91 G1 x-10 F3600 G90 G4 P2000 [gcode_macro _HOME_Y] gcode = _IF_MOVE_XY {% if printer['gcode_macro xyz_ready'].y_ready|int == 1 %} {% if printer.toolhead.position.y|round < 8 %} {% set y_park = 8 - printer.toolhead.position.y|round %} {% if y_park > 0 %} G91 G1 y{y_park} F3600 G90 G4 P1000 {% endif %} {% endif %} {% endif %} G28 Y SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=1 G91 G1 y10 F3600 G90 G4 P2000 [gcode_macro _HOME_Z] gcode = {% if printer['gcode_macro xyz_ready'].y_ready|int == 1 %} {% if printer['gcode_macro xyz_ready'].x_ready|int == 1 %} _IF_HOME_Z {% endif %} {% endif %} {% if printer.print_stats.z_pos|float >= 260.0 %} FORCE_MOVE STEPPER=stepper_z DISTANCE=-8 VELOCITY=10 {% endif %} {% set POSITION_X = printer.configfile.settings['stepper_x'].position_max/2 %} {% set POSITION_Y = printer.configfile.settings['stepper_y'].position_max/2 %} G91 {% set x_park = POSITION_X - printer.toolhead.position.x|int %} {% set y_park = POSITION_Y - printer.toolhead.position.y|int %} {action_respond_info("x_park = %s \n" % (x_park))} {action_respond_info("y_park = %s \n" % (y_park))} G1 x{x_park} y{y_park} F3600 G90 G28 Z SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=1 [homing_override] axes = xyz gcode = M220 S100 {% set x_axes = printer.toolhead.homed_axes %} {% if x_axes is defined and x_axes[0] is defined %} {action_respond_info( "x_axes: %s \n" % (x_axes))} {% else %} SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=0 SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=0 SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=0 SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=0 SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=0 {action_respond_info( "x_axes is NULL\n")} {% endif %} {% if x_axes is not defined or x_axes[2] is not defined %} BED_MESH_CLEAR {% endif %} {% if x_axes is defined and x_axes[0] is defined and x_axes[1] is defined %} {action_respond_info("x_axes: %s \n"% (x_axes))} {% set position_y = printer.toolhead.position.y|int %} {% set max_y_position = printer["gcode_macro PRINTER_PARAM"].max_y_position|int %} {% if position_y >= max_y_position %} G91 G0 Y-10 F3600 G90 {% endif %} {% endif %} {% set home_all = 'X' not in params and 'Y' not in params %} {% if 'Z' in params and 'X' not in params and 'Y' not in params %} {% if x_axes[0] is defined and x_axes[1] is defined %} {% set home_all = 0 %} {% endif %} {% endif %} {% if home_all or 'X' in params %} _HOME_X {% endif %} {% if home_all or 'Y' in params %} _HOME_Y {% endif %} {% if home_all or 'X' in params %} _HOME_X {% endif %} {% if home_all or 'Y' in params %} _HOME_Y {% endif %} {% if home_all or 'Z' in params %} _HOME_Z {% endif %} BED_MESH_PROFILE LOAD="default" G4 P500 [gcode_macro PRINTER_PARAM] variable_z_safe_pause = 0.0 variable_z_safe_g28 = 3.0 variable_max_x_position = 300.0 variable_max_y_position = 300.0 variable_max_z_position = 300.0 variable_fans = 3 variable_auto_g29 = 0 variable_fan0_min = 25 variable_fan1_min = 50 variable_fan2_min = 180 variable_fan2_speed = 0 variable_hotend_temp = 0 variable_e_min_current = 0.27 gcode = [gcode_macro AUTOTUNE_SHAPERS] gcode = [gcode_macro LOAD_MATERIAL_CLOSE_FAN2] variable_fan2_value = 0 gcode = SAVE_GCODE_STATE NAME=myMoveState {% if printer['output_pin fan2'].value > 0.0 %} SET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value} M107 P2 {% endif %} RESTORE_E_CURRENT [gcode_macro LOAD_MATERIAL_RESTORE_FAN2] gcode = {% set fan2_value = printer['gcode_macro LOAD_MATERIAL_CLOSE_FAN2'].fan2_value|float %} RESTORE_GCODE_STATE NAME=myMoveState {% if fan2_value > 0.0 %} {% set s_value = (fan2_value * 255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) * 255 / (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) %} M106 P2 S{s_value} SET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE=0 {% endif %} SET_E_MIN_CURRENT [gcode_macro SET_E_MIN_CURRENT] gcode = {% set e_current = printer['gcode_macro PRINTER_PARAM'].e_min_current %} M400 SET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current} G4 P2000 [gcode_macro RESTORE_E_CURRENT] gcode = {% set e_current = printer.configfile.settings['tmc2209 extruder'].run_current %} M400 SET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current} G4 P2000 [gcode_macro LOAD_MATERIAL] gcode = LOAD_MATERIAL_CLOSE_FAN2 M109 S{printer.custom_macro.default_extruder_temp} G91 G1 E80 F180 LOAD_MATERIAL_RESTORE_FAN2 [gcode_macro QUIT_MATERIAL] gcode = SAVE_GCODE_STATE NAME=myMoveState RESTORE_E_CURRENT M109 S{printer.custom_macro.default_extruder_temp} M83 G1 E10 F300 G1 E-15 F3000 G1 E-22.4700 F2400 G1 E-6.4200 F1200 G1 E-3.2100 F720 G1 E5.0000 F356 G1 E-5.0000 F384 G1 E5.0000 F412 G1 E-5.0000 F440 G1 E5.0000 F467 G1 E-5.0000 F495 G1 E5.0000 F523 G1 E-5.0000 F3000 G1 E-15 F3000 SET_E_MIN_CURRENT RESTORE_GCODE_STATE NAME=myMoveState [gcode_macro Qmode] variable_flag = 0 variable_accel = 0 variable_accel_to_decel = 0 variable_velocity = 0 variable_square_corner_velocity = 0 variable_pressure_advance = 0.0 variable_fan0_value = 0.00 variable_fan1_value = 0.00 variable_fan2_value = 0.00 variable_speed_factor = 0 variable_max_accel = 2500 variable_max_accel_to_decel = 2500 gcode = {% set printer_state = printer.print_stats.state %} {% if printer['gcode_macro Qmode'].flag|int == 0 %} {% if printer_state == "printing" or printer_state == "paused" %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel VALUE={printer.toolhead.max_accel} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel_to_decel VALUE={printer.toolhead.max_accel_to_decel} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=velocity VALUE={printer.toolhead.max_velocity} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=square_corner_velocity VALUE={printer.toolhead.square_corner_velocity} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=pressure_advance VALUE={printer.extruder.pressure_advance} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=speed_factor VALUE={printer.gcode_move.speed_factor} SET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=0 SET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=0 SET_TMC_CURRENT STEPPER=stepper_x CURRENT=1.0 SET_TMC_CURRENT STEPPER=stepper_y CURRENT=1.0 G4 P1000 SET_VELOCITY_LIMIT ACCEL=2500 SET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500 SET_VELOCITY_LIMIT VELOCITY=150 SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5 SET_PRESSURE_ADVANCE ADVANCE=0.05 M220 S50 {% set tmp = printer['output_pin fan0'].value * 255 %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={tmp} {% if tmp - printer['gcode_macro PRINTER_PARAM'].fan0_min > (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} {% set tmp = printer['gcode_macro PRINTER_PARAM'].fan0_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} SET_PIN PIN=fan0 VALUE={tmp} {% endif %} {% set tmp = printer['output_pin fan1'].value * 255 %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer['output_pin fan1'].value * 255} {% if tmp - printer['gcode_macro PRINTER_PARAM'].fan1_min > (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} {% set tmp = printer['gcode_macro PRINTER_PARAM'].fan1_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} SET_PIN PIN=fan1 VALUE={tmp} {% endif %} {% set tmp = printer['output_pin fan2'].value * 255 %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value * 255} {% if tmp - printer['gcode_macro PRINTER_PARAM'].fan2_min > (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} {% set tmp = printer['gcode_macro PRINTER_PARAM'].fan2_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} SET_PIN PIN=fan2 VALUE={tmp} {% endif %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=1 SET_QMODE_FLAG FLAG=1 {% endif %} {% endif %} [gcode_macro Qmode_exit] gcode = {% set printer_state = printer.print_stats.state %} {% if printer['gcode_macro Qmode'].flag|int == 1 %} {% if printer_state == "printing" or printer_state == "paused" %} SET_VELOCITY_LIMIT ACCEL={printer['gcode_macro Qmode'].accel} SET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer['gcode_macro Qmode'].accel_to_decel} SET_VELOCITY_LIMIT VELOCITY={printer['gcode_macro Qmode'].velocity} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={printer['gcode_macro Qmode'].square_corner_velocity} SET_PRESSURE_ADVANCE ADVANCE={printer['gcode_macro Qmode'].pressure_advance} M220 S{printer['gcode_macro Qmode'].speed_factor * 100} {% set X_RUN_CUR = printer.configfile.settings['tmc2209 stepper_x'].run_current %} {% set Y_RUN_CUR = printer.configfile.settings['tmc2209 stepper_y'].run_current %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={X_RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={Y_RUN_CUR} SET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=1 SET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=1 G4 P1000 {% if printer['output_pin fan0'].value != 0 %} {action_respond_info("fan0_value = %s" % printer['gcode_macro Qmode'].fan0_value)} SET_PIN PIN=fan0 VALUE={printer['gcode_macro Qmode'].fan0_value} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE=0 {% endif %} {% if printer['output_pin fan1'].value != 0 %} {action_respond_info("fan1_value = %s" % printer['gcode_macro Qmode'].fan1_value)} SET_PIN PIN=fan1 VALUE={printer['gcode_macro Qmode'].fan1_value} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE=0 {% endif %} {% if printer['output_pin fan2'].value != 0 %} {action_respond_info("fan2_value = %s" % printer['gcode_macro Qmode'].fan2_value)} SET_PIN PIN=fan2 VALUE={printer['gcode_macro Qmode'].fan2_value} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE=0 {% endif %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=0 SET_QMODE_FLAG FLAG=0 {% endif %} {% endif %} [gcode_macro M204] rename_existing = M204.1 gcode = {% set get_params = "" %} {% set qmode_max_accel = printer['gcode_macro Qmode'].max_accel|string %} {% if 'S' in params|upper %} {% if printer['gcode_macro Qmode'].flag|int == 1 and params.S|float > qmode_max_accel|float %} {% set get_params = (get_params + ' ' + 'S' + qmode_max_accel) %} {% else %} {% set get_params = (get_params + ' ' + 'S' + params.S) %} {% endif %} {% endif %} {% if 'P' in params|upper %} {% if printer['gcode_macro Qmode'].flag|int == 1 and params.P|float > qmode_max_accel|float %} {% set get_params = (get_params + ' ' + 'P' + qmode_max_accel) %} {% else %} {% set get_params = (get_params + ' ' + 'P' + params.P) %} {% endif %} {% endif %} {% if 'T' in params|upper %} {% if printer['gcode_macro Qmode'].flag|int == 1 and params.T|float > qmode_max_accel|float %} {% set get_params = (get_params + ' ' + 'T' + qmode_max_accel) %} {% else %} {% set get_params = (get_params + ' ' + 'T' + params.T) %} {% endif %} {% endif %} M204.1 {get_params} [gcode_macro M205] gcode = {% if 'X' in params %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.X} {% elif 'Y' in params %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.Y} {% endif %} [gcode_macro M107] gcode = {% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %} {% if params.P is defined %} {% if params.P|int < fans %} SET_PIN PIN=fan{params.P|int} VALUE=0 {% else %} SET_PIN PIN=fan0 VALUE=0 {% endif %} {% else %} SET_PIN PIN=fan0 VALUE=0 SET_PIN PIN=fan2 VALUE=0 {% endif %} [gcode_macro M900] gcode = {% if 'K' in params %} {% if 'E' in params %} SET_PRESSURE_ADVANCE EXTRUDER={params.E} ADVANCE={params.K} {% else %} SET_PRESSURE_ADVANCE ADVANCE={params.K} {% endif %} {% endif %} [delayed_gcode wait_temp] gcode = {% set cur_temp = printer.extruder.temperature %} {% if cur_temp|int < 40 %} WAIT_TEMP_END {% else %} UPDATE_DELAYED_GCODE ID=wait_temp DURATION=5 {% endif %} [gcode_macro WAIT_TEMP_START] gcode = {action_respond_info("wait temp start\n")} UPDATE_DELAYED_GCODE ID=wait_temp DURATION=1 M106 P0 S255 [gcode_macro WAIT_TEMP_END] gcode = {action_respond_info("wait temp end\n")} UPDATE_DELAYED_GCODE ID=wait_temp DURATION=0 M106 P0 S0 [gcode_macro PRINT_CALIBRATION] gcode = CX_PRINT_LEVELING_CALIBRATION [gcode_macro FIRST_FLOOR_PAUSE_POSITION] gcode = {% set extruder_temp = printer.custom_macro.g28_ext_temp %} M104 S{extruder_temp} {% set y_park = printer.toolhead.axis_maximum.y/2 %} {% set x_park = printer['gcode_macro PRINTER_PARAM'].max_x_position|float + 1 %} G90 G1 Z2 F600 G1 X{x_park} Y{y_park} F6000 G1 Z0.2 F600 [gcode_macro ACCURATE_G28] gcode = ACCURATE_HOME_Z [gcode_macro PRINT_PREPARED] gcode = SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=1 {action_respond_info("print prepared")} [gcode_macro PRINT_PREPARE_CLEAR] gcode = SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=0 [gcode_macro END_PRINT_POINT_WITHOUT_LIFTING] gcode = {% if "xyz" in printer.toolhead.homed_axes %} {% set E = printer["gcode_macro PAUSE"].extrude|float %} G91 {% if printer.extruder.can_extrude|lower == 'true' %} G1 E-1.0 F180 G1 E-{E} F4000 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} G1 Z2.0 F600 G90 {% 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} F30000 {% else %} {action_respond_info("end print xyz_axes is NULL\n")} {% endif %} [gcode_macro END_PRINT_POINT] gcode = {% if "xyz" in printer.toolhead.homed_axes %} {% set E = printer["gcode_macro PAUSE"].extrude|float %} {% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %} {% set act_z = printer.toolhead.position.z|float %} {% set z_safe = 0.0 %} {% if act_z < (max_z / 2) %} {% set z_safe = (max_z / 2) - act_z %} {% elif act_z < max_z %} {% set z_safe = 2.0 %} {% endif %} G91 {% if printer.extruder.can_extrude|lower == 'true' %} G1 E-1.0 F180 G1 E-{E} F4000 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} G1 Z2.0 F600 G90 {% 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} F30000 {% if z_safe > 2.0 %} G91 {% set z_safe = z_safe - 2.0 %} G1 Z{z_safe} F600 G90 {% endif %} {% else %} {action_respond_info("end print xyz_axes is NULL\n")} {% endif %} [gcode_macro END_PRINT] gcode = Qmode_exit EXCLUDE_OBJECT_RESET PRINT_PREPARE_CLEAR M220 S100 SET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=2500 TURN_OFF_HEATERS M107 P1 M107 P2 END_PRINT_POINT WAIT_TEMP_START M84 [gcode_macro FIRST_FLOOR_PAUSE] description = Pause the first floor print variable_extrude = 2.0 gcode = {% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float %} {% set y_park = printer.toolhead.axis_maximum.y/2 %} {% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %} {% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %} {% set act_z = printer.toolhead.position.z|float %} {% set z_safe = 0.0 %} {% if act_z < (max_z - 2.0) %} {% set z_safe = 2.0 %} {% elif act_z < max_z %} {% set z_safe = max_z - act_z %} {% endif %} SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float} PAUSE_BASE G91 {% if "xyz" in printer.toolhead.homed_axes %} {% if printer.extruder.can_extrude|lower == 'true' %} G1 E-1.0 F180 G1 E-{E} F4000 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} G1 Z{z_safe} F600 G90 G1 X{x_park} Y{y_park} F30000 {% else %} {action_respond_info("Printer not homed")} {% endif %} SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer['output_pin fan2'].value} {% set fspeed = printer['gcode_macro PRINTER_PARAM'].fan2_speed %} {action_respond_info("fan2_value = %s \n" % (fspeed))} M106 P2 S0 SET_E_MIN_CURRENT [gcode_macro FIRST_FLOOR_RESUME] description = Resume the first floor print gcode = RESTORE_E_CURRENT {% if printer['gcode_macro PRINTER_PARAM'].fan2_speed > 0 %} {% set s_value = (printer['gcode_macro PRINTER_PARAM'].fan2_speed * 255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) * 255 / (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min)|float %} M106 P2 S{s_value} {% endif %} {% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float + 1.0 %} {% if 'VELOCITY' in params|upper %} {% set get_params = ('VELOCITY=' + params.VELOCITY) %} {%else %} {% set get_params = "" %} {% endif %} {% if printer.extruder.can_extrude|lower == 'true' %} G91 G1 E{E} F2100 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} M400 RESUME_BASE {get_params} [gcode_macro PAUSE] description = Pause the actual running print rename_existing = PAUSE_BASE variable_extrude = 2.0 gcode = {% set E = printer["gcode_macro PAUSE"].extrude|float %} {% set y_park = printer.toolhead.axis_maximum.y/2 %} {% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %} {% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %} {% set act_z = printer.toolhead.position.z|float %} {% set z_safe = 0.0 %} {% if act_z < 48.0 %} {% set z_safe = 50.0 - act_z %} {% elif act_z < (max_z - 2.0) %} {% set z_safe = 2.0 %} {% elif act_z < max_z %} {% set z_safe = max_z - act_z %} {% endif %} {action_respond_info("z_safe = %s"% (z_safe))} SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float} PAUSE_BASE G91 SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE={printer.extruder.target} M104 S140 {% if "xyz" in printer.toolhead.homed_axes %} {% if printer.extruder.can_extrude|lower == 'true' %} G1 E-1.0 F180 G1 E-{E} F4000 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} G1 Z{z_safe} F600 M400 G90 G1 X{x_park} Y{y_park} F30000 {% else %} {action_respond_info("Printer not homed")} {% endif %} SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer['output_pin fan2'].value} {% set fspeed = printer['gcode_macro PRINTER_PARAM'].fan2_speed %} {action_respond_info("fan2_value = %s \n" % (fspeed))} M106 P2 S0 SET_E_MIN_CURRENT [gcode_macro INPUTSHAPER] gcode = SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0 G90 G28 {% set POSITION_X = printer.configfile.settings['stepper_x'].position_max/2 %} {% set POSITION_Y = printer.configfile.settings['stepper_y'].position_max/2 %} G1 X{POSITION_X} Y{POSITION_Y} F6000 G1 Z10 F600 SHAPER_CALIBRATE CXSAVE_CONFIG SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1 [gcode_macro BEDPID] gcode = PID_CALIBRATE HEATER=heater_bed TARGET=100 SAVE_CONFIG [gcode_macro TUNOFFINPUTSHAPER] gcode = SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE gcode = RESTORE_E_CURRENT {% if printer['gcode_macro PRINTER_PARAM'].hotend_temp|int != 0 %} {% if printer['gcode_macro PRINTER_PARAM'].hotend_temp|int > printer.extruder.temperature %} M109 S{printer['gcode_macro PRINTER_PARAM'].hotend_temp|int} {% else %} M104 S{printer['gcode_macro PRINTER_PARAM'].hotend_temp|int} {% endif %} SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE=0 {% endif %} {% if printer['gcode_macro PRINTER_PARAM'].fan2_speed > 0 %} {% set s_value = (printer['gcode_macro PRINTER_PARAM'].fan2_speed * 255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) * 255 / (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min)|float %} M106 P2 S{s_value} {% endif %} {% set z_resume_move = printer['gcode_macro PRINTER_PARAM'].z_safe_pause|int %} {% if z_resume_move > 2 %} {% set z_resume_move = z_resume_move - 2 %} G91 G1 Z-{z_resume_move} F600 M400 {% endif %} {action_respond_info("z_resume_move = %s"% (z_resume_move))} {% set E = printer["gcode_macro PAUSE"].extrude|float + 1.0 %} {% if 'VELOCITY' in params|upper %} {% set get_params = ('VELOCITY=' + params.VELOCITY) %} {%else %} {% set get_params = "" %} {% endif %} {% if printer.extruder.can_extrude|lower == 'true' %} G91 G1 E{E} F2100 G90 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} M400 RESUME_BASE {get_params} [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = END_PRINT CANCEL_PRINT_BASE [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 [fan_feedback] fan0_pin = nozzle_mcu:PB4 fan1_pin = PC6 print_delay_time = 5 current_delay_time = 2 [custom_macro] default_bed_temp = 50 default_extruder_temp = 240 g28_ext_temp = 140 [gcode_macro GET_TIMELAPSE_SETUP] description = Print the Timelapse setup gcode = {% set tl = printer['gcode_macro TIMELAPSE_TAKE_FRAME'] %} {% set output_txt = ["Timelapse Setup:"] %} {% set _dummy = output_txt.append("enable: %s" % tl.enable) %} {% set _dummy = output_txt.append("park: %s" % tl.park.enable) %} {% if tl.park.enable %} {% set _dummy = output_txt.append("park position: %s time: %s s" % (tl.park.pos, tl.park.time)) %} {% set _dummy = output_txt.append("park cord x:%s y:%s dz:%s" % (tl.park.coord.x, tl.park.coord.y, tl.park.coord.dz)) %} {% set _dummy = output_txt.append("travel speed: %s mm/s" % tl.speed.travel) %} {% endif %} {% set _dummy = output_txt.append("fw_retract: %s" % tl.extruder.fw_retract) %} {% if not tl.extruder.fw_retract %} {% set _dummy = output_txt.append("retract: %s mm speed: %s mm/s" % (tl.extruder.retract, tl.speed.retract)) %} {% set _dummy = output_txt.append("extrude: %s mm speed: %s mm/s" % (tl.extruder.extrude, tl.speed.extrude)) %} {% endif %} {% set _dummy = output_txt.append("verbose: %s" % tl.verbose) %} {action_respond_info(output_txt|join("\n"))} [gcode_macro _SET_TIMELAPSE_SETUP] description = Set user parameters for timelapse gcode = {% set tl = printer['gcode_macro TIMELAPSE_TAKE_FRAME'] %} {% set min = printer.toolhead.axis_minimum %} {% set max = printer.toolhead.axis_maximum %} {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch'] else False %} {% set park = {'min' : {'x': (min.x / 1.42)|round(3) if round_bed else min.x|round(3), 'y': (min.y / 1.42)|round(3) if round_bed else min.y|round(3)}, 'max' : {'x': (max.x / 1.42)|round(3) if round_bed else max.x|round(3), 'y': (max.y / 1.42)|round(3) if round_bed else max.y|round(3)}, 'center': {'x': (max.x-(max.x-min.x)/2)|round(3), 'y': (max.y-(max.y-min.y)/2)|round(3)}} %} {% if params.ENABLE %} {% if params.ENABLE|lower is in ['true', 'false'] %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=enable VALUE={True if params.ENABLE|lower == 'true' else False} {% else %} {action_raise_error("ENABLE=%s not supported. Allowed values are [True, False]" % params.ENABLE|capitalize)} {% endif %} {% endif %} {% if params.VERBOSE %} {% if params.VERBOSE|lower is in ['true', 'false'] %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=verbose VALUE={True if params.VERBOSE|lower == 'true' else False} {% else %} {action_raise_error("VERBOSE=%s not supported. Allowed values are [True, False]" % params.VERBOSE|capitalize)} {% endif %} {% endif %} {% if params.CUSTOM_POS_X %} {% if params.CUSTOM_POS_X|float >= min.x and params.CUSTOM_POS_X|float <= max.x %} {% set _dummy = tl.park.custom.update({'x':params.CUSTOM_POS_X|float|round(3)}) %} {% else %} {action_raise_error("CUSTOM_POS_X=%s must be within [%s - %s]" % (params.CUSTOM_POS_X, min.x, max.x))} {% endif %} {% endif %} {% if params.CUSTOM_POS_Y %} {% if params.CUSTOM_POS_Y|float >= min.y and params.CUSTOM_POS_Y|float <= max.y %} {% set _dummy = tl.park.custom.update({'y':params.CUSTOM_POS_Y|float|round(3)}) %} {% else %} {action_raise_error("CUSTOM_POS_Y=%s must be within [%s - %s]" % (params.CUSTOM_POS_Y, min.y, max.y))} {% endif %} {% endif %} {% if params.CUSTOM_POS_DZ %} {% if params.CUSTOM_POS_DZ|float >= min.z and params.CUSTOM_POS_DZ|float <= max.z %} {% set _dummy = tl.park.custom.update({'dz':params.CUSTOM_POS_DZ|float|round(3)}) %} {% else %} {action_raise_error("CUSTOM_POS_DZ=%s must be within [%s - %s]" % (params.CUSTOM_POS_DZ, min.z, max.z))} {% endif %} {% endif %} {% if params.PARK_ENABLE %} {% if params.PARK_ENABLE|lower is in ['true', 'false'] %} {% set _dummy = tl.park.update({'enable':True if params.PARK_ENABLE|lower == 'true' else False}) %} {% else %} {action_raise_error("PARK_ENABLE=%s not supported. Allowed values are [True, False]" % params.PARK_ENABLE|capitalize)} {% endif %} {% endif %} {% if params.PARK_POS %} {% if params.PARK_POS|lower is in ['center','front_left','front_right','back_left','back_right','custom','x_only','y_only'] %} {% set dic = {'center' : {'x': park.center.x , 'y': park.center.y , 'dz': 1 }, 'front_left' : {'x': park.min.x , 'y': park.min.y , 'dz': 0 }, 'front_right' : {'x': park.max.x , 'y': park.min.y , 'dz': 0 }, 'back_left' : {'x': park.min.x , 'y': park.max.y , 'dz': 0 }, 'back_right' : {'x': park.max.x , 'y': park.max.y , 'dz': 0 }, 'custom' : {'x': tl.park.custom.x, 'y': tl.park.custom.y, 'dz': tl.park.custom.dz}, 'x_only' : {'x': tl.park.custom.x, 'y': 'none' , 'dz': tl.park.custom.dz}, 'y_only' : {'x': 'none' , 'y': tl.park.custom.y, 'dz': tl.park.custom.dz}} %} {% set _dummy = tl.park.update({'pos':params.PARK_POS|lower}) %} {% set _dummy = tl.park.update({'coord':dic[tl.park.pos]}) %} {% else %} {action_raise_error("PARK_POS=%s not supported. Allowed values are [CENTER, FRONT_LEFT, FRONT_RIGHT, BACK_LEFT, BACK_RIGHT, CUSTOM, X_ONLY, Y_ONLY]" % params.PARK_POS|upper)} {% endif %} {% endif %} {% if params.PARK_TIME %} {% if params.PARK_TIME|float >= 0.0 %} {% set _dummy = tl.park.update({'time':params.PARK_TIME|float|round(3)}) %} {% else %} {action_raise_error("PARK_TIME=%s must be a positive number" % params.PARK_TIME)} {% endif %} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=park VALUE="{tl.park}" {% if params.TRAVEL_SPEED %} {% if params.TRAVEL_SPEED|float > 0.0 %} {% set _dummy = tl.speed.update({'travel':params.TRAVEL_SPEED|float|round(3)}) %} {% else %} {action_raise_error("TRAVEL_SPEED=%s must be larger than 0" % params.TRAVEL_SPEED)} {% endif %} {% endif %} {% if params.RETRACT_SPEED %} {% if params.RETRACT_SPEED|float > 0.0 %} {% set _dummy = tl.speed.update({'retract':params.RETRACT_SPEED|float|round(3)}) %} {% else %} {action_raise_error("RETRACT_SPEED=%s must be larger than 0" % params.RETRACT_SPEED)} {% endif %} {% endif %} {% if params.EXTRUDE_SPEED %} {% if params.EXTRUDE_SPEED|float > 0.0 %} {% set _dummy = tl.speed.update({'extrude':params.EXTRUDE_SPEED|float|round(3)}) %} {% else %} {action_raise_error("EXTRUDE_SPEED=%s must be larger than 0" % params.EXTRUDE_SPEED)} {% endif %} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=speed VALUE="{tl.speed}" {% if params.EXTRUDE_DISTANCE %} {% if params.EXTRUDE_DISTANCE|float >= 0.0 %} {% set _dummy = tl.extruder.update({'extrude':params.EXTRUDE_DISTANCE|float|round(3)}) %} {% else %} {action_raise_error("EXTRUDE_DISTANCE=%s must be specified as positiv number" % params.EXTRUDE_DISTANCE)} {% endif %} {% endif %} {% if params.RETRACT_DISTANCE %} {% if params.RETRACT_DISTANCE|float >= 0.0 %} {% set _dummy = tl.extruder.update({'retract':params.RETRACT_DISTANCE|float|round(3)}) %} {% else %} {action_raise_error("RETRACT_DISTANCE=%s must be specified as positiv number" % params.RETRACT_DISTANCE)} {% endif %} {% endif %} {% if params.FW_RETRACT %} {% if params.FW_RETRACT|lower is in ['true', 'false'] %} {% if 'firmware_retraction' in printer.configfile.settings %} {% set _dummy = tl.extruder.update({'fw_retract': True if params.FW_RETRACT|lower == 'true' else False}) %} {% else %} {% set _dummy = tl.extruder.update({'fw_retract':False}) %} {% if params.FW_RETRACT|capitalize == 'True' %} {action_raise_error("[firmware_retraction] not defined in printer.cfg. Can not enable fw_retract")} {% endif %} {% endif %} {% else %} {action_raise_error("FW_RETRACT=%s not supported. Allowed values are [True, False]" % params.FW_RETRACT|capitalize)} {% endif %} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=extruder VALUE="{tl.extruder}" {% if printer.configfile.settings['gcode_macro pause'] is defined %} {% set _dummy = tl.macro.update({'pause': printer.configfile.settings['gcode_macro pause'].rename_existing}) %} {% endif %} {% if printer.configfile.settings['gcode_macro resume'] is defined %} {% set _dummy = tl.macro.update({'resume': printer.configfile.settings['gcode_macro resume'].rename_existing}) %} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=macro VALUE="{tl.macro}" [gcode_macro TIMELAPSE_TAKE_FRAME] description = Take Timelapse shoot variable_enable = False variable_takingframe = False variable_park = {'enable': False, 'pos' : 'center', 'time' : 0.1, 'custom': {'x': 0, 'y': 0, 'dz': 0}, 'coord' : {'x': 0, 'y': 0, 'dz': 0}} variable_extruder = {'fw_retract': False, 'retract': 1.0, 'extrude': 1.0} variable_speed = {'travel': 100, 'retract': 15, 'extrude': 15} variable_verbose = True variable_check_time = 0.5 variable_restore = {'absolute': {'coordinates': True, 'extrude': True}, 'speed': 1500, 'e':0, 'factor': {'speed': 1.0, 'extrude': 1.0}} variable_macro = {'pause': 'PAUSE', 'resume': 'RESUME'} variable_is_paused = False gcode = {% set hyperlapse = True if params.HYPERLAPSE and params.HYPERLAPSE|lower =='true' else False %} {% if enable %} {% if (hyperlapse and printer['gcode_macro HYPERLAPSE'].run) or (not hyperlapse and not printer['gcode_macro HYPERLAPSE'].run) %} {% if park.enable %} {% set pos = {'x': 'X' + park.coord.x|string if park.pos != 'y_only' else '', 'y': 'Y' + park.coord.y|string if park.pos != 'x_only' else '', 'z': 'Z'+ [printer.gcode_move.gcode_position.z + park.coord.dz, printer.toolhead.axis_maximum.z]|min|string} %} {% set restore = {'absolute': {'coordinates': printer.gcode_move.absolute_coordinates, 'extrude' : printer.gcode_move.absolute_extrude}, 'speed' : printer.gcode_move.speed, 'e' : printer.gcode_move.gcode_position.e, 'factor' : {'speed' : printer.gcode_move.speed_factor, 'extrude': printer.gcode_move.extrude_factor}} %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=restore VALUE="{restore}" {% if not printer[printer.toolhead.extruder].can_extrude %} {% if verbose %}{action_respond_info("Timelapse: Warning, minimum extruder temperature not reached!")}{% endif %} {% else %} {% if extruder.fw_retract %} G10 {% else %} M83 G0 E-{extruder.retract} F{speed.retract * 60} {% endif %} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=True {macro.pause} SET_GCODE_OFFSET X=0 Y=0 G90 {% if "xyz" not in printer.toolhead.homed_axes %} {% if verbose %}{action_respond_info("Timelapse: Warning, axis not homed yet!")}{% endif %} {% else %} G0 {pos.x} {pos.y} {pos.z} F{speed.travel * 60} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=takingframe VALUE=True UPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={check_time} M400 {% endif %} _TIMELAPSE_NEW_FRAME HYPERLAPSE={hyperlapse} {% endif %} {% else %} {% if verbose %}{action_respond_info("Timelapse: disabled, take frame ignored")}{% endif %} {% endif %} [gcode_macro _TIMELAPSE_NEW_FRAME] description = action call for timelapse shoot. must be a seperate macro gcode = {action_call_remote_method("timelapse_newframe", macropark=printer['gcode_macro TIMELAPSE_TAKE_FRAME'].park, hyperlapse=params.HYPERLAPSE)} [delayed_gcode _WAIT_TIMELAPSE_TAKE_FRAME] gcode = {% set tl = printer['gcode_macro TIMELAPSE_TAKE_FRAME'] %} {% set factor = {'speed': printer.gcode_move.speed_factor, 'extrude': printer.gcode_move.extrude_factor} %} {% if tl.takingframe %} UPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={tl.check_time} {% else %} {tl.macro.resume} VELOCITY={tl.speed.travel} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=False {% if not printer[printer.toolhead.extruder].can_extrude %} {action_respond_info("Timelapse: Warning minimum extruder temperature not reached!")} {% else %} {% if tl.extruder.fw_retract %} G11 {% else %} G0 E{tl.extruder.extrude} F{tl.speed.extrude * 60} G0 F{tl.restore.speed} {% if tl.restore.absolute.extrude %} M82 G92 E{tl.restore.e} {% endif %} {% endif %} {% endif %} {% if tl.restore.factor.speed != factor.speed %} M220 S{(factor.speed*100)|round(0)} {% endif %} {% if tl.restore.factor.extrude != factor.extrude %} M221 S{(factor.extrude*100)|round(0)} {% endif %} {% if not tl.restore.absolute.coordinates %} G91 {% endif %} {% endif %} [gcode_macro HYPERLAPSE] description = Start/Stop a hyperlapse recording variable_cycle = 0 variable_run = False gcode = {% set cycle = params.CYCLE|default(30)|int %} {% if params.ACTION and params.ACTION|lower == 'start' %} {action_respond_info("Hyperlapse: frames started (Cycle %d sec)" % cycle)} SET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=True SET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=cycle VALUE={cycle} UPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={cycle} TIMELAPSE_TAKE_FRAME HYPERLAPSE=True {% elif params.ACTION and params.ACTION|lower == 'stop' %} {% if run %}{action_respond_info("Hyperlapse: frames stopped")}{% endif %} SET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=False UPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION=0 {% else %} {action_raise_error("Hyperlapse: No valid input parameter Use: - HYPERLAPSE ACTION=START [CYCLE=time] - HYPERLAPSE ACTION=STOP")} {% endif %} [delayed_gcode _HYPERLAPSE_LOOP] gcode = UPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={printer["gcode_macro HYPERLAPSE"].cycle} TIMELAPSE_TAKE_FRAME HYPERLAPSE=True [gcode_macro TIMELAPSE_RENDER] description = Render Timelapse video and wait for the result variable_render = False variable_run_identifier = 0 gcode = {action_respond_info("Timelapse: Rendering started")} {action_call_remote_method("timelapse_render", byrendermacro="True")} SET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=render VALUE=True {printer.configfile.settings['gcode_macro pause'].rename_existing} UPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5 [delayed_gcode _WAIT_TIMELAPSE_RENDER] gcode = {% set ri = printer['gcode_macro TIMELAPSE_RENDER'].run_identifier % 4 %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=run_identifier VALUE={ri + 1} {% if printer['gcode_macro TIMELAPSE_RENDER'].render %} M117 Rendering {['-','\\','|','/'][ri]} UPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5 {% else %} {action_respond_info("Timelapse: Rendering finished")} M117 {printer.configfile.settings['gcode_macro resume'].rename_existing} {% endif %} [gcode_macro TEST_STREAM_DELAY] description = Helper macro to find stream and park delay gcode = {% set min = printer.toolhead.axis_minimum %} {% set max = printer.toolhead.axis_maximum %} {% set act = printer.toolhead.position %} {% set tl = printer['gcode_macro TIMELAPSE_TAKE_FRAME'] %} {% if act.z > 5.0 %} G0 X{min.x + 5.0} F{tl.speed.travel|int * 60} G0 X{(max.x-min.x)/2} G4 P{tl.park.time|float * 1000} _TIMELAPSE_NEW_FRAME HYPERLAPSE=FALSE G0 X{max.x - 5.0} {% else %} {action_raise_error("Toolhead z %.3f to low. Please place head above z = 5.0" % act.z)} {% endif %} [save_variables] filename = /usr/data/printer_data/config/Helper-Script/variables.cfg [respond] [gcode_macro SET_GCODE_OFFSET] description = Saving Z-Offset rename_existing = _SET_GCODE_OFFSET gcode = {% if printer.save_variables.variables.zoffset %} {% set zoffset = printer.save_variables.variables.zoffset %} {% else %} {% set zoffset = {'z': None} %} {% endif %} {% set ns = namespace(zoffset={'z': zoffset.z}) %} _SET_GCODE_OFFSET {% for p in params %}{'%s=%s '% (p, params[p])}{% endfor %} {%if 'Z' in params %}{% set null = ns.zoffset.update({'z': params.Z}) %}{% endif %} {%if 'Z_ADJUST' in params %} {%if ns.zoffset.z == None %}{% set null = ns.zoffset.update({'z': 0}) %}{% endif %} {% set null = ns.zoffset.update({'z': (ns.zoffset.z | float) + (params.Z_ADJUST | float)}) %} {% endif %} SAVE_VARIABLE VARIABLE=zoffset VALUE="{ns.zoffset}" [delayed_gcode LOAD_GCODE_OFFSETS] initial_duration = 2 gcode = {% if printer.save_variables.variables.zoffset %} {% set zoffset = printer.save_variables.variables.zoffset %} _SET_GCODE_OFFSET {% for axis, offset in zoffset.items() if zoffset[axis] %}{ "%s=%s " % (axis, offset) }{% endfor %} RESPOND TYPE=command MSG="Loaded Z-Offset from variables.cfg: {zoffset.z}mm" {% endif %} [calibrate_shaper_config] [gcode_shell_command resonance_graph] command = /usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/calibrate_shaper.py timeout = 600.0 verbose = False [gcode_shell_command belts_graph] command = /usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/graph_belts.py timeout = 600.0 verbose = False [gcode_shell_command delete_graph] command = sh /usr/data/helper-script/files/improved-shapers/delete_graph.sh timeout = 600.0 verbose = False [gcode_shell_command delete_csv] command = sh /usr/data/helper-script/files/improved-shapers/delete_csv.sh timeout = 600.0 verbose = False [gcode_macro INPUT_SHAPER_CALIBRATION] description = Measure X and Y Axis Resonances and Save values gcode = {% if printer["configfile"].config["temperature_fan mcu_fan"] %} SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30 {% endif %} {% if printer.toolhead.homed_axes != "xyz" %} RESPOND TYPE=command MSG="Homing..." G28 {% endif %} RESPOND TYPE=command MSG="Measuring X and Y Resonances..." SHAPER_CALIBRATE M400 {% if printer["configfile"].config["temperature_fan mcu_fan"] %} SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50 {% endif %} RUN_SHELL_COMMAND CMD=delete_csv RESPOND TYPE=command MSG="Input Shaper Calibration complete!" SAVE_CONFIG [gcode_macro TEST_RESONANCES_GRAPHS] description = Test X and Y Axis Resonances and Generate Graphs gcode = RUN_SHELL_COMMAND CMD=delete_graph {% set x_png = params.X_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_x.png") %} {% set y_png = params.Y_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_y.png") %} {% if printer["configfile"].config["temperature_fan mcu_fan"] %} SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30 {% endif %} {% if printer.toolhead.homed_axes != "xyz" %} RESPOND TYPE=command MSG="Homing..." G28 {% endif %} RESPOND TYPE=command MSG="Testing X Resonances..." TEST_RESONANCES AXIS=X NAME=x M400 RESPOND TYPE=command MSG="Generating X Graph... This may take some time." RUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_x_x.csv -o {x_png}" RESPOND TYPE=command MSG="X Graph (resonances_x.png) is now available in /Helper-Script/improved-shapers folder." RESPOND TYPE=command MSG="Testing Y Resonances..." TEST_RESONANCES AXIS=Y NAME=y M400 RESPOND TYPE=command MSG="Generating Y Graph... This may take some time." RUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_y_y.csv -o {y_png}" RESPOND TYPE=command MSG="Y Graph (resonances_y.png) is now available in /Helper-Script/improved-shapers folder." {% if printer["configfile"].config["temperature_fan mcu_fan"] %} SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50 {% endif %} RUN_SHELL_COMMAND CMD=delete_csv RESPOND TYPE=command MSG="Resonances Test complete!" [gcode_macro BELTS_SHAPER_CALIBRATION] description = Perform a custom half-axis test to analyze and compare the frequency profiles of individual belts on CoreXY printers gcode = RUN_SHELL_COMMAND CMD=delete_graph {% set min_freq = params.FREQ_START|default(5)|float %} {% set max_freq = params.FREQ_END|default(133.33)|float %} {% set hz_per_sec = params.HZ_PER_SEC|default(1)|float %} {% set png_width = params.PNG_WIDTH|default(8)|float %} {% set png_height = params.PNG_HEIGHT|default(4.8)|float %} {% set png_out_path = params.PNG_OUT_PATH|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/belts_calibration.png") %} {% if printer["configfile"].config["temperature_fan mcu_fan"] %} SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30 {% endif %} {% if printer.toolhead.homed_axes != "xyz" %} RESPOND TYPE=command MSG="Homing..." G28 {% endif %} TEST_RESONANCES AXIS=1,1 OUTPUT=raw_data NAME=b FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec} M400 TEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data NAME=a FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec} M400 RESPOND TYPE=command MSG="Generating Belts Frequency Profiles Graph... This may take some time." RUN_SHELL_COMMAND CMD=belts_graph PARAMS="-w {png_width} -l {png_height} -n -o {png_out_path} -k /usr/share/klipper /tmp/raw_data_axis=1.000,-1.000_a.csv /tmp/raw_data_axis=1.000,1.000_b.csv" RESPOND TYPE=command MSG="Graph (belts_calibration.png) is now available in /Helper-Script/improved-shapers folder." {% if printer["configfile"].config["temperature_fan mcu_fan"] %} SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50 {% endif %} RUN_SHELL_COMMAND CMD=delete_csv RESPOND TYPE=command MSG="Belts Shaper Calibration complete!" [gcode_macro EXCITATE_AXIS_AT_FREQ] description = Maintain a specified excitation frequency for a period of time to diagnose and locate a vibration source gcode = {% set frequency = params.FREQUENCY|default(25)|int %} {% set time = params.TIME|default(10)|int %} {% set axis = params.AXIS|default("x")|string|lower %} {% if axis not in ["x", "y", "a", "b"] %} { action_raise_error("AXIS selection is invalid. Should be either x, y, a or b!") } {% endif %} {% if axis == "a" %} {% set axis = "1,-1" %} {% elif axis == "b" %} {% set axis = "1,1" %} {% endif %} {% if printer.toolhead.homed_axes != "xyz" %} RESPOND TYPE=command MSG="Homing..." G28 {% endif %} TEST_RESONANCES OUTPUT=raw_data AXIS={axis} FREQ_START={frequency-1} FREQ_END={frequency+1} HZ_PER_SEC={1/(time/3)} M400 [duplicate_pin_override] pins = PC0, PC5, PB2, ADC_TEMPERATURE [temperature_fan chamber_fan] pin = PC0 cycle_time = 0.0100 hardware_pwm = false max_power = 1 shutdown_speed = 0 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC5 min_temp = 0 max_temp = 70 control = watermark max_delta = 2 target_temp = 35.0 max_speed = 1.0 min_speed = 0.0 [temperature_fan mcu_fan] pin = PB2 cycle_time = 0.0100 hardware_pwm = false max_power = 1 shutdown_speed = 0 sensor_type = temperature_mcu min_temp = 0 max_temp = 100 control = watermark max_delta = 2 target_temp = 50.0 max_speed = 1.0 min_speed = 0.0 [output_pin mcu_fan] pin = PB2 pwm = True cycle_time = 0.0100 hardware_pwm = false value = 0.00 scale = 255 shutdown_value = 0.0 [gcode_macro M141] description = Set Chamber Temperature with slicers gcode = {% set s = params.S|float %} SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=chamber_fan TARGET={s} RESPOND TYPE=command MSG="Chamber target temperature: {s}°C" [gcode_macro M191] description = Wait for Chamber Temperature to heat up gcode = {% set s = params.S|float %} {% set chamber_temp = printer["temperature_sensor chamber_temp"].temperature|float %} {% if s > 0 %} M141 S{s} {% endif %} {% if s > chamber_temp and s <= 90 %} M140 S100 RESPOND TYPE=command MSG="Waiting for the bed to heat up the chamber..." TEMPERATURE_WAIT SENSOR="temperature_fan chamber_fan" MINIMUM={s-1} RESPOND TYPE=command MSG="Chamber target temperature reached: {s}°C" M140 S{s} {% endif %} [gcode_macro M106] gcode = {% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %} {% set fan = 0 %} {% set value = 0 %} {% if params.P is defined %} {% set tmp = params.P|int %} {% if tmp < fans %} {% set fan = tmp %} {% endif %} {% endif %} {% if params.S is defined %} {% set tmp = params.S|float %} {% else %} {% set tmp = 255 %} {% endif %} {% if tmp > 0 %} {% if fan == 0 %} {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %} {% if printer['gcode_macro Qmode'].flag | int == 1 %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan0_min + value} {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} {% else %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %} {% endif %} {% else %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %} {% endif %} {% endif %} {% if fan == 1 %} {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan1_min) / 255 * tmp %} {% if printer['gcode_macro Qmode'].flag | int == 1 %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan1_min + value} {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} {% else %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %} {% endif %} {% else %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %} {% endif %} {% endif %} {% if fan == 2 %} {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) / 255 * tmp %} {% if printer['gcode_macro Qmode'].flag | int == 1 %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan2_min + value} {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} {% else %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %} {% endif %} {% else %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %} {% endif %} {% endif %} {% endif %} {% if value >= 255 %} {% set value = 255 %} {% endif %} {% if params.P is defined and params.P|int == 3 %} {% set fan = 1 %} {% endif %} SET_PIN PIN=fan{fan} VALUE={value} [prtouch_v2_fan] max_speed = 0.5 [output_pin KAMP] pin = virtual_pin:KAMP_pin value = 1 [output_pin BED_LEVELING] pin = virtual_pin:BED_LEVELING_pin value = 1 [gcode_macro START_PRINT] variable_prepare = 0 gcode = WAIT_TEMP_END CLEAR_PAUSE {% set g28_extruder_temp = printer.custom_macro.g28_ext_temp %} {% set bed_temp = printer.custom_macro.default_bed_temp %} {% set extruder_temp = printer.custom_macro.default_extruder_temp %} {% if 'BED_TEMP' in params|upper and (params.BED_TEMP|float) %} {% set bed_temp = params.BED_TEMP %} {% endif %} {% if 'EXTRUDER_TEMP' in params|upper and (params.EXTRUDER_TEMP|float) %} {% set extruder_temp = params.EXTRUDER_TEMP %} {% endif %} {% if printer['gcode_macro START_PRINT'].prepare|int == 0 %} PRINT_PREPARE_CLEAR CX_ROUGH_G28 EXTRUDER_TEMP={extruder_temp} BED_TEMP={bed_temp} CX_NOZZLE_CLEAR ACCURATE_G28 {% if printer['output_pin KAMP'].value == 1 %} RESPOND TYPE=command MSG="Starting KAMP Bed Mesh..." BED_MESH_CLEAR BED_MESH_CALIBRATE BED_MESH_PROFILE SAVE=kamp BED_MESH_PROFILE LOAD=kamp {% else %} {% if printer['output_pin BED_LEVELING'].value == 1 %} RESPOND TYPE=command MSG="Starting Full Bed Mesh..." CX_PRINT_LEVELING_CALIBRATION {% endif %} BED_MESH_PROFILE LOAD=default {% endif %} {% else %} PRINT_PREPARE_CLEAR {% endif %} {% if printer['output_pin KAMP'].value == 1 %} _SMART_PARK M109 S{extruder_temp} M190 S{bed_temp} RESPOND TYPE=command MSG="Starting KAMP line purge..." _LINE_PURGE {% else %} RESPOND TYPE=command MSG="Starting classic line purge..." CX_PRINT_DRAW_ONE_LINE {% endif %} SET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel} [gcode_macro BED_MESH_CALIBRATE] rename_existing = _BED_MESH_CALIBRATE gcode = {% set all_points = printer.exclude_object.objects | map(attribute='polygon') | sum(start=[]) %} {% set bed_mesh_min = printer.configfile.settings.bed_mesh.mesh_min %} {% set bed_mesh_max = printer.configfile.settings.bed_mesh.mesh_max %} {% set probe_count = printer.configfile.settings.bed_mesh.probe_count %} {% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %} {% set verbose_enable = kamp_settings.verbose_enable | abs %} {% set mesh_margin = kamp_settings.mesh_margin | float %} {% set fuzz_amount = kamp_settings.fuzz_amount | float %} {% set probe_count = probe_count if probe_count|length > 1 else probe_count * 2 %} {% set max_probe_point_distance_x = ( bed_mesh_max[0] - bed_mesh_min[0] ) / (probe_count[0] - 1) %} {% set max_probe_point_distance_y = ( bed_mesh_max[1] - bed_mesh_min[1] ) / (probe_count[1] - 1) %} {% set x_min = all_points | map(attribute=0) | min | default(bed_mesh_min[0]) %} {% set y_min = all_points | map(attribute=1) | min | default(bed_mesh_min[1]) %} {% set x_max = all_points | map(attribute=0) | max | default(bed_mesh_max[0]) %} {% set y_max = all_points | map(attribute=1) | max | default(bed_mesh_max[1]) %} {% set fuzz_range = range((0) | int, (fuzz_amount * 100) | int + 1) %} {% set adapted_x_min = x_min - mesh_margin - (fuzz_range | random / 100.0) %} {% set adapted_y_min = y_min - mesh_margin - (fuzz_range | random / 100.0) %} {% set adapted_x_max = x_max + mesh_margin + (fuzz_range | random / 100.0) %} {% set adapted_y_max = y_max + mesh_margin + (fuzz_range | random / 100.0) %} {% set adapted_x_min = [adapted_x_min , bed_mesh_min[0]] | max %} {% set adapted_y_min = [adapted_y_min , bed_mesh_min[1]] | max %} {% set adapted_x_max = [adapted_x_max , bed_mesh_max[0]] | min %} {% set adapted_y_max = [adapted_y_max , bed_mesh_max[1]] | min %} {% set points_x = (((adapted_x_max - adapted_x_min) / max_probe_point_distance_x) | round(method='ceil') | int) + 1 %} {% set points_y = (((adapted_y_max - adapted_y_min) / max_probe_point_distance_y) | round(method='ceil') | int) + 1 %} {% if (points_x > points_y) %} {% set points_y = points_x %} {% endif %} {% if (points_x < points_y) %} {% set points_x = points_y %} {% endif %} {% if (([points_x, points_y]|max) > 6) %} {% set algorithm = "bicubic" %} {% set min_points = 4 %} {% else %} {% set algorithm = "lagrange" %} {% set min_points = 3 %} {% endif %} {% set points_x = [points_x , min_points]|max %} {% set points_y = [points_y , min_points]|max %} {% set points_x = [points_x , probe_count[0]]|min %} {% set points_y = [points_y , probe_count[1]]|min %} {% if verbose_enable == True %} {% if printer.exclude_object.objects != [] %} RESPOND TYPE=command MSG="Algorithm: {algorithm}" RESPOND TYPE=command MSG="Default probe count: {probe_count[0]},{probe_count[1]}" RESPOND TYPE=command MSG="Adapted probe count: {points_x},{points_y}" RESPOND TYPE=command MSG="Default mesh bounds: {bed_mesh_min[0]},{bed_mesh_min[1]}, {bed_mesh_max[0]},{bed_mesh_max[1]}" {% if mesh_margin > 0 %} RESPOND TYPE=command MSG="Mesh margin is {mesh_margin}, mesh bounds extended by {mesh_margin}mm." {% else %} RESPOND TYPE=command MSG="Mesh margin is 0, margin not increased." {% endif %} {% if fuzz_amount > 0 %} RESPOND TYPE=command MSG="Mesh point fuzzing enabled, points fuzzed up to {fuzz_amount}mm" {% else %} RESPOND TYPE=command MSG="Fuzz amount is 0, mesh points not fuzzed." {% endif %} RESPOND TYPE=command MSG="Adapted mesh bounds: {adapted_x_min},{adapted_y_min}, {adapted_x_max},{adapted_y_max}" RESPOND TYPE=command MSG="KAMP adjustments successful. Happy KAMPing!" {% else %} RESPOND TYPE=command MSG="No object detected! Make sure you have enabled Exclude Objets setting in your slicer. Using Full Bed Mesh." G4 P5000 {% endif %} {% endif %} _BED_MESH_CALIBRATE mesh_min={adapted_x_min},{adapted_y_min} mesh_max={adapted_x_max},{adapted_y_max} ALGORITHM={algorithm} PROBE_COUNT={points_x},{points_y} [gcode_macro _LINE_PURGE] description = A purge macro that adapts to be near your actual printed objects gcode = {% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %} {% set cross_section = printer.configfile.settings.extruder.max_extrude_cross_section | float %} {% if printer.firmware_retraction is defined %} {% set RETRACT = G10 | string %} {% set UNRETRACT = G11 | string %} {% else %} {% set RETRACT = 'G1 E-0.5 F2400' | string %} {% set UNRETRACT = 'G1 E0.5 F2400' | string %} {% endif %} {% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %} {% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %} {% set verbose_enable = printer["gcode_macro _KAMP_Settings"].verbose_enable | abs %} {% set purge_height = printer["gcode_macro _KAMP_Settings"].purge_height | float %} {% set tip_distance = printer["gcode_macro _KAMP_Settings"].tip_distance | float %} {% set purge_margin = printer["gcode_macro _KAMP_Settings"].purge_margin | float %} {% set purge_amount = printer["gcode_macro _KAMP_Settings"].purge_amount | float %} {% set flow_rate = printer["gcode_macro _KAMP_Settings"].flow_rate | float %} {% set rapid_move = 10 %} {% set all_points = printer.exclude_object.objects | map(attribute='polygon') | sum(start=[]) %} {% set purge_x_min = (all_points | map(attribute=0) | min | default(0)) %} {% set purge_x_max = (all_points | map(attribute=0) | max | default(0)) %} {% set purge_y_min = (all_points | map(attribute=1) | min | default(0)) %} {% set purge_y_max = (all_points | map(attribute=1) | max | default(0)) %} {% set detect_object = purge_x_min + purge_x_max + purge_y_min + purge_y_max %} {% set purge_x_center = ([((purge_x_max + purge_x_min) / 2) - (purge_amount / 2), 0] | max) %} {% set purge_y_center = ([((purge_y_max + purge_y_min) / 2) - (purge_amount / 2), 0] | max) %} {% if (purge_x_center + purge_amount + rapid_move) > bed_x_max %} {% set purge_x_center = (bed_x_max - (purge_amount + rapid_move)) %} {% endif %} {% if (purge_y_center + purge_amount + rapid_move) > bed_y_max %} {% set purge_y_center = (bed_y_max - (purge_amount + rapid_move)) %} {% endif %} {% set purge_x_origin_low = (purge_x_min - purge_margin) %} {% set purge_x_origin_high = (purge_x_max + purge_margin) %} {% set purge_y_origin_low = (purge_y_min - purge_margin) %} {% set purge_y_origin_high = (purge_y_max + purge_margin) %} {% set purge_move_speed = (flow_rate / 5.0) * 60 | float %} {% if cross_section < 5 %} RESPOND TYPE=command MSG="[Extruder] max_extrude_cross_section is insufficient for line purge, please set it to 5 or greater. Purge skipped." {% else %} {% if verbose_enable == True %} RESPOND TYPE=command MSG="Moving filament tip {tip_distance}mm" {% endif %} {% if detect_object == 0 %} RESPOND TYPE=command MSG="No object detected! Using classic purge line." {% elif purge_y_origin_low > 0 %} RESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_low} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s." {% elif purge_x_origin_low > 0 %} RESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_low}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s." {% elif purge_y_origin_high < bed_y_max %} RESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_high} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s." {% elif purge_x_origin_high < bed_x_max %} RESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_high}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s." {% else %} RESPOND TYPE=command MSG="No space for purge line! Using classic purge line." {% endif %} SAVE_GCODE_STATE NAME=Prepurge_State {% if detect_object == 0 %} G92 E0 G1 Z0.1 F600 M83 {RETRACT} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5 M204 S12000 SET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000 M220 S100 M221 S100 G1 Z2.0 F1200 G1 X0.1 Y20 Z0.3 F6000.0 G1 X0.1 Y180.0 Z0.3 F3000.0 E10.0 G1 X0.4 Y180.0 Z0.3 F3000.0 G1 X0.4 Y20.0 Z0.3 F3000.0 E10.0 G1 Y10.0 F3000.0 G1 Z2.0 F3000.0 G92 E0 M82 G1 F12000 G21 {% elif purge_y_origin_low > 0 %} G92 E0 G0 F{travel_speed} G90 G0 X{purge_x_center} Y{purge_y_origin_low} G0 Z{purge_height} M83 G1 E{tip_distance} F{purge_move_speed} G1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed} {RETRACT} G0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed} G92 E0 M82 G0 Z{purge_height * 2} F{travel_speed} {% elif purge_x_origin_low > 0 %} G92 E0 G0 F{travel_speed} G90 G0 X{purge_x_origin_low} Y{purge_y_center} G0 Z{purge_height} M83 G1 E{tip_distance} F{purge_move_speed} G1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed} {RETRACT} G0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed} G92 E0 M82 G0 Z{purge_height * 2} F{travel_speed} {% elif purge_y_origin_high < bed_y_max %} G92 E0 G0 F{travel_speed} G90 G0 X{purge_x_center} Y{purge_y_origin_high} G0 Z{purge_height} M83 G1 E{tip_distance} F{purge_move_speed} G1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed} {RETRACT} G0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed} G92 E0 M82 G0 Z{purge_height * 2} F{travel_speed} {% elif purge_x_origin_high < bed_x_max %} G92 E0 G0 F{travel_speed} G90 G0 X{purge_x_origin_high} Y{purge_y_center} G0 Z{purge_height} M83 G1 E{tip_distance} F{purge_move_speed} G1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed} {RETRACT} G0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed} G92 E0 M82 G0 Z{purge_height * 2} F{travel_speed} {% else %} G92 E0 G1 Z0.1 F600 M83 {RETRACT} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5 M204 S12000 SET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000 M220 S100 M221 S100 G1 Z2.0 F1200 G1 X0.1 Y20 Z0.3 F6000.0 G1 X0.1 Y180.0 Z0.3 F3000.0 E10.0 G1 X0.4 Y180.0 Z0.3 F3000.0 G1 X0.4 Y20.0 Z0.3 F3000.0 E10.0 G1 Y10.0 F3000.0 G1 Z2.0 F3000.0 G92 E0 M82 G1 F12000 G21 {% endif %} RESTORE_GCODE_STATE NAME=Prepurge_State {% endif %} [gcode_macro _SMART_PARK] description = Parks your printhead near the print area for pre-print hotend heating. gcode = {% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %} {% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %} {% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %} {% set z_height = kamp_settings.smart_park_height | float %} {% set purge_margin = kamp_settings.purge_margin | float %} {% set purge_amount = kamp_settings.purge_amount | float %} {% set verbose_enable = kamp_settings.verbose_enable | abs %} {% set center_x = bed_x_max / 2 %} {% set center_y = bed_y_max / 2 %} {% set axis_minimum_x = printer.toolhead.axis_minimum.x | float %} {% set axis_minimum_y = printer.toolhead.axis_minimum.y | float %} {% set all_points = printer.exclude_object.objects | map(attribute='polygon') | sum(start=[]) %} {% set x_min = (all_points | map(attribute=0) | min | default(0)) %} {% set x_max = (all_points | map(attribute=0) | max | default(0)) %} {% set y_min = (all_points | map(attribute=1) | min | default(0)) %} {% set y_max = (all_points | map(attribute=1) | max | default(0)) %} {% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %} {% set rapid_move = 10 %} {% set park_x_center = ([((x_max + x_min) / 2) - (purge_amount / 2), 0] | max) %} {% set park_y_center = ([((y_max + y_min) / 2) - (purge_amount / 2), 0] | max) %} {% if (park_x_center + purge_amount + rapid_move) > bed_x_max %} {% set park_x_center = (bed_x_max - (purge_amount + rapid_move)) %} {% endif %} {% if (park_y_center + purge_amount + rapid_move) > bed_y_max %} {% set park_y_center = (bed_y_max - (purge_amount + rapid_move)) %} {% endif %} {% set park_x_origin_low = (x_min - purge_margin) %} {% set park_x_origin_high = (x_max + purge_margin) %} {% set park_y_origin_low = (y_min - purge_margin) %} {% set park_y_origin_high = (y_max + purge_margin) %} {% set detect_object = (x_min + x_max + y_min + y_max) %} {% if detect_object == 0 %} {% set x_min = 10 %} {% set y_min = 10 %} {% set z_height = 2 %} {% elif park_y_origin_low > 0 %} {% set x_min = park_x_center %} {% set y_min = park_y_origin_low %} {% elif park_x_origin_low > 0 %} {% set x_min = park_x_origin_low %} {% set y_min = park_y_center %} {% elif park_y_origin_high < bed_y_max %} {% set x_min = park_x_center %} {% set y_min = park_y_origin_high %} {% elif park_x_origin_high < bed_x_max %} {% set x_min = park_x_origin_high %} {% set y_min = park_y_center %} {% else %} {% set x_min = 10 %} {% set y_min = 10 %} {% set z_height = 2 %} {% endif %} {% if verbose_enable == True %} RESPOND TYPE=command MSG="Smart Park location: {x_min},{y_min}" {% endif %} SAVE_GCODE_STATE NAME=Presmartpark_State G90 {% if printer.toolhead.position.z < z_height %} G0 Z{z_height} {% endif %} G0 X{x_min} Y{y_min} F{travel_speed} G0 Z{z_height} RESTORE_GCODE_STATE NAME=Presmartpark_State [gcode_macro DEFINE_OBJECT] gcode = EXCLUDE_OBJECT_DEFINE {rawparams} [gcode_macro START_CURRENT_OBJECT] gcode = EXCLUDE_OBJECT_START NAME={params.NAME} [gcode_macro END_CURRENT_OBJECT] gcode = EXCLUDE_OBJECT_END {% if params.NAME %}NAME={params.NAME}{% endif %} [gcode_macro LIST_OBJECTS] gcode = EXCLUDE_OBJECT_DEFINE [gcode_macro LIST_EXCLUDED_OBJECTS] gcode = EXCLUDE_OBJECT [gcode_macro REMOVE_ALL_EXCLUDED] gcode = EXCLUDE_OBJECT RESET=1 [gcode_macro _KAMP_Settings] description = This macro contains all adjustable settings for KAMP variable_verbose_enable = True variable_mesh_margin = 0 variable_fuzz_amount = 0 variable_purge_height = 0.8 variable_tip_distance = 0 variable_purge_margin = 10 variable_purge_amount = 50 variable_flow_rate = 12 variable_smart_park_height = 10 gcode = RESPOND TYPE=command MSG="Running the KAMP_Settings macro does nothing, it's only used for storing KAMP settings." [mcu] serial = /dev/ttyS7 baud = 230400 restart_method = command [mcu nozzle_mcu] serial = /dev/ttyS1 baud = 230400 restart_method = command [mcu leveling_mcu] serial = /dev/ttyS9 baud = 230400 restart_method = command [verify_heater extruder] [verify_heater heater_bed] check_gain_time = 120 heating_gain = 1.0 hysteresis = 10 [mcu rpi] serial = /tmp/klipper_host_mcu [bl24c16f] i2c_mcu = rpi i2c_bus = i2c.2 i2c_speed = 400000 [idle_timeout] timeout = 99999999 [virtual_sdcard] path = /usr/data/printer_data/gcodes [gcode_arcs] resolution = 1.0 [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 100 [temperature_sensor chamber_temp] sensor_type = EPCOS 100K B57560G104F sensor_pin = PC5 min_temp = 0 max_temp = 125 [stepper_x] step_pin = PC2 dir_pin = !PB9 enable_pin = !PC3 microsteps = 32 rotation_distance = 72 endstop_pin = tmc2209_stepper_x:virtual_endstop position_endstop = 306.5 position_min = -2 position_max = 306.5 homing_speed = 36 homing_retract_dist = 0 [tmc2209 stepper_x] uart_pin = PA9 interpolate = True run_current = 1.5 hold_current = 1.0 sense_resistor = 0.100 stealthchop_threshold = 0 uart_address = 3 diag_pin = ^PB12 driver_sgthrs = 65 [stepper_y] step_pin = PB8 dir_pin = !PB7 enable_pin = !PC3 microsteps = 32 rotation_distance = 72 endstop_pin = tmc2209_stepper_y:virtual_endstop position_endstop = -2 position_min = -2 position_max = 306 homing_speed = 36 homing_retract_dist = 0 [tmc2209 stepper_y] uart_pin = PA10 interpolate = True run_current = 1.5 hold_current = 1.0 sense_resistor = 0.100 stealthchop_threshold = 0 uart_address = 3 diag_pin = ^PB13 driver_sgthrs = 65 [stepper_z] step_pin = PB6 dir_pin = !PB5 enable_pin = !PC3 microsteps = 16 rotation_distance = 8 gear_ratio = 64:20 endstop_pin = tmc2209_stepper_z:virtual_endstop position_endstop = 0 position_max = 305 position_min = -10 homing_speed = 10 second_homing_speed = 1 homing_retract_dist = 2.0 [tmc2209 stepper_z] uart_pin = PA11 uart_address = 3 run_current = 0.8 diag_pin = ^PB14 stealthchop_threshold = 0 sense_resistor = 0.100 driver_sgthrs = 0 [extruder] max_extrude_only_distance = 1000.0 max_extrude_cross_section = 80 step_pin = nozzle_mcu:PB1 dir_pin = nozzle_mcu:PB0 enable_pin = !nozzle_mcu:PB2 microsteps = 16 rotation_distance = 6.9 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = nozzle_mcu:PB7 sensor_type = EPCOS 100K B57560G104F sensor_pin = nozzle_mcu:PA0 pressure_advance = 0.04 pressure_advance_smooth_time = 0.040 control = pid pid_kp = 25.013 pid_ki = 2.566 pid_kd = 60.966 min_temp = 0 max_temp = 320 [tmc2209 extruder] uart_pin = nozzle_mcu:PB11 tx_pin = nozzle_mcu:PB10 uart_address = 3 run_current = 0.55 sense_resistor = 0.150 stealthchop_threshold = 0 [heater_bed] heater_pin = PC8 sensor_type = NTC 100K beta 3950 sensor_pin = PC4 min_temp = 0 max_temp = 125 control = pid pid_kp = 53.795 pid_ki = 0.525 pid_kd = 1377.827 [filament_switch_sensor filament_sensor] pause_on_runout = true switch_pin = !PC15 runout_gcode = {% if printer.extruder.can_extrude|lower == 'true' %} G91 G0 E30 F600 G90 {% endif %} [filament_switch_sensor filament_sensor_2] pause_on_runout = true switch_pin = !nozzle_mcu:PA10 [multi_pin heater_fans] pins = nozzle_mcu:PB5,PB2 [heater_fan hotend_fan] pin = multi_pin:heater_fans heater = extruder heater_temp = 40 [static_digital_output my_fan_output_pins] pins = nozzle_mcu: PB6 [output_pin fan0] pin = !nozzle_mcu: PB8 pwm = True cycle_time = 0.0100 hardware_pwm = false value = 0.00 scale = 255 shutdown_value = 0.0 [output_pin fan1] pin = PC0 pwm = True cycle_time = 0.0100 hardware_pwm = false value = 0.00 scale = 255 shutdown_value = 0.0 [output_pin fan2] pin = PB1 pwm = True cycle_time = 0.0100 hardware_pwm = false value = 0.00 scale = 255 shutdown_value = 0.0 [output_pin LED] pin = PB0 pwm = True cycle_time = 0.010 value = 1 [output_pin power] pin = PC9 [adxl345] cs_pin = nozzle_mcu:PA4 spi_speed = 5000000 axes_map = x,-z,y spi_software_sclk_pin = nozzle_mcu:PA5 spi_software_mosi_pin = nozzle_mcu:PA7 spi_software_miso_pin = nozzle_mcu:PA6 [resonance_tester] accel_chip = adxl345 accel_per_hz = 75 probe_points = 150,150,10 [prtouch_v2] pr_version = 2 step_base = 2 z_offset = 0 noz_ex_com = 0.09 tilt_corr_dis = 0.05 tri_min_hold = 6000,10000 tri_max_hold = 13000,60000 pres_cnt = 4 pres0_clk_pins = leveling_mcu:PA7 pres0_sdo_pins = leveling_mcu:PA4 pres1_clk_pins = leveling_mcu:PA6 pres1_sdo_pins = leveling_mcu:PA3 pres2_clk_pins = leveling_mcu:PA2 pres2_sdo_pins = leveling_mcu:PA0 pres3_clk_pins = leveling_mcu:PA5 pres3_sdo_pins = leveling_mcu:PA1 show_msg = False step_swap_pin = PC10 pres_swap_pin = leveling_mcu:PB1 g28_wait_cool_down = true pa_clr_down_mm = -0.15 clr_noz_start_x = 130 clr_noz_start_y = 303 clr_noz_len_x = 40 clr_noz_len_y = 2 speeds = 2.5,1.0 tri_hftr_cut = 2,1 tri_lftr_k1 = 0.50,0.15 tri_min_hold_1 = 6000,10000 tri_min_hold_2 = 6000,10000 tri_min_hold_3 = 6000,10000 tri_min_hold_4 = 6000,10000 tri_min_hold_5 = 6000,10000 tri_min_hold_6 = 6000,10000 tri_min_hold_7 = 6000,10000 tri_min_hold_8 = 6000,10000 tri_min_hold_9 = 6000,10000 tri_min_hold_10 = 6000,10000 tri_min_hold_11 = 6000,10000 tri_min_hold_12 = 6000,10000 tri_min_hold_13 = 6000,10000 tri_min_hold_14 = 6000,10000 tri_min_hold_15 = 6000,10000 tri_min_hold_16 = 6000,10000 tri_min_hold_17 = 6000,10000 tri_min_hold_18 = 6000,10000 tri_min_hold_19 = 6000,10000 tri_min_hold_20 = 6000,10000 tri_min_hold_21 = 6000,10000 tri_min_hold_22 = 6000,10000 tri_min_hold_23 = 6000,10000 tri_min_hold_24 = 6000,10000 tri_min_hold_25 = 6000,10000 tri_min_hold_26 = 6000,10000 tri_min_hold_27 = 6000,10000 tri_min_hold_28 = 6000,10000 tri_min_hold_29 = 6000,10000 tri_min_hold_30 = 6000,10000 tri_min_hold_31 = 6000,10000 tri_min_hold_32 = 6000,10000 tri_min_hold_33 = 6000,10000 tri_min_hold_34 = 6000,10000 tri_min_hold_35 = 6000,10000 tri_min_hold_36 = 6000,10000 tri_max_hold_1 = 13000,60000 tri_max_hold_2 = 13000,60000 tri_max_hold_3 = 13000,60000 tri_max_hold_4 = 13000,60000 tri_max_hold_5 = 13000,60000 tri_max_hold_6 = 13000,60000 tri_max_hold_7 = 13000,60000 tri_max_hold_8 = 13000,60000 tri_max_hold_9 = 13000,60000 tri_max_hold_10 = 13000,60000 tri_max_hold_11 = 13000,60000 tri_max_hold_12 = 13000,60000 tri_max_hold_13 = 13000,60000 tri_max_hold_14 = 13000,60000 tri_max_hold_15 = 13000,60000 tri_max_hold_16 = 13000,60000 tri_max_hold_17 = 13000,60000 tri_max_hold_18 = 13000,60000 tri_max_hold_19 = 13000,60000 tri_max_hold_20 = 13000,60000 tri_max_hold_21 = 13000,60000 tri_max_hold_22 = 13000,60000 tri_max_hold_23 = 13000,60000 tri_max_hold_24 = 13000,60000 tri_max_hold_25 = 13000,60000 tri_max_hold_26 = 13000,60000 tri_max_hold_27 = 13000,60000 tri_max_hold_28 = 13000,60000 tri_max_hold_29 = 13000,60000 tri_max_hold_30 = 13000,60000 tri_max_hold_31 = 13000,60000 tri_max_hold_32 = 13000,60000 tri_max_hold_33 = 13000,60000 tri_max_hold_34 = 13000,60000 tri_max_hold_35 = 13000,60000 tri_max_hold_36 = 13000,60000 [bed_mesh] speed = 150 mesh_min = 5,5 mesh_max = 295,295 probe_count = 6,6 fade_start = 5.0 fade_end = 50.0 [display_status] [printer] kinematics = corexy max_velocity = 800 max_accel = 20000 max_accel_to_decel = 20000 max_z_velocity = 20 square_corner_velocity = 5.0 square_corner_max_velocity = 200.0 max_z_accel = 300 [pause_resume] [exclude_object] [input_shaper] shaper_type_x = 2hump_ei shaper_freq_x = 39.0 shaper_type_y = zv shaper_freq_y = 48.0 ======================= Args: ['/usr/share/klipper/klippy/klippy.py', '/usr/data/printer_data/config/printer.cfg', '-l', '/usr/data/printer_data/logs/klippy.log', '-a', '/tmp/klippy_uds'] Git version: '09faed31-dirty' CPU: 2 core ? Python: '3.8.2 (default, Jan 12 2024, 09:58:17) \n[GCC 7.2.0]' =============== Log rollover at Sat Apr 13 06:50:49 2024 =============== [INFO] 2024-04-13 06:50:49,908 [root] [extruder:__init__:181] Extruder max_extrude_ratio=33.260135 [INFO] 2024-04-13 06:50:49,995 [root] [serialhdl:connect_uart:184] mcu 'mcu': Starting serial connect [INFO] 2024-04-13 06:50:50,005 [root] [reactor:_dispatch_loop:340] _dispatch_loop current nice = -10 [INFO] 2024-04-13 06:50:50,007 [root] [reactor:_dispatch_loop:342] _dispatch_loop new nice = -20 [INFO] 2024-04-13 06:50:50,023 [root] [webhooks:set_client_info:202] webhooks client 1975890968: New connection [INFO] 2024-04-13 06:50:50,024 [root] [webhooks:set_client_info:202] webhooks client 1986688336: New connection [INFO] 2024-04-13 06:50:50,028 [root] [webhooks:_do_send:287] webhooks: socket write error 1975890968 [INFO] 2024-04-13 06:50:50,029 [root] [webhooks:set_client_info:202] webhooks client 1975890968: Disconnected [INFO] 2024-04-13 06:50:50,034 [root] [webhooks:set_client_info:202] webhooks client 1975891136: New connection [INFO] 2024-04-13 06:50:50,036 [root] [webhooks:set_client_info:202] webhooks client 1986688336: Client info {'program': 'Moonraker', 'version': 'v0.8.0-325-g99b97af'} [INFO] 2024-04-13 06:50:50,211 [root] [serialhdl:_bg_thread:40] mcu 'mcu': current nice = -20 [INFO] 2024-04-13 06:50:50,215 [root] [reactor:_dispatch_loop:340] _dispatch_loop current nice = -20 [INFO] 2024-04-13 06:50:50,216 [root] [reactor:_dispatch_loop:342] _dispatch_loop new nice = -20 [INFO] 2024-04-13 06:50:51,088 [root] [mcu:_mcu_identify:828] Loaded MCU 'mcu' 116 commands (1.3.0.40-5-g6977eaff-dirty-20230711_100121-ubuntu / gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34) MCU 'mcu' config: ADC_MAX=4095 CLOCK_FREQ=120000000 INITIAL_PINS=PC7,PB0 MCU=gd32f303xe RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA2,PA3 SERIAL_BAUD=230400 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 build_machine_uid=Jul 11 202310:01:16 [INFO] 2024-04-13 06:50:51,089 [root] [serialhdl:connect_uart:184] mcu 'nozzle_mcu': Starting serial connect [INFO] 2024-04-13 06:50:51,247 [root] [serialhdl:_bg_thread:40] mcu 'nozzle_mcu': current nice = -20 [INFO] 2024-04-13 06:50:51,627 [root] [reactor:_dispatch_loop:340] _dispatch_loop current nice = -20 [INFO] 2024-04-13 06:50:51,629 [root] [reactor:_dispatch_loop:342] _dispatch_loop new nice = -20 [INFO] 2024-04-13 06:50:52,201 [root] [mcu:_mcu_identify:828] Loaded MCU 'nozzle_mcu' 116 commands (1.3.0.40-5-g6977eaff-dirty-20230711_100254-ubuntu / gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34) MCU 'nozzle_mcu' config: ADC_MAX=4095 CLOCK_FREQ=120000000 INITIAL_PINS=!PB5,!PB6,!PB7 MCU=gd32f303xb RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA2,PA3 SERIAL_BAUD=230400 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 build_machine_uid=Jul 11 202310:02:50 [INFO] 2024-04-13 06:50:52,202 [root] [serialhdl:connect_uart:184] mcu 'leveling_mcu': Starting serial connect [INFO] 2024-04-13 06:50:52,376 [root] [serialhdl:_bg_thread:40] mcu 'leveling_mcu': current nice = -20 [INFO] 2024-04-13 06:50:53,253 [root] [mcu:_mcu_identify:828] Loaded MCU 'leveling_mcu' 116 commands (1.3.0.40-5-g6977eaff-dirty-20230711_095416-ubuntu / gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34) MCU 'leveling_mcu' config: ADC_MAX=4095 CLOCK_FREQ=72000000 MCU=gd32e230x8 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA9,PA10 SERIAL_BAUD=230400 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 build_machine_uid=Jul 11 202309:54:12 [INFO] 2024-04-13 06:50:53,255 [root] [serialhdl:connect_pipe:167] mcu 'rpi': Starting connect [INFO] 2024-04-13 06:50:53,260 [root] [serialhdl:_bg_thread:40] mcu 'rpi': current nice = -20 [INFO] 2024-04-13 06:50:53,993 [root] [mcu:_mcu_identify:828] Loaded MCU 'rpi' 104 commands (v0.11.0-372-gb9ad7605 / gcc: (Ingenic Linux-Release5.1.0-Default(xburst2(fp64)+glibc2.29) 2021.12-22 10:52:10) 7.2.0 binutils: (Ingenic Linux-Release5.1.0.-Default(xburst2(fp64)+glibc2.29) 2021.12-22 08:55:37) 2.27) MCU 'rpi' config: ADC_MAX=4095 CLOCK_FREQ=50000000 MCU=linux PCA9685_MAX=4096 PWM_MAX=32768 STATS_SUMSQ_BASE=256 build_machine_uid=May 18 202311:46:31 [INFO] 2024-04-13 06:50:53,996 [root] [temperature_mcu:_mcu_identify:85] mcu_temperature 'mcu' nominal base=378.658537 slope=-804.878049 [INFO] 2024-04-13 06:50:53,997 [root] [temperature_mcu:_mcu_identify:85] mcu_temperature 'mcu' nominal base=378.658537 slope=-804.878049 [INFO] 2024-04-13 06:50:54,035 [root] [mcu:_send_config:728] Sending MCU 'mcu' printer configuration... [INFO] 2024-04-13 06:50:54,059 [root] [serialhdl:handle_output:308] mcu 'mcu': #output: allocMax=3790 usedMax=0 [INFO] 2024-04-13 06:50:54,078 [root] [mcu:_connect:801] Configured MCU 'mcu' (3780 moves) [INFO] 2024-04-13 06:50:54,089 [root] [mcu:_send_config:728] Sending MCU 'nozzle_mcu' printer configuration... [INFO] 2024-04-13 06:50:54,103 [root] [serialhdl:handle_output:308] mcu 'nozzle_mcu': #output: allocMax=1800 usedMax=0 [INFO] 2024-04-13 06:50:54,107 [root] [mcu:_connect:801] Configured MCU 'nozzle_mcu' (1790 moves) [INFO] 2024-04-13 06:50:54,114 [root] [mcu:_send_config:728] Sending MCU 'leveling_mcu' printer configuration... [INFO] 2024-04-13 06:50:54,123 [root] [serialhdl:handle_output:308] mcu 'leveling_mcu': #output: allocMax=1203 usedMax=0 [INFO] 2024-04-13 06:50:54,126 [root] [mcu:_connect:801] Configured MCU 'leveling_mcu' (1193 moves) [INFO] 2024-04-13 06:50:54,136 [root] [mcu:_send_config:728] Sending MCU 'rpi' printer configuration... [INFO] 2024-04-13 06:50:54,150 [root] [serialhdl:handle_output:308] mcu 'rpi': #output: allocMax=4096 usedMax=0 [INFO] 2024-04-13 06:50:54,154 [root] [mcu:_connect:801] Configured MCU 'rpi' (4086 moves) [INFO] 2024-04-13 06:50:54,156 [root] [verify_heater:handle_connect:40] Starting heater checks for extruder [INFO] 2024-04-13 06:50:54,157 [root] [verify_heater:handle_connect:40] Starting heater checks for heater_bed [INFO] 2024-04-13 06:50:54,158 [root] [bl24c16f:_init_bl24c16f:228] bl24c16f init... [INFO] 2024-04-13 06:50:54,159 [root] [tmc:_handle_connect:384] Enabling TMC virtual enable for 'stepper_x' [INFO] 2024-04-13 06:50:54,262 [root] [tmc:_handle_connect:384] Enabling TMC virtual enable for 'stepper_y' [INFO] 2024-04-13 06:50:54,368 [root] [tmc:_handle_connect:384] Enabling TMC virtual enable for 'stepper_z' [INFO] 2024-04-13 06:50:54,585 [root] [bed_mesh:print_generated_points:430] bed_mesh: generated points Index | Tool Adjusted | Probe [INFO] 2024-04-13 06:50:54,586 [root] [bed_mesh:print_generated_points:435] 0 | (5.0, 5.0) | (5.0, 5.0) [INFO] 2024-04-13 06:50:54,587 [root] [bed_mesh:print_generated_points:435] 1 | (63.0, 5.0) | (63.0, 5.0) [INFO] 2024-04-13 06:50:54,588 [root] [bed_mesh:print_generated_points:435] 2 | (121.0, 5.0) | (121.0, 5.0) [INFO] 2024-04-13 06:50:54,588 [root] [bed_mesh:print_generated_points:435] 3 | (179.0, 5.0) | (179.0, 5.0) [INFO] 2024-04-13 06:50:54,589 [root] [bed_mesh:print_generated_points:435] 4 | (237.0, 5.0) | (237.0, 5.0) [INFO] 2024-04-13 06:50:54,589 [root] [bed_mesh:print_generated_points:435] 5 | (295.0, 5.0) | (295.0, 5.0) [INFO] 2024-04-13 06:50:54,591 [root] [bed_mesh:print_generated_points:435] 6 | (295.0, 63.0) | (295.0, 63.0) [INFO] 2024-04-13 06:50:54,593 [root] [bed_mesh:print_generated_points:435] 7 | (237.0, 63.0) | (237.0, 63.0) [INFO] 2024-04-13 06:50:54,595 [root] [bed_mesh:print_generated_points:435] 8 | (179.0, 63.0) | (179.0, 63.0) [INFO] 2024-04-13 06:50:54,596 [root] [bed_mesh:print_generated_points:435] 9 | (121.0, 63.0) | (121.0, 63.0) [INFO] 2024-04-13 06:50:54,596 [root] [bed_mesh:print_generated_points:435] 10 | (63.0, 63.0) | (63.0, 63.0) [INFO] 2024-04-13 06:50:54,597 [root] [bed_mesh:print_generated_points:435] 11 | (5.0, 63.0) | (5.0, 63.0) [INFO] 2024-04-13 06:50:54,601 [root] [bed_mesh:print_generated_points:435] 12 | (5.0, 121.0) | (5.0, 121.0) [INFO] 2024-04-13 06:50:54,604 [root] [bed_mesh:print_generated_points:435] 13 | (63.0, 121.0) | (63.0, 121.0) [INFO] 2024-04-13 06:50:54,605 [root] [bed_mesh:print_generated_points:435] 14 | (121.0, 121.0) | (121.0, 121.0) [INFO] 2024-04-13 06:50:54,605 [root] [bed_mesh:print_generated_points:435] 15 | (179.0, 121.0) | (179.0, 121.0) [INFO] 2024-04-13 06:50:54,607 [root] [bed_mesh:print_generated_points:435] 16 | (237.0, 121.0) | (237.0, 121.0) [INFO] 2024-04-13 06:50:54,609 [root] [bed_mesh:print_generated_points:435] 17 | (295.0, 121.0) | (295.0, 121.0) [INFO] 2024-04-13 06:50:54,609 [root] [bed_mesh:print_generated_points:435] 18 | (295.0, 179.0) | (295.0, 179.0) [INFO] 2024-04-13 06:50:54,610 [root] [bed_mesh:print_generated_points:435] 19 | (237.0, 179.0) | (237.0, 179.0) [INFO] 2024-04-13 06:50:54,611 [root] [bed_mesh:print_generated_points:435] 20 | (179.0, 179.0) | (179.0, 179.0) [INFO] 2024-04-13 06:50:54,612 [root] [bed_mesh:print_generated_points:435] 21 | (121.0, 179.0) | (121.0, 179.0) [INFO] 2024-04-13 06:50:54,612 [root] [bed_mesh:print_generated_points:435] 22 | (63.0, 179.0) | (63.0, 179.0) [INFO] 2024-04-13 06:50:54,613 [root] [bed_mesh:print_generated_points:435] 23 | (5.0, 179.0) | (5.0, 179.0) [INFO] 2024-04-13 06:50:54,614 [root] [bed_mesh:print_generated_points:435] 24 | (5.0, 237.0) | (5.0, 237.0) [INFO] 2024-04-13 06:50:54,619 [root] [bed_mesh:print_generated_points:435] 25 | (63.0, 237.0) | (63.0, 237.0) [INFO] 2024-04-13 06:50:54,620 [root] [bed_mesh:print_generated_points:435] 26 | (121.0, 237.0) | (121.0, 237.0) [INFO] 2024-04-13 06:50:54,621 [root] [bed_mesh:print_generated_points:435] 27 | (179.0, 237.0) | (179.0, 237.0) [INFO] 2024-04-13 06:50:54,622 [root] [bed_mesh:print_generated_points:435] 28 | (237.0, 237.0) | (237.0, 237.0) [INFO] 2024-04-13 06:50:54,622 [root] [bed_mesh:print_generated_points:435] 29 | (295.0, 237.0) | (295.0, 237.0) [INFO] 2024-04-13 06:50:54,623 [root] [bed_mesh:print_generated_points:435] 30 | (295.0, 295.0) | (295.0, 295.0) [INFO] 2024-04-13 06:50:54,624 [root] [bed_mesh:print_generated_points:435] 31 | (237.0, 295.0) | (237.0, 295.0) [INFO] 2024-04-13 06:50:54,624 [root] [bed_mesh:print_generated_points:435] 32 | (179.0, 295.0) | (179.0, 295.0) [INFO] 2024-04-13 06:50:54,626 [root] [bed_mesh:print_generated_points:435] 33 | (121.0, 295.0) | (121.0, 295.0) [INFO] 2024-04-13 06:50:54,626 [root] [bed_mesh:print_generated_points:435] 34 | (63.0, 295.0) | (63.0, 295.0) [INFO] 2024-04-13 06:50:54,627 [root] [bed_mesh:print_generated_points:435] 35 | (5.0, 295.0) | (5.0, 295.0) [INFO] 2024-04-13 06:50:54,716 [root] [statistics:generate_stats:68] Stats 37.9: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000006 bytes_write=2040 bytes_read=5388 bytes_retransmit=9 bytes_invalid=0 send_seq=170 receive_seq=170 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119997406 nozzle_mcu: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000006 bytes_write=1344 bytes_read=4805 bytes_retransmit=0 bytes_invalid=0 send_seq=149 receive_seq=149 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119997219 adj=119999649 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=829 bytes_read=4409 bytes_retransmit=9 bytes_invalid=0 send_seq=112 receive_seq=112 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71776639 adj=71679676 rpi: mcu_awake=0.004 mcu_task_avg=0.000032 mcu_task_stddev=0.000047 bytes_write=894 bytes_read=4533 bytes_retransmit=0 bytes_invalid=0 send_seq=117 receive_seq=117 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50066301 adj=50002981 mcu_temp: temp=0.0 chamber_temp: temp=0.0 heater_bed: target=0 temp=0.0 pwm=0.000 sysload=1.83 cputime=17.649 memavail=135432 print_time=0.023 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 [INFO] 2024-04-13 06:50:54,908 [root] [webhooks:_handle_query:530] _handle_query objects/subscribe:{'webhooks': None} [INFO] 2024-04-13 06:50:54,909 [root] [webhooks:_handle_query:552] _handle_query before complete.wait [INFO] 2024-04-13 06:50:54,913 [root] [webhooks:_handle_query:554] _handle_query after complete.wait:{'eventtime': 38.112778333, 'status': {'webhooks': {'state': 'ready', 'state_message': 'Printer is ready'}}} [INFO] 2024-04-13 06:50:54,956 [root] [webhooks:_handle_query:530] _handle_query objects/subscribe:{'webhooks': None, 'print_stats': None} [INFO] 2024-04-13 06:50:54,957 [root] [webhooks:_handle_query:552] _handle_query before complete.wait [INFO] 2024-04-13 06:50:55,162 [root] [webhooks:_handle_query:554] _handle_query after complete.wait:{'eventtime': 38.363167666, 'status': {'webhooks': {'state': 'ready', 'state_message': 'Printer is ready'}, 'print_stats': {'filename': '', 'total_duration': 0.0, 'print_duration': 0.0, 'filament_used': 0.0, 'state': 'standby', 'message': '', 'info': {'total_layer': None, 'current_layer': None}, 'power_loss': 0, 'z_pos': 6.0}}} [INFO] 2024-04-13 06:50:55,452 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'shutdown_machine' for connection id: 1986688336 [INFO] 2024-04-13 06:50:55,461 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'reboot_machine' for connection id: 1986688336 [INFO] 2024-04-13 06:50:55,474 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'pause_job_queue' for connection id: 1986688336 [INFO] 2024-04-13 06:50:55,483 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'start_job_queue' for connection id: 1986688336 [INFO] 2024-04-13 06:50:55,490 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'timelapse_newframe' for connection id: 1986688336 [INFO] 2024-04-13 06:50:55,496 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'timelapse_saveFrames' for connection id: 1986688336 [INFO] 2024-04-13 06:50:55,502 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'timelapse_render' for connection id: 1986688336 [INFO] 2024-04-13 06:50:55,684 [root] [webhooks:_handle_query:530] _handle_query objects/subscribe:{'webhooks': None, 'print_stats': None, 'temperature_fan chamber_fan': None, 'temperature_fan mcu_fan': None, 'temperature_sensor mcu_temp': None, 'temperature_sensor chamber_temp': None, 'heater_bed': None, 'extruder': None} [INFO] 2024-04-13 06:50:55,686 [root] [webhooks:_handle_query:552] _handle_query before complete.wait [INFO] 2024-04-13 06:50:55,876 [root] [webhooks:set_client_info:202] webhooks client 1975891136: Client info {'program': 'c440x', 'version': '1.3.3.8'} [INFO] 2024-04-13 06:50:55,917 [root] [webhooks:_handle_query:554] _handle_query after complete.wait:{'eventtime': 39.116255999, 'status': {'webhooks': {'state': 'ready', 'state_message': 'Printer is ready'}, 'print_stats': {'filename': '', 'total_duration': 0.0, 'print_duration': 0.0, 'filament_used': 0.0, 'state': 'standby', 'message': '', 'info': {'total_layer': None, 'current_layer': None}, 'power_loss': 0, 'z_pos': 6.0}, 'temperature_fan chamber_fan': {'speed': 0.0, 'rpm': None, 'temperature': 19.27, 'target': 35.0}, 'temperature_fan mcu_fan': {'speed': 0.0, 'rpm': None, 'temperature': 22.24, 'target': 50.0}, 'temperature_sensor mcu_temp': {'temperature': 29.36, 'measured_min_temp': 29.24, 'measured_max_temp': 29.36}, 'temperature_sensor chamber_temp': {'temperature': 19.29, 'measured_min_temp': 19.25, 'measured_max_temp': 19.31}, 'heater_bed': {'temperature': 19.13, 'target': 0.0, 'power': 0.0}, 'extruder': {'temperature': 18.82, 'target': 0.0, 'power': 0.0, 'can_extrude': False, 'pressure_advance': 0.04, 'smooth_time': 0.04}}} [INFO] 2024-04-13 06:50:55,936 [root] [webhooks:_handle_query:530] _handle_query objects/subscribe:{'webhooks': None, 'print_stats': None, 'temperature_fan chamber_fan': None, 'temperature_fan mcu_fan': None, 'temperature_sensor mcu_temp': None, 'temperature_sensor chamber_temp': None, 'heater_bed': None, 'extruder': None} [INFO] 2024-04-13 06:50:55,937 [root] [webhooks:_handle_query:552] _handle_query before complete.wait [INFO] 2024-04-13 06:50:56,077 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'shutdown_machine' for connection id: 1975891136 [INFO] 2024-04-13 06:50:56,168 [root] [webhooks:_handle_query:554] _handle_query after complete.wait:{'eventtime': 39.367461833, 'status': {'webhooks': {'state': 'ready', 'state_message': 'Printer is ready'}, 'print_stats': {'filename': '', 'total_duration': 0.0, 'print_duration': 0.0, 'filament_used': 0.0, 'state': 'standby', 'message': '', 'info': {'total_layer': None, 'current_layer': None}, 'power_loss': 0, 'z_pos': 6.0}, 'temperature_fan chamber_fan': {'speed': 0.0, 'rpm': None, 'temperature': 19.27, 'target': 35.0}, 'temperature_fan mcu_fan': {'speed': 0.0, 'rpm': None, 'temperature': 22.14, 'target': 50.0}, 'temperature_sensor mcu_temp': {'temperature': 29.36, 'measured_min_temp': 29.24, 'measured_max_temp': 29.36}, 'temperature_sensor chamber_temp': {'temperature': 19.29, 'measured_min_temp': 19.25, 'measured_max_temp': 19.31}, 'heater_bed': {'temperature': 19.14, 'target': 0.0, 'power': 0.0}, 'extruder': {'temperature': 18.82, 'target': 0.0, 'power': 0.0, 'can_extrude': False, 'pressure_advance': 0.04, 'smooth_time': 0.04}}} [INFO] 2024-04-13 06:50:56,180 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'reboot_machine' for connection id: 1975891136 [INFO] 2024-04-13 06:50:56,284 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'pause_job_queue' for connection id: 1975891136 [INFO] 2024-04-13 06:50:56,398 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'start_job_queue' for connection id: 1975891136 [INFO] 2024-04-13 06:50:56,502 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'timelapse_newframe' for connection id: 1975891136 [INFO] 2024-04-13 06:50:56,606 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'timelapse_saveFrames' for connection id: 1975891136 [INFO] 2024-04-13 06:50:56,708 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'timelapse_render' for connection id: 1975891136 [ERROR] 2024-04-13 06:50:56,913 [root] [bed_mesh:_get_mesh:145] 'NoneType' object has no attribute 'get_probed_matrix' [INFO] 2024-04-13 06:50:57,428 [root] [webhooks:_handle_query:530] _handle_query objects/subscribe:{'webhooks': None, 'configfile': None, 'mcu': None, 'mcu nozzle_mcu': None, 'mcu leveling_mcu': None, 'mcu rpi': None, 'virtual_pins': None, 'gcode_macro xyz_ready': None, 'gcode_macro _IF_HOME_Z': None, 'gcode_macro _IF_MOVE_XY': None, 'gcode_macro _HOME_X': None, 'gcode_macro _HOME_Y': None, 'gcode_macro _HOME_Z': None, 'gcode_macro PRINTER_PARAM': None, 'gcode_macro AUTOTUNE_SHAPERS': None, 'gcode_macro LOAD_MATERIAL_CLOSE_FAN2': None, 'gcode_macro LOAD_MATERIAL_RESTORE_FAN2': None, 'gcode_macro SET_E_MIN_CURRENT': None, 'gcode_macro RESTORE_E_CURRENT': None, 'gcode_macro LOAD_MATERIAL': None, 'gcode_macro QUIT_MATERIAL': None, 'gcode_macro Qmode': None, 'gcode_macro Qmode_exit': None, 'gcode_macro M204': None, 'gcode_macro M205': None, 'gcode_macro M107': None, 'gcode_macro M900': None, 'gcode_macro WAIT_TEMP_START': None, 'gcode_macro WAIT_TEMP_END': None, 'gcode_macro PRINT_CALIBRATION': None, 'gcode_macro FIRST_FLOOR_PAUSE_POSITION': None, 'gcode_macro ACCURATE_G28': None, 'gcode_macro PRINT_PREPARED': None, 'gcode_macro PRINT_PREPARE_CLEAR': None, 'gcode_macro END_PRINT_POINT_WITHOUT_LIFTING': None, 'gcode_macro END_PRINT_POINT': None, 'gcode_macro END_PRINT': None, 'gcode_macro FIRST_FLOOR_PAUSE': None, 'gcode_macro FIRST_FLOOR_RESUME': None, 'gcode_macro PAUSE': None, 'gcode_macro INPUTSHAPER': None, 'gcode_macro BEDPID': None, 'gcode_macro TUNOFFINPUTSHAPER': None, 'gcode_macro RESUME': None, 'gcode_macro CANCEL_PRINT': None, 'gcode_macro G29': None, 'gcode_move': None, 'print_stats': None, 'fan_feedback': None, 'custom_macro': None, 'gcode_macro GET_TIMELAPSE_SETUP': None, 'gcode_macro _SET_TIMELAPSE_SETUP': None, 'gcode_macro TIMELAPSE_TAKE_FRAME': None, 'gcode_macro _TIMELAPSE_NEW_FRAME': None, 'gcode_macro HYPERLAPSE': None, 'gcode_macro TIMELAPSE_RENDER': None, 'gcode_macro TEST_STREAM_DELAY': None, 'save_variables': None, 'gcode_macro SET_GCODE_OFFSET': None, 'calibrate_shaper_config': None, 'gcode_macro INPUT_SHAPER_CALIBRATION': None, 'gcode_macro TEST_RESONANCES_GRAPHS': None, 'gcode_macro BELTS_SHAPER_CALIBRATION': None, 'gcode_macro EXCITATE_AXIS_AT_FREQ': None, 'heaters': None, 'temperature_fan chamber_fan': None, 'temperature_fan mcu_fan': None, 'output_pin mcu_fan': None, 'gcode_macro M141': None, 'gcode_macro M191': None, 'gcode_macro M106': None, 'output_pin KAMP': None, 'output_pin BED_LEVELING': None, 'gcode_macro START_PRINT': None, 'gcode_macro BED_MESH_CALIBRATE': None, 'gcode_macro _LINE_PURGE': None, 'gcode_macro _SMART_PARK': None, 'gcode_macro DEFINE_OBJECT': None, 'gcode_macro START_CURRENT_OBJECT': None, 'gcode_macro END_CURRENT_OBJECT': None, 'gcode_macro LIST_OBJECTS': None, 'gcode_macro LIST_EXCLUDED_OBJECTS': None, 'gcode_macro REMOVE_ALL_EXCLUDED': None, 'gcode_macro _KAMP_Settings': None, 'idle_timeout': None, 'virtual_sdcard': None, 'temperature_sensor mcu_temp': None, 'temperature_sensor chamber_temp': None, 'tmc2209 stepper_x': None, 'tmc2209 stepper_y': None, 'tmc2209 stepper_z': None, 'tmc2209 extruder': None, 'heater_bed': None, 'pause_resume': None, 'filament_switch_sensor filament_sensor': None, 'filament_switch_sensor filament_sensor_2': None, 'heater_fan hotend_fan': None, 'output_pin fan0': None, 'output_pin fan1': None, 'output_pin fan2': None, 'output_pin LED': None, 'output_pin power': None, 'probe': None, 'bed_mesh': None, 'display_status': None, 'exclude_object': None, 'motion_report': None, 'query_endstops': None, 'system_stats': None, 'manual_probe': None, 'toolhead': None, 'extruder': None} [INFO] 2024-04-13 06:50:57,429 [root] [webhooks:_handle_query:552] _handle_query before complete.wait [INFO] 2024-04-13 06:50:57,712 [root] [webhooks:_handle_query:554] _handle_query after complete.wait:{'eventtime': 40.872771833, 'status': {'webhooks': {'state': 'ready', 'state_message': 'Printer is ready'}, 'configfile': {'config': {'virtual_pins': {}, 'force_move': {'enable_force_move': 'true'}, 'gcode_macro xyz_ready': {'variable_x_ready': '0', 'variable_y_ready': '0', 'variable_z_ready': '0', 'variable_xy_moved': '0', 'variable_z_moved': '0', 'variable_safe_z': '3', 'gcode': ''}, 'gcode_macro _IF_HOME_Z': {'gcode': '\n{% if printer[\'gcode_macro xyz_ready\'].z_ready|int == 1 %}\n{% if printer.toolhead.position.z|int < 5 %}\n{% set z_park = 5.0 - printer.toolhead.position.z|int %}\nG91\nG1 z{z_park} F600\nG90\n{% endif %}\n{% else %}\n{% if printer[\'gcode_macro xyz_ready\'].z_moved|int == 0 %}\n{% if printer.print_stats.z_pos|float <= 20.0 or printer.print_stats.power_loss == 1 %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE={printer["gcode_macro PRINTER_PARAM"].z_safe_g28} VELOCITY=10\n{% else %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE=0.1 VELOCITY=10\n{% endif %}\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=1\n{% endif %}\n{% endif %}'}, 'gcode_macro _IF_MOVE_XY': {'gcode': '\n_IF_HOME_Z\n{% if printer[\'gcode_macro xyz_ready\'].xy_moved|int == 0 %}\n{action_respond_info("move xy\\n")}\n\nFORCE_MOVE STEPPER=stepper_y DISTANCE=-14 VELOCITY=50\nFORCE_MOVE STEPPER=stepper_y DISTANCE=7 VELOCITY=50\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=1\nG4 P1000\n{% endif %}'}, 'gcode_macro _HOME_X': {'gcode': "\n_IF_MOVE_XY\n\n{% if printer['gcode_macro xyz_ready'].x_ready|int == 1 %}\n{% if (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x)|round < 10 %}\n{% set x_park = (10 - (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x))|round %}\n{% if x_park > 0 %}\nG91\nG1 x-{x_park} F3600\nG90\nG4 P1000\n{% endif %}\n{% endif %}\n{% endif %}\n\n\n\n\nG28 X\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=1\n\nG91\nG1 x-10 F3600\nG90\n\nG4 P2000"}, 'gcode_macro _HOME_Y': {'gcode': "\n_IF_MOVE_XY\n\n{% if printer['gcode_macro xyz_ready'].y_ready|int == 1 %}\n{% if printer.toolhead.position.y|round < 8 %}\n{% set y_park = 8 - printer.toolhead.position.y|round %}\n{% if y_park > 0 %}\nG91\nG1 y{y_park} F3600\nG90\nG4 P1000\n{% endif %}\n{% endif %}\n{% endif %}\n\n\n\n\nG28 Y\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=1\n\nG91\nG1 y10 F3600\nG90\n\nG4 P2000"}, 'gcode_macro _HOME_Z': {'gcode': '\n{% if printer[\'gcode_macro xyz_ready\'].y_ready|int == 1 %}\n{% if printer[\'gcode_macro xyz_ready\'].x_ready|int == 1 %}\n_IF_HOME_Z\n{% endif %}\n{% endif %}\n{% if printer.print_stats.z_pos|float >= 260.0 %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE=-8 VELOCITY=10\n{% endif %}\n\n{% set POSITION_X = printer.configfile.settings[\'stepper_x\'].position_max/2 %}\n{% set POSITION_Y = printer.configfile.settings[\'stepper_y\'].position_max/2 %}\n\nG91\n{% set x_park = POSITION_X - printer.toolhead.position.x|int %}\n{% set y_park = POSITION_Y - printer.toolhead.position.y|int %}\n{action_respond_info("x_park = %s \\n" % (x_park))}\n{action_respond_info("y_park = %s \\n" % (y_park))}\nG1 x{x_park} y{y_park} F3600\nG90\n\n\nG28 Z\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=1'}, 'homing_override': {'axes': 'xyz', 'gcode': '\nM220 S100\n\n\n\n{% set x_axes = printer.toolhead.homed_axes %}\n{% if x_axes is defined and x_axes[0] is defined %}\n{action_respond_info(\n"x_axes: %s \\n"\n% (x_axes))}\n{% else %}\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=0\n{action_respond_info(\n"x_axes is NULL\\n")}\n{% endif %}\n\n{% if x_axes is not defined or x_axes[2] is not defined %}\nBED_MESH_CLEAR\n{% endif %}\n\n{% if x_axes is defined and x_axes[0] is defined and x_axes[1] is defined %}\n{action_respond_info("x_axes: %s \\n"% (x_axes))}\n{% set position_y = printer.toolhead.position.y|int %}\n{% set max_y_position = printer["gcode_macro PRINTER_PARAM"].max_y_position|int %}\n{% if position_y >= max_y_position %}\nG91\nG0 Y-10 F3600\nG90\n{% endif %}\n{% endif %}\n\n{% set home_all = \'X\' not in params and \'Y\' not in params %}\n{% if \'Z\' in params and \'X\' not in params and \'Y\' not in params %}\n{% if x_axes[0] is defined and x_axes[1] is defined %}\n{% set home_all = 0 %}\n{% endif %}\n{% endif %}\n\n{% if home_all or \'X\' in params %}\n_HOME_X\n{% endif %}\n\n{% if home_all or \'Y\' in params %}\n_HOME_Y\n{% endif %}\n\n{% if home_all or \'X\' in params %}\n_HOME_X\n{% endif %}\n\n{% if home_all or \'Y\' in params %}\n_HOME_Y\n{% endif %}\n\n{% if home_all or \'Z\' in params %}\n_HOME_Z\n{% endif %}\nBED_MESH_PROFILE LOAD="default"\n\n\n\n\nG4 P500'}, 'gcode_macro PRINTER_PARAM': {'variable_z_safe_pause': '0.0', 'variable_z_safe_g28': '3.0', 'variable_max_x_position': '300.0', 'variable_max_y_position': '300.0', 'variable_max_z_position': '300.0', 'variable_fans': '3', 'variable_auto_g29': '0', 'variable_fan0_min': '25', 'variable_fan1_min': '50', 'variable_fan2_min': '180', 'variable_fan2_speed': '0', 'variable_hotend_temp': '0', 'variable_e_min_current': '0.27', 'gcode': ''}, 'gcode_macro AUTOTUNE_SHAPERS': {'gcode': ''}, 'gcode_macro LOAD_MATERIAL_CLOSE_FAN2': {'variable_fan2_value': '0', 'gcode': "\nSAVE_GCODE_STATE NAME=myMoveState\n{% if printer['output_pin fan2'].value > 0.0 %}\nSET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value}\nM107 P2\n{% endif %}\nRESTORE_E_CURRENT"}, 'gcode_macro LOAD_MATERIAL_RESTORE_FAN2': {'gcode': '\n{% set fan2_value = printer[\'gcode_macro LOAD_MATERIAL_CLOSE_FAN2\'].fan2_value|float %}\nRESTORE_GCODE_STATE NAME=myMoveState\n{% if fan2_value > 0.0 %}\n{% set s_value = (fan2_value * 255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) * 255 / (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) %}\nM106 P2 S{s_value}\nSET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE=0\n{% endif %}\nSET_E_MIN_CURRENT'}, 'gcode_macro SET_E_MIN_CURRENT': {'gcode': "\n{% set e_current = printer['gcode_macro PRINTER_PARAM'].e_min_current %}\nM400\nSET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current}\nG4 P2000"}, 'gcode_macro RESTORE_E_CURRENT': {'gcode': "\n{% set e_current = printer.configfile.settings['tmc2209 extruder'].run_current %}\nM400\nSET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current}\nG4 P2000"}, 'gcode_macro LOAD_MATERIAL': {'gcode': '\nLOAD_MATERIAL_CLOSE_FAN2\nM109 S{printer.custom_macro.default_extruder_temp}\nG91\nG1 E80 F180\nLOAD_MATERIAL_RESTORE_FAN2'}, 'gcode_macro QUIT_MATERIAL': {'gcode': '\nSAVE_GCODE_STATE NAME=myMoveState\nRESTORE_E_CURRENT\nM109 S{printer.custom_macro.default_extruder_temp}\nM83\nG1 E10 F300\nG1 E-15 F3000\nG1 E-22.4700 F2400\nG1 E-6.4200 F1200\nG1 E-3.2100 F720\nG1 E5.0000 F356\nG1 E-5.0000 F384\nG1 E5.0000 F412\nG1 E-5.0000 F440\nG1 E5.0000 F467\nG1 E-5.0000 F495\nG1 E5.0000 F523\nG1 E-5.0000 F3000\nG1 E-15 F3000\nSET_E_MIN_CURRENT\nRESTORE_GCODE_STATE NAME=myMoveState'}, 'gcode_macro Qmode': {'variable_flag': '0', 'variable_accel': '0', 'variable_accel_to_decel': '0', 'variable_velocity': '0', 'variable_square_corner_velocity': '0', 'variable_pressure_advance': '0.0', 'variable_fan0_value': '0.00', 'variable_fan1_value': '0.00', 'variable_fan2_value': '0.00', 'variable_speed_factor': '0', 'variable_max_accel': '2500', 'variable_max_accel_to_decel': '2500', 'gcode': '\n{% set printer_state = printer.print_stats.state %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 0 %}\n{% if printer_state == "printing" or printer_state == "paused" %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel VALUE={printer.toolhead.max_accel}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel_to_decel VALUE={printer.toolhead.max_accel_to_decel}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=velocity VALUE={printer.toolhead.max_velocity}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=square_corner_velocity VALUE={printer.toolhead.square_corner_velocity}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=pressure_advance VALUE={printer.extruder.pressure_advance}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=speed_factor VALUE={printer.gcode_move.speed_factor}\nSET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=0\nSET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=0\nSET_TMC_CURRENT STEPPER=stepper_x CURRENT=1.0\nSET_TMC_CURRENT STEPPER=stepper_y CURRENT=1.0\nG4 P1000\n\n\nSET_VELOCITY_LIMIT ACCEL=2500\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500\nSET_VELOCITY_LIMIT VELOCITY=150\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nSET_PRESSURE_ADVANCE ADVANCE=0.05\nM220 S50\n\n{% set tmp = printer[\'output_pin fan0\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={tmp}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan0_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\nSET_PIN PIN=fan0 VALUE={tmp}\n{% endif %}\n\n{% set tmp = printer[\'output_pin fan1\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer[\'output_pin fan1\'].value * 255}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan1_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\nSET_PIN PIN=fan1 VALUE={tmp}\n{% endif %}\n\n{% set tmp = printer[\'output_pin fan2\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer[\'output_pin fan2\'].value * 255}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan2_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\nSET_PIN PIN=fan2 VALUE={tmp}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=1\nSET_QMODE_FLAG FLAG=1\n{% endif %}\n{% endif %}'}, 'gcode_macro Qmode_exit': {'gcode': '\n{% set printer_state = printer.print_stats.state %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 %}\n{% if printer_state == "printing" or printer_state == "paused" %}\nSET_VELOCITY_LIMIT ACCEL={printer[\'gcode_macro Qmode\'].accel}\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer[\'gcode_macro Qmode\'].accel_to_decel}\nSET_VELOCITY_LIMIT VELOCITY={printer[\'gcode_macro Qmode\'].velocity}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={printer[\'gcode_macro Qmode\'].square_corner_velocity}\nSET_PRESSURE_ADVANCE ADVANCE={printer[\'gcode_macro Qmode\'].pressure_advance}\nM220 S{printer[\'gcode_macro Qmode\'].speed_factor * 100}\n\n{% set X_RUN_CUR = printer.configfile.settings[\'tmc2209 stepper_x\'].run_current %}\n{% set Y_RUN_CUR = printer.configfile.settings[\'tmc2209 stepper_y\'].run_current %}\nSET_TMC_CURRENT STEPPER=stepper_x CURRENT={X_RUN_CUR}\nSET_TMC_CURRENT STEPPER=stepper_y CURRENT={Y_RUN_CUR}\nSET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=1\nSET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=1\nG4 P1000\n\n{% if printer[\'output_pin fan0\'].value != 0 %}\n{action_respond_info("fan0_value = %s" % printer[\'gcode_macro Qmode\'].fan0_value)}\nSET_PIN PIN=fan0 VALUE={printer[\'gcode_macro Qmode\'].fan0_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE=0\n{% endif %}\n{% if printer[\'output_pin fan1\'].value != 0 %}\n{action_respond_info("fan1_value = %s" % printer[\'gcode_macro Qmode\'].fan1_value)}\nSET_PIN PIN=fan1 VALUE={printer[\'gcode_macro Qmode\'].fan1_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE=0\n{% endif %}\n{% if printer[\'output_pin fan2\'].value != 0 %}\n{action_respond_info("fan2_value = %s" % printer[\'gcode_macro Qmode\'].fan2_value)}\nSET_PIN PIN=fan2 VALUE={printer[\'gcode_macro Qmode\'].fan2_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE=0\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=0\nSET_QMODE_FLAG FLAG=0\n{% endif %}\n{% endif %}'}, 'gcode_macro M204': {'rename_existing': 'M204.1', 'gcode': '\n\n{% set get_params = "" %}\n{% set qmode_max_accel = printer[\'gcode_macro Qmode\'].max_accel|string %}\n{% if \'S\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.S|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'S\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'S\' + params.S) %}\n{% endif %}\n{% endif %}\n{% if \'P\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.P|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'P\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'P\' + params.P) %}\n{% endif %}\n{% endif %}\n{% if \'T\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.T|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'T\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'T\' + params.T) %}\n{% endif %}\n{% endif %}\nM204.1 {get_params}'}, 'gcode_macro M205': {'gcode': "\n{% if 'X' in params %}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.X}\n{% elif 'Y' in params %}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.Y}\n{% endif %}"}, 'gcode_macro M107': {'gcode': '\n{% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}\n{% if params.P is defined %}\n{% if params.P|int < fans %}\nSET_PIN PIN=fan{params.P|int} VALUE=0\n{% else %}\nSET_PIN PIN=fan0 VALUE=0\n{% endif %}\n{% else %}\nSET_PIN PIN=fan0 VALUE=0\nSET_PIN PIN=fan2 VALUE=0\n{% endif %}'}, 'gcode_macro M900': {'gcode': "\n{% if 'K' in params %}\n{% if 'E' in params %}\nSET_PRESSURE_ADVANCE EXTRUDER={params.E} ADVANCE={params.K}\n{% else %}\nSET_PRESSURE_ADVANCE ADVANCE={params.K}\n{% endif %}\n{% endif %}"}, 'delayed_gcode wait_temp': {'gcode': '\n{% set cur_temp = printer.extruder.temperature %}\n{% if cur_temp|int < 40 %}\nWAIT_TEMP_END\n{% else %}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=5\n{% endif %}'}, 'gcode_macro WAIT_TEMP_START': {'gcode': '\n{action_respond_info("wait temp start\\n")}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=1\nM106 P0 S255'}, 'gcode_macro WAIT_TEMP_END': {'gcode': '\n{action_respond_info("wait temp end\\n")}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=0\nM106 P0 S0'}, 'gcode_macro PRINT_CALIBRATION': {'gcode': '\nCX_PRINT_LEVELING_CALIBRATION'}, 'gcode_macro FIRST_FLOOR_PAUSE_POSITION': {'gcode': "\n{% set extruder_temp = printer.custom_macro.g28_ext_temp %}\nM104 S{extruder_temp}\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer['gcode_macro PRINTER_PARAM'].max_x_position|float + 1 %}\nG90\nG1 Z2 F600\nG1 X{x_park} Y{y_park} F6000\nG1 Z0.2 F600"}, 'gcode_macro ACCURATE_G28': {'gcode': '\nACCURATE_HOME_Z'}, 'gcode_macro PRINT_PREPARED': {'gcode': '\nSET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=1\n{action_respond_info("print prepared")}'}, 'gcode_macro PRINT_PREPARE_CLEAR': {'gcode': '\nSET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=0'}, 'gcode_macro END_PRINT_POINT_WITHOUT_LIFTING': {'gcode': '\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\nG91\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z2.0 F600\nG90\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("end print xyz_axes is NULL\\n")}\n{% endif %}'}, 'gcode_macro END_PRINT_POINT': {'gcode': '\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < (max_z / 2) %}\n{% set z_safe = (max_z / 2) - act_z %}\n{% elif act_z < max_z %}\n{% set z_safe = 2.0 %}\n{% endif %}\nG91\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z2.0 F600\nG90\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F30000\n{% if z_safe > 2.0 %}\nG91\n{% set z_safe = z_safe - 2.0 %}\nG1 Z{z_safe} F600\nG90\n{% endif %}\n{% else %}\n{action_respond_info("end print xyz_axes is NULL\\n")}\n{% endif %}'}, 'gcode_macro END_PRINT': {'gcode': '\nQmode_exit\nEXCLUDE_OBJECT_RESET\nPRINT_PREPARE_CLEAR\nM220 S100\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=2500\nTURN_OFF_HEATERS\nM107 P1\nM107 P2\nEND_PRINT_POINT\nWAIT_TEMP_START\nM84'}, 'gcode_macro FIRST_FLOOR_PAUSE': {'description': 'Pause the first floor print', 'variable_extrude': '2.0', 'gcode': '\n\n{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float %}\n\n\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\n\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < (max_z - 2.0) %}\n{% set z_safe = 2.0 %}\n{% elif act_z < max_z %}\n{% set z_safe = max_z - act_z %}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}\nPAUSE_BASE\nG91\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z{z_safe} F600\nG90\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("Printer not homed")}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer[\'output_pin fan2\'].value}\n{% set fspeed = printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed %}\n{action_respond_info("fan2_value = %s \\n" % (fspeed))}\n\nM106 P2 S0\nSET_E_MIN_CURRENT'}, 'gcode_macro FIRST_FLOOR_RESUME': {'description': 'Resume the first floor print', 'gcode': '\nRESTORE_E_CURRENT\n{% if printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed > 0 %}\n\n\n\n{% set s_value = (printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed * 255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) * 255 / (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min)|float %}\nM106 P2 S{s_value}\n{% endif %}\n\n{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float + 1.0 %}\n\n{% if \'VELOCITY\' in params|upper %}\n{% set get_params = (\'VELOCITY=\' + params.VELOCITY) %}\n{%else %}\n{% set get_params = "" %}\n{% endif %}\n\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG91\nG1 E{E} F2100\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nM400\nRESUME_BASE {get_params}'}, 'gcode_macro PAUSE': {'description': 'Pause the actual running print', 'rename_existing': 'PAUSE_BASE', 'variable_extrude': '2.0', 'gcode': '\n\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\n\n\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\n\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < 48.0 %}\n{% set z_safe = 50.0 - act_z %}\n{% elif act_z < (max_z - 2.0) %}\n{% set z_safe = 2.0 %}\n{% elif act_z < max_z %}\n{% set z_safe = max_z - act_z %}\n{% endif %}\n{action_respond_info("z_safe = %s"% (z_safe))}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}\nPAUSE_BASE\nG91\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE={printer.extruder.target}\nM104 S140\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z{z_safe} F600\nM400\nG90\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("Printer not homed")}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer[\'output_pin fan2\'].value}\n{% set fspeed = printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed %}\n{action_respond_info("fan2_value = %s \\n" % (fspeed))}\n\nM106 P2 S0\nSET_E_MIN_CURRENT'}, 'gcode_macro INPUTSHAPER': {'gcode': "\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0\nG90\nG28\n{% set POSITION_X = printer.configfile.settings['stepper_x'].position_max/2 %}\n{% set POSITION_Y = printer.configfile.settings['stepper_y'].position_max/2 %}\nG1 X{POSITION_X} Y{POSITION_Y} F6000\nG1 Z10 F600\nSHAPER_CALIBRATE\nCXSAVE_CONFIG\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1"}, 'gcode_macro BEDPID': {'gcode': '\nPID_CALIBRATE HEATER=heater_bed TARGET=100\nSAVE_CONFIG'}, 'gcode_macro TUNOFFINPUTSHAPER': {'gcode': '\nSET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0'}, 'gcode_macro RESUME': {'description': 'Resume the actual running print', 'rename_existing': 'RESUME_BASE', 'gcode': '\nRESTORE_E_CURRENT\n{% if printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int != 0 %}\n{% if printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int > printer.extruder.temperature %}\nM109 S{printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int}\n{% else %}\nM104 S{printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE=0\n{% endif %}\n{% if printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed > 0 %}\n\n\n\n{% set s_value = (printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed * 255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) * 255 / (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min)|float %}\nM106 P2 S{s_value}\n{% endif %}\n{% set z_resume_move = printer[\'gcode_macro PRINTER_PARAM\'].z_safe_pause|int %}\n{% if z_resume_move > 2 %}\n{% set z_resume_move = z_resume_move - 2 %}\nG91\nG1 Z-{z_resume_move} F600\nM400\n{% endif %}\n{action_respond_info("z_resume_move = %s"% (z_resume_move))}\n\n{% set E = printer["gcode_macro PAUSE"].extrude|float + 1.0 %}\n\n{% if \'VELOCITY\' in params|upper %}\n{% set get_params = (\'VELOCITY=\' + params.VELOCITY) %}\n{%else %}\n{% set get_params = "" %}\n{% endif %}\n\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG91\nG1 E{E} F2100\nG90\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nM400\nRESUME_BASE {get_params}'}, 'gcode_macro CANCEL_PRINT': {'description': 'Cancel the actual running print', 'rename_existing': 'CANCEL_PRINT_BASE', 'gcode': '\nEND_PRINT\nCANCEL_PRINT_BASE'}, 'gcode_macro G29': {'gcode': '\n{% if \'PROBE_COUNT\' in params|upper %}\n{% set get_count = (\'PROBE_COUNT\' + params.PROBE_COUNT) %}\n{%else %}\n{% set get_count = "" %}\n{% endif %}\n\n{% set bed_temp = printer.custom_macro.default_bed_temp %}\n{% set extruder_temp = printer.custom_macro.g28_ext_temp %}\n{% set nozzle_clear_temp = printer.custom_macro.default_extruder_temp %}\n\n{% if \'BED_TEMP\' in params|upper %}\n{% set bed_temp = params.BED_TEMP %}\n{% endif %}\n\n{% if \'EXTRUDER_TEMP\' in params|upper %}\n{% set nozzle_clear_temp = params.EXTRUDER_TEMP %}\n{% endif %}\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0\n\nG28\nBED_MESH_CLEAR\nNOZZLE_CLEAR HOT_MIN_TEMP={extruder_temp} HOT_MAX_TEMP={nozzle_clear_temp} BED_MAX_TEMP={bed_temp}\nACCURATE_G28\nM204 S5000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=5000\nBED_MESH_CALIBRATE {get_count}\nBED_MESH_OUTPUT\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F2000\nCXSAVE_CONFIG\nTURN_OFF_HEATERS\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1'}, 'fan_feedback': {'fan0_pin': 'nozzle_mcu:PB4', 'fan1_pin': 'PC6', 'print_delay_time': '5', 'current_delay_time': '2'}, 'custom_macro': {'default_bed_temp': '50', 'default_extruder_temp': '240', 'g28_ext_temp': '140'}, 'gcode_macro GET_TIMELAPSE_SETUP': {'description': 'Print the Timelapse setup', 'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% set output_txt = ["Timelapse Setup:"] %}\n{% set _dummy = output_txt.append("enable: %s" % tl.enable) %}\n{% set _dummy = output_txt.append("park: %s" % tl.park.enable) %}\n{% if tl.park.enable %}\n{% set _dummy = output_txt.append("park position: %s time: %s s" % (tl.park.pos, tl.park.time)) %}\n{% set _dummy = output_txt.append("park cord x:%s y:%s dz:%s" % (tl.park.coord.x, tl.park.coord.y, tl.park.coord.dz)) %}\n{% set _dummy = output_txt.append("travel speed: %s mm/s" % tl.speed.travel) %}\n{% endif %}\n{% set _dummy = output_txt.append("fw_retract: %s" % tl.extruder.fw_retract) %}\n{% if not tl.extruder.fw_retract %}\n{% set _dummy = output_txt.append("retract: %s mm speed: %s mm/s" % (tl.extruder.retract, tl.speed.retract)) %}\n{% set _dummy = output_txt.append("extrude: %s mm speed: %s mm/s" % (tl.extruder.extrude, tl.speed.extrude)) %}\n{% endif %}\n{% set _dummy = output_txt.append("verbose: %s" % tl.verbose) %}\n{action_respond_info(output_txt|join("\\n"))}'}, 'gcode_macro _SET_TIMELAPSE_SETUP': {'description': 'Set user parameters for timelapse', 'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n\n{% set min = printer.toolhead.axis_minimum %}\n{% set max = printer.toolhead.axis_maximum %}\n{% set round_bed = True if printer.configfile.settings.printer.kinematics is in [\'delta\',\'polar\',\'rotary_delta\',\'winch\']\nelse False %}\n{% set park = {\'min\' : {\'x\': (min.x / 1.42)|round(3) if round_bed else min.x|round(3),\n\'y\': (min.y / 1.42)|round(3) if round_bed else min.y|round(3)},\n\'max\' : {\'x\': (max.x / 1.42)|round(3) if round_bed else max.x|round(3),\n\'y\': (max.y / 1.42)|round(3) if round_bed else max.y|round(3)},\n\'center\': {\'x\': (max.x-(max.x-min.x)/2)|round(3),\n\'y\': (max.y-(max.y-min.y)/2)|round(3)}} %}\n\n{% if params.ENABLE %}\n{% if params.ENABLE|lower is in [\'true\', \'false\'] %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=enable VALUE={True if params.ENABLE|lower == \'true\' else False}\n{% else %}\n{action_raise_error("ENABLE=%s not supported. Allowed values are [True, False]" % params.ENABLE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.VERBOSE %}\n{% if params.VERBOSE|lower is in [\'true\', \'false\'] %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=verbose VALUE={True if params.VERBOSE|lower == \'true\' else False}\n{% else %}\n{action_raise_error("VERBOSE=%s not supported. Allowed values are [True, False]" % params.VERBOSE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_X %}\n{% if params.CUSTOM_POS_X|float >= min.x and params.CUSTOM_POS_X|float <= max.x %}\n{% set _dummy = tl.park.custom.update({\'x\':params.CUSTOM_POS_X|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_X=%s must be within [%s - %s]" % (params.CUSTOM_POS_X, min.x, max.x))}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_Y %}\n{% if params.CUSTOM_POS_Y|float >= min.y and params.CUSTOM_POS_Y|float <= max.y %}\n{% set _dummy = tl.park.custom.update({\'y\':params.CUSTOM_POS_Y|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_Y=%s must be within [%s - %s]" % (params.CUSTOM_POS_Y, min.y, max.y))}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_DZ %}\n{% if params.CUSTOM_POS_DZ|float >= min.z and params.CUSTOM_POS_DZ|float <= max.z %}\n{% set _dummy = tl.park.custom.update({\'dz\':params.CUSTOM_POS_DZ|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_DZ=%s must be within [%s - %s]" % (params.CUSTOM_POS_DZ, min.z, max.z))}\n{% endif %}\n{% endif %}\n{% if params.PARK_ENABLE %}\n{% if params.PARK_ENABLE|lower is in [\'true\', \'false\'] %}\n{% set _dummy = tl.park.update({\'enable\':True if params.PARK_ENABLE|lower == \'true\' else False}) %}\n{% else %}\n{action_raise_error("PARK_ENABLE=%s not supported. Allowed values are [True, False]" % params.PARK_ENABLE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.PARK_POS %}\n{% if params.PARK_POS|lower is in [\'center\',\'front_left\',\'front_right\',\'back_left\',\'back_right\',\'custom\',\'x_only\',\'y_only\'] %}\n{% set dic = {\'center\' : {\'x\': park.center.x , \'y\': park.center.y , \'dz\': 1 },\n\'front_left\' : {\'x\': park.min.x , \'y\': park.min.y , \'dz\': 0 },\n\'front_right\' : {\'x\': park.max.x , \'y\': park.min.y , \'dz\': 0 },\n\'back_left\' : {\'x\': park.min.x , \'y\': park.max.y , \'dz\': 0 },\n\'back_right\' : {\'x\': park.max.x , \'y\': park.max.y , \'dz\': 0 },\n\'custom\' : {\'x\': tl.park.custom.x, \'y\': tl.park.custom.y, \'dz\': tl.park.custom.dz},\n\'x_only\' : {\'x\': tl.park.custom.x, \'y\': \'none\' , \'dz\': tl.park.custom.dz},\n\'y_only\' : {\'x\': \'none\' , \'y\': tl.park.custom.y, \'dz\': tl.park.custom.dz}} %}\n{% set _dummy = tl.park.update({\'pos\':params.PARK_POS|lower}) %}\n{% set _dummy = tl.park.update({\'coord\':dic[tl.park.pos]}) %}\n{% else %}\n{action_raise_error("PARK_POS=%s not supported. Allowed values are [CENTER, FRONT_LEFT, FRONT_RIGHT, BACK_LEFT, BACK_RIGHT, CUSTOM, X_ONLY, Y_ONLY]"\n% params.PARK_POS|upper)}\n{% endif %}\n{% endif %}\n{% if params.PARK_TIME %}\n{% if params.PARK_TIME|float >= 0.0 %}\n{% set _dummy = tl.park.update({\'time\':params.PARK_TIME|float|round(3)}) %}\n{% else %}\n{action_raise_error("PARK_TIME=%s must be a positive number" % params.PARK_TIME)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=park VALUE="{tl.park}"\n{% if params.TRAVEL_SPEED %}\n{% if params.TRAVEL_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'travel\':params.TRAVEL_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("TRAVEL_SPEED=%s must be larger than 0" % params.TRAVEL_SPEED)}\n{% endif %}\n{% endif %}\n{% if params.RETRACT_SPEED %}\n{% if params.RETRACT_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'retract\':params.RETRACT_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("RETRACT_SPEED=%s must be larger than 0" % params.RETRACT_SPEED)}\n{% endif %}\n{% endif %}\n{% if params.EXTRUDE_SPEED %}\n{% if params.EXTRUDE_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'extrude\':params.EXTRUDE_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("EXTRUDE_SPEED=%s must be larger than 0" % params.EXTRUDE_SPEED)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=speed VALUE="{tl.speed}"\n{% if params.EXTRUDE_DISTANCE %}\n{% if params.EXTRUDE_DISTANCE|float >= 0.0 %}\n{% set _dummy = tl.extruder.update({\'extrude\':params.EXTRUDE_DISTANCE|float|round(3)}) %}\n{% else %}\n{action_raise_error("EXTRUDE_DISTANCE=%s must be specified as positiv number" % params.EXTRUDE_DISTANCE)}\n{% endif %}\n{% endif %}\n{% if params.RETRACT_DISTANCE %}\n{% if params.RETRACT_DISTANCE|float >= 0.0 %}\n{% set _dummy = tl.extruder.update({\'retract\':params.RETRACT_DISTANCE|float|round(3)}) %}\n{% else %}\n{action_raise_error("RETRACT_DISTANCE=%s must be specified as positiv number" % params.RETRACT_DISTANCE)}\n{% endif %}\n{% endif %}\n{% if params.FW_RETRACT %}\n{% if params.FW_RETRACT|lower is in [\'true\', \'false\'] %}\n{% if \'firmware_retraction\' in printer.configfile.settings %}\n{% set _dummy = tl.extruder.update({\'fw_retract\': True if params.FW_RETRACT|lower == \'true\' else False}) %}\n{% else %}\n{% set _dummy = tl.extruder.update({\'fw_retract\':False}) %}\n{% if params.FW_RETRACT|capitalize == \'True\' %}\n{action_raise_error("[firmware_retraction] not defined in printer.cfg. Can not enable fw_retract")}\n{% endif %}\n{% endif %}\n{% else %}\n{action_raise_error("FW_RETRACT=%s not supported. Allowed values are [True, False]" % params.FW_RETRACT|capitalize)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=extruder VALUE="{tl.extruder}"\n{% if printer.configfile.settings[\'gcode_macro pause\'] is defined %}\n{% set _dummy = tl.macro.update({\'pause\': printer.configfile.settings[\'gcode_macro pause\'].rename_existing}) %}\n{% endif %}\n{% if printer.configfile.settings[\'gcode_macro resume\'] is defined %}\n{% set _dummy = tl.macro.update({\'resume\': printer.configfile.settings[\'gcode_macro resume\'].rename_existing}) %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=macro VALUE="{tl.macro}"'}, 'gcode_macro TIMELAPSE_TAKE_FRAME': {'description': 'Take Timelapse shoot', 'variable_enable': 'False', 'variable_takingframe': 'False', 'variable_park': "{'enable': False,\n'pos' : 'center',\n'time' : 0.1,\n'custom': {'x': 0, 'y': 0, 'dz': 0},\n'coord' : {'x': 0, 'y': 0, 'dz': 0}}", 'variable_extruder': "{'fw_retract': False,\n'retract': 1.0,\n'extrude': 1.0}", 'variable_speed': "{'travel': 100,\n'retract': 15,\n'extrude': 15}", 'variable_verbose': 'True', 'variable_check_time': '0.5', 'variable_restore': "{'absolute': {'coordinates': True, 'extrude': True}, 'speed': 1500, 'e':0, 'factor': {'speed': 1.0, 'extrude': 1.0}}", 'variable_macro': "{'pause': 'PAUSE', 'resume': 'RESUME'}", 'variable_is_paused': 'False', 'gcode': '\n{% set hyperlapse = True if params.HYPERLAPSE and params.HYPERLAPSE|lower ==\'true\' else False %}\n{% if enable %}\n{% if (hyperlapse and printer[\'gcode_macro HYPERLAPSE\'].run) or\n(not hyperlapse and not printer[\'gcode_macro HYPERLAPSE\'].run) %}\n{% if park.enable %}\n{% set pos = {\'x\': \'X\' + park.coord.x|string if park.pos != \'y_only\' else \'\',\n\'y\': \'Y\' + park.coord.y|string if park.pos != \'x_only\' else \'\',\n\'z\': \'Z\'+ [printer.gcode_move.gcode_position.z + park.coord.dz, printer.toolhead.axis_maximum.z]|min|string} %}\n{% set restore = {\'absolute\': {\'coordinates\': printer.gcode_move.absolute_coordinates,\n\'extrude\' : printer.gcode_move.absolute_extrude},\n\'speed\' : printer.gcode_move.speed,\n\'e\' : printer.gcode_move.gcode_position.e,\n\'factor\' : {\'speed\' : printer.gcode_move.speed_factor,\n\'extrude\': printer.gcode_move.extrude_factor}} %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=restore VALUE="{restore}"\n{% if not printer[printer.toolhead.extruder].can_extrude %}\n{% if verbose %}{action_respond_info("Timelapse: Warning, minimum extruder temperature not reached!")}{% endif %}\n{% else %}\n{% if extruder.fw_retract %}\nG10\n{% else %}\nM83\nG0 E-{extruder.retract} F{speed.retract * 60}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=True\n{macro.pause}\nSET_GCODE_OFFSET X=0 Y=0\nG90\n{% if "xyz" not in printer.toolhead.homed_axes %}\n{% if verbose %}{action_respond_info("Timelapse: Warning, axis not homed yet!")}{% endif %}\n{% else %}\nG0 {pos.x} {pos.y} {pos.z} F{speed.travel * 60}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=takingframe VALUE=True\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={check_time}\nM400\n{% endif %}\n_TIMELAPSE_NEW_FRAME HYPERLAPSE={hyperlapse}\n{% endif %}\n{% else %}\n{% if verbose %}{action_respond_info("Timelapse: disabled, take frame ignored")}{% endif %}\n{% endif %}'}, 'gcode_macro _TIMELAPSE_NEW_FRAME': {'description': 'action call for timelapse shoot. must be a seperate macro', 'gcode': '\n{action_call_remote_method("timelapse_newframe",\nmacropark=printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'].park,\nhyperlapse=params.HYPERLAPSE)}'}, 'delayed_gcode _WAIT_TIMELAPSE_TAKE_FRAME': {'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% set factor = {\'speed\': printer.gcode_move.speed_factor, \'extrude\': printer.gcode_move.extrude_factor} %}\n{% if tl.takingframe %}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={tl.check_time}\n{% else %}\n{tl.macro.resume} VELOCITY={tl.speed.travel}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=False\n{% if not printer[printer.toolhead.extruder].can_extrude %}\n{action_respond_info("Timelapse: Warning minimum extruder temperature not reached!")}\n{% else %}\n{% if tl.extruder.fw_retract %}\nG11\n{% else %}\nG0 E{tl.extruder.extrude} F{tl.speed.extrude * 60}\nG0 F{tl.restore.speed}\n{% if tl.restore.absolute.extrude %}\nM82\nG92 E{tl.restore.e}\n{% endif %}\n{% endif %}\n{% endif %}\n{% if tl.restore.factor.speed != factor.speed %} M220 S{(factor.speed*100)|round(0)} {% endif %}\n{% if tl.restore.factor.extrude != factor.extrude %} M221 S{(factor.extrude*100)|round(0)} {% endif %}\n{% if not tl.restore.absolute.coordinates %} G91 {% endif %}\n{% endif %}'}, 'gcode_macro HYPERLAPSE': {'description': 'Start/Stop a hyperlapse recording', 'variable_cycle': '0', 'variable_run': 'False', 'gcode': '\n{% set cycle = params.CYCLE|default(30)|int %}\n{% if params.ACTION and params.ACTION|lower == \'start\' %}\n{action_respond_info("Hyperlapse: frames started (Cycle %d sec)" % cycle)}\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=True\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=cycle VALUE={cycle}\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={cycle}\nTIMELAPSE_TAKE_FRAME HYPERLAPSE=True\n{% elif params.ACTION and params.ACTION|lower == \'stop\' %}\n{% if run %}{action_respond_info("Hyperlapse: frames stopped")}{% endif %}\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=False\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION=0\n{% else %}\n{action_raise_error("Hyperlapse: No valid input parameter\nUse:\n- HYPERLAPSE ACTION=START [CYCLE=time]\n- HYPERLAPSE ACTION=STOP")}\n{% endif %}'}, 'delayed_gcode _HYPERLAPSE_LOOP': {'gcode': '\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={printer["gcode_macro HYPERLAPSE"].cycle}\nTIMELAPSE_TAKE_FRAME HYPERLAPSE=True'}, 'gcode_macro TIMELAPSE_RENDER': {'description': 'Render Timelapse video and wait for the result', 'variable_render': 'False', 'variable_run_identifier': '0', 'gcode': '\n{action_respond_info("Timelapse: Rendering started")}\n{action_call_remote_method("timelapse_render", byrendermacro="True")}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=render VALUE=True\n{printer.configfile.settings[\'gcode_macro pause\'].rename_existing}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5'}, 'delayed_gcode _WAIT_TIMELAPSE_RENDER': {'gcode': '\n{% set ri = printer[\'gcode_macro TIMELAPSE_RENDER\'].run_identifier % 4 %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=run_identifier VALUE={ri + 1}\n{% if printer[\'gcode_macro TIMELAPSE_RENDER\'].render %}\nM117 Rendering {[\'-\',\'\\\\\',\'|\',\'/\'][ri]}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5\n{% else %}\n{action_respond_info("Timelapse: Rendering finished")}\nM117\n{printer.configfile.settings[\'gcode_macro resume\'].rename_existing}\n{% endif %}'}, 'gcode_macro TEST_STREAM_DELAY': {'description': 'Helper macro to find stream and park delay', 'gcode': '\n{% set min = printer.toolhead.axis_minimum %}\n{% set max = printer.toolhead.axis_maximum %}\n{% set act = printer.toolhead.position %}\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% if act.z > 5.0 %}\nG0 X{min.x + 5.0} F{tl.speed.travel|int * 60}\nG0 X{(max.x-min.x)/2}\nG4 P{tl.park.time|float * 1000}\n_TIMELAPSE_NEW_FRAME HYPERLAPSE=FALSE\nG0 X{max.x - 5.0}\n{% else %}\n{action_raise_error("Toolhead z %.3f to low. Please place head above z = 5.0" % act.z)}\n{% endif %}'}, 'save_variables': {'filename': '/usr/data/printer_data/config/Helper-Script/variables.cfg'}, 'respond': {}, 'gcode_macro SET_GCODE_OFFSET': {'description': 'Saving Z-Offset', 'rename_existing': '_SET_GCODE_OFFSET', 'gcode': '\n{% if printer.save_variables.variables.zoffset %}\n{% set zoffset = printer.save_variables.variables.zoffset %}\n{% else %}\n{% set zoffset = {\'z\': None} %}\n{% endif %}\n{% set ns = namespace(zoffset={\'z\': zoffset.z}) %}\n_SET_GCODE_OFFSET {% for p in params %}{\'%s=%s \'% (p, params[p])}{% endfor %}\n{%if \'Z\' in params %}{% set null = ns.zoffset.update({\'z\': params.Z}) %}{% endif %}\n{%if \'Z_ADJUST\' in params %}\n{%if ns.zoffset.z == None %}{% set null = ns.zoffset.update({\'z\': 0}) %}{% endif %}\n{% set null = ns.zoffset.update({\'z\': (ns.zoffset.z | float) + (params.Z_ADJUST | float)}) %}\n{% endif %}\nSAVE_VARIABLE VARIABLE=zoffset VALUE="{ns.zoffset}"'}, 'delayed_gcode LOAD_GCODE_OFFSETS': {'initial_duration': '2', 'gcode': '\n{% if printer.save_variables.variables.zoffset %}\n{% set zoffset = printer.save_variables.variables.zoffset %}\n_SET_GCODE_OFFSET {% for axis, offset in zoffset.items() if zoffset[axis] %}{ "%s=%s " % (axis, offset) }{% endfor %}\nRESPOND TYPE=command MSG="Loaded Z-Offset from variables.cfg: {zoffset.z}mm"\n{% endif %}'}, 'calibrate_shaper_config': {}, 'gcode_shell_command resonance_graph': {'command': '/usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/calibrate_shaper.py', 'timeout': '600.0', 'verbose': 'False'}, 'gcode_shell_command belts_graph': {'command': '/usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/graph_belts.py', 'timeout': '600.0', 'verbose': 'False'}, 'gcode_shell_command delete_graph': {'command': 'sh /usr/data/helper-script/files/improved-shapers/delete_graph.sh', 'timeout': '600.0', 'verbose': 'False'}, 'gcode_shell_command delete_csv': {'command': 'sh /usr/data/helper-script/files/improved-shapers/delete_csv.sh', 'timeout': '600.0', 'verbose': 'False'}, 'gcode_macro INPUT_SHAPER_CALIBRATION': {'description': 'Measure X and Y Axis Resonances and Save values', 'gcode': '\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nRESPOND TYPE=command MSG="Measuring X and Y Resonances..."\nSHAPER_CALIBRATE\nM400\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Input Shaper Calibration complete!"\nSAVE_CONFIG'}, 'gcode_macro TEST_RESONANCES_GRAPHS': {'description': 'Test X and Y Axis Resonances and Generate Graphs', 'gcode': '\nRUN_SHELL_COMMAND CMD=delete_graph\n{% set x_png = params.X_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_x.png") %}\n{% set y_png = params.Y_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_y.png") %}\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nRESPOND TYPE=command MSG="Testing X Resonances..."\nTEST_RESONANCES AXIS=X NAME=x\nM400\nRESPOND TYPE=command MSG="Generating X Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_x_x.csv -o {x_png}"\nRESPOND TYPE=command MSG="X Graph (resonances_x.png) is now available in /Helper-Script/improved-shapers folder."\nRESPOND TYPE=command MSG="Testing Y Resonances..."\nTEST_RESONANCES AXIS=Y NAME=y\nM400\nRESPOND TYPE=command MSG="Generating Y Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_y_y.csv -o {y_png}"\nRESPOND TYPE=command MSG="Y Graph (resonances_y.png) is now available in /Helper-Script/improved-shapers folder."\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Resonances Test complete!"'}, 'gcode_macro BELTS_SHAPER_CALIBRATION': {'description': 'Perform a custom half-axis test to analyze and compare the frequency profiles of individual belts on CoreXY printers', 'gcode': '\nRUN_SHELL_COMMAND CMD=delete_graph\n{% set min_freq = params.FREQ_START|default(5)|float %}\n{% set max_freq = params.FREQ_END|default(133.33)|float %}\n{% set hz_per_sec = params.HZ_PER_SEC|default(1)|float %}\n{% set png_width = params.PNG_WIDTH|default(8)|float %}\n{% set png_height = params.PNG_HEIGHT|default(4.8)|float %}\n{% set png_out_path = params.PNG_OUT_PATH|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/belts_calibration.png") %}\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nTEST_RESONANCES AXIS=1,1 OUTPUT=raw_data NAME=b FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}\nM400\nTEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data NAME=a FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}\nM400\nRESPOND TYPE=command MSG="Generating Belts Frequency Profiles Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=belts_graph PARAMS="-w {png_width} -l {png_height} -n -o {png_out_path} -k /usr/share/klipper /tmp/raw_data_axis=1.000,-1.000_a.csv /tmp/raw_data_axis=1.000,1.000_b.csv"\nRESPOND TYPE=command MSG="Graph (belts_calibration.png) is now available in /Helper-Script/improved-shapers folder."\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Belts Shaper Calibration complete!"'}, 'gcode_macro EXCITATE_AXIS_AT_FREQ': {'description': 'Maintain a specified excitation frequency for a period of time to diagnose and locate a vibration source', 'gcode': '\n{% set frequency = params.FREQUENCY|default(25)|int %}\n{% set time = params.TIME|default(10)|int %}\n{% set axis = params.AXIS|default("x")|string|lower %}\n{% if axis not in ["x", "y", "a", "b"] %}\n{ action_raise_error("AXIS selection is invalid. Should be either x, y, a or b!") }\n{% endif %}\n{% if axis == "a" %}\n{% set axis = "1,-1" %}\n{% elif axis == "b" %}\n{% set axis = "1,1" %}\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nTEST_RESONANCES OUTPUT=raw_data AXIS={axis} FREQ_START={frequency-1} FREQ_END={frequency+1} HZ_PER_SEC={1/(time/3)}\nM400'}, 'duplicate_pin_override': {'pins': 'PC0, PC5, PB2, ADC_TEMPERATURE'}, 'temperature_fan chamber_fan': {'pin': 'PC0', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'max_power': '1', 'shutdown_speed': '0', 'sensor_type': 'EPCOS 100K B57560G104F', 'sensor_pin': 'PC5', 'min_temp': '0', 'max_temp': '70', 'control': 'watermark', 'max_delta': '2', 'target_temp': '35.0', 'max_speed': '1.0', 'min_speed': '0.0'}, 'temperature_fan mcu_fan': {'pin': 'PB2', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'max_power': '1', 'shutdown_speed': '0', 'sensor_type': 'temperature_mcu', 'min_temp': '0', 'max_temp': '100', 'control': 'watermark', 'max_delta': '2', 'target_temp': '50.0', 'max_speed': '1.0', 'min_speed': '0.0'}, 'output_pin mcu_fan': {'pin': 'PB2', 'pwm': 'True', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'value': '0.00', 'scale': '255', 'shutdown_value': '0.0'}, 'gcode_macro M141': {'description': 'Set Chamber Temperature with slicers', 'gcode': '\n{% set s = params.S|float %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=chamber_fan TARGET={s}\nRESPOND TYPE=command MSG="Chamber target temperature: {s}°C"'}, 'gcode_macro M191': {'description': 'Wait for Chamber Temperature to heat up', 'gcode': '\n{% set s = params.S|float %}\n{% set chamber_temp = printer["temperature_sensor chamber_temp"].temperature|float %}\n{% if s > 0 %}\nM141 S{s}\n{% endif %}\n{% if s > chamber_temp and s <= 90 %}\nM140 S100\nRESPOND TYPE=command MSG="Waiting for the bed to heat up the chamber..."\nTEMPERATURE_WAIT SENSOR="temperature_fan chamber_fan" MINIMUM={s-1}\nRESPOND TYPE=command MSG="Chamber target temperature reached: {s}°C"\nM140 S{s}\n{% endif %}'}, 'gcode_macro M106': {'gcode': '\n{% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}\n{% set fan = 0 %}\n{% set value = 0 %}\n{% if params.P is defined %}\n{% set tmp = params.P|int %}\n{% if tmp < fans %}\n{% set fan = tmp %}\n{% endif %}\n{% endif %}\n{% if params.S is defined %}\n{% set tmp = params.S|float %}\n{% else %}\n{% set tmp = 255 %}\n{% endif %}\n{% if tmp > 0 %}\n{% if fan == 0 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan0_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}\n{% endif %}\n{% endif %}\n{% if fan == 1 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan1_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan1_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}\n{% endif %}\n{% endif %}\n{% if fan == 2 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan2_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}\n{% endif %}\n{% endif %}\n{% endif %}\n{% if value >= 255 %}\n{% set value = 255 %}\n{% endif %}\n{% if params.P is defined and params.P|int == 3 %}\n{% set fan = 1 %}\n{% endif %}\nSET_PIN PIN=fan{fan} VALUE={value}'}, 'prtouch_v2_fan': {'max_speed': '0.5'}, 'output_pin KAMP': {'pin': 'virtual_pin:KAMP_pin', 'value': '1'}, 'output_pin BED_LEVELING': {'pin': 'virtual_pin:BED_LEVELING_pin', 'value': '1'}, 'gcode_macro START_PRINT': {'variable_prepare': '0', 'gcode': '\nWAIT_TEMP_END\nCLEAR_PAUSE\n{% set g28_extruder_temp = printer.custom_macro.g28_ext_temp %}\n{% set bed_temp = printer.custom_macro.default_bed_temp %}\n{% set extruder_temp = printer.custom_macro.default_extruder_temp %}\n{% if \'BED_TEMP\' in params|upper and (params.BED_TEMP|float) %}\n{% set bed_temp = params.BED_TEMP %}\n{% endif %}\n{% if \'EXTRUDER_TEMP\' in params|upper and (params.EXTRUDER_TEMP|float) %}\n{% set extruder_temp = params.EXTRUDER_TEMP %}\n{% endif %}\n{% if printer[\'gcode_macro START_PRINT\'].prepare|int == 0 %}\nPRINT_PREPARE_CLEAR\nCX_ROUGH_G28 EXTRUDER_TEMP={extruder_temp} BED_TEMP={bed_temp}\nCX_NOZZLE_CLEAR\nACCURATE_G28\n{% if printer[\'output_pin KAMP\'].value == 1 %}\nRESPOND TYPE=command MSG="Starting KAMP Bed Mesh..."\nBED_MESH_CLEAR\nBED_MESH_CALIBRATE\nBED_MESH_PROFILE SAVE=kamp\nBED_MESH_PROFILE LOAD=kamp\n{% else %}\n{% if printer[\'output_pin BED_LEVELING\'].value == 1 %}\nRESPOND TYPE=command MSG="Starting Full Bed Mesh..."\nCX_PRINT_LEVELING_CALIBRATION\n{% endif %}\nBED_MESH_PROFILE LOAD=default\n{% endif %}\n{% else %}\nPRINT_PREPARE_CLEAR\n{% endif %}\n{% if printer[\'output_pin KAMP\'].value == 1 %}\n_SMART_PARK\nM109 S{extruder_temp}\nM190 S{bed_temp}\nRESPOND TYPE=command MSG="Starting KAMP line purge..."\n_LINE_PURGE\n{% else %}\nRESPOND TYPE=command MSG="Starting classic line purge..."\nCX_PRINT_DRAW_ONE_LINE\n{% endif %}\nSET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel}'}, 'gcode_macro BED_MESH_CALIBRATE': {'rename_existing': '_BED_MESH_CALIBRATE', 'gcode': '\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set bed_mesh_min = printer.configfile.settings.bed_mesh.mesh_min %}\n{% set bed_mesh_max = printer.configfile.settings.bed_mesh.mesh_max %}\n{% set probe_count = printer.configfile.settings.bed_mesh.probe_count %}\n{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}\n{% set verbose_enable = kamp_settings.verbose_enable | abs %}\n{% set mesh_margin = kamp_settings.mesh_margin | float %}\n{% set fuzz_amount = kamp_settings.fuzz_amount | float %}\n{% set probe_count = probe_count if probe_count|length > 1 else probe_count * 2 %}\n{% set max_probe_point_distance_x = ( bed_mesh_max[0] - bed_mesh_min[0] ) / (probe_count[0] - 1) %}\n{% set max_probe_point_distance_y = ( bed_mesh_max[1] - bed_mesh_min[1] ) / (probe_count[1] - 1) %}\n{% set x_min = all_points | map(attribute=0) | min | default(bed_mesh_min[0]) %}\n{% set y_min = all_points | map(attribute=1) | min | default(bed_mesh_min[1]) %}\n{% set x_max = all_points | map(attribute=0) | max | default(bed_mesh_max[0]) %}\n{% set y_max = all_points | map(attribute=1) | max | default(bed_mesh_max[1]) %}\n{% set fuzz_range = range((0) | int, (fuzz_amount * 100) | int + 1) %}\n{% set adapted_x_min = x_min - mesh_margin - (fuzz_range | random / 100.0) %}\n{% set adapted_y_min = y_min - mesh_margin - (fuzz_range | random / 100.0) %}\n{% set adapted_x_max = x_max + mesh_margin + (fuzz_range | random / 100.0) %}\n{% set adapted_y_max = y_max + mesh_margin + (fuzz_range | random / 100.0) %}\n{% set adapted_x_min = [adapted_x_min , bed_mesh_min[0]] | max %}\n{% set adapted_y_min = [adapted_y_min , bed_mesh_min[1]] | max %}\n{% set adapted_x_max = [adapted_x_max , bed_mesh_max[0]] | min %}\n{% set adapted_y_max = [adapted_y_max , bed_mesh_max[1]] | min %}\n{% set points_x = (((adapted_x_max - adapted_x_min) / max_probe_point_distance_x) | round(method=\'ceil\') | int) + 1 %}\n{% set points_y = (((adapted_y_max - adapted_y_min) / max_probe_point_distance_y) | round(method=\'ceil\') | int) + 1 %}\n{% if (points_x > points_y) %}\n{% set points_y = points_x %}\n{% endif %}\n{% if (points_x < points_y) %}\n{% set points_x = points_y %}\n{% endif %}\n{% if (([points_x, points_y]|max) > 6) %}\n{% set algorithm = "bicubic" %}\n{% set min_points = 4 %}\n{% else %}\n{% set algorithm = "lagrange" %}\n{% set min_points = 3 %}\n{% endif %}\n{% set points_x = [points_x , min_points]|max %}\n{% set points_y = [points_y , min_points]|max %}\n{% set points_x = [points_x , probe_count[0]]|min %}\n{% set points_y = [points_y , probe_count[1]]|min %}\n\n{% if verbose_enable == True %}\n\n{% if printer.exclude_object.objects != [] %}\n\nRESPOND TYPE=command MSG="Algorithm: {algorithm}"\nRESPOND TYPE=command MSG="Default probe count: {probe_count[0]},{probe_count[1]}"\nRESPOND TYPE=command MSG="Adapted probe count: {points_x},{points_y}"\nRESPOND TYPE=command MSG="Default mesh bounds: {bed_mesh_min[0]},{bed_mesh_min[1]}, {bed_mesh_max[0]},{bed_mesh_max[1]}"\n\n{% if mesh_margin > 0 %}\n\nRESPOND TYPE=command MSG="Mesh margin is {mesh_margin}, mesh bounds extended by {mesh_margin}mm."\n\n{% else %}\n\nRESPOND TYPE=command MSG="Mesh margin is 0, margin not increased."\n\n{% endif %}\n\n{% if fuzz_amount > 0 %}\n\nRESPOND TYPE=command MSG="Mesh point fuzzing enabled, points fuzzed up to {fuzz_amount}mm"\n\n{% else %}\n\nRESPOND TYPE=command MSG="Fuzz amount is 0, mesh points not fuzzed."\n\n{% endif %}\n\nRESPOND TYPE=command MSG="Adapted mesh bounds: {adapted_x_min},{adapted_y_min}, {adapted_x_max},{adapted_y_max}"\nRESPOND TYPE=command MSG="KAMP adjustments successful. Happy KAMPing!"\n\n{% else %}\n\nRESPOND TYPE=command MSG="No object detected! Make sure you have enabled Exclude Objets setting in your slicer. Using Full Bed Mesh."\nG4 P5000\n\n{% endif %}\n\n{% endif %}\n\n_BED_MESH_CALIBRATE mesh_min={adapted_x_min},{adapted_y_min} mesh_max={adapted_x_max},{adapted_y_max} ALGORITHM={algorithm} PROBE_COUNT={points_x},{points_y}'}, 'gcode_macro _LINE_PURGE': {'description': 'A purge macro that adapts to be near your actual printed objects', 'gcode': '\n{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}\n{% set cross_section = printer.configfile.settings.extruder.max_extrude_cross_section | float %}\n{% if printer.firmware_retraction is defined %}\n{% set RETRACT = G10 | string %}\n{% set UNRETRACT = G11 | string %}\n{% else %}\n{% set RETRACT = \'G1 E-0.5 F2400\' | string %}\n{% set UNRETRACT = \'G1 E0.5 F2400\' | string %}\n{% endif %}\n{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}\n{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}\n{% set verbose_enable = printer["gcode_macro _KAMP_Settings"].verbose_enable | abs %}\n{% set purge_height = printer["gcode_macro _KAMP_Settings"].purge_height | float %}\n{% set tip_distance = printer["gcode_macro _KAMP_Settings"].tip_distance | float %}\n{% set purge_margin = printer["gcode_macro _KAMP_Settings"].purge_margin | float %}\n{% set purge_amount = printer["gcode_macro _KAMP_Settings"].purge_amount | float %}\n{% set flow_rate = printer["gcode_macro _KAMP_Settings"].flow_rate | float %}\n{% set rapid_move = 10 %}\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set purge_x_min = (all_points | map(attribute=0) | min | default(0)) %}\n{% set purge_x_max = (all_points | map(attribute=0) | max | default(0)) %}\n{% set purge_y_min = (all_points | map(attribute=1) | min | default(0)) %}\n{% set purge_y_max = (all_points | map(attribute=1) | max | default(0)) %}\n{% set detect_object = purge_x_min + purge_x_max + purge_y_min + purge_y_max %}\n{% set purge_x_center = ([((purge_x_max + purge_x_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% set purge_y_center = ([((purge_y_max + purge_y_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% if (purge_x_center + purge_amount + rapid_move) > bed_x_max %}\n{% set purge_x_center = (bed_x_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% if (purge_y_center + purge_amount + rapid_move) > bed_y_max %}\n{% set purge_y_center = (bed_y_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% set purge_x_origin_low = (purge_x_min - purge_margin) %}\n{% set purge_x_origin_high = (purge_x_max + purge_margin) %}\n{% set purge_y_origin_low = (purge_y_min - purge_margin) %}\n{% set purge_y_origin_high = (purge_y_max + purge_margin) %}\n{% set purge_move_speed = (flow_rate / 5.0) * 60 | float %}\n\n{% if cross_section < 5 %}\n\nRESPOND TYPE=command MSG="[Extruder] max_extrude_cross_section is insufficient for line purge, please set it to 5 or greater. Purge skipped."\n\n{% else %}\n\n{% if verbose_enable == True %}\n\nRESPOND TYPE=command MSG="Moving filament tip {tip_distance}mm"\n\n{% endif %}\n\n{% if detect_object == 0 %}\n\nRESPOND TYPE=command MSG="No object detected! Using classic purge line."\n\n{% elif purge_y_origin_low > 0 %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_low} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_x_origin_low > 0 %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_low}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_y_origin_high < bed_y_max %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_high} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_x_origin_high < bed_x_max %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_high}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% else %}\n\nRESPOND TYPE=command MSG="No space for purge line! Using classic purge line."\n\n{% endif %}\n\nSAVE_GCODE_STATE NAME=Prepurge_State\n\n{% if detect_object == 0 %}\n\nG92 E0\nG1 Z0.1 F600\nM83\n{RETRACT}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nM204 S12000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000\nM220 S100\nM221 S100\nG1 Z2.0 F1200\nG1 X0.1 Y20 Z0.3 F6000.0\nG1 X0.1 Y180.0 Z0.3 F3000.0 E10.0\nG1 X0.4 Y180.0 Z0.3 F3000.0\nG1 X0.4 Y20.0 Z0.3 F3000.0 E10.0\nG1 Y10.0 F3000.0\nG1 Z2.0 F3000.0\nG92 E0\nM82\nG1 F12000\nG21\n\n{% elif purge_y_origin_low > 0 %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_center} Y{purge_y_origin_low}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_x_origin_low > 0 %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_origin_low} Y{purge_y_center}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_y_origin_high < bed_y_max %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_center} Y{purge_y_origin_high}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_x_origin_high < bed_x_max %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_origin_high} Y{purge_y_center}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% else %}\n\nG92 E0\nG1 Z0.1 F600\nM83\n{RETRACT}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nM204 S12000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000\nM220 S100\nM221 S100\nG1 Z2.0 F1200\nG1 X0.1 Y20 Z0.3 F6000.0\nG1 X0.1 Y180.0 Z0.3 F3000.0 E10.0\nG1 X0.4 Y180.0 Z0.3 F3000.0\nG1 X0.4 Y20.0 Z0.3 F3000.0 E10.0\nG1 Y10.0 F3000.0\nG1 Z2.0 F3000.0\nG92 E0\nM82\nG1 F12000\nG21\n\n{% endif %}\n\nRESTORE_GCODE_STATE NAME=Prepurge_State\n\n{% endif %}'}, 'gcode_macro _SMART_PARK': {'description': 'Parks your printhead near the print area for pre-print hotend heating.', 'gcode': '\n{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}\n{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}\n{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}\n{% set z_height = kamp_settings.smart_park_height | float %}\n{% set purge_margin = kamp_settings.purge_margin | float %}\n{% set purge_amount = kamp_settings.purge_amount | float %}\n{% set verbose_enable = kamp_settings.verbose_enable | abs %}\n{% set center_x = bed_x_max / 2 %}\n{% set center_y = bed_y_max / 2 %}\n{% set axis_minimum_x = printer.toolhead.axis_minimum.x | float %}\n{% set axis_minimum_y = printer.toolhead.axis_minimum.y | float %}\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set x_min = (all_points | map(attribute=0) | min | default(0)) %}\n{% set x_max = (all_points | map(attribute=0) | max | default(0)) %}\n{% set y_min = (all_points | map(attribute=1) | min | default(0)) %}\n{% set y_max = (all_points | map(attribute=1) | max | default(0)) %}\n{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}\n{% set rapid_move = 10 %}\n{% set park_x_center = ([((x_max + x_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% set park_y_center = ([((y_max + y_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% if (park_x_center + purge_amount + rapid_move) > bed_x_max %}\n{% set park_x_center = (bed_x_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% if (park_y_center + purge_amount + rapid_move) > bed_y_max %}\n{% set park_y_center = (bed_y_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% set park_x_origin_low = (x_min - purge_margin) %}\n{% set park_x_origin_high = (x_max + purge_margin) %}\n{% set park_y_origin_low = (y_min - purge_margin) %}\n{% set park_y_origin_high = (y_max + purge_margin) %}\n{% set detect_object = (x_min + x_max + y_min + y_max) %}\n{% if detect_object == 0 %}\n{% set x_min = 10 %}\n{% set y_min = 10 %}\n{% set z_height = 2 %}\n{% elif park_y_origin_low > 0 %}\n{% set x_min = park_x_center %}\n{% set y_min = park_y_origin_low %}\n{% elif park_x_origin_low > 0 %}\n{% set x_min = park_x_origin_low %}\n{% set y_min = park_y_center %}\n{% elif park_y_origin_high < bed_y_max %}\n{% set x_min = park_x_center %}\n{% set y_min = park_y_origin_high %}\n{% elif park_x_origin_high < bed_x_max %}\n{% set x_min = park_x_origin_high %}\n{% set y_min = park_y_center %}\n{% else %}\n{% set x_min = 10 %}\n{% set y_min = 10 %}\n{% set z_height = 2 %}\n{% endif %}\n\n{% if verbose_enable == True %}\n\nRESPOND TYPE=command MSG="Smart Park location: {x_min},{y_min}"\n\n{% endif %}\n\nSAVE_GCODE_STATE NAME=Presmartpark_State\n\nG90\n{% if printer.toolhead.position.z < z_height %}\n\nG0 Z{z_height}\n\n{% endif %}\n\nG0 X{x_min} Y{y_min} F{travel_speed}\nG0 Z{z_height}\n\nRESTORE_GCODE_STATE NAME=Presmartpark_State'}, 'gcode_macro DEFINE_OBJECT': {'gcode': '\nEXCLUDE_OBJECT_DEFINE {rawparams}'}, 'gcode_macro START_CURRENT_OBJECT': {'gcode': '\nEXCLUDE_OBJECT_START NAME={params.NAME}'}, 'gcode_macro END_CURRENT_OBJECT': {'gcode': '\nEXCLUDE_OBJECT_END {% if params.NAME %}NAME={params.NAME}{% endif %}'}, 'gcode_macro LIST_OBJECTS': {'gcode': '\nEXCLUDE_OBJECT_DEFINE'}, 'gcode_macro LIST_EXCLUDED_OBJECTS': {'gcode': '\nEXCLUDE_OBJECT'}, 'gcode_macro REMOVE_ALL_EXCLUDED': {'gcode': '\nEXCLUDE_OBJECT RESET=1'}, 'gcode_macro _KAMP_Settings': {'description': 'This macro contains all adjustable settings for KAMP', 'variable_verbose_enable': 'True', 'variable_mesh_margin': '0', 'variable_fuzz_amount': '0', 'variable_purge_height': '0.8', 'variable_tip_distance': '0', 'variable_purge_margin': '10', 'variable_purge_amount': '50', 'variable_flow_rate': '12', 'variable_smart_park_height': '10', 'gcode': '\nRESPOND TYPE=command MSG="Running the KAMP_Settings macro does nothing, it\'s only used for storing KAMP settings."'}, 'mcu': {'serial': '/dev/ttyS7', 'baud': '230400', 'restart_method': 'command'}, 'mcu nozzle_mcu': {'serial': '/dev/ttyS1', 'baud': '230400', 'restart_method': 'command'}, 'mcu leveling_mcu': {'serial': '/dev/ttyS9', 'baud': '230400', 'restart_method': 'command'}, 'verify_heater extruder': {}, 'verify_heater heater_bed': {'check_gain_time': '120', 'heating_gain': '1.0', 'hysteresis': '10'}, 'mcu rpi': {'serial': '/tmp/klipper_host_mcu'}, 'bl24c16f': {'i2c_mcu': 'rpi', 'i2c_bus': 'i2c.2', 'i2c_speed': '400000'}, 'idle_timeout': {'timeout': '99999999'}, 'virtual_sdcard': {'path': '/usr/data/printer_data/gcodes'}, 'gcode_arcs': {'resolution': '1.0'}, 'temperature_sensor mcu_temp': {'sensor_type': 'temperature_mcu', 'min_temp': '0', 'max_temp': '100'}, 'temperature_sensor chamber_temp': {'sensor_type': 'EPCOS 100K B57560G104F', 'sensor_pin': 'PC5', 'min_temp': '0', 'max_temp': '125'}, 'stepper_x': {'step_pin': 'PC2', 'dir_pin': '!PB9', 'enable_pin': '!PC3', 'microsteps': '32', 'rotation_distance': '72', 'endstop_pin': 'tmc2209_stepper_x:virtual_endstop', 'position_endstop': '306.5', 'position_min': '-2', 'position_max': '306.5', 'homing_speed': '36', 'homing_retract_dist': '0'}, 'tmc2209 stepper_x': {'uart_pin': 'PA9', 'interpolate': 'True', 'run_current': '1.5', 'hold_current': '1.0', 'sense_resistor': '0.100', 'stealthchop_threshold': '0', 'uart_address': '3', 'diag_pin': '^PB12', 'driver_sgthrs': '65'}, 'stepper_y': {'step_pin': 'PB8', 'dir_pin': '!PB7', 'enable_pin': '!PC3', 'microsteps': '32', 'rotation_distance': '72', 'endstop_pin': 'tmc2209_stepper_y:virtual_endstop', 'position_endstop': '-2', 'position_min': '-2', 'position_max': '306', 'homing_speed': '36', 'homing_retract_dist': '0'}, 'tmc2209 stepper_y': {'uart_pin': 'PA10', 'interpolate': 'True', 'run_current': '1.5', 'hold_current': '1.0', 'sense_resistor': '0.100', 'stealthchop_threshold': '0', 'uart_address': '3', 'diag_pin': '^PB13', 'driver_sgthrs': '65'}, 'stepper_z': {'step_pin': 'PB6', 'dir_pin': '!PB5', 'enable_pin': '!PC3', 'microsteps': '16', 'rotation_distance': '8', 'gear_ratio': '64:20', 'endstop_pin': 'tmc2209_stepper_z:virtual_endstop', 'position_endstop': '0', 'position_max': '305', 'position_min': '-10', 'homing_speed': '10', 'second_homing_speed': '1', 'homing_retract_dist': '2.0'}, 'tmc2209 stepper_z': {'uart_pin': 'PA11', 'uart_address': '3', 'run_current': '0.8', 'diag_pin': '^PB14', 'stealthchop_threshold': '0', 'sense_resistor': '0.100', 'driver_sgthrs': '0'}, 'extruder': {'max_extrude_only_distance': '1000.0', 'max_extrude_cross_section': '80', 'step_pin': 'nozzle_mcu:PB1', 'dir_pin': 'nozzle_mcu:PB0', 'enable_pin': '!nozzle_mcu:PB2', 'microsteps': '16', 'rotation_distance': '6.9', 'nozzle_diameter': '0.400', 'filament_diameter': '1.750', 'heater_pin': 'nozzle_mcu:PB7', 'sensor_type': 'EPCOS 100K B57560G104F', 'sensor_pin': 'nozzle_mcu:PA0', 'pressure_advance': '0.04', 'pressure_advance_smooth_time': '0.040', 'control': 'pid', 'pid_kp': '25.013', 'pid_ki': '2.566', 'pid_kd': '60.966', 'min_temp': '0', 'max_temp': '320'}, 'tmc2209 extruder': {'uart_pin': 'nozzle_mcu:PB11', 'tx_pin': 'nozzle_mcu:PB10', 'uart_address': '3', 'run_current': '0.55', 'sense_resistor': '0.150', 'stealthchop_threshold': '0'}, 'heater_bed': {'heater_pin': 'PC8', 'sensor_type': 'NTC 100K beta 3950', 'sensor_pin': 'PC4', 'min_temp': '0', 'max_temp': '125', 'control': 'pid', 'pid_kp': '53.795', 'pid_ki': '0.525', 'pid_kd': '1377.827'}, 'filament_switch_sensor filament_sensor': {'pause_on_runout': 'true', 'switch_pin': '!PC15', 'runout_gcode': "\n{% if printer.extruder.can_extrude|lower == 'true' %}\nG91\nG0 E30 F600\nG90\n{% endif %}"}, 'filament_switch_sensor filament_sensor_2': {'pause_on_runout': 'true', 'switch_pin': '!nozzle_mcu:PA10'}, 'multi_pin heater_fans': {'pins': 'nozzle_mcu:PB5,PB2'}, 'heater_fan hotend_fan': {'pin': 'multi_pin:heater_fans', 'heater': 'extruder', 'heater_temp': '40'}, 'static_digital_output my_fan_output_pins': {'pins': 'nozzle_mcu: PB6'}, 'output_pin fan0': {'pin': '!nozzle_mcu: PB8', 'pwm': 'True', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'value': '0.00', 'scale': '255', 'shutdown_value': '0.0'}, 'output_pin fan1': {'pin': 'PC0', 'pwm': 'True', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'value': '0.00', 'scale': '255', 'shutdown_value': '0.0'}, 'output_pin fan2': {'pin': 'PB1', 'pwm': 'True', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'value': '0.00', 'scale': '255', 'shutdown_value': '0.0'}, 'output_pin LED': {'pin': 'PB0', 'pwm': 'True', 'cycle_time': '0.010', 'value': '1'}, 'output_pin power': {'pin': 'PC9'}, 'adxl345': {'cs_pin': 'nozzle_mcu:PA4', 'spi_speed': '5000000', 'axes_map': 'x,-z,y', 'spi_software_sclk_pin': 'nozzle_mcu:PA5', 'spi_software_mosi_pin': 'nozzle_mcu:PA7', 'spi_software_miso_pin': 'nozzle_mcu:PA6'}, 'resonance_tester': {'accel_chip': 'adxl345', 'accel_per_hz': '75', 'probe_points': '\n150,150,10'}, 'prtouch_v2': {'pr_version': '2', 'step_base': '2', 'z_offset': '0', 'noz_ex_com': '0.09', 'tilt_corr_dis': '0.05', 'tri_min_hold': '6000,10000', 'tri_max_hold': '13000,60000', 'pres_cnt': '4', 'pres0_clk_pins': 'leveling_mcu:PA7', 'pres0_sdo_pins': 'leveling_mcu:PA4', 'pres1_clk_pins': 'leveling_mcu:PA6', 'pres1_sdo_pins': 'leveling_mcu:PA3', 'pres2_clk_pins': 'leveling_mcu:PA2', 'pres2_sdo_pins': 'leveling_mcu:PA0', 'pres3_clk_pins': 'leveling_mcu:PA5', 'pres3_sdo_pins': 'leveling_mcu:PA1', 'show_msg': 'False', 'step_swap_pin': 'PC10', 'pres_swap_pin': 'leveling_mcu:PB1', 'g28_wait_cool_down': 'true', 'pa_clr_down_mm': '-0.15', 'clr_noz_start_x': '130', 'clr_noz_start_y': '303', 'clr_noz_len_x': '40', 'clr_noz_len_y': '2', 'speeds': '2.5,1.0', 'tri_hftr_cut': '2,1', 'tri_lftr_k1': '0.50,0.15', 'tri_min_hold_1': '6000,10000', 'tri_min_hold_2': '6000,10000', 'tri_min_hold_3': '6000,10000', 'tri_min_hold_4': '6000,10000', 'tri_min_hold_5': '6000,10000', 'tri_min_hold_6': '6000,10000', 'tri_min_hold_7': '6000,10000', 'tri_min_hold_8': '6000,10000', 'tri_min_hold_9': '6000,10000', 'tri_min_hold_10': '6000,10000', 'tri_min_hold_11': '6000,10000', 'tri_min_hold_12': '6000,10000', 'tri_min_hold_13': '6000,10000', 'tri_min_hold_14': '6000,10000', 'tri_min_hold_15': '6000,10000', 'tri_min_hold_16': '6000,10000', 'tri_min_hold_17': '6000,10000', 'tri_min_hold_18': '6000,10000', 'tri_min_hold_19': '6000,10000', 'tri_min_hold_20': '6000,10000', 'tri_min_hold_21': '6000,10000', 'tri_min_hold_22': '6000,10000', 'tri_min_hold_23': '6000,10000', 'tri_min_hold_24': '6000,10000', 'tri_min_hold_25': '6000,10000', 'tri_min_hold_26': '6000,10000', 'tri_min_hold_27': '6000,10000', 'tri_min_hold_28': '6000,10000', 'tri_min_hold_29': '6000,10000', 'tri_min_hold_30': '6000,10000', 'tri_min_hold_31': '6000,10000', 'tri_min_hold_32': '6000,10000', 'tri_min_hold_33': '6000,10000', 'tri_min_hold_34': '6000,10000', 'tri_min_hold_35': '6000,10000', 'tri_min_hold_36': '6000,10000', 'tri_max_hold_1': '13000,60000', 'tri_max_hold_2': '13000,60000', 'tri_max_hold_3': '13000,60000', 'tri_max_hold_4': '13000,60000', 'tri_max_hold_5': '13000,60000', 'tri_max_hold_6': '13000,60000', 'tri_max_hold_7': '13000,60000', 'tri_max_hold_8': '13000,60000', 'tri_max_hold_9': '13000,60000', 'tri_max_hold_10': '13000,60000', 'tri_max_hold_11': '13000,60000', 'tri_max_hold_12': '13000,60000', 'tri_max_hold_13': '13000,60000', 'tri_max_hold_14': '13000,60000', 'tri_max_hold_15': '13000,60000', 'tri_max_hold_16': '13000,60000', 'tri_max_hold_17': '13000,60000', 'tri_max_hold_18': '13000,60000', 'tri_max_hold_19': '13000,60000', 'tri_max_hold_20': '13000,60000', 'tri_max_hold_21': '13000,60000', 'tri_max_hold_22': '13000,60000', 'tri_max_hold_23': '13000,60000', 'tri_max_hold_24': '13000,60000', 'tri_max_hold_25': '13000,60000', 'tri_max_hold_26': '13000,60000', 'tri_max_hold_27': '13000,60000', 'tri_max_hold_28': '13000,60000', 'tri_max_hold_29': '13000,60000', 'tri_max_hold_30': '13000,60000', 'tri_max_hold_31': '13000,60000', 'tri_max_hold_32': '13000,60000', 'tri_max_hold_33': '13000,60000', 'tri_max_hold_34': '13000,60000', 'tri_max_hold_35': '13000,60000', 'tri_max_hold_36': '13000,60000'}, 'bed_mesh': {'speed': '150', 'mesh_min': '5,5', 'mesh_max': '295,295', 'probe_count': '6,6', 'fade_start': '5.0', 'fade_end': '50.0'}, 'display_status': {}, 'printer': {'kinematics': 'corexy', 'max_velocity': '800', 'max_accel': '20000', 'max_accel_to_decel': '20000', 'max_z_velocity': '20', 'square_corner_velocity': '5.0', 'square_corner_max_velocity': '200.0', 'max_z_accel': '300'}, 'pause_resume': {}, 'exclude_object': {}, 'input_shaper': {'shaper_type_x': '2hump_ei', 'shaper_freq_x': '39.0', 'shaper_type_y': 'zv', 'shaper_freq_y': '48.0'}}, 'settings': {'mcu': {'serial': '/dev/ttyS7', 'baud': 230400, 'restart_method': 'command', 'max_stepper_error': 2.5e-05}, 'mcu nozzle_mcu': {'serial': '/dev/ttyS1', 'baud': 230400, 'restart_method': 'command', 'max_stepper_error': 2.5e-05}, 'mcu leveling_mcu': {'serial': '/dev/ttyS9', 'baud': 230400, 'restart_method': 'command', 'max_stepper_error': 2.5e-05}, 'mcu rpi': {'serial': '/tmp/klipper_host_mcu', 'max_stepper_error': 2.5e-05}, 'force_move': {'enable_force_move': True}, 'gcode_macro xyz_ready': {'gcode': '', 'description': 'G-Code macro', 'variable_x_ready': '0', 'variable_y_ready': '0', 'variable_z_ready': '0', 'variable_xy_moved': '0', 'variable_z_moved': '0', 'variable_safe_z': '3'}, 'gcode_macro _if_home_z': {'gcode': '\n{% if printer[\'gcode_macro xyz_ready\'].z_ready|int == 1 %}\n{% if printer.toolhead.position.z|int < 5 %}\n{% set z_park = 5.0 - printer.toolhead.position.z|int %}\nG91\nG1 z{z_park} F600\nG90\n{% endif %}\n{% else %}\n{% if printer[\'gcode_macro xyz_ready\'].z_moved|int == 0 %}\n{% if printer.print_stats.z_pos|float <= 20.0 or printer.print_stats.power_loss == 1 %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE={printer["gcode_macro PRINTER_PARAM"].z_safe_g28} VELOCITY=10\n{% else %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE=0.1 VELOCITY=10\n{% endif %}\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=1\n{% endif %}\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro _if_move_xy': {'gcode': '\n_IF_HOME_Z\n{% if printer[\'gcode_macro xyz_ready\'].xy_moved|int == 0 %}\n{action_respond_info("move xy\\n")}\n\nFORCE_MOVE STEPPER=stepper_y DISTANCE=-14 VELOCITY=50\nFORCE_MOVE STEPPER=stepper_y DISTANCE=7 VELOCITY=50\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=1\nG4 P1000\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro _home_x': {'gcode': "\n_IF_MOVE_XY\n\n{% if printer['gcode_macro xyz_ready'].x_ready|int == 1 %}\n{% if (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x)|round < 10 %}\n{% set x_park = (10 - (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x))|round %}\n{% if x_park > 0 %}\nG91\nG1 x-{x_park} F3600\nG90\nG4 P1000\n{% endif %}\n{% endif %}\n{% endif %}\n\n\n\n\nG28 X\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=1\n\nG91\nG1 x-10 F3600\nG90\n\nG4 P2000", 'description': 'G-Code macro'}, 'gcode_macro _home_y': {'gcode': "\n_IF_MOVE_XY\n\n{% if printer['gcode_macro xyz_ready'].y_ready|int == 1 %}\n{% if printer.toolhead.position.y|round < 8 %}\n{% set y_park = 8 - printer.toolhead.position.y|round %}\n{% if y_park > 0 %}\nG91\nG1 y{y_park} F3600\nG90\nG4 P1000\n{% endif %}\n{% endif %}\n{% endif %}\n\n\n\n\nG28 Y\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=1\n\nG91\nG1 y10 F3600\nG90\n\nG4 P2000", 'description': 'G-Code macro'}, 'gcode_macro _home_z': {'gcode': '\n{% if printer[\'gcode_macro xyz_ready\'].y_ready|int == 1 %}\n{% if printer[\'gcode_macro xyz_ready\'].x_ready|int == 1 %}\n_IF_HOME_Z\n{% endif %}\n{% endif %}\n{% if printer.print_stats.z_pos|float >= 260.0 %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE=-8 VELOCITY=10\n{% endif %}\n\n{% set POSITION_X = printer.configfile.settings[\'stepper_x\'].position_max/2 %}\n{% set POSITION_Y = printer.configfile.settings[\'stepper_y\'].position_max/2 %}\n\nG91\n{% set x_park = POSITION_X - printer.toolhead.position.x|int %}\n{% set y_park = POSITION_Y - printer.toolhead.position.y|int %}\n{action_respond_info("x_park = %s \\n" % (x_park))}\n{action_respond_info("y_park = %s \\n" % (y_park))}\nG1 x{x_park} y{y_park} F3600\nG90\n\n\nG28 Z\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=1', 'description': 'G-Code macro'}, 'homing_override': {'axes': 'xyz', 'gcode': '\nM220 S100\n\n\n\n{% set x_axes = printer.toolhead.homed_axes %}\n{% if x_axes is defined and x_axes[0] is defined %}\n{action_respond_info(\n"x_axes: %s \\n"\n% (x_axes))}\n{% else %}\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=0\n{action_respond_info(\n"x_axes is NULL\\n")}\n{% endif %}\n\n{% if x_axes is not defined or x_axes[2] is not defined %}\nBED_MESH_CLEAR\n{% endif %}\n\n{% if x_axes is defined and x_axes[0] is defined and x_axes[1] is defined %}\n{action_respond_info("x_axes: %s \\n"% (x_axes))}\n{% set position_y = printer.toolhead.position.y|int %}\n{% set max_y_position = printer["gcode_macro PRINTER_PARAM"].max_y_position|int %}\n{% if position_y >= max_y_position %}\nG91\nG0 Y-10 F3600\nG90\n{% endif %}\n{% endif %}\n\n{% set home_all = \'X\' not in params and \'Y\' not in params %}\n{% if \'Z\' in params and \'X\' not in params and \'Y\' not in params %}\n{% if x_axes[0] is defined and x_axes[1] is defined %}\n{% set home_all = 0 %}\n{% endif %}\n{% endif %}\n\n{% if home_all or \'X\' in params %}\n_HOME_X\n{% endif %}\n\n{% if home_all or \'Y\' in params %}\n_HOME_Y\n{% endif %}\n\n{% if home_all or \'X\' in params %}\n_HOME_X\n{% endif %}\n\n{% if home_all or \'Y\' in params %}\n_HOME_Y\n{% endif %}\n\n{% if home_all or \'Z\' in params %}\n_HOME_Z\n{% endif %}\nBED_MESH_PROFILE LOAD="default"\n\n\n\n\nG4 P500'}, 'gcode_macro printer_param': {'gcode': '', 'description': 'G-Code macro', 'variable_z_safe_pause': '0.0', 'variable_z_safe_g28': 3.0, 'variable_max_x_position': '300.0', 'variable_max_y_position': '300.0', 'variable_max_z_position': '300.0', 'variable_fans': '3', 'variable_auto_g29': '0', 'variable_fan0_min': '25', 'variable_fan1_min': '50', 'variable_fan2_min': '180', 'variable_fan2_speed': '0', 'variable_hotend_temp': '0', 'variable_e_min_current': '0.27'}, 'gcode_macro autotune_shapers': {'gcode': '', 'description': 'G-Code macro'}, 'gcode_macro load_material_close_fan2': {'gcode': "\nSAVE_GCODE_STATE NAME=myMoveState\n{% if printer['output_pin fan2'].value > 0.0 %}\nSET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value}\nM107 P2\n{% endif %}\nRESTORE_E_CURRENT", 'description': 'G-Code macro', 'variable_fan2_value': '0'}, 'gcode_macro load_material_restore_fan2': {'gcode': '\n{% set fan2_value = printer[\'gcode_macro LOAD_MATERIAL_CLOSE_FAN2\'].fan2_value|float %}\nRESTORE_GCODE_STATE NAME=myMoveState\n{% if fan2_value > 0.0 %}\n{% set s_value = (fan2_value * 255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) * 255 / (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) %}\nM106 P2 S{s_value}\nSET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE=0\n{% endif %}\nSET_E_MIN_CURRENT', 'description': 'G-Code macro'}, 'gcode_macro set_e_min_current': {'gcode': "\n{% set e_current = printer['gcode_macro PRINTER_PARAM'].e_min_current %}\nM400\nSET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current}\nG4 P2000", 'description': 'G-Code macro'}, 'gcode_macro restore_e_current': {'gcode': "\n{% set e_current = printer.configfile.settings['tmc2209 extruder'].run_current %}\nM400\nSET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current}\nG4 P2000", 'description': 'G-Code macro'}, 'gcode_macro load_material': {'gcode': '\nLOAD_MATERIAL_CLOSE_FAN2\nM109 S{printer.custom_macro.default_extruder_temp}\nG91\nG1 E80 F180\nLOAD_MATERIAL_RESTORE_FAN2', 'description': 'G-Code macro'}, 'gcode_macro quit_material': {'gcode': '\nSAVE_GCODE_STATE NAME=myMoveState\nRESTORE_E_CURRENT\nM109 S{printer.custom_macro.default_extruder_temp}\nM83\nG1 E10 F300\nG1 E-15 F3000\nG1 E-22.4700 F2400\nG1 E-6.4200 F1200\nG1 E-3.2100 F720\nG1 E5.0000 F356\nG1 E-5.0000 F384\nG1 E5.0000 F412\nG1 E-5.0000 F440\nG1 E5.0000 F467\nG1 E-5.0000 F495\nG1 E5.0000 F523\nG1 E-5.0000 F3000\nG1 E-15 F3000\nSET_E_MIN_CURRENT\nRESTORE_GCODE_STATE NAME=myMoveState', 'description': 'G-Code macro'}, 'gcode_macro qmode': {'gcode': '\n{% set printer_state = printer.print_stats.state %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 0 %}\n{% if printer_state == "printing" or printer_state == "paused" %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel VALUE={printer.toolhead.max_accel}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel_to_decel VALUE={printer.toolhead.max_accel_to_decel}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=velocity VALUE={printer.toolhead.max_velocity}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=square_corner_velocity VALUE={printer.toolhead.square_corner_velocity}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=pressure_advance VALUE={printer.extruder.pressure_advance}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=speed_factor VALUE={printer.gcode_move.speed_factor}\nSET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=0\nSET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=0\nSET_TMC_CURRENT STEPPER=stepper_x CURRENT=1.0\nSET_TMC_CURRENT STEPPER=stepper_y CURRENT=1.0\nG4 P1000\n\n\nSET_VELOCITY_LIMIT ACCEL=2500\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500\nSET_VELOCITY_LIMIT VELOCITY=150\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nSET_PRESSURE_ADVANCE ADVANCE=0.05\nM220 S50\n\n{% set tmp = printer[\'output_pin fan0\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={tmp}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan0_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\nSET_PIN PIN=fan0 VALUE={tmp}\n{% endif %}\n\n{% set tmp = printer[\'output_pin fan1\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer[\'output_pin fan1\'].value * 255}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan1_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\nSET_PIN PIN=fan1 VALUE={tmp}\n{% endif %}\n\n{% set tmp = printer[\'output_pin fan2\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer[\'output_pin fan2\'].value * 255}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan2_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\nSET_PIN PIN=fan2 VALUE={tmp}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=1\nSET_QMODE_FLAG FLAG=1\n{% endif %}\n{% endif %}', 'description': 'G-Code macro', 'variable_flag': '0', 'variable_accel': '0', 'variable_accel_to_decel': '0', 'variable_velocity': '0', 'variable_square_corner_velocity': '0', 'variable_pressure_advance': '0.0', 'variable_fan0_value': '0.00', 'variable_fan1_value': '0.00', 'variable_fan2_value': '0.00', 'variable_speed_factor': '0', 'variable_max_accel': '2500', 'variable_max_accel_to_decel': '2500'}, 'gcode_macro qmode_exit': {'gcode': '\n{% set printer_state = printer.print_stats.state %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 %}\n{% if printer_state == "printing" or printer_state == "paused" %}\nSET_VELOCITY_LIMIT ACCEL={printer[\'gcode_macro Qmode\'].accel}\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer[\'gcode_macro Qmode\'].accel_to_decel}\nSET_VELOCITY_LIMIT VELOCITY={printer[\'gcode_macro Qmode\'].velocity}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={printer[\'gcode_macro Qmode\'].square_corner_velocity}\nSET_PRESSURE_ADVANCE ADVANCE={printer[\'gcode_macro Qmode\'].pressure_advance}\nM220 S{printer[\'gcode_macro Qmode\'].speed_factor * 100}\n\n{% set X_RUN_CUR = printer.configfile.settings[\'tmc2209 stepper_x\'].run_current %}\n{% set Y_RUN_CUR = printer.configfile.settings[\'tmc2209 stepper_y\'].run_current %}\nSET_TMC_CURRENT STEPPER=stepper_x CURRENT={X_RUN_CUR}\nSET_TMC_CURRENT STEPPER=stepper_y CURRENT={Y_RUN_CUR}\nSET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=1\nSET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=1\nG4 P1000\n\n{% if printer[\'output_pin fan0\'].value != 0 %}\n{action_respond_info("fan0_value = %s" % printer[\'gcode_macro Qmode\'].fan0_value)}\nSET_PIN PIN=fan0 VALUE={printer[\'gcode_macro Qmode\'].fan0_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE=0\n{% endif %}\n{% if printer[\'output_pin fan1\'].value != 0 %}\n{action_respond_info("fan1_value = %s" % printer[\'gcode_macro Qmode\'].fan1_value)}\nSET_PIN PIN=fan1 VALUE={printer[\'gcode_macro Qmode\'].fan1_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE=0\n{% endif %}\n{% if printer[\'output_pin fan2\'].value != 0 %}\n{action_respond_info("fan2_value = %s" % printer[\'gcode_macro Qmode\'].fan2_value)}\nSET_PIN PIN=fan2 VALUE={printer[\'gcode_macro Qmode\'].fan2_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE=0\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=0\nSET_QMODE_FLAG FLAG=0\n{% endif %}\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro m204': {'gcode': '\n\n{% set get_params = "" %}\n{% set qmode_max_accel = printer[\'gcode_macro Qmode\'].max_accel|string %}\n{% if \'S\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.S|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'S\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'S\' + params.S) %}\n{% endif %}\n{% endif %}\n{% if \'P\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.P|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'P\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'P\' + params.P) %}\n{% endif %}\n{% endif %}\n{% if \'T\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.T|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'T\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'T\' + params.T) %}\n{% endif %}\n{% endif %}\nM204.1 {get_params}', 'rename_existing': 'M204.1', 'description': 'G-Code macro'}, 'gcode_macro m205': {'gcode': "\n{% if 'X' in params %}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.X}\n{% elif 'Y' in params %}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.Y}\n{% endif %}", 'description': 'G-Code macro'}, 'gcode_macro m107': {'gcode': '\n{% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}\n{% if params.P is defined %}\n{% if params.P|int < fans %}\nSET_PIN PIN=fan{params.P|int} VALUE=0\n{% else %}\nSET_PIN PIN=fan0 VALUE=0\n{% endif %}\n{% else %}\nSET_PIN PIN=fan0 VALUE=0\nSET_PIN PIN=fan2 VALUE=0\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro m900': {'gcode': "\n{% if 'K' in params %}\n{% if 'E' in params %}\nSET_PRESSURE_ADVANCE EXTRUDER={params.E} ADVANCE={params.K}\n{% else %}\nSET_PRESSURE_ADVANCE ADVANCE={params.K}\n{% endif %}\n{% endif %}", 'description': 'G-Code macro'}, 'delayed_gcode wait_temp': {'gcode': '\n{% set cur_temp = printer.extruder.temperature %}\n{% if cur_temp|int < 40 %}\nWAIT_TEMP_END\n{% else %}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=5\n{% endif %}', 'initial_duration': 0.0}, 'gcode_macro wait_temp_start': {'gcode': '\n{action_respond_info("wait temp start\\n")}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=1\nM106 P0 S255', 'description': 'G-Code macro'}, 'gcode_macro wait_temp_end': {'gcode': '\n{action_respond_info("wait temp end\\n")}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=0\nM106 P0 S0', 'description': 'G-Code macro'}, 'gcode_macro print_calibration': {'gcode': '\nCX_PRINT_LEVELING_CALIBRATION', 'description': 'G-Code macro'}, 'gcode_macro first_floor_pause_position': {'gcode': "\n{% set extruder_temp = printer.custom_macro.g28_ext_temp %}\nM104 S{extruder_temp}\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer['gcode_macro PRINTER_PARAM'].max_x_position|float + 1 %}\nG90\nG1 Z2 F600\nG1 X{x_park} Y{y_park} F6000\nG1 Z0.2 F600", 'description': 'G-Code macro'}, 'gcode_macro accurate_g28': {'gcode': '\nACCURATE_HOME_Z', 'description': 'G-Code macro'}, 'gcode_macro print_prepared': {'gcode': '\nSET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=1\n{action_respond_info("print prepared")}', 'description': 'G-Code macro'}, 'gcode_macro print_prepare_clear': {'gcode': '\nSET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=0', 'description': 'G-Code macro'}, 'gcode_macro end_print_point_without_lifting': {'gcode': '\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\nG91\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z2.0 F600\nG90\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("end print xyz_axes is NULL\\n")}\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro end_print_point': {'gcode': '\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < (max_z / 2) %}\n{% set z_safe = (max_z / 2) - act_z %}\n{% elif act_z < max_z %}\n{% set z_safe = 2.0 %}\n{% endif %}\nG91\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z2.0 F600\nG90\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F30000\n{% if z_safe > 2.0 %}\nG91\n{% set z_safe = z_safe - 2.0 %}\nG1 Z{z_safe} F600\nG90\n{% endif %}\n{% else %}\n{action_respond_info("end print xyz_axes is NULL\\n")}\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro end_print': {'gcode': '\nQmode_exit\nEXCLUDE_OBJECT_RESET\nPRINT_PREPARE_CLEAR\nM220 S100\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=2500\nTURN_OFF_HEATERS\nM107 P1\nM107 P2\nEND_PRINT_POINT\nWAIT_TEMP_START\nM84', 'description': 'G-Code macro'}, 'gcode_macro first_floor_pause': {'gcode': '\n\n{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float %}\n\n\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\n\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < (max_z - 2.0) %}\n{% set z_safe = 2.0 %}\n{% elif act_z < max_z %}\n{% set z_safe = max_z - act_z %}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}\nPAUSE_BASE\nG91\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z{z_safe} F600\nG90\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("Printer not homed")}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer[\'output_pin fan2\'].value}\n{% set fspeed = printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed %}\n{action_respond_info("fan2_value = %s \\n" % (fspeed))}\n\nM106 P2 S0\nSET_E_MIN_CURRENT', 'description': 'Pause the first floor print', 'variable_extrude': '2.0'}, 'gcode_macro first_floor_resume': {'gcode': '\nRESTORE_E_CURRENT\n{% if printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed > 0 %}\n\n\n\n{% set s_value = (printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed * 255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) * 255 / (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min)|float %}\nM106 P2 S{s_value}\n{% endif %}\n\n{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float + 1.0 %}\n\n{% if \'VELOCITY\' in params|upper %}\n{% set get_params = (\'VELOCITY=\' + params.VELOCITY) %}\n{%else %}\n{% set get_params = "" %}\n{% endif %}\n\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG91\nG1 E{E} F2100\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nM400\nRESUME_BASE {get_params}', 'description': 'Resume the first floor print'}, 'gcode_macro pause': {'gcode': '\n\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\n\n\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\n\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < 48.0 %}\n{% set z_safe = 50.0 - act_z %}\n{% elif act_z < (max_z - 2.0) %}\n{% set z_safe = 2.0 %}\n{% elif act_z < max_z %}\n{% set z_safe = max_z - act_z %}\n{% endif %}\n{action_respond_info("z_safe = %s"% (z_safe))}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}\nPAUSE_BASE\nG91\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE={printer.extruder.target}\nM104 S140\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z{z_safe} F600\nM400\nG90\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("Printer not homed")}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer[\'output_pin fan2\'].value}\n{% set fspeed = printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed %}\n{action_respond_info("fan2_value = %s \\n" % (fspeed))}\n\nM106 P2 S0\nSET_E_MIN_CURRENT', 'rename_existing': 'PAUSE_BASE', 'description': 'Pause the actual running print', 'variable_extrude': '2.0'}, 'gcode_macro inputshaper': {'gcode': "\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0\nG90\nG28\n{% set POSITION_X = printer.configfile.settings['stepper_x'].position_max/2 %}\n{% set POSITION_Y = printer.configfile.settings['stepper_y'].position_max/2 %}\nG1 X{POSITION_X} Y{POSITION_Y} F6000\nG1 Z10 F600\nSHAPER_CALIBRATE\nCXSAVE_CONFIG\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1", 'description': 'G-Code macro'}, 'gcode_macro bedpid': {'gcode': '\nPID_CALIBRATE HEATER=heater_bed TARGET=100\nSAVE_CONFIG', 'description': 'G-Code macro'}, 'gcode_macro tunoffinputshaper': {'gcode': '\nSET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0', 'description': 'G-Code macro'}, 'gcode_macro resume': {'gcode': '\nRESTORE_E_CURRENT\n{% if printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int != 0 %}\n{% if printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int > printer.extruder.temperature %}\nM109 S{printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int}\n{% else %}\nM104 S{printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE=0\n{% endif %}\n{% if printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed > 0 %}\n\n\n\n{% set s_value = (printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed * 255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) * 255 / (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min)|float %}\nM106 P2 S{s_value}\n{% endif %}\n{% set z_resume_move = printer[\'gcode_macro PRINTER_PARAM\'].z_safe_pause|int %}\n{% if z_resume_move > 2 %}\n{% set z_resume_move = z_resume_move - 2 %}\nG91\nG1 Z-{z_resume_move} F600\nM400\n{% endif %}\n{action_respond_info("z_resume_move = %s"% (z_resume_move))}\n\n{% set E = printer["gcode_macro PAUSE"].extrude|float + 1.0 %}\n\n{% if \'VELOCITY\' in params|upper %}\n{% set get_params = (\'VELOCITY=\' + params.VELOCITY) %}\n{%else %}\n{% set get_params = "" %}\n{% endif %}\n\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG91\nG1 E{E} F2100\nG90\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nM400\nRESUME_BASE {get_params}', 'rename_existing': 'RESUME_BASE', 'description': 'Resume the actual running print'}, 'gcode_macro cancel_print': {'gcode': '\nEND_PRINT\nCANCEL_PRINT_BASE', 'rename_existing': 'CANCEL_PRINT_BASE', 'description': 'Cancel the actual running print'}, 'gcode_macro g29': {'gcode': '\n{% if \'PROBE_COUNT\' in params|upper %}\n{% set get_count = (\'PROBE_COUNT\' + params.PROBE_COUNT) %}\n{%else %}\n{% set get_count = "" %}\n{% endif %}\n\n{% set bed_temp = printer.custom_macro.default_bed_temp %}\n{% set extruder_temp = printer.custom_macro.g28_ext_temp %}\n{% set nozzle_clear_temp = printer.custom_macro.default_extruder_temp %}\n\n{% if \'BED_TEMP\' in params|upper %}\n{% set bed_temp = params.BED_TEMP %}\n{% endif %}\n\n{% if \'EXTRUDER_TEMP\' in params|upper %}\n{% set nozzle_clear_temp = params.EXTRUDER_TEMP %}\n{% endif %}\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0\n\nG28\nBED_MESH_CLEAR\nNOZZLE_CLEAR HOT_MIN_TEMP={extruder_temp} HOT_MAX_TEMP={nozzle_clear_temp} BED_MAX_TEMP={bed_temp}\nACCURATE_G28\nM204 S5000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=5000\nBED_MESH_CALIBRATE {get_count}\nBED_MESH_OUTPUT\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F2000\nCXSAVE_CONFIG\nTURN_OFF_HEATERS\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1', 'description': 'G-Code macro'}, 'fan_feedback': {'print_delay_time': 5.0, 'current_delay_time': 2.0, 'fan0_pin': 'nozzle_mcu:PB4', 'fan1_pin': 'PC6'}, 'custom_macro': {'default_extruder_temp': 240.0, 'default_bed_temp': 50.0, 'g28_ext_temp': 140.0, 'nozzle_clear': True, 'calibration': 0}, 'gcode_macro get_timelapse_setup': {'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% set output_txt = ["Timelapse Setup:"] %}\n{% set _dummy = output_txt.append("enable: %s" % tl.enable) %}\n{% set _dummy = output_txt.append("park: %s" % tl.park.enable) %}\n{% if tl.park.enable %}\n{% set _dummy = output_txt.append("park position: %s time: %s s" % (tl.park.pos, tl.park.time)) %}\n{% set _dummy = output_txt.append("park cord x:%s y:%s dz:%s" % (tl.park.coord.x, tl.park.coord.y, tl.park.coord.dz)) %}\n{% set _dummy = output_txt.append("travel speed: %s mm/s" % tl.speed.travel) %}\n{% endif %}\n{% set _dummy = output_txt.append("fw_retract: %s" % tl.extruder.fw_retract) %}\n{% if not tl.extruder.fw_retract %}\n{% set _dummy = output_txt.append("retract: %s mm speed: %s mm/s" % (tl.extruder.retract, tl.speed.retract)) %}\n{% set _dummy = output_txt.append("extrude: %s mm speed: %s mm/s" % (tl.extruder.extrude, tl.speed.extrude)) %}\n{% endif %}\n{% set _dummy = output_txt.append("verbose: %s" % tl.verbose) %}\n{action_respond_info(output_txt|join("\\n"))}', 'description': 'Print the Timelapse setup'}, 'gcode_macro _set_timelapse_setup': {'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n\n{% set min = printer.toolhead.axis_minimum %}\n{% set max = printer.toolhead.axis_maximum %}\n{% set round_bed = True if printer.configfile.settings.printer.kinematics is in [\'delta\',\'polar\',\'rotary_delta\',\'winch\']\nelse False %}\n{% set park = {\'min\' : {\'x\': (min.x / 1.42)|round(3) if round_bed else min.x|round(3),\n\'y\': (min.y / 1.42)|round(3) if round_bed else min.y|round(3)},\n\'max\' : {\'x\': (max.x / 1.42)|round(3) if round_bed else max.x|round(3),\n\'y\': (max.y / 1.42)|round(3) if round_bed else max.y|round(3)},\n\'center\': {\'x\': (max.x-(max.x-min.x)/2)|round(3),\n\'y\': (max.y-(max.y-min.y)/2)|round(3)}} %}\n\n{% if params.ENABLE %}\n{% if params.ENABLE|lower is in [\'true\', \'false\'] %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=enable VALUE={True if params.ENABLE|lower == \'true\' else False}\n{% else %}\n{action_raise_error("ENABLE=%s not supported. Allowed values are [True, False]" % params.ENABLE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.VERBOSE %}\n{% if params.VERBOSE|lower is in [\'true\', \'false\'] %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=verbose VALUE={True if params.VERBOSE|lower == \'true\' else False}\n{% else %}\n{action_raise_error("VERBOSE=%s not supported. Allowed values are [True, False]" % params.VERBOSE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_X %}\n{% if params.CUSTOM_POS_X|float >= min.x and params.CUSTOM_POS_X|float <= max.x %}\n{% set _dummy = tl.park.custom.update({\'x\':params.CUSTOM_POS_X|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_X=%s must be within [%s - %s]" % (params.CUSTOM_POS_X, min.x, max.x))}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_Y %}\n{% if params.CUSTOM_POS_Y|float >= min.y and params.CUSTOM_POS_Y|float <= max.y %}\n{% set _dummy = tl.park.custom.update({\'y\':params.CUSTOM_POS_Y|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_Y=%s must be within [%s - %s]" % (params.CUSTOM_POS_Y, min.y, max.y))}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_DZ %}\n{% if params.CUSTOM_POS_DZ|float >= min.z and params.CUSTOM_POS_DZ|float <= max.z %}\n{% set _dummy = tl.park.custom.update({\'dz\':params.CUSTOM_POS_DZ|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_DZ=%s must be within [%s - %s]" % (params.CUSTOM_POS_DZ, min.z, max.z))}\n{% endif %}\n{% endif %}\n{% if params.PARK_ENABLE %}\n{% if params.PARK_ENABLE|lower is in [\'true\', \'false\'] %}\n{% set _dummy = tl.park.update({\'enable\':True if params.PARK_ENABLE|lower == \'true\' else False}) %}\n{% else %}\n{action_raise_error("PARK_ENABLE=%s not supported. Allowed values are [True, False]" % params.PARK_ENABLE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.PARK_POS %}\n{% if params.PARK_POS|lower is in [\'center\',\'front_left\',\'front_right\',\'back_left\',\'back_right\',\'custom\',\'x_only\',\'y_only\'] %}\n{% set dic = {\'center\' : {\'x\': park.center.x , \'y\': park.center.y , \'dz\': 1 },\n\'front_left\' : {\'x\': park.min.x , \'y\': park.min.y , \'dz\': 0 },\n\'front_right\' : {\'x\': park.max.x , \'y\': park.min.y , \'dz\': 0 },\n\'back_left\' : {\'x\': park.min.x , \'y\': park.max.y , \'dz\': 0 },\n\'back_right\' : {\'x\': park.max.x , \'y\': park.max.y , \'dz\': 0 },\n\'custom\' : {\'x\': tl.park.custom.x, \'y\': tl.park.custom.y, \'dz\': tl.park.custom.dz},\n\'x_only\' : {\'x\': tl.park.custom.x, \'y\': \'none\' , \'dz\': tl.park.custom.dz},\n\'y_only\' : {\'x\': \'none\' , \'y\': tl.park.custom.y, \'dz\': tl.park.custom.dz}} %}\n{% set _dummy = tl.park.update({\'pos\':params.PARK_POS|lower}) %}\n{% set _dummy = tl.park.update({\'coord\':dic[tl.park.pos]}) %}\n{% else %}\n{action_raise_error("PARK_POS=%s not supported. Allowed values are [CENTER, FRONT_LEFT, FRONT_RIGHT, BACK_LEFT, BACK_RIGHT, CUSTOM, X_ONLY, Y_ONLY]"\n% params.PARK_POS|upper)}\n{% endif %}\n{% endif %}\n{% if params.PARK_TIME %}\n{% if params.PARK_TIME|float >= 0.0 %}\n{% set _dummy = tl.park.update({\'time\':params.PARK_TIME|float|round(3)}) %}\n{% else %}\n{action_raise_error("PARK_TIME=%s must be a positive number" % params.PARK_TIME)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=park VALUE="{tl.park}"\n{% if params.TRAVEL_SPEED %}\n{% if params.TRAVEL_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'travel\':params.TRAVEL_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("TRAVEL_SPEED=%s must be larger than 0" % params.TRAVEL_SPEED)}\n{% endif %}\n{% endif %}\n{% if params.RETRACT_SPEED %}\n{% if params.RETRACT_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'retract\':params.RETRACT_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("RETRACT_SPEED=%s must be larger than 0" % params.RETRACT_SPEED)}\n{% endif %}\n{% endif %}\n{% if params.EXTRUDE_SPEED %}\n{% if params.EXTRUDE_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'extrude\':params.EXTRUDE_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("EXTRUDE_SPEED=%s must be larger than 0" % params.EXTRUDE_SPEED)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=speed VALUE="{tl.speed}"\n{% if params.EXTRUDE_DISTANCE %}\n{% if params.EXTRUDE_DISTANCE|float >= 0.0 %}\n{% set _dummy = tl.extruder.update({\'extrude\':params.EXTRUDE_DISTANCE|float|round(3)}) %}\n{% else %}\n{action_raise_error("EXTRUDE_DISTANCE=%s must be specified as positiv number" % params.EXTRUDE_DISTANCE)}\n{% endif %}\n{% endif %}\n{% if params.RETRACT_DISTANCE %}\n{% if params.RETRACT_DISTANCE|float >= 0.0 %}\n{% set _dummy = tl.extruder.update({\'retract\':params.RETRACT_DISTANCE|float|round(3)}) %}\n{% else %}\n{action_raise_error("RETRACT_DISTANCE=%s must be specified as positiv number" % params.RETRACT_DISTANCE)}\n{% endif %}\n{% endif %}\n{% if params.FW_RETRACT %}\n{% if params.FW_RETRACT|lower is in [\'true\', \'false\'] %}\n{% if \'firmware_retraction\' in printer.configfile.settings %}\n{% set _dummy = tl.extruder.update({\'fw_retract\': True if params.FW_RETRACT|lower == \'true\' else False}) %}\n{% else %}\n{% set _dummy = tl.extruder.update({\'fw_retract\':False}) %}\n{% if params.FW_RETRACT|capitalize == \'True\' %}\n{action_raise_error("[firmware_retraction] not defined in printer.cfg. Can not enable fw_retract")}\n{% endif %}\n{% endif %}\n{% else %}\n{action_raise_error("FW_RETRACT=%s not supported. Allowed values are [True, False]" % params.FW_RETRACT|capitalize)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=extruder VALUE="{tl.extruder}"\n{% if printer.configfile.settings[\'gcode_macro pause\'] is defined %}\n{% set _dummy = tl.macro.update({\'pause\': printer.configfile.settings[\'gcode_macro pause\'].rename_existing}) %}\n{% endif %}\n{% if printer.configfile.settings[\'gcode_macro resume\'] is defined %}\n{% set _dummy = tl.macro.update({\'resume\': printer.configfile.settings[\'gcode_macro resume\'].rename_existing}) %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=macro VALUE="{tl.macro}"', 'description': 'Set user parameters for timelapse'}, 'gcode_macro timelapse_take_frame': {'gcode': '\n{% set hyperlapse = True if params.HYPERLAPSE and params.HYPERLAPSE|lower ==\'true\' else False %}\n{% if enable %}\n{% if (hyperlapse and printer[\'gcode_macro HYPERLAPSE\'].run) or\n(not hyperlapse and not printer[\'gcode_macro HYPERLAPSE\'].run) %}\n{% if park.enable %}\n{% set pos = {\'x\': \'X\' + park.coord.x|string if park.pos != \'y_only\' else \'\',\n\'y\': \'Y\' + park.coord.y|string if park.pos != \'x_only\' else \'\',\n\'z\': \'Z\'+ [printer.gcode_move.gcode_position.z + park.coord.dz, printer.toolhead.axis_maximum.z]|min|string} %}\n{% set restore = {\'absolute\': {\'coordinates\': printer.gcode_move.absolute_coordinates,\n\'extrude\' : printer.gcode_move.absolute_extrude},\n\'speed\' : printer.gcode_move.speed,\n\'e\' : printer.gcode_move.gcode_position.e,\n\'factor\' : {\'speed\' : printer.gcode_move.speed_factor,\n\'extrude\': printer.gcode_move.extrude_factor}} %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=restore VALUE="{restore}"\n{% if not printer[printer.toolhead.extruder].can_extrude %}\n{% if verbose %}{action_respond_info("Timelapse: Warning, minimum extruder temperature not reached!")}{% endif %}\n{% else %}\n{% if extruder.fw_retract %}\nG10\n{% else %}\nM83\nG0 E-{extruder.retract} F{speed.retract * 60}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=True\n{macro.pause}\nSET_GCODE_OFFSET X=0 Y=0\nG90\n{% if "xyz" not in printer.toolhead.homed_axes %}\n{% if verbose %}{action_respond_info("Timelapse: Warning, axis not homed yet!")}{% endif %}\n{% else %}\nG0 {pos.x} {pos.y} {pos.z} F{speed.travel * 60}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=takingframe VALUE=True\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={check_time}\nM400\n{% endif %}\n_TIMELAPSE_NEW_FRAME HYPERLAPSE={hyperlapse}\n{% endif %}\n{% else %}\n{% if verbose %}{action_respond_info("Timelapse: disabled, take frame ignored")}{% endif %}\n{% endif %}', 'description': 'Take Timelapse shoot', 'variable_enable': 'False', 'variable_takingframe': 'False', 'variable_park': "{'enable': False,\n'pos' : 'center',\n'time' : 0.1,\n'custom': {'x': 0, 'y': 0, 'dz': 0},\n'coord' : {'x': 0, 'y': 0, 'dz': 0}}", 'variable_extruder': "{'fw_retract': False,\n'retract': 1.0,\n'extrude': 1.0}", 'variable_speed': "{'travel': 100,\n'retract': 15,\n'extrude': 15}", 'variable_verbose': 'True', 'variable_check_time': '0.5', 'variable_restore': "{'absolute': {'coordinates': True, 'extrude': True}, 'speed': 1500, 'e':0, 'factor': {'speed': 1.0, 'extrude': 1.0}}", 'variable_macro': "{'pause': 'PAUSE', 'resume': 'RESUME'}", 'variable_is_paused': 'False'}, 'gcode_macro _timelapse_new_frame': {'gcode': '\n{action_call_remote_method("timelapse_newframe",\nmacropark=printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'].park,\nhyperlapse=params.HYPERLAPSE)}', 'description': 'action call for timelapse shoot. must be a seperate macro'}, 'delayed_gcode _wait_timelapse_take_frame': {'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% set factor = {\'speed\': printer.gcode_move.speed_factor, \'extrude\': printer.gcode_move.extrude_factor} %}\n{% if tl.takingframe %}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={tl.check_time}\n{% else %}\n{tl.macro.resume} VELOCITY={tl.speed.travel}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=False\n{% if not printer[printer.toolhead.extruder].can_extrude %}\n{action_respond_info("Timelapse: Warning minimum extruder temperature not reached!")}\n{% else %}\n{% if tl.extruder.fw_retract %}\nG11\n{% else %}\nG0 E{tl.extruder.extrude} F{tl.speed.extrude * 60}\nG0 F{tl.restore.speed}\n{% if tl.restore.absolute.extrude %}\nM82\nG92 E{tl.restore.e}\n{% endif %}\n{% endif %}\n{% endif %}\n{% if tl.restore.factor.speed != factor.speed %} M220 S{(factor.speed*100)|round(0)} {% endif %}\n{% if tl.restore.factor.extrude != factor.extrude %} M221 S{(factor.extrude*100)|round(0)} {% endif %}\n{% if not tl.restore.absolute.coordinates %} G91 {% endif %}\n{% endif %}', 'initial_duration': 0.0}, 'gcode_macro hyperlapse': {'gcode': '\n{% set cycle = params.CYCLE|default(30)|int %}\n{% if params.ACTION and params.ACTION|lower == \'start\' %}\n{action_respond_info("Hyperlapse: frames started (Cycle %d sec)" % cycle)}\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=True\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=cycle VALUE={cycle}\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={cycle}\nTIMELAPSE_TAKE_FRAME HYPERLAPSE=True\n{% elif params.ACTION and params.ACTION|lower == \'stop\' %}\n{% if run %}{action_respond_info("Hyperlapse: frames stopped")}{% endif %}\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=False\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION=0\n{% else %}\n{action_raise_error("Hyperlapse: No valid input parameter\nUse:\n- HYPERLAPSE ACTION=START [CYCLE=time]\n- HYPERLAPSE ACTION=STOP")}\n{% endif %}', 'description': 'Start/Stop a hyperlapse recording', 'variable_cycle': '0', 'variable_run': 'False'}, 'delayed_gcode _hyperlapse_loop': {'gcode': '\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={printer["gcode_macro HYPERLAPSE"].cycle}\nTIMELAPSE_TAKE_FRAME HYPERLAPSE=True', 'initial_duration': 0.0}, 'gcode_macro timelapse_render': {'gcode': '\n{action_respond_info("Timelapse: Rendering started")}\n{action_call_remote_method("timelapse_render", byrendermacro="True")}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=render VALUE=True\n{printer.configfile.settings[\'gcode_macro pause\'].rename_existing}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5', 'description': 'Render Timelapse video and wait for the result', 'variable_render': 'False', 'variable_run_identifier': '0'}, 'delayed_gcode _wait_timelapse_render': {'gcode': '\n{% set ri = printer[\'gcode_macro TIMELAPSE_RENDER\'].run_identifier % 4 %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=run_identifier VALUE={ri + 1}\n{% if printer[\'gcode_macro TIMELAPSE_RENDER\'].render %}\nM117 Rendering {[\'-\',\'\\\\\',\'|\',\'/\'][ri]}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5\n{% else %}\n{action_respond_info("Timelapse: Rendering finished")}\nM117\n{printer.configfile.settings[\'gcode_macro resume\'].rename_existing}\n{% endif %}', 'initial_duration': 0.0}, 'gcode_macro test_stream_delay': {'gcode': '\n{% set min = printer.toolhead.axis_minimum %}\n{% set max = printer.toolhead.axis_maximum %}\n{% set act = printer.toolhead.position %}\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% if act.z > 5.0 %}\nG0 X{min.x + 5.0} F{tl.speed.travel|int * 60}\nG0 X{(max.x-min.x)/2}\nG4 P{tl.park.time|float * 1000}\n_TIMELAPSE_NEW_FRAME HYPERLAPSE=FALSE\nG0 X{max.x - 5.0}\n{% else %}\n{action_raise_error("Toolhead z %.3f to low. Please place head above z = 5.0" % act.z)}\n{% endif %}', 'description': 'Helper macro to find stream and park delay'}, 'save_variables': {'filename': '/usr/data/printer_data/config/Helper-Script/variables.cfg'}, 'respond': {'default_type': 'echo', 'default_prefix': 'echo:'}, 'gcode_macro set_gcode_offset': {'gcode': '\n{% if printer.save_variables.variables.zoffset %}\n{% set zoffset = printer.save_variables.variables.zoffset %}\n{% else %}\n{% set zoffset = {\'z\': None} %}\n{% endif %}\n{% set ns = namespace(zoffset={\'z\': zoffset.z}) %}\n_SET_GCODE_OFFSET {% for p in params %}{\'%s=%s \'% (p, params[p])}{% endfor %}\n{%if \'Z\' in params %}{% set null = ns.zoffset.update({\'z\': params.Z}) %}{% endif %}\n{%if \'Z_ADJUST\' in params %}\n{%if ns.zoffset.z == None %}{% set null = ns.zoffset.update({\'z\': 0}) %}{% endif %}\n{% set null = ns.zoffset.update({\'z\': (ns.zoffset.z | float) + (params.Z_ADJUST | float)}) %}\n{% endif %}\nSAVE_VARIABLE VARIABLE=zoffset VALUE="{ns.zoffset}"', 'rename_existing': '_SET_GCODE_OFFSET', 'description': 'Saving Z-Offset'}, 'delayed_gcode load_gcode_offsets': {'gcode': '\n{% if printer.save_variables.variables.zoffset %}\n{% set zoffset = printer.save_variables.variables.zoffset %}\n_SET_GCODE_OFFSET {% for axis, offset in zoffset.items() if zoffset[axis] %}{ "%s=%s " % (axis, offset) }{% endfor %}\nRESPOND TYPE=command MSG="Loaded Z-Offset from variables.cfg: {zoffset.z}mm"\n{% endif %}', 'initial_duration': 2.0}, 'calibrate_shaper_config': {'shaper_type': 'mzv', 'shaper_type_x': 'mzv', 'shaper_freq_x': 0.0, 'shaper_type_y': 'mzv', 'shaper_freq_y': 0.0}, 'gcode_shell_command resonance_graph': {'command': '/usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/calibrate_shaper.py', 'timeout': 600.0, 'verbose': False}, 'gcode_shell_command belts_graph': {'command': '/usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/graph_belts.py', 'timeout': 600.0, 'verbose': False}, 'gcode_shell_command delete_graph': {'command': 'sh /usr/data/helper-script/files/improved-shapers/delete_graph.sh', 'timeout': 600.0, 'verbose': False}, 'gcode_shell_command delete_csv': {'command': 'sh /usr/data/helper-script/files/improved-shapers/delete_csv.sh', 'timeout': 600.0, 'verbose': False}, 'gcode_macro input_shaper_calibration': {'gcode': '\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nRESPOND TYPE=command MSG="Measuring X and Y Resonances..."\nSHAPER_CALIBRATE\nM400\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Input Shaper Calibration complete!"\nSAVE_CONFIG', 'description': 'Measure X and Y Axis Resonances and Save values'}, 'gcode_macro test_resonances_graphs': {'gcode': '\nRUN_SHELL_COMMAND CMD=delete_graph\n{% set x_png = params.X_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_x.png") %}\n{% set y_png = params.Y_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_y.png") %}\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nRESPOND TYPE=command MSG="Testing X Resonances..."\nTEST_RESONANCES AXIS=X NAME=x\nM400\nRESPOND TYPE=command MSG="Generating X Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_x_x.csv -o {x_png}"\nRESPOND TYPE=command MSG="X Graph (resonances_x.png) is now available in /Helper-Script/improved-shapers folder."\nRESPOND TYPE=command MSG="Testing Y Resonances..."\nTEST_RESONANCES AXIS=Y NAME=y\nM400\nRESPOND TYPE=command MSG="Generating Y Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_y_y.csv -o {y_png}"\nRESPOND TYPE=command MSG="Y Graph (resonances_y.png) is now available in /Helper-Script/improved-shapers folder."\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Resonances Test complete!"', 'description': 'Test X and Y Axis Resonances and Generate Graphs'}, 'gcode_macro belts_shaper_calibration': {'gcode': '\nRUN_SHELL_COMMAND CMD=delete_graph\n{% set min_freq = params.FREQ_START|default(5)|float %}\n{% set max_freq = params.FREQ_END|default(133.33)|float %}\n{% set hz_per_sec = params.HZ_PER_SEC|default(1)|float %}\n{% set png_width = params.PNG_WIDTH|default(8)|float %}\n{% set png_height = params.PNG_HEIGHT|default(4.8)|float %}\n{% set png_out_path = params.PNG_OUT_PATH|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/belts_calibration.png") %}\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nTEST_RESONANCES AXIS=1,1 OUTPUT=raw_data NAME=b FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}\nM400\nTEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data NAME=a FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}\nM400\nRESPOND TYPE=command MSG="Generating Belts Frequency Profiles Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=belts_graph PARAMS="-w {png_width} -l {png_height} -n -o {png_out_path} -k /usr/share/klipper /tmp/raw_data_axis=1.000,-1.000_a.csv /tmp/raw_data_axis=1.000,1.000_b.csv"\nRESPOND TYPE=command MSG="Graph (belts_calibration.png) is now available in /Helper-Script/improved-shapers folder."\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Belts Shaper Calibration complete!"', 'description': 'Perform a custom half-axis test to analyze and compare the frequency profiles of individual belts on CoreXY printers'}, 'gcode_macro excitate_axis_at_freq': {'gcode': '\n{% set frequency = params.FREQUENCY|default(25)|int %}\n{% set time = params.TIME|default(10)|int %}\n{% set axis = params.AXIS|default("x")|string|lower %}\n{% if axis not in ["x", "y", "a", "b"] %}\n{ action_raise_error("AXIS selection is invalid. Should be either x, y, a or b!") }\n{% endif %}\n{% if axis == "a" %}\n{% set axis = "1,-1" %}\n{% elif axis == "b" %}\n{% set axis = "1,1" %}\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nTEST_RESONANCES OUTPUT=raw_data AXIS={axis} FREQ_START={frequency-1} FREQ_END={frequency+1} HZ_PER_SEC={1/(time/3)}\nM400', 'description': 'Maintain a specified excitation frequency for a period of time to diagnose and locate a vibration source'}, 'duplicate_pin_override': {'pins': ('PC0', 'PC5', 'PB2', 'ADC_TEMPERATURE')}, 'temperature_fan chamber_fan': {'max_power': 1.0, 'kick_start_time': 0.1, 'off_below': 0.0, 'cycle_time': 0.01, 'hardware_pwm': False, 'shutdown_speed': 0.0, 'pin': 'PC0', 'min_temp': 0.0, 'max_temp': 70.0, 'sensor_type': 'EPCOS 100K B57560G104F', 'pullup_resistor': 4700.0, 'inline_resistor': 0.0, 'sensor_pin': 'PC5', 'max_speed': 1.0, 'min_speed': 0.0, 'target_temp': 35.0, 'control': 'watermark', 'max_delta': 2.0}, 'temperature_fan mcu_fan': {'max_power': 1.0, 'kick_start_time': 0.1, 'off_below': 0.0, 'cycle_time': 0.01, 'hardware_pwm': False, 'shutdown_speed': 0.0, 'pin': 'PB2', 'min_temp': 0.0, 'max_temp': 100.0, 'sensor_type': 'temperature_mcu', 'sensor_mcu': 'mcu', 'max_speed': 1.0, 'min_speed': 0.0, 'target_temp': 50.0, 'control': 'watermark', 'max_delta': 2.0}, 'output_pin mcu_fan': {'pwm': True, 'pin': 'PB2', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 255.0, 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'gcode_macro m141': {'gcode': '\n{% set s = params.S|float %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=chamber_fan TARGET={s}\nRESPOND TYPE=command MSG="Chamber target temperature: {s}°C"', 'description': 'Set Chamber Temperature with slicers'}, 'gcode_macro m191': {'gcode': '\n{% set s = params.S|float %}\n{% set chamber_temp = printer["temperature_sensor chamber_temp"].temperature|float %}\n{% if s > 0 %}\nM141 S{s}\n{% endif %}\n{% if s > chamber_temp and s <= 90 %}\nM140 S100\nRESPOND TYPE=command MSG="Waiting for the bed to heat up the chamber..."\nTEMPERATURE_WAIT SENSOR="temperature_fan chamber_fan" MINIMUM={s-1}\nRESPOND TYPE=command MSG="Chamber target temperature reached: {s}°C"\nM140 S{s}\n{% endif %}', 'description': 'Wait for Chamber Temperature to heat up'}, 'gcode_macro m106': {'gcode': '\n{% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}\n{% set fan = 0 %}\n{% set value = 0 %}\n{% if params.P is defined %}\n{% set tmp = params.P|int %}\n{% if tmp < fans %}\n{% set fan = tmp %}\n{% endif %}\n{% endif %}\n{% if params.S is defined %}\n{% set tmp = params.S|float %}\n{% else %}\n{% set tmp = 255 %}\n{% endif %}\n{% if tmp > 0 %}\n{% if fan == 0 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan0_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}\n{% endif %}\n{% endif %}\n{% if fan == 1 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan1_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan1_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}\n{% endif %}\n{% endif %}\n{% if fan == 2 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan2_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}\n{% endif %}\n{% endif %}\n{% endif %}\n{% if value >= 255 %}\n{% set value = 255 %}\n{% endif %}\n{% if params.P is defined and params.P|int == 3 %}\n{% set fan = 1 %}\n{% endif %}\nSET_PIN PIN=fan{fan} VALUE={value}', 'description': 'G-Code macro'}, 'prtouch_v2_fan': {'max_speed': 0.5}, 'output_pin kamp': {'pwm': False, 'pin': 'virtual_pin:KAMP_pin', 'maximum_mcu_duration': 0.0, 'value': 1.0, 'shutdown_value': 0.0}, 'output_pin bed_leveling': {'pwm': False, 'pin': 'virtual_pin:BED_LEVELING_pin', 'maximum_mcu_duration': 0.0, 'value': 1.0, 'shutdown_value': 0.0}, 'gcode_macro start_print': {'gcode': '\nWAIT_TEMP_END\nCLEAR_PAUSE\n{% set g28_extruder_temp = printer.custom_macro.g28_ext_temp %}\n{% set bed_temp = printer.custom_macro.default_bed_temp %}\n{% set extruder_temp = printer.custom_macro.default_extruder_temp %}\n{% if \'BED_TEMP\' in params|upper and (params.BED_TEMP|float) %}\n{% set bed_temp = params.BED_TEMP %}\n{% endif %}\n{% if \'EXTRUDER_TEMP\' in params|upper and (params.EXTRUDER_TEMP|float) %}\n{% set extruder_temp = params.EXTRUDER_TEMP %}\n{% endif %}\n{% if printer[\'gcode_macro START_PRINT\'].prepare|int == 0 %}\nPRINT_PREPARE_CLEAR\nCX_ROUGH_G28 EXTRUDER_TEMP={extruder_temp} BED_TEMP={bed_temp}\nCX_NOZZLE_CLEAR\nACCURATE_G28\n{% if printer[\'output_pin KAMP\'].value == 1 %}\nRESPOND TYPE=command MSG="Starting KAMP Bed Mesh..."\nBED_MESH_CLEAR\nBED_MESH_CALIBRATE\nBED_MESH_PROFILE SAVE=kamp\nBED_MESH_PROFILE LOAD=kamp\n{% else %}\n{% if printer[\'output_pin BED_LEVELING\'].value == 1 %}\nRESPOND TYPE=command MSG="Starting Full Bed Mesh..."\nCX_PRINT_LEVELING_CALIBRATION\n{% endif %}\nBED_MESH_PROFILE LOAD=default\n{% endif %}\n{% else %}\nPRINT_PREPARE_CLEAR\n{% endif %}\n{% if printer[\'output_pin KAMP\'].value == 1 %}\n_SMART_PARK\nM109 S{extruder_temp}\nM190 S{bed_temp}\nRESPOND TYPE=command MSG="Starting KAMP line purge..."\n_LINE_PURGE\n{% else %}\nRESPOND TYPE=command MSG="Starting classic line purge..."\nCX_PRINT_DRAW_ONE_LINE\n{% endif %}\nSET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel}', 'description': 'G-Code macro', 'variable_prepare': '0'}, 'gcode_macro bed_mesh_calibrate': {'gcode': '\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set bed_mesh_min = printer.configfile.settings.bed_mesh.mesh_min %}\n{% set bed_mesh_max = printer.configfile.settings.bed_mesh.mesh_max %}\n{% set probe_count = printer.configfile.settings.bed_mesh.probe_count %}\n{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}\n{% set verbose_enable = kamp_settings.verbose_enable | abs %}\n{% set mesh_margin = kamp_settings.mesh_margin | float %}\n{% set fuzz_amount = kamp_settings.fuzz_amount | float %}\n{% set probe_count = probe_count if probe_count|length > 1 else probe_count * 2 %}\n{% set max_probe_point_distance_x = ( bed_mesh_max[0] - bed_mesh_min[0] ) / (probe_count[0] - 1) %}\n{% set max_probe_point_distance_y = ( bed_mesh_max[1] - bed_mesh_min[1] ) / (probe_count[1] - 1) %}\n{% set x_min = all_points | map(attribute=0) | min | default(bed_mesh_min[0]) %}\n{% set y_min = all_points | map(attribute=1) | min | default(bed_mesh_min[1]) %}\n{% set x_max = all_points | map(attribute=0) | max | default(bed_mesh_max[0]) %}\n{% set y_max = all_points | map(attribute=1) | max | default(bed_mesh_max[1]) %}\n{% set fuzz_range = range((0) | int, (fuzz_amount * 100) | int + 1) %}\n{% set adapted_x_min = x_min - mesh_margin - (fuzz_range | random / 100.0) %}\n{% set adapted_y_min = y_min - mesh_margin - (fuzz_range | random / 100.0) %}\n{% set adapted_x_max = x_max + mesh_margin + (fuzz_range | random / 100.0) %}\n{% set adapted_y_max = y_max + mesh_margin + (fuzz_range | random / 100.0) %}\n{% set adapted_x_min = [adapted_x_min , bed_mesh_min[0]] | max %}\n{% set adapted_y_min = [adapted_y_min , bed_mesh_min[1]] | max %}\n{% set adapted_x_max = [adapted_x_max , bed_mesh_max[0]] | min %}\n{% set adapted_y_max = [adapted_y_max , bed_mesh_max[1]] | min %}\n{% set points_x = (((adapted_x_max - adapted_x_min) / max_probe_point_distance_x) | round(method=\'ceil\') | int) + 1 %}\n{% set points_y = (((adapted_y_max - adapted_y_min) / max_probe_point_distance_y) | round(method=\'ceil\') | int) + 1 %}\n{% if (points_x > points_y) %}\n{% set points_y = points_x %}\n{% endif %}\n{% if (points_x < points_y) %}\n{% set points_x = points_y %}\n{% endif %}\n{% if (([points_x, points_y]|max) > 6) %}\n{% set algorithm = "bicubic" %}\n{% set min_points = 4 %}\n{% else %}\n{% set algorithm = "lagrange" %}\n{% set min_points = 3 %}\n{% endif %}\n{% set points_x = [points_x , min_points]|max %}\n{% set points_y = [points_y , min_points]|max %}\n{% set points_x = [points_x , probe_count[0]]|min %}\n{% set points_y = [points_y , probe_count[1]]|min %}\n\n{% if verbose_enable == True %}\n\n{% if printer.exclude_object.objects != [] %}\n\nRESPOND TYPE=command MSG="Algorithm: {algorithm}"\nRESPOND TYPE=command MSG="Default probe count: {probe_count[0]},{probe_count[1]}"\nRESPOND TYPE=command MSG="Adapted probe count: {points_x},{points_y}"\nRESPOND TYPE=command MSG="Default mesh bounds: {bed_mesh_min[0]},{bed_mesh_min[1]}, {bed_mesh_max[0]},{bed_mesh_max[1]}"\n\n{% if mesh_margin > 0 %}\n\nRESPOND TYPE=command MSG="Mesh margin is {mesh_margin}, mesh bounds extended by {mesh_margin}mm."\n\n{% else %}\n\nRESPOND TYPE=command MSG="Mesh margin is 0, margin not increased."\n\n{% endif %}\n\n{% if fuzz_amount > 0 %}\n\nRESPOND TYPE=command MSG="Mesh point fuzzing enabled, points fuzzed up to {fuzz_amount}mm"\n\n{% else %}\n\nRESPOND TYPE=command MSG="Fuzz amount is 0, mesh points not fuzzed."\n\n{% endif %}\n\nRESPOND TYPE=command MSG="Adapted mesh bounds: {adapted_x_min},{adapted_y_min}, {adapted_x_max},{adapted_y_max}"\nRESPOND TYPE=command MSG="KAMP adjustments successful. Happy KAMPing!"\n\n{% else %}\n\nRESPOND TYPE=command MSG="No object detected! Make sure you have enabled Exclude Objets setting in your slicer. Using Full Bed Mesh."\nG4 P5000\n\n{% endif %}\n\n{% endif %}\n\n_BED_MESH_CALIBRATE mesh_min={adapted_x_min},{adapted_y_min} mesh_max={adapted_x_max},{adapted_y_max} ALGORITHM={algorithm} PROBE_COUNT={points_x},{points_y}', 'rename_existing': '_BED_MESH_CALIBRATE', 'description': 'G-Code macro'}, 'gcode_macro _line_purge': {'gcode': '\n{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}\n{% set cross_section = printer.configfile.settings.extruder.max_extrude_cross_section | float %}\n{% if printer.firmware_retraction is defined %}\n{% set RETRACT = G10 | string %}\n{% set UNRETRACT = G11 | string %}\n{% else %}\n{% set RETRACT = \'G1 E-0.5 F2400\' | string %}\n{% set UNRETRACT = \'G1 E0.5 F2400\' | string %}\n{% endif %}\n{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}\n{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}\n{% set verbose_enable = printer["gcode_macro _KAMP_Settings"].verbose_enable | abs %}\n{% set purge_height = printer["gcode_macro _KAMP_Settings"].purge_height | float %}\n{% set tip_distance = printer["gcode_macro _KAMP_Settings"].tip_distance | float %}\n{% set purge_margin = printer["gcode_macro _KAMP_Settings"].purge_margin | float %}\n{% set purge_amount = printer["gcode_macro _KAMP_Settings"].purge_amount | float %}\n{% set flow_rate = printer["gcode_macro _KAMP_Settings"].flow_rate | float %}\n{% set rapid_move = 10 %}\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set purge_x_min = (all_points | map(attribute=0) | min | default(0)) %}\n{% set purge_x_max = (all_points | map(attribute=0) | max | default(0)) %}\n{% set purge_y_min = (all_points | map(attribute=1) | min | default(0)) %}\n{% set purge_y_max = (all_points | map(attribute=1) | max | default(0)) %}\n{% set detect_object = purge_x_min + purge_x_max + purge_y_min + purge_y_max %}\n{% set purge_x_center = ([((purge_x_max + purge_x_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% set purge_y_center = ([((purge_y_max + purge_y_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% if (purge_x_center + purge_amount + rapid_move) > bed_x_max %}\n{% set purge_x_center = (bed_x_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% if (purge_y_center + purge_amount + rapid_move) > bed_y_max %}\n{% set purge_y_center = (bed_y_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% set purge_x_origin_low = (purge_x_min - purge_margin) %}\n{% set purge_x_origin_high = (purge_x_max + purge_margin) %}\n{% set purge_y_origin_low = (purge_y_min - purge_margin) %}\n{% set purge_y_origin_high = (purge_y_max + purge_margin) %}\n{% set purge_move_speed = (flow_rate / 5.0) * 60 | float %}\n\n{% if cross_section < 5 %}\n\nRESPOND TYPE=command MSG="[Extruder] max_extrude_cross_section is insufficient for line purge, please set it to 5 or greater. Purge skipped."\n\n{% else %}\n\n{% if verbose_enable == True %}\n\nRESPOND TYPE=command MSG="Moving filament tip {tip_distance}mm"\n\n{% endif %}\n\n{% if detect_object == 0 %}\n\nRESPOND TYPE=command MSG="No object detected! Using classic purge line."\n\n{% elif purge_y_origin_low > 0 %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_low} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_x_origin_low > 0 %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_low}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_y_origin_high < bed_y_max %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_high} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_x_origin_high < bed_x_max %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_high}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% else %}\n\nRESPOND TYPE=command MSG="No space for purge line! Using classic purge line."\n\n{% endif %}\n\nSAVE_GCODE_STATE NAME=Prepurge_State\n\n{% if detect_object == 0 %}\n\nG92 E0\nG1 Z0.1 F600\nM83\n{RETRACT}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nM204 S12000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000\nM220 S100\nM221 S100\nG1 Z2.0 F1200\nG1 X0.1 Y20 Z0.3 F6000.0\nG1 X0.1 Y180.0 Z0.3 F3000.0 E10.0\nG1 X0.4 Y180.0 Z0.3 F3000.0\nG1 X0.4 Y20.0 Z0.3 F3000.0 E10.0\nG1 Y10.0 F3000.0\nG1 Z2.0 F3000.0\nG92 E0\nM82\nG1 F12000\nG21\n\n{% elif purge_y_origin_low > 0 %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_center} Y{purge_y_origin_low}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_x_origin_low > 0 %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_origin_low} Y{purge_y_center}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_y_origin_high < bed_y_max %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_center} Y{purge_y_origin_high}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_x_origin_high < bed_x_max %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_origin_high} Y{purge_y_center}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% else %}\n\nG92 E0\nG1 Z0.1 F600\nM83\n{RETRACT}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nM204 S12000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000\nM220 S100\nM221 S100\nG1 Z2.0 F1200\nG1 X0.1 Y20 Z0.3 F6000.0\nG1 X0.1 Y180.0 Z0.3 F3000.0 E10.0\nG1 X0.4 Y180.0 Z0.3 F3000.0\nG1 X0.4 Y20.0 Z0.3 F3000.0 E10.0\nG1 Y10.0 F3000.0\nG1 Z2.0 F3000.0\nG92 E0\nM82\nG1 F12000\nG21\n\n{% endif %}\n\nRESTORE_GCODE_STATE NAME=Prepurge_State\n\n{% endif %}', 'description': 'A purge macro that adapts to be near your actual printed objects'}, 'gcode_macro _smart_park': {'gcode': '\n{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}\n{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}\n{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}\n{% set z_height = kamp_settings.smart_park_height | float %}\n{% set purge_margin = kamp_settings.purge_margin | float %}\n{% set purge_amount = kamp_settings.purge_amount | float %}\n{% set verbose_enable = kamp_settings.verbose_enable | abs %}\n{% set center_x = bed_x_max / 2 %}\n{% set center_y = bed_y_max / 2 %}\n{% set axis_minimum_x = printer.toolhead.axis_minimum.x | float %}\n{% set axis_minimum_y = printer.toolhead.axis_minimum.y | float %}\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set x_min = (all_points | map(attribute=0) | min | default(0)) %}\n{% set x_max = (all_points | map(attribute=0) | max | default(0)) %}\n{% set y_min = (all_points | map(attribute=1) | min | default(0)) %}\n{% set y_max = (all_points | map(attribute=1) | max | default(0)) %}\n{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}\n{% set rapid_move = 10 %}\n{% set park_x_center = ([((x_max + x_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% set park_y_center = ([((y_max + y_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% if (park_x_center + purge_amount + rapid_move) > bed_x_max %}\n{% set park_x_center = (bed_x_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% if (park_y_center + purge_amount + rapid_move) > bed_y_max %}\n{% set park_y_center = (bed_y_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% set park_x_origin_low = (x_min - purge_margin) %}\n{% set park_x_origin_high = (x_max + purge_margin) %}\n{% set park_y_origin_low = (y_min - purge_margin) %}\n{% set park_y_origin_high = (y_max + purge_margin) %}\n{% set detect_object = (x_min + x_max + y_min + y_max) %}\n{% if detect_object == 0 %}\n{% set x_min = 10 %}\n{% set y_min = 10 %}\n{% set z_height = 2 %}\n{% elif park_y_origin_low > 0 %}\n{% set x_min = park_x_center %}\n{% set y_min = park_y_origin_low %}\n{% elif park_x_origin_low > 0 %}\n{% set x_min = park_x_origin_low %}\n{% set y_min = park_y_center %}\n{% elif park_y_origin_high < bed_y_max %}\n{% set x_min = park_x_center %}\n{% set y_min = park_y_origin_high %}\n{% elif park_x_origin_high < bed_x_max %}\n{% set x_min = park_x_origin_high %}\n{% set y_min = park_y_center %}\n{% else %}\n{% set x_min = 10 %}\n{% set y_min = 10 %}\n{% set z_height = 2 %}\n{% endif %}\n\n{% if verbose_enable == True %}\n\nRESPOND TYPE=command MSG="Smart Park location: {x_min},{y_min}"\n\n{% endif %}\n\nSAVE_GCODE_STATE NAME=Presmartpark_State\n\nG90\n{% if printer.toolhead.position.z < z_height %}\n\nG0 Z{z_height}\n\n{% endif %}\n\nG0 X{x_min} Y{y_min} F{travel_speed}\nG0 Z{z_height}\n\nRESTORE_GCODE_STATE NAME=Presmartpark_State', 'description': 'Parks your printhead near the print area for pre-print hotend heating.'}, 'gcode_macro define_object': {'gcode': '\nEXCLUDE_OBJECT_DEFINE {rawparams}', 'description': 'G-Code macro'}, 'gcode_macro start_current_object': {'gcode': '\nEXCLUDE_OBJECT_START NAME={params.NAME}', 'description': 'G-Code macro'}, 'gcode_macro end_current_object': {'gcode': '\nEXCLUDE_OBJECT_END {% if params.NAME %}NAME={params.NAME}{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro list_objects': {'gcode': '\nEXCLUDE_OBJECT_DEFINE', 'description': 'G-Code macro'}, 'gcode_macro list_excluded_objects': {'gcode': '\nEXCLUDE_OBJECT', 'description': 'G-Code macro'}, 'gcode_macro remove_all_excluded': {'gcode': '\nEXCLUDE_OBJECT RESET=1', 'description': 'G-Code macro'}, 'gcode_macro _kamp_settings': {'gcode': '\nRESPOND TYPE=command MSG="Running the KAMP_Settings macro does nothing, it\'s only used for storing KAMP settings."', 'description': 'This macro contains all adjustable settings for KAMP', 'variable_verbose_enable': 'True', 'variable_mesh_margin': '0', 'variable_fuzz_amount': '0', 'variable_purge_height': '0.8', 'variable_tip_distance': '0', 'variable_purge_margin': '10', 'variable_purge_amount': '50', 'variable_flow_rate': '12', 'variable_smart_park_height': '10'}, 'verify_heater extruder': {'hysteresis': 5.0, 'max_error': 120.0, 'heating_gain': 2.0, 'check_gain_time': 20.0}, 'verify_heater heater_bed': {'hysteresis': 10.0, 'max_error': 120.0, 'heating_gain': 1.0, 'check_gain_time': 120.0}, 'bl24c16f': {'i2c_mcu': 'rpi', 'i2c_speed': 400000, 'i2c_bus': 'i2c.2', 'i2c_address': 87}, 'idle_timeout': {'timeout': 99999999.0, 'gcode': "\n{% if 'heaters' in printer %}\n TURN_OFF_HEATERS\n{% endif %}\nM84\n"}, 'virtual_sdcard': {'path': '/usr/data/printer_data/gcodes', 'on_error_gcode': ''}, 'gcode_arcs': {'resolution': 1.0}, 'temperature_sensor mcu_temp': {'sensor_type': 'temperature_mcu', 'sensor_mcu': 'mcu', 'min_temp': 0.0, 'max_temp': 100.0}, 'temperature_sensor chamber_temp': {'sensor_type': 'EPCOS 100K B57560G104F', 'pullup_resistor': 4700.0, 'inline_resistor': 0.0, 'sensor_pin': 'PC5', 'min_temp': 0.0, 'max_temp': 125.0}, 'tmc2209 stepper_x': {'uart_pin': 'PA9', 'uart_address': 3, 'diag_pin': '^PB12', 'run_current': 1.5, 'hold_current': 1.0, 'sense_resistor': 0.1, 'interpolate': True, 'stealthchop_threshold': 0.0, 'driver_toff': 3, 'driver_hstrt': 5, 'driver_hend': 0, 'driver_tbl': 2, 'driver_iholddelay': 8, 'driver_tpowerdown': 20, 'driver_pwm_ofs': 36, 'driver_pwm_grad': 14, 'driver_pwm_freq': 1, 'driver_pwm_autoscale': True, 'driver_pwm_autograd': True, 'driver_pwm_reg': 8, 'driver_pwm_lim': 12, 'driver_sgthrs': 65}, 'stepper_x': {'microsteps': 32, 'step_pin': 'PC2', 'dir_pin': '!PB9', 'rotation_distance': 72.0, 'full_steps_per_rotation': 200, 'gear_ratio': (), 'enable_pin': '!PC3', 'endstop_pin': 'tmc2209_stepper_x:virtual_endstop', 'position_endstop': 306.5, 'position_min': -2.0, 'position_max': 306.5, 'homing_speed': 36.0, 'second_homing_speed': 18.0, 'homing_retract_speed': 36.0, 'homing_retract_dist': 0.0, 'homing_positive_dir': True}, 'tmc2209 stepper_y': {'uart_pin': 'PA10', 'uart_address': 3, 'diag_pin': '^PB13', 'run_current': 1.5, 'hold_current': 1.0, 'sense_resistor': 0.1, 'interpolate': True, 'stealthchop_threshold': 0.0, 'driver_toff': 3, 'driver_hstrt': 5, 'driver_hend': 0, 'driver_tbl': 2, 'driver_iholddelay': 8, 'driver_tpowerdown': 20, 'driver_pwm_ofs': 36, 'driver_pwm_grad': 14, 'driver_pwm_freq': 1, 'driver_pwm_autoscale': True, 'driver_pwm_autograd': True, 'driver_pwm_reg': 8, 'driver_pwm_lim': 12, 'driver_sgthrs': 65}, 'stepper_y': {'microsteps': 32, 'step_pin': 'PB8', 'dir_pin': '!PB7', 'rotation_distance': 72.0, 'full_steps_per_rotation': 200, 'gear_ratio': (), 'enable_pin': '!PC3', 'endstop_pin': 'tmc2209_stepper_y:virtual_endstop', 'position_endstop': -2.0, 'position_min': -2.0, 'position_max': 306.0, 'homing_speed': 36.0, 'second_homing_speed': 18.0, 'homing_retract_speed': 36.0, 'homing_retract_dist': 0.0, 'homing_positive_dir': False}, 'tmc2209 stepper_z': {'uart_pin': 'PA11', 'uart_address': 3, 'diag_pin': '^PB14', 'run_current': 0.8, 'hold_current': 2.0, 'sense_resistor': 0.1, 'interpolate': True, 'stealthchop_threshold': 0.0, 'driver_toff': 3, 'driver_hstrt': 5, 'driver_hend': 0, 'driver_tbl': 2, 'driver_iholddelay': 8, 'driver_tpowerdown': 20, 'driver_pwm_ofs': 36, 'driver_pwm_grad': 14, 'driver_pwm_freq': 1, 'driver_pwm_autoscale': True, 'driver_pwm_autograd': True, 'driver_pwm_reg': 8, 'driver_pwm_lim': 12, 'driver_sgthrs': 0}, 'stepper_z': {'microsteps': 16, 'position_max': 305.0, 'position_min': -10.0, 'step_pin': 'PB6', 'dir_pin': '!PB5', 'rotation_distance': 8.0, 'full_steps_per_rotation': 200, 'gear_ratio': ((64.0, 20.0),), 'enable_pin': '!PC3', 'endstop_pin': 'tmc2209_stepper_z:virtual_endstop', 'position_endstop': 0.0, 'homing_speed': 10.0, 'second_homing_speed': 1.0, 'homing_retract_speed': 10.0, 'homing_retract_dist': 2.0, 'homing_positive_dir': False}, 'tmc2209 extruder': {'uart_pin': 'nozzle_mcu:PB11', 'tx_pin': 'nozzle_mcu:PB10', 'uart_address': 3, 'run_current': 0.55, 'hold_current': 2.0, 'sense_resistor': 0.15, 'interpolate': True, 'stealthchop_threshold': 0.0, 'driver_toff': 3, 'driver_hstrt': 5, 'driver_hend': 0, 'driver_tbl': 2, 'driver_iholddelay': 8, 'driver_tpowerdown': 20, 'driver_pwm_ofs': 36, 'driver_pwm_grad': 14, 'driver_pwm_freq': 1, 'driver_pwm_autoscale': True, 'driver_pwm_autograd': True, 'driver_pwm_reg': 8, 'driver_pwm_lim': 12, 'driver_sgthrs': 0}, 'extruder': {'microsteps': 16, 'sensor_type': 'EPCOS 100K B57560G104F', 'pullup_resistor': 4700.0, 'inline_resistor': 0.0, 'sensor_pin': 'nozzle_mcu:PA0', 'min_temp': 0.0, 'max_temp': 320.0, 'min_extrude_temp': 170.0, 'max_power': 1.0, 'smooth_time': 1.0, 'control': 'pid', 'pid_kp': 25.013, 'pid_ki': 2.566, 'pid_kd': 60.966, 'heater_pin': 'nozzle_mcu:PB7', 'pwm_cycle_time': 0.1, 'nozzle_diameter': 0.4, 'filament_diameter': 1.75, 'max_extrude_cross_section': 80.0, 'max_extrude_only_velocity': 212.86486429531544, 'max_extrude_only_accel': 5321.6216073828855, 'max_extrude_only_distance': 1000.0, 'instantaneous_corner_velocity': 1.0, 'step_pin': 'nozzle_mcu:PB1', 'pressure_advance': 0.04, 'pressure_advance_smooth_time': 0.04, 'dir_pin': 'nozzle_mcu:PB0', 'rotation_distance': 6.9, 'full_steps_per_rotation': 200, 'gear_ratio': (), 'enable_pin': '!nozzle_mcu:PB2'}, 'heater_bed': {'sensor_type': 'NTC 100K beta 3950', 'pullup_resistor': 4700.0, 'inline_resistor': 0.0, 'sensor_pin': 'PC4', 'min_temp': 0.0, 'max_temp': 125.0, 'min_extrude_temp': 170.0, 'max_power': 1.0, 'smooth_time': 1.0, 'control': 'pid', 'pid_kp': 53.795, 'pid_ki': 0.525, 'pid_kd': 1377.827, 'heater_pin': 'PC8', 'pwm_cycle_time': 0.1}, 'filament_switch_sensor filament_sensor': {'switch_pin': '!PC15', 'pause_on_runout': True, 'runout_gcode': "\n{% if printer.extruder.can_extrude|lower == 'true' %}\nG91\nG0 E30 F600\nG90\n{% endif %}", 'pause_delay': 0.5, 'event_delay': 3.0}, 'pause_resume': {'recover_velocity': 50.0}, 'filament_switch_sensor filament_sensor_2': {'switch_pin': '!nozzle_mcu:PA10', 'pause_on_runout': True, 'runout_gcode': '', 'pause_delay': 0.5, 'event_delay': 3.0}, 'multi_pin heater_fans': {'pins': ('nozzle_mcu:PB5', 'PB2')}, 'heater_fan hotend_fan': {'heater': ('extruder',), 'heater_temp': 40.0, 'max_power': 1.0, 'kick_start_time': 0.1, 'off_below': 0.0, 'cycle_time': 0.01, 'hardware_pwm': False, 'shutdown_speed': 1.0, 'pin': 'multi_pin:heater_fans', 'fan_speed': 1.0}, 'static_digital_output my_fan_output_pins': {'pins': ('nozzle_mcu: PB6',)}, 'output_pin fan0': {'pwm': True, 'pin': '!nozzle_mcu: PB8', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 255.0, 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'output_pin fan1': {'pwm': True, 'pin': 'PC0', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 255.0, 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'output_pin fan2': {'pwm': True, 'pin': 'PB1', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 255.0, 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'output_pin led': {'pwm': True, 'pin': 'PB0', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 1.0, 'maximum_mcu_duration': 0.0, 'value': 1.0, 'shutdown_value': 0.0}, 'output_pin power': {'pwm': False, 'pin': 'PC9', 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'adxl345': {'axes_map': ('x', '-z', 'y'), 'rate': 3200, 'cs_pin': 'nozzle_mcu:PA4', 'spi_speed': 5000000, 'spi_software_sclk_pin': 'nozzle_mcu:PA5', 'spi_software_miso_pin': 'nozzle_mcu:PA6', 'spi_software_mosi_pin': 'nozzle_mcu:PA7'}, 'resonance_tester': {'move_speed': 50.0, 'min_freq': 5.0, 'max_freq': 133.33333333333334, 'accel_per_hz': 75.0, 'hz_per_sec': 1.0, 'probe_points': ((150.0, 150.0, 10.0),), 'low_mem': True, 'accel_chip': 'adxl345'}, 'prtouch_v2': {'pr_version': 2, 'tri_min_hold_1': (6000, 10000), 'tri_max_hold_1': (13000, 60000), 'tri_min_hold_2': (6000, 10000), 'tri_max_hold_2': (13000, 60000), 'tri_min_hold_3': (6000, 10000), 'tri_max_hold_3': (13000, 60000), 'tri_min_hold_4': (6000, 10000), 'tri_max_hold_4': (13000, 60000), 'tri_min_hold_5': (6000, 10000), 'tri_max_hold_5': (13000, 60000), 'tri_min_hold_6': (6000, 10000), 'tri_max_hold_6': (13000, 60000), 'tri_min_hold_7': (6000, 10000), 'tri_max_hold_7': (13000, 60000), 'tri_min_hold_8': (6000, 10000), 'tri_max_hold_8': (13000, 60000), 'tri_min_hold_9': (6000, 10000), 'tri_max_hold_9': (13000, 60000), 'tri_min_hold_10': (6000, 10000), 'tri_max_hold_10': (13000, 60000), 'tri_min_hold_11': (6000, 10000), 'tri_max_hold_11': (13000, 60000), 'tri_min_hold_12': (6000, 10000), 'tri_max_hold_12': (13000, 60000), 'tri_min_hold_13': (6000, 10000), 'tri_max_hold_13': (13000, 60000), 'tri_min_hold_14': (6000, 10000), 'tri_max_hold_14': (13000, 60000), 'tri_min_hold_15': (6000, 10000), 'tri_max_hold_15': (13000, 60000), 'tri_min_hold_16': (6000, 10000), 'tri_max_hold_16': (13000, 60000), 'tri_min_hold_17': (6000, 10000), 'tri_max_hold_17': (13000, 60000), 'tri_min_hold_18': (6000, 10000), 'tri_max_hold_18': (13000, 60000), 'tri_min_hold_19': (6000, 10000), 'tri_max_hold_19': (13000, 60000), 'tri_min_hold_20': (6000, 10000), 'tri_max_hold_20': (13000, 60000), 'tri_min_hold_21': (6000, 10000), 'tri_max_hold_21': (13000, 60000), 'tri_min_hold_22': (6000, 10000), 'tri_max_hold_22': (13000, 60000), 'tri_min_hold_23': (6000, 10000), 'tri_max_hold_23': (13000, 60000), 'tri_min_hold_24': (6000, 10000), 'tri_max_hold_24': (13000, 60000), 'tri_min_hold_25': (6000, 10000), 'tri_max_hold_25': (13000, 60000), 'tri_min_hold_26': (6000, 10000), 'tri_max_hold_26': (13000, 60000), 'tri_min_hold_27': (6000, 10000), 'tri_max_hold_27': (13000, 60000), 'tri_min_hold_28': (6000, 10000), 'tri_max_hold_28': (13000, 60000), 'tri_min_hold_29': (6000, 10000), 'tri_max_hold_29': (13000, 60000), 'tri_min_hold_30': (6000, 10000), 'tri_max_hold_30': (13000, 60000), 'tri_min_hold_31': (6000, 10000), 'tri_max_hold_31': (13000, 60000), 'tri_min_hold_32': (6000, 10000), 'tri_max_hold_32': (13000, 60000), 'tri_min_hold_33': (6000, 10000), 'tri_max_hold_33': (13000, 60000), 'tri_min_hold_34': (6000, 10000), 'tri_max_hold_34': (13000, 60000), 'tri_min_hold_35': (6000, 10000), 'tri_max_hold_35': (13000, 60000), 'tri_min_hold_36': (6000, 10000), 'tri_max_hold_36': (13000, 60000), 'use_adc': False, 'tri_acq_ms': 12, 'tri_send_ms': 10, 'tri_need_cnt': 1, 'tri_try_max_times': 10, 'cal_hftr_cut': 10, 'cal_lftr_k1': 0.85, 'tri_min_hold': (6000, 10000), 'tri_max_hold': (13000, 60000), 'tri_hftr_cut': (2.0, 1.0), 'tri_lftr_k1': (0.5, 0.15), 'correct_tri_hold': 0, 'correct_step_mm': 0.04, 'show_msg': False, 'shake_cnt': 8, 'shake_range': 0.5, 'hot_min_temp': 140, 'hot_max_temp': 200, 'bed_max_temp': 60, 'pa_clr_dis_mm': 30, 'pa_clr_down_mm': -0.15, 'clr_noz_start_x': 130.0, 'clr_noz_start_y': 303.0, 'clr_noz_len_x': 40.0, 'clr_noz_len_y': 2.0, 'clr_xy_spd': 2.0, 'speeds': (2.5, 1.0), 'lift_speed': 5.0, 'rdy_xy_spd': 200, 'rdy_z_spd': 5.0, 'acc_ctl_mm': 0.25, 'low_spd_nul': 5, 'send_step_duty': 16, 'run_max_velocity': 500, 'run_max_accel': 500, 'run_max_z_velocity': 20, 'run_max_z_accel': 200, 'check_bed_mesh_max_err': 0.2, 'need_self_check': True, 'bed_max_err': 5, 'g29_down_min_z': 25, 'probe_min_3err': 0.1, 'step_base': 2, 'g28_wait_cool_down': True, 'best_above_z': 3, 'safe_z_dead_dis': 2, 'fan_heat_min_spd': 0.3, 'fan_heat_max_spd': 1.0, 'lost_step_dis': 0.5, 'tilt_corr_dis': 0.05, 'bed_mesh_top_mid_com': 0.0, 'bed_mesh_bottom_mid_com': 0.0, 'bed_mesh_left_mid_com': 0.0, 'bed_mesh_right_mid_com': 0.0, 'noz_ex_com': 0.09, 'sys_time_duty': 0.001, 'shake_sample_num': 100, 'shake_z_velocity': 100, 'shake_z_accel': 500, 'shake_num': 20, 'check_std_max': 6000, 'check_std_mim': 250, 'step_swap_pin': 'PC10', 'pres_swap_pin': 'leveling_mcu:PB1', 'pres_cnt': 4, 'pres0_clk_pins': 'leveling_mcu:PA7', 'pres0_sdo_pins': 'leveling_mcu:PA4', 'pres1_clk_pins': 'leveling_mcu:PA6', 'pres1_sdo_pins': 'leveling_mcu:PA3', 'pres2_clk_pins': 'leveling_mcu:PA2', 'pres2_sdo_pins': 'leveling_mcu:PA0', 'pres3_clk_pins': 'leveling_mcu:PA5', 'pres3_sdo_pins': 'leveling_mcu:PA1', 'speed': 5.0, 'x_offset': 0.0, 'y_offset': 0.0, 'z_offset': 0.0, 'samples': 1, 'sample_retract_dist': 2.0, 'samples_result': 'average', 'samples_tolerance': 0.1, 'samples_tolerance_retries': 0}, 'printer': {'kinematics': 'corexy', 'max_velocity': 800.0, 'max_accel': 20000.0, 'max_accel_to_decel': 20000.0, 'square_corner_velocity': 5.0, 'square_corner_max_velocity': 200.0, 'buffer_time_low': 1.0, 'buffer_time_high': 2.0, 'buffer_time_start': 0.25, 'move_flush_time': 0.05, 'max_z_velocity': 20.0, 'max_z_accel': 300.0}, 'bed_mesh': {'probe_count': (6, 6), 'mesh_min': (5.0, 5.0), 'mesh_max': (295.0, 295.0), 'mesh_pps': (2, 2), 'algorithm': 'lagrange', 'bicubic_tension': 0.2, 'horizontal_move_z': 5.0, 'speed': 150.0, 'fade_start': 5.0, 'fade_end': 50.0, 'split_delta_z': 0.025, 'move_check_distance': 5.0}, 'input_shaper': {'shaper_type': 'mzv', 'shaper_type_x': '2hump_ei', 'damping_ratio_x': 0.1, 'shaper_freq_x': 39.0, 'shaper_type_y': 'zv', 'damping_ratio_y': 0.1, 'shaper_freq_y': 48.0}}, 'warnings': [{'type': 'deprecated_value', 'value': 'NTC 100K beta 3950', 'message': "Value 'NTC 100K beta 3950' in option 'sensor_type' in section 'heater_bed' is deprecated.", 'section': 'heater_bed', 'option': 'sensor_type'}], 'save_config_pending': False, 'save_config_pending_items': {}}, 'mcu': {'mcu_version': '1.3.0.40-5-g6977eaff-dirty-20230711_100121-ubuntu', 'mcu_build_versions': 'gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34', 'mcu_constants': {'ADC_MAX': 4095, 'CLOCK_FREQ': 120000000, 'INITIAL_PINS': 'PC7,PB0', 'MCU': 'gd32f303xe', 'RECEIVE_WINDOW': 192, 'RESERVE_PINS_serial': 'PA2,PA3', 'SERIAL_BAUD': 230400, 'STATS_SUMSQ_BASE': 256, 'STEPPER_BOTH_EDGE': 1, 'build_machine_uid': 'Jul 11 202310:01:16'}, 'last_stats': {'mcu_awake': 0.001, 'mcu_task_avg': 1e-05, 'mcu_task_stddev': 6e-06, 'bytes_write': 2040, 'bytes_read': 5388, 'bytes_retransmit': 9, 'bytes_invalid': 0, 'send_seq': 170, 'receive_seq': 170, 'retransmit_seq': 17, 'srtt': 0.001, 'rttvar': 0.0, 'rto': 0.025, 'ready_bytes': 0, 'stalled_bytes': 0, 'freq': 119997406}}, 'mcu nozzle_mcu': {'mcu_version': '1.3.0.40-5-g6977eaff-dirty-20230711_100254-ubuntu', 'mcu_build_versions': 'gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34', 'mcu_constants': {'ADC_MAX': 4095, 'CLOCK_FREQ': 120000000, 'INITIAL_PINS': '!PB5,!PB6,!PB7', 'MCU': 'gd32f303xb', 'RECEIVE_WINDOW': 192, 'RESERVE_PINS_serial': 'PA2,PA3', 'SERIAL_BAUD': 230400, 'STATS_SUMSQ_BASE': 256, 'STEPPER_BOTH_EDGE': 1, 'build_machine_uid': 'Jul 11 202310:02:50'}, 'last_stats': {'mcu_awake': 0.001, 'mcu_task_avg': 1e-05, 'mcu_task_stddev': 6e-06, 'bytes_write': 1344, 'bytes_read': 4805, 'bytes_retransmit': 0, 'bytes_invalid': 0, 'send_seq': 149, 'receive_seq': 149, 'retransmit_seq': 0, 'srtt': 0.001, 'rttvar': 0.0, 'rto': 0.025, 'ready_bytes': 0, 'stalled_bytes': 0, 'freq': 119997219, 'adj': 119999649}}, 'mcu leveling_mcu': {'mcu_version': '1.3.0.40-5-g6977eaff-dirty-20230711_095416-ubuntu', 'mcu_build_versions': 'gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34', 'mcu_constants': {'ADC_MAX': 4095, 'CLOCK_FREQ': 72000000, 'MCU': 'gd32e230x8', 'RECEIVE_WINDOW': 192, 'RESERVE_PINS_serial': 'PA9,PA10', 'SERIAL_BAUD': 230400, 'STATS_SUMSQ_BASE': 256, 'STEPPER_BOTH_EDGE': 1, 'build_machine_uid': 'Jul 11 202309:54:12'}, 'last_stats': {'mcu_awake': 0.0, 'mcu_task_avg': 0.0, 'mcu_task_stddev': 0.0, 'bytes_write': 829, 'bytes_read': 4409, 'bytes_retransmit': 9, 'bytes_invalid': 0, 'send_seq': 112, 'receive_seq': 112, 'retransmit_seq': 17, 'srtt': 0.002, 'rttvar': 0.001, 'rto': 0.025, 'ready_bytes': 0, 'stalled_bytes': 0, 'freq': 71776639, 'adj': 71679676}}, 'mcu rpi': {'mcu_version': 'v0.11.0-372-gb9ad7605', 'mcu_build_versions': 'gcc: (Ingenic Linux-Release5.1.0-Default(xburst2(fp64)+glibc2.29) 2021.12-22 10:52:10) 7.2.0 binutils: (Ingenic Linux-Release5.1.0.-Default(xburst2(fp64)+glibc2.29) 2021.12-22 08:55:37) 2.27', 'mcu_constants': {'ADC_MAX': 4095, 'CLOCK_FREQ': 50000000, 'MCU': 'linux', 'PCA9685_MAX': 4096, 'PWM_MAX': 32768, 'STATS_SUMSQ_BASE': 256, 'build_machine_uid': 'May 18 202311:46:31'}, 'last_stats': {'mcu_awake': 0.004, 'mcu_task_avg': 3.2e-05, 'mcu_task_stddev': 4.7e-05, 'bytes_write': 894, 'bytes_read': 4533, 'bytes_retransmit': 0, 'bytes_invalid': 0, 'send_seq': 117, 'receive_seq': 117, 'retransmit_seq': 0, 'srtt': 0.001, 'rttvar': 0.001, 'rto': 0.025, 'ready_bytes': 0, 'stalled_bytes': 0, 'freq': 50066301, 'adj': 50002981}}, 'virtual_pins': {'pins': {'KAMP_pin': {'value': 1.0, 'type': 'digital_out'}, 'BED_LEVELING_pin': {'value': 1.0, 'type': 'digital_out'}}}, 'gcode_macro xyz_ready': {'x_ready': 0, 'y_ready': 0, 'z_ready': 0, 'xy_moved': 0, 'z_moved': 0, 'safe_z': 3}, 'gcode_macro _IF_HOME_Z': {}, 'gcode_macro _IF_MOVE_XY': {}, 'gcode_macro _HOME_X': {}, 'gcode_macro _HOME_Y': {}, 'gcode_macro _HOME_Z': {}, 'gcode_macro PRINTER_PARAM': {'z_safe_pause': 0.0, 'z_safe_g28': 3.0, 'max_x_position': 300.0, 'max_y_position': 300.0, 'max_z_position': 300.0, 'fans': 3, 'auto_g29': 0, 'fan0_min': 25, 'fan1_min': 50, 'fan2_min': 180, 'fan2_speed': 0, 'hotend_temp': 0, 'e_min_current': 0.27}, 'gcode_macro AUTOTUNE_SHAPERS': {}, 'gcode_macro LOAD_MATERIAL_CLOSE_FAN2': {'fan2_value': 0}, 'gcode_macro LOAD_MATERIAL_RESTORE_FAN2': {}, 'gcode_macro SET_E_MIN_CURRENT': {}, 'gcode_macro RESTORE_E_CURRENT': {}, 'gcode_macro LOAD_MATERIAL': {}, 'gcode_macro QUIT_MATERIAL': {}, 'gcode_macro Qmode': {'flag': 0, 'accel': 0, 'accel_to_decel': 0, 'velocity': 0, 'square_corner_velocity': 0, 'pressure_advance': 0.0, 'fan0_value': 0.0, 'fan1_value': 0.0, 'fan2_value': 0.0, 'speed_factor': 0, 'max_accel': 2500, 'max_accel_to_decel': 2500}, 'gcode_macro Qmode_exit': {}, 'gcode_macro M204': {}, 'gcode_macro M205': {}, 'gcode_macro M107': {}, 'gcode_macro M900': {}, 'gcode_macro WAIT_TEMP_START': {}, 'gcode_macro WAIT_TEMP_END': {}, 'gcode_macro PRINT_CALIBRATION': {}, 'gcode_macro FIRST_FLOOR_PAUSE_POSITION': {}, 'gcode_macro ACCURATE_G28': {}, 'gcode_macro PRINT_PREPARED': {}, 'gcode_macro PRINT_PREPARE_CLEAR': {}, 'gcode_macro END_PRINT_POINT_WITHOUT_LIFTING': {}, 'gcode_macro END_PRINT_POINT': {}, 'gcode_macro END_PRINT': {}, 'gcode_macro FIRST_FLOOR_PAUSE': {'extrude': 2.0}, 'gcode_macro FIRST_FLOOR_RESUME': {}, 'gcode_macro PAUSE': {'extrude': 2.0}, 'gcode_macro INPUTSHAPER': {}, 'gcode_macro BEDPID': {}, 'gcode_macro TUNOFFINPUTSHAPER': {}, 'gcode_macro RESUME': {}, 'gcode_macro CANCEL_PRINT': {}, 'gcode_macro G29': {}, 'gcode_move': {'speed_factor': 1.0, 'speed': 1500.0, 'extrude_factor': 1.0, 'absolute_coordinates': True, 'absolute_extrude': True, 'homing_origin': Coord(x=0.0, y=0.0, z=0.0, e=0.0), 'position': Coord(x=0.0, y=0.0, z=0.0, e=0.0), 'gcode_position': Coord(x=0.0, y=0.0, z=0.0, e=0.0)}, 'print_stats': {'filename': '', 'total_duration': 0.0, 'print_duration': 0.0, 'filament_used': 0.0, 'state': 'standby', 'message': '', 'info': {'total_layer': None, 'current_layer': None}, 'power_loss': 0, 'z_pos': 6.0}, 'fan_feedback': {'fan0_speed': 0, 'fan1_speed': 0, 'fan2_speed': 0, 'fan3_speed': 0, 'fan4_speed': 0}, 'custom_macro': {'leveling_calibration': 0, 'default_extruder_temp': 240.0, 'default_bed_temp': 50.0, 'g28_ext_temp': 140.0, 'qmode_flag': 0}, 'gcode_macro GET_TIMELAPSE_SETUP': {}, 'gcode_macro _SET_TIMELAPSE_SETUP': {}, 'gcode_macro TIMELAPSE_TAKE_FRAME': {'enable': True, 'takingframe': False, 'park': {'enable': False, 'pos': 'back_right', 'time': 0.1, 'custom': {'x': 10.0, 'y': 10.0, 'dz': 0.0}, 'coord': {'x': 306.5, 'y': 306.0, 'dz': 0}}, 'extruder': {'fw_retract': False, 'retract': 0.5, 'extrude': 0.5}, 'speed': {'travel': 400.0, 'retract': 40.0, 'extrude': 40.0}, 'verbose': False, 'check_time': 0.5, 'restore': {'absolute': {'coordinates': True, 'extrude': True}, 'speed': 1500, 'e': 0, 'factor': {'speed': 1.0, 'extrude': 1.0}}, 'macro': {'pause': 'PAUSE_BASE', 'resume': 'RESUME_BASE'}, 'is_paused': False}, 'gcode_macro _TIMELAPSE_NEW_FRAME': {}, 'gcode_macro HYPERLAPSE': {'cycle': 0, 'run': False}, 'gcode_macro TIMELAPSE_RENDER': {'render': False, 'run_identifier': 0}, 'gcode_macro TEST_STREAM_DELAY': {}, 'save_variables': {'variables': {}}, 'gcode_macro SET_GCODE_OFFSET': {}, 'calibrate_shaper_config': {}, 'gcode_macro INPUT_SHAPER_CALIBRATION': {}, 'gcode_macro TEST_RESONANCES_GRAPHS': {}, 'gcode_macro BELTS_SHAPER_CALIBRATION': {}, 'gcode_macro EXCITATE_AXIS_AT_FREQ': {}, 'heaters': {'available_heaters': ['heater_bed', 'extruder'], 'available_sensors': ['temperature_fan chamber_fan', 'temperature_fan mcu_fan', 'temperature_sensor mcu_temp', 'temperature_sensor chamber_temp', 'heater_bed', 'extruder'], 'extruder_temperature_wait': False, 'bed_temperature_wait': False}, 'temperature_fan chamber_fan': {'speed': 0.0, 'rpm': None, 'temperature': 19.27, 'target': 35.0}, 'temperature_fan mcu_fan': {'speed': 0.0, 'rpm': None, 'temperature': 22.36, 'target': 50.0}, 'output_pin mcu_fan': {'value': 0.0}, 'gcode_macro M141': {}, 'gcode_macro M191': {}, 'gcode_macro M106': {}, 'output_pin KAMP': {'value': 1.0}, 'output_pin BED_LEVELING': {'value': 1.0}, 'gcode_macro START_PRINT': {'prepare': 0}, 'gcode_macro BED_MESH_CALIBRATE': {}, 'gcode_macro _LINE_PURGE': {}, 'gcode_macro _SMART_PARK': {}, 'gcode_macro DEFINE_OBJECT': {}, 'gcode_macro START_CURRENT_OBJECT': {}, 'gcode_macro END_CURRENT_OBJECT': {}, 'gcode_macro LIST_OBJECTS': {}, 'gcode_macro LIST_EXCLUDED_OBJECTS': {}, 'gcode_macro REMOVE_ALL_EXCLUDED': {}, 'gcode_macro _KAMP_Settings': {'verbose_enable': True, 'mesh_margin': 0, 'fuzz_amount': 0, 'purge_height': 0.8, 'tip_distance': 0, 'purge_margin': 10, 'purge_amount': 50, 'flow_rate': 12, 'smart_park_height': 10}, 'idle_timeout': {'state': 'Printing', 'printing_time': 0.6530143339999981}, 'virtual_sdcard': {'file_path': None, 'progress': 0.0, 'is_active': False, 'file_position': 0, 'file_size': 0, 'first_layer_stop': False, 'layer': 0, 'layer_count': 0, 'run_dis': 0.0}, 'temperature_sensor mcu_temp': {'temperature': 29.48, 'measured_min_temp': 29.24, 'measured_max_temp': 29.48}, 'temperature_sensor chamber_temp': {'temperature': 19.29, 'measured_min_temp': 19.25, 'measured_max_temp': 19.31}, 'tmc2209 stepper_x': {'mcu_phase_offset': 1, 'phase_offset_position': 0.01125, 'run_current': 1.4731391274719736, 'hold_current': 1.0017346066809423, 'drv_status': None}, 'tmc2209 stepper_y': {'mcu_phase_offset': 1, 'phase_offset_position': 0.01125, 'run_current': 1.4731391274719736, 'hold_current': 1.0017346066809423, 'drv_status': None}, 'tmc2209 stepper_z': {'mcu_phase_offset': 0, 'phase_offset_position': 0.0, 'run_current': 0.7954951288348658, 'hold_current': 0.7954951288348658, 'drv_status': None}, 'tmc2209 extruder': {'mcu_phase_offset': 63, 'phase_offset_position': 0.13584375, 'run_current': 0.5615259732951996, 'hold_current': 0.5615259732951996, 'drv_status': None}, 'heater_bed': {'temperature': 19.14, 'target': 0.0, 'power': 0.0}, 'pause_resume': {'is_paused': False}, 'filament_switch_sensor filament_sensor': {'filament_detected': True, 'enabled': True}, 'filament_switch_sensor filament_sensor_2': {'filament_detected': True, 'enabled': True}, 'heater_fan hotend_fan': {'speed': 0.0, 'rpm': None}, 'output_pin fan0': {'value': 0.0}, 'output_pin fan1': {'value': 0.0}, 'output_pin fan2': {'value': 0.0}, 'output_pin LED': {'value': 1.0}, 'output_pin power': {'value': 0.0}, 'probe': {'last_query': False, 'last_z_result': 0.0, 'z_offset': 0.0}, 'bed_mesh': {'profile_name': '', 'mesh_min': (0.0, 0.0), 'mesh_max': (0.0, 0.0), 'probed_matrix': [[]], 'mesh_matrix': [[]], 'profiles': {}}, 'display_status': {'progress': 0.0, 'message': None}, 'exclude_object': {'objects': [], 'excluded_objects': [], 'current_object': None}, 'motion_report': {'live_position': Coord(x=0.0, y=0.0, z=0.0, e=0.0), 'live_velocity': 0.0, 'live_extruder_velocity': 0.0, 'steppers': ['extruder', 'stepper_x', 'stepper_y', 'stepper_z'], 'trapq': ['extruder', 'toolhead']}, 'query_endstops': {'last_query': {}}, 'system_stats': {'sysload': 1.83, 'cputime': 17.64945287, 'memavail': 135432}, 'manual_probe': {'is_active': False, 'z_position': None, 'z_position_lower': None, 'z_position_upper': None}, 'toolhead': {'homed_axes': '', 'axis_minimum': Coord(x=-2.0, y=-2.0, z=-10.0, e=0.0), 'axis_maximum': Coord(x=306.5, y=306.0, z=305.0, e=0.0), 'print_time': 30.879072325, 'stalls': 0, 'estimated_print_time': 31.0771821, 'extruder': 'extruder', 'position': Coord(x=0.0, y=0.0, z=0.0, e=0.0), 'max_velocity': 800.0, 'max_accel': 20000.0, 'max_accel_to_decel': 20000.0, 'square_corner_velocity': 5.0}, 'extruder': {'temperature': 18.8, 'target': 0.0, 'power': 0.0, 'can_extrude': False, 'pressure_advance': 0.04, 'smooth_time': 0.04}}} [INFO] 2024-04-13 06:50:57,745 [root] [statistics:generate_stats:68] Stats 40.9: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000012 mcu_task_stddev=0.000050 bytes_write=2074 bytes_read=6233 bytes_retransmit=9 bytes_invalid=0 send_seq=175 receive_seq=175 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996903 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000008 mcu_task_stddev=0.000027 bytes_write=1370 bytes_read=5035 bytes_retransmit=0 bytes_invalid=0 send_seq=153 receive_seq=153 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998461 adj=119999829 leveling_mcu: mcu_awake=0.005 mcu_task_avg=0.000031 mcu_task_stddev=0.000084 bytes_write=847 bytes_read=4472 bytes_retransmit=9 bytes_invalid=0 send_seq=115 receive_seq=115 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71814216 adj=71823521 rpi: mcu_awake=0.004 mcu_task_avg=0.000032 mcu_task_stddev=0.000047 bytes_write=912 bytes_read=4581 bytes_retransmit=0 bytes_invalid=0 send_seq=120 receive_seq=120 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000995 adj=50085556 mcu_temp: temp=29.5 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.1 pwm=0.000 sysload=1.68 cputime=18.111 memavail=133524 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.8 pwm=0.000 [INFO] 2024-04-13 06:51:00,743 [root] [statistics:generate_stats:68] Stats 43.9: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000012 mcu_task_stddev=0.000050 bytes_write=2108 bytes_read=7065 bytes_retransmit=9 bytes_invalid=0 send_seq=180 receive_seq=180 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996741 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000008 mcu_task_stddev=0.000027 bytes_write=1404 bytes_read=5267 bytes_retransmit=0 bytes_invalid=0 send_seq=158 receive_seq=158 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998433 adj=120004249 leveling_mcu: mcu_awake=0.005 mcu_task_avg=0.000031 mcu_task_stddev=0.000084 bytes_write=865 bytes_read=4520 bytes_retransmit=9 bytes_invalid=0 send_seq=118 receive_seq=118 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71820956 adj=71872924 rpi: mcu_awake=0.012 mcu_task_avg=0.000179 mcu_task_stddev=0.001243 bytes_write=940 bytes_read=4658 bytes_retransmit=0 bytes_invalid=0 send_seq=124 receive_seq=124 retransmit_seq=0 srtt=0.002 rttvar=0.002 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49999751 adj=49940026 mcu_temp: temp=29.6 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.1 pwm=0.000 sysload=1.68 cputime=18.307 memavail=129724 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.8 pwm=0.000 [INFO] 2024-04-13 06:51:03,742 [root] [statistics:generate_stats:68] Stats 46.9: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2134 bytes_read=7858 bytes_retransmit=9 bytes_invalid=0 send_seq=184 receive_seq=184 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996674 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1430 bytes_read=5489 bytes_retransmit=0 bytes_invalid=0 send_seq=162 receive_seq=162 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998621 adj=120002327 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=883 bytes_read=4581 bytes_retransmit=9 bytes_invalid=0 send_seq=121 receive_seq=121 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71825111 adj=71849706 rpi: mcu_awake=0.012 mcu_task_avg=0.000179 mcu_task_stddev=0.001243 bytes_write=958 bytes_read=4706 bytes_retransmit=0 bytes_invalid=0 send_seq=127 receive_seq=127 retransmit_seq=0 srtt=0.001 rttvar=0.002 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49999608 adj=49983301 mcu_temp: temp=29.7 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.2 pwm=0.000 sysload=1.55 cputime=18.502 memavail=129924 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 [INFO] 2024-04-13 06:51:06,744 [root] [statistics:generate_stats:68] Stats 49.9: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2168 bytes_read=8688 bytes_retransmit=9 bytes_invalid=0 send_seq=189 receive_seq=189 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996735 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1464 bytes_read=5718 bytes_retransmit=0 bytes_invalid=0 send_seq=167 receive_seq=167 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998723 adj=120002664 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=901 bytes_read=4629 bytes_retransmit=9 bytes_invalid=0 send_seq=124 receive_seq=124 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71826854 adj=71844587 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000011 bytes_write=976 bytes_read=4767 bytes_retransmit=0 bytes_invalid=0 send_seq=130 receive_seq=130 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49999605 adj=49996201 mcu_temp: temp=29.9 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.1 pwm=0.000 sysload=1.55 cputime=18.700 memavail=130228 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 [INFO] 2024-04-13 06:51:09,745 [root] [statistics:generate_stats:68] Stats 52.9: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2194 bytes_read=9518 bytes_retransmit=9 bytes_invalid=0 send_seq=193 receive_seq=193 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996747 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1490 bytes_read=5947 bytes_retransmit=0 bytes_invalid=0 send_seq=171 receive_seq=171 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998821 adj=120002294 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=919 bytes_read=4690 bytes_retransmit=9 bytes_invalid=0 send_seq=127 receive_seq=127 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71827424 adj=71838700 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000012 bytes_write=994 bytes_read=4828 bytes_retransmit=0 bytes_invalid=0 send_seq=133 receive_seq=133 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49999680 adj=49999663 mcu_temp: temp=30.0 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.1 pwm=0.000 sysload=1.42 cputime=18.889 memavail=129944 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.8 pwm=0.000 [INFO] 2024-04-13 06:51:12,745 [root] [statistics:generate_stats:68] Stats 55.9: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2228 bytes_read=10365 bytes_retransmit=9 bytes_invalid=0 send_seq=198 receive_seq=198 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996768 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1524 bytes_read=6193 bytes_retransmit=0 bytes_invalid=0 send_seq=176 receive_seq=176 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998782 adj=120002505 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=937 bytes_read=4751 bytes_retransmit=9 bytes_invalid=0 send_seq=130 receive_seq=130 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71827660 adj=71833994 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000012 bytes_write=1018 bytes_read=4892 bytes_retransmit=0 bytes_invalid=0 send_seq=137 receive_seq=137 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49999747 adj=50000973 mcu_temp: temp=30.1 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.1 pwm=0.000 sysload=1.39 cputime=19.084 memavail=129708 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.8 pwm=0.000 [INFO] 2024-04-13 06:51:15,750 [root] [statistics:generate_stats:68] Stats 58.9: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2260 bytes_read=11196 bytes_retransmit=9 bytes_invalid=0 send_seq=203 receive_seq=203 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996857 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1550 bytes_read=6408 bytes_retransmit=0 bytes_invalid=0 send_seq=180 receive_seq=180 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998767 adj=120001832 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=955 bytes_read=4799 bytes_retransmit=9 bytes_invalid=0 send_seq=133 receive_seq=133 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71827954 adj=71831702 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000009 bytes_write=1036 bytes_read=4953 bytes_retransmit=0 bytes_invalid=0 send_seq=140 receive_seq=140 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000011 adj=50001435 mcu_temp: temp=30.2 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.2 pwm=0.000 sysload=1.39 cputime=19.271 memavail=129712 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 [INFO] 2024-04-13 06:51:18,759 [root] [statistics:generate_stats:68] Stats 62.0: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2294 bytes_read=12058 bytes_retransmit=9 bytes_invalid=0 send_seq=208 receive_seq=208 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996850 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1584 bytes_read=6654 bytes_retransmit=0 bytes_invalid=0 send_seq=185 receive_seq=185 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998785 adj=120001300 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.001946 bytes_write=973 bytes_read=4858 bytes_retransmit=9 bytes_invalid=0 send_seq=136 receive_seq=136 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71828962 adj=71831533 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000009 bytes_write=1054 bytes_read=5001 bytes_retransmit=0 bytes_invalid=0 send_seq=143 receive_seq=143 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000046 adj=50002491 mcu_temp: temp=30.3 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.2 pwm=0.000 sysload=1.28 cputime=19.464 memavail=129892 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.8 pwm=0.000 [INFO] 2024-04-13 06:51:21,767 [root] [statistics:generate_stats:68] Stats 65.0: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2320 bytes_read=12873 bytes_retransmit=9 bytes_invalid=0 send_seq=212 receive_seq=212 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996853 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1616 bytes_read=6885 bytes_retransmit=0 bytes_invalid=0 send_seq=190 receive_seq=190 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998759 adj=120001926 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.001946 bytes_write=991 bytes_read=4906 bytes_retransmit=9 bytes_invalid=0 send_seq=139 receive_seq=139 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71829562 adj=71837009 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000010 bytes_write=1072 bytes_read=5062 bytes_retransmit=0 bytes_invalid=0 send_seq=146 receive_seq=146 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000024 adj=50001856 mcu_temp: temp=30.5 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.2 pwm=0.000 sysload=1.28 cputime=19.658 memavail=130012 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.8 pwm=0.000 [INFO] 2024-04-13 06:51:24,767 [root] [statistics:generate_stats:68] Stats 68.0: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2354 bytes_read=13720 bytes_retransmit=9 bytes_invalid=0 send_seq=217 receive_seq=217 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996853 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1650 bytes_read=7131 bytes_retransmit=0 bytes_invalid=0 send_seq=195 receive_seq=195 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998753 adj=120001754 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=1009 bytes_read=4967 bytes_retransmit=9 bytes_invalid=0 send_seq=142 receive_seq=142 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71829685 adj=71836679 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000012 bytes_write=1090 bytes_read=5123 bytes_retransmit=0 bytes_invalid=0 send_seq=149 receive_seq=149 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000080 adj=50001325 mcu_temp: temp=30.5 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.1 pwm=0.000 sysload=1.17 cputime=19.846 memavail=129956 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.8 pwm=0.000 [INFO] 2024-04-13 06:51:27,767 [root] [statistics:generate_stats:68] Stats 71.0: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2380 bytes_read=14550 bytes_retransmit=9 bytes_invalid=0 send_seq=221 receive_seq=221 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996902 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1676 bytes_read=7360 bytes_retransmit=0 bytes_invalid=0 send_seq=199 receive_seq=199 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998766 adj=120001809 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=1033 bytes_read=5028 bytes_retransmit=9 bytes_invalid=0 send_seq=146 receive_seq=146 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71829927 adj=71833691 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000012 bytes_write=1108 bytes_read=5171 bytes_retransmit=0 bytes_invalid=0 send_seq=152 receive_seq=152 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000177 adj=50001735 mcu_temp: temp=30.6 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.1 pwm=0.000 sysload=1.08 cputime=20.033 memavail=129836 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.8 pwm=0.000 [INFO] 2024-04-13 06:51:30,768 [root] [statistics:generate_stats:68] Stats 74.0: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2414 bytes_read=15382 bytes_retransmit=9 bytes_invalid=0 send_seq=226 receive_seq=226 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996881 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1710 bytes_read=7592 bytes_retransmit=0 bytes_invalid=0 send_seq=204 receive_seq=204 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998788 adj=120001583 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=1051 bytes_read=5088 bytes_retransmit=9 bytes_invalid=0 send_seq=149 receive_seq=149 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71830430 adj=71833823 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=1126 bytes_read=5232 bytes_retransmit=0 bytes_invalid=0 send_seq=155 receive_seq=155 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000108 adj=50002108 mcu_temp: temp=30.7 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.2 pwm=0.000 sysload=1.08 cputime=20.213 memavail=129840 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.8 pwm=0.000 [INFO] 2024-04-13 06:51:33,768 [root] [statistics:generate_stats:68] Stats 77.0: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2440 bytes_read=16212 bytes_retransmit=9 bytes_invalid=0 send_seq=230 receive_seq=230 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996879 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1736 bytes_read=7821 bytes_retransmit=0 bytes_invalid=0 send_seq=208 receive_seq=208 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998783 adj=120002171 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=1069 bytes_read=5149 bytes_retransmit=9 bytes_invalid=0 send_seq=152 receive_seq=152 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71830492 adj=71836719 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=1144 bytes_read=5280 bytes_retransmit=0 bytes_invalid=0 send_seq=158 receive_seq=158 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000050 adj=50001117 mcu_temp: temp=30.8 chamber_temp: temp=19.2 heater_bed: target=0 temp=19.2 pwm=0.000 sysload=1.07 cputime=20.405 memavail=129908 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 [INFO] 2024-04-13 06:51:36,769 [root] [statistics:generate_stats:68] Stats 80.0: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2474 bytes_read=17044 bytes_retransmit=9 bytes_invalid=0 send_seq=235 receive_seq=235 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996868 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1770 bytes_read=8053 bytes_retransmit=0 bytes_invalid=0 send_seq=213 receive_seq=213 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998788 adj=120001948 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=1087 bytes_read=5197 bytes_retransmit=9 bytes_invalid=0 send_seq=155 receive_seq=155 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71830328 adj=71834004 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000009 bytes_write=1162 bytes_read=5341 bytes_retransmit=0 bytes_invalid=0 send_seq=161 receive_seq=161 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000005 adj=50000826 mcu_temp: temp=30.9 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.1 pwm=0.000 sysload=1.07 cputime=20.588 memavail=129824 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.8 pwm=0.000 [INFO] 2024-04-13 06:51:39,770 [root] [statistics:generate_stats:68] Stats 83.0: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2500 bytes_read=17832 bytes_retransmit=9 bytes_invalid=0 send_seq=239 receive_seq=239 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996861 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1796 bytes_read=8274 bytes_retransmit=0 bytes_invalid=0 send_seq=217 receive_seq=217 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998778 adj=120002069 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=1105 bytes_read=5258 bytes_retransmit=9 bytes_invalid=0 send_seq=158 receive_seq=158 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71830409 adj=71831307 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=1180 bytes_read=5402 bytes_retransmit=0 bytes_invalid=0 send_seq=164 receive_seq=164 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49999988 adj=50000847 mcu_temp: temp=31.0 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.2 pwm=0.000 sysload=0.99 cputime=20.767 memavail=129792 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 [INFO] 2024-04-13 06:51:42,770 [root] [statistics:generate_stats:68] Stats 86.0: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2534 bytes_read=18679 bytes_retransmit=9 bytes_invalid=0 send_seq=244 receive_seq=244 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996869 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1830 bytes_read=8505 bytes_retransmit=0 bytes_invalid=0 send_seq=222 receive_seq=222 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998773 adj=120001921 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=1123 bytes_read=5306 bytes_retransmit=9 bytes_invalid=0 send_seq=161 receive_seq=161 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71830494 adj=71832835 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=1198 bytes_read=5450 bytes_retransmit=0 bytes_invalid=0 send_seq=167 receive_seq=167 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49999972 adj=50001053 mcu_temp: temp=31.1 chamber_temp: temp=19.2 heater_bed: target=0 temp=19.1 pwm=0.000 sysload=0.91 cputime=20.953 memavail=129444 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.8 pwm=0.000 [INFO] 2024-04-13 06:51:45,772 [root] [statistics:generate_stats:68] Stats 89.0: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2560 bytes_read=19494 bytes_retransmit=9 bytes_invalid=0 send_seq=248 receive_seq=248 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996869 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1856 bytes_read=8734 bytes_retransmit=0 bytes_invalid=0 send_seq=226 receive_seq=226 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998788 adj=120001776 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=1141 bytes_read=5367 bytes_retransmit=9 bytes_invalid=0 send_seq=164 receive_seq=164 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71830834 adj=71833355 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000010 bytes_write=1216 bytes_read=5511 bytes_retransmit=0 bytes_invalid=0 send_seq=170 receive_seq=170 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49999970 adj=50001034 mcu_temp: temp=31.2 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.2 pwm=0.000 sysload=0.91 cputime=21.135 memavail=129852 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.8 pwm=0.000 [INFO] 2024-04-13 06:51:48,773 [root] [statistics:generate_stats:68] Stats 92.0: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2594 bytes_read=20341 bytes_retransmit=9 bytes_invalid=0 send_seq=253 receive_seq=253 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996869 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1890 bytes_read=8980 bytes_retransmit=0 bytes_invalid=0 send_seq=231 receive_seq=231 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998782 adj=120002041 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=1159 bytes_read=5429 bytes_retransmit=9 bytes_invalid=0 send_seq=167 receive_seq=167 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71830996 adj=71836237 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000010 bytes_write=1234 bytes_read=5559 bytes_retransmit=0 bytes_invalid=0 send_seq=173 receive_seq=173 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000032 adj=50001195 mcu_temp: temp=31.3 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.2 pwm=0.000 sysload=0.92 cputime=21.327 memavail=129804 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 [INFO] 2024-04-13 06:51:51,773 [root] [statistics:generate_stats:68] Stats 95.0: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2620 bytes_read=21156 bytes_retransmit=9 bytes_invalid=0 send_seq=257 receive_seq=257 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996873 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1916 bytes_read=9195 bytes_retransmit=0 bytes_invalid=0 send_seq=235 receive_seq=235 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998778 adj=120001885 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=1177 bytes_read=5477 bytes_retransmit=9 bytes_invalid=0 send_seq=170 receive_seq=170 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831099 adj=71835387 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000012 bytes_write=1252 bytes_read=5620 bytes_retransmit=0 bytes_invalid=0 send_seq=176 receive_seq=176 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000008 adj=50001943 mcu_temp: temp=31.3 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.2 pwm=0.000 sysload=0.92 cputime=21.517 memavail=129804 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 [INFO] 2024-04-13 06:51:54,775 [root] [statistics:generate_stats:68] Stats 98.0: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=2654 bytes_read=22003 bytes_retransmit=9 bytes_invalid=0 send_seq=262 receive_seq=262 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996876 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=1950 bytes_read=9441 bytes_retransmit=0 bytes_invalid=0 send_seq=240 receive_seq=240 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998785 adj=120001806 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=1195 bytes_read=5538 bytes_retransmit=9 bytes_invalid=0 send_seq=173 receive_seq=173 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831114 adj=71834635 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000011 bytes_write=1270 bytes_read=5680 bytes_retransmit=0 bytes_invalid=0 send_seq=179 receive_seq=179 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000151 adj=50001201 mcu_temp: temp=31.4 chamber_temp: temp=19.3 heater_bed: target=0 temp=19.1 pwm=0.000 sysload=1.16 cputime=21.711 memavail=129928 print_time=30.879 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 [INFO] 2024-04-13 06:54:08,190 [root] [webhooks:_handle_query:530] _handle_query objects/subscribe:{'webhooks': None, 'configfile': None, 'mcu': None, 'mcu nozzle_mcu': None, 'mcu leveling_mcu': None, 'mcu rpi': None, 'virtual_pins': None, 'gcode_macro xyz_ready': None, 'gcode_macro _IF_HOME_Z': None, 'gcode_macro _IF_MOVE_XY': None, 'gcode_macro _HOME_X': None, 'gcode_macro _HOME_Y': None, 'gcode_macro _HOME_Z': None, 'gcode_macro PRINTER_PARAM': None, 'gcode_macro AUTOTUNE_SHAPERS': None, 'gcode_macro LOAD_MATERIAL_CLOSE_FAN2': None, 'gcode_macro LOAD_MATERIAL_RESTORE_FAN2': None, 'gcode_macro SET_E_MIN_CURRENT': None, 'gcode_macro RESTORE_E_CURRENT': None, 'gcode_macro LOAD_MATERIAL': None, 'gcode_macro QUIT_MATERIAL': None, 'gcode_macro Qmode': None, 'gcode_macro Qmode_exit': None, 'gcode_macro M204': None, 'gcode_macro M205': None, 'gcode_macro M107': None, 'gcode_macro M900': None, 'gcode_macro WAIT_TEMP_START': None, 'gcode_macro WAIT_TEMP_END': None, 'gcode_macro PRINT_CALIBRATION': None, 'gcode_macro FIRST_FLOOR_PAUSE_POSITION': None, 'gcode_macro ACCURATE_G28': None, 'gcode_macro PRINT_PREPARED': None, 'gcode_macro PRINT_PREPARE_CLEAR': None, 'gcode_macro END_PRINT_POINT_WITHOUT_LIFTING': None, 'gcode_macro END_PRINT_POINT': None, 'gcode_macro END_PRINT': None, 'gcode_macro FIRST_FLOOR_PAUSE': None, 'gcode_macro FIRST_FLOOR_RESUME': None, 'gcode_macro PAUSE': None, 'gcode_macro INPUTSHAPER': None, 'gcode_macro BEDPID': None, 'gcode_macro TUNOFFINPUTSHAPER': None, 'gcode_macro RESUME': None, 'gcode_macro CANCEL_PRINT': None, 'gcode_macro G29': None, 'gcode_move': None, 'print_stats': None, 'fan_feedback': None, 'custom_macro': None, 'gcode_macro GET_TIMELAPSE_SETUP': None, 'gcode_macro _SET_TIMELAPSE_SETUP': None, 'gcode_macro TIMELAPSE_TAKE_FRAME': None, 'gcode_macro _TIMELAPSE_NEW_FRAME': None, 'gcode_macro HYPERLAPSE': None, 'gcode_macro TIMELAPSE_RENDER': None, 'gcode_macro TEST_STREAM_DELAY': None, 'save_variables': None, 'gcode_macro SET_GCODE_OFFSET': None, 'calibrate_shaper_config': None, 'gcode_macro INPUT_SHAPER_CALIBRATION': None, 'gcode_macro TEST_RESONANCES_GRAPHS': None, 'gcode_macro BELTS_SHAPER_CALIBRATION': None, 'gcode_macro EXCITATE_AXIS_AT_FREQ': None, 'heaters': None, 'temperature_fan chamber_fan': None, 'temperature_fan mcu_fan': None, 'output_pin mcu_fan': None, 'gcode_macro M141': None, 'gcode_macro M191': None, 'gcode_macro M106': None, 'output_pin KAMP': None, 'output_pin BED_LEVELING': None, 'gcode_macro START_PRINT': None, 'gcode_macro BED_MESH_CALIBRATE': None, 'gcode_macro _LINE_PURGE': None, 'gcode_macro _SMART_PARK': None, 'gcode_macro DEFINE_OBJECT': None, 'gcode_macro START_CURRENT_OBJECT': None, 'gcode_macro END_CURRENT_OBJECT': None, 'gcode_macro LIST_OBJECTS': None, 'gcode_macro LIST_EXCLUDED_OBJECTS': None, 'gcode_macro REMOVE_ALL_EXCLUDED': None, 'gcode_macro _KAMP_Settings': None, 'idle_timeout': None, 'virtual_sdcard': None, 'temperature_sensor mcu_temp': None, 'temperature_sensor chamber_temp': None, 'tmc2209 stepper_x': None, 'tmc2209 stepper_y': None, 'tmc2209 stepper_z': None, 'tmc2209 extruder': None, 'heater_bed': None, 'pause_resume': None, 'filament_switch_sensor filament_sensor': None, 'filament_switch_sensor filament_sensor_2': None, 'heater_fan hotend_fan': None, 'output_pin fan0': None, 'output_pin fan1': None, 'output_pin fan2': None, 'output_pin LED': None, 'output_pin power': None, 'probe': None, 'bed_mesh': None, 'display_status': None, 'exclude_object': None, 'motion_report': None, 'query_endstops': None, 'system_stats': None, 'manual_probe': None, 'toolhead': None, 'extruder': None} [INFO] 2024-04-13 06:54:08,193 [root] [webhooks:_handle_query:552] _handle_query before complete.wait [INFO] 2024-04-13 06:54:08,347 [root] [webhooks:_handle_query:554] _handle_query after complete.wait:{'eventtime': 231.514239499, 'status': {'webhooks': {'state': 'ready', 'state_message': 'Printer is ready'}, 'configfile': {'config': {'virtual_pins': {}, 'force_move': {'enable_force_move': 'true'}, 'gcode_macro xyz_ready': {'variable_x_ready': '0', 'variable_y_ready': '0', 'variable_z_ready': '0', 'variable_xy_moved': '0', 'variable_z_moved': '0', 'variable_safe_z': '3', 'gcode': ''}, 'gcode_macro _IF_HOME_Z': {'gcode': '\n{% if printer[\'gcode_macro xyz_ready\'].z_ready|int == 1 %}\n{% if printer.toolhead.position.z|int < 5 %}\n{% set z_park = 5.0 - printer.toolhead.position.z|int %}\nG91\nG1 z{z_park} F600\nG90\n{% endif %}\n{% else %}\n{% if printer[\'gcode_macro xyz_ready\'].z_moved|int == 0 %}\n{% if printer.print_stats.z_pos|float <= 20.0 or printer.print_stats.power_loss == 1 %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE={printer["gcode_macro PRINTER_PARAM"].z_safe_g28} VELOCITY=10\n{% else %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE=0.1 VELOCITY=10\n{% endif %}\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=1\n{% endif %}\n{% endif %}'}, 'gcode_macro _IF_MOVE_XY': {'gcode': '\n_IF_HOME_Z\n{% if printer[\'gcode_macro xyz_ready\'].xy_moved|int == 0 %}\n{action_respond_info("move xy\\n")}\n\nFORCE_MOVE STEPPER=stepper_y DISTANCE=-14 VELOCITY=50\nFORCE_MOVE STEPPER=stepper_y DISTANCE=7 VELOCITY=50\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=1\nG4 P1000\n{% endif %}'}, 'gcode_macro _HOME_X': {'gcode': "\n_IF_MOVE_XY\n\n{% if printer['gcode_macro xyz_ready'].x_ready|int == 1 %}\n{% if (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x)|round < 10 %}\n{% set x_park = (10 - (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x))|round %}\n{% if x_park > 0 %}\nG91\nG1 x-{x_park} F3600\nG90\nG4 P1000\n{% endif %}\n{% endif %}\n{% endif %}\n\n\n\n\nG28 X\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=1\n\nG91\nG1 x-10 F3600\nG90\n\nG4 P2000"}, 'gcode_macro _HOME_Y': {'gcode': "\n_IF_MOVE_XY\n\n{% if printer['gcode_macro xyz_ready'].y_ready|int == 1 %}\n{% if printer.toolhead.position.y|round < 8 %}\n{% set y_park = 8 - printer.toolhead.position.y|round %}\n{% if y_park > 0 %}\nG91\nG1 y{y_park} F3600\nG90\nG4 P1000\n{% endif %}\n{% endif %}\n{% endif %}\n\n\n\n\nG28 Y\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=1\n\nG91\nG1 y10 F3600\nG90\n\nG4 P2000"}, 'gcode_macro _HOME_Z': {'gcode': '\n{% if printer[\'gcode_macro xyz_ready\'].y_ready|int == 1 %}\n{% if printer[\'gcode_macro xyz_ready\'].x_ready|int == 1 %}\n_IF_HOME_Z\n{% endif %}\n{% endif %}\n{% if printer.print_stats.z_pos|float >= 260.0 %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE=-8 VELOCITY=10\n{% endif %}\n\n{% set POSITION_X = printer.configfile.settings[\'stepper_x\'].position_max/2 %}\n{% set POSITION_Y = printer.configfile.settings[\'stepper_y\'].position_max/2 %}\n\nG91\n{% set x_park = POSITION_X - printer.toolhead.position.x|int %}\n{% set y_park = POSITION_Y - printer.toolhead.position.y|int %}\n{action_respond_info("x_park = %s \\n" % (x_park))}\n{action_respond_info("y_park = %s \\n" % (y_park))}\nG1 x{x_park} y{y_park} F3600\nG90\n\n\nG28 Z\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=1'}, 'homing_override': {'axes': 'xyz', 'gcode': '\nM220 S100\n\n\n\n{% set x_axes = printer.toolhead.homed_axes %}\n{% if x_axes is defined and x_axes[0] is defined %}\n{action_respond_info(\n"x_axes: %s \\n"\n% (x_axes))}\n{% else %}\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=0\n{action_respond_info(\n"x_axes is NULL\\n")}\n{% endif %}\n\n{% if x_axes is not defined or x_axes[2] is not defined %}\nBED_MESH_CLEAR\n{% endif %}\n\n{% if x_axes is defined and x_axes[0] is defined and x_axes[1] is defined %}\n{action_respond_info("x_axes: %s \\n"% (x_axes))}\n{% set position_y = printer.toolhead.position.y|int %}\n{% set max_y_position = printer["gcode_macro PRINTER_PARAM"].max_y_position|int %}\n{% if position_y >= max_y_position %}\nG91\nG0 Y-10 F3600\nG90\n{% endif %}\n{% endif %}\n\n{% set home_all = \'X\' not in params and \'Y\' not in params %}\n{% if \'Z\' in params and \'X\' not in params and \'Y\' not in params %}\n{% if x_axes[0] is defined and x_axes[1] is defined %}\n{% set home_all = 0 %}\n{% endif %}\n{% endif %}\n\n{% if home_all or \'X\' in params %}\n_HOME_X\n{% endif %}\n\n{% if home_all or \'Y\' in params %}\n_HOME_Y\n{% endif %}\n\n{% if home_all or \'X\' in params %}\n_HOME_X\n{% endif %}\n\n{% if home_all or \'Y\' in params %}\n_HOME_Y\n{% endif %}\n\n{% if home_all or \'Z\' in params %}\n_HOME_Z\n{% endif %}\nBED_MESH_PROFILE LOAD="default"\n\n\n\n\nG4 P500'}, 'gcode_macro PRINTER_PARAM': {'variable_z_safe_pause': '0.0', 'variable_z_safe_g28': '3.0', 'variable_max_x_position': '300.0', 'variable_max_y_position': '300.0', 'variable_max_z_position': '300.0', 'variable_fans': '3', 'variable_auto_g29': '0', 'variable_fan0_min': '25', 'variable_fan1_min': '50', 'variable_fan2_min': '180', 'variable_fan2_speed': '0', 'variable_hotend_temp': '0', 'variable_e_min_current': '0.27', 'gcode': ''}, 'gcode_macro AUTOTUNE_SHAPERS': {'gcode': ''}, 'gcode_macro LOAD_MATERIAL_CLOSE_FAN2': {'variable_fan2_value': '0', 'gcode': "\nSAVE_GCODE_STATE NAME=myMoveState\n{% if printer['output_pin fan2'].value > 0.0 %}\nSET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value}\nM107 P2\n{% endif %}\nRESTORE_E_CURRENT"}, 'gcode_macro LOAD_MATERIAL_RESTORE_FAN2': {'gcode': '\n{% set fan2_value = printer[\'gcode_macro LOAD_MATERIAL_CLOSE_FAN2\'].fan2_value|float %}\nRESTORE_GCODE_STATE NAME=myMoveState\n{% if fan2_value > 0.0 %}\n{% set s_value = (fan2_value * 255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) * 255 / (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) %}\nM106 P2 S{s_value}\nSET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE=0\n{% endif %}\nSET_E_MIN_CURRENT'}, 'gcode_macro SET_E_MIN_CURRENT': {'gcode': "\n{% set e_current = printer['gcode_macro PRINTER_PARAM'].e_min_current %}\nM400\nSET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current}\nG4 P2000"}, 'gcode_macro RESTORE_E_CURRENT': {'gcode': "\n{% set e_current = printer.configfile.settings['tmc2209 extruder'].run_current %}\nM400\nSET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current}\nG4 P2000"}, 'gcode_macro LOAD_MATERIAL': {'gcode': '\nLOAD_MATERIAL_CLOSE_FAN2\nM109 S{printer.custom_macro.default_extruder_temp}\nG91\nG1 E80 F180\nLOAD_MATERIAL_RESTORE_FAN2'}, 'gcode_macro QUIT_MATERIAL': {'gcode': '\nSAVE_GCODE_STATE NAME=myMoveState\nRESTORE_E_CURRENT\nM109 S{printer.custom_macro.default_extruder_temp}\nM83\nG1 E10 F300\nG1 E-15 F3000\nG1 E-22.4700 F2400\nG1 E-6.4200 F1200\nG1 E-3.2100 F720\nG1 E5.0000 F356\nG1 E-5.0000 F384\nG1 E5.0000 F412\nG1 E-5.0000 F440\nG1 E5.0000 F467\nG1 E-5.0000 F495\nG1 E5.0000 F523\nG1 E-5.0000 F3000\nG1 E-15 F3000\nSET_E_MIN_CURRENT\nRESTORE_GCODE_STATE NAME=myMoveState'}, 'gcode_macro Qmode': {'variable_flag': '0', 'variable_accel': '0', 'variable_accel_to_decel': '0', 'variable_velocity': '0', 'variable_square_corner_velocity': '0', 'variable_pressure_advance': '0.0', 'variable_fan0_value': '0.00', 'variable_fan1_value': '0.00', 'variable_fan2_value': '0.00', 'variable_speed_factor': '0', 'variable_max_accel': '2500', 'variable_max_accel_to_decel': '2500', 'gcode': '\n{% set printer_state = printer.print_stats.state %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 0 %}\n{% if printer_state == "printing" or printer_state == "paused" %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel VALUE={printer.toolhead.max_accel}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel_to_decel VALUE={printer.toolhead.max_accel_to_decel}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=velocity VALUE={printer.toolhead.max_velocity}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=square_corner_velocity VALUE={printer.toolhead.square_corner_velocity}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=pressure_advance VALUE={printer.extruder.pressure_advance}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=speed_factor VALUE={printer.gcode_move.speed_factor}\nSET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=0\nSET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=0\nSET_TMC_CURRENT STEPPER=stepper_x CURRENT=1.0\nSET_TMC_CURRENT STEPPER=stepper_y CURRENT=1.0\nG4 P1000\n\n\nSET_VELOCITY_LIMIT ACCEL=2500\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500\nSET_VELOCITY_LIMIT VELOCITY=150\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nSET_PRESSURE_ADVANCE ADVANCE=0.05\nM220 S50\n\n{% set tmp = printer[\'output_pin fan0\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={tmp}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan0_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\nSET_PIN PIN=fan0 VALUE={tmp}\n{% endif %}\n\n{% set tmp = printer[\'output_pin fan1\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer[\'output_pin fan1\'].value * 255}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan1_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\nSET_PIN PIN=fan1 VALUE={tmp}\n{% endif %}\n\n{% set tmp = printer[\'output_pin fan2\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer[\'output_pin fan2\'].value * 255}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan2_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\nSET_PIN PIN=fan2 VALUE={tmp}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=1\nSET_QMODE_FLAG FLAG=1\n{% endif %}\n{% endif %}'}, 'gcode_macro Qmode_exit': {'gcode': '\n{% set printer_state = printer.print_stats.state %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 %}\n{% if printer_state == "printing" or printer_state == "paused" %}\nSET_VELOCITY_LIMIT ACCEL={printer[\'gcode_macro Qmode\'].accel}\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer[\'gcode_macro Qmode\'].accel_to_decel}\nSET_VELOCITY_LIMIT VELOCITY={printer[\'gcode_macro Qmode\'].velocity}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={printer[\'gcode_macro Qmode\'].square_corner_velocity}\nSET_PRESSURE_ADVANCE ADVANCE={printer[\'gcode_macro Qmode\'].pressure_advance}\nM220 S{printer[\'gcode_macro Qmode\'].speed_factor * 100}\n\n{% set X_RUN_CUR = printer.configfile.settings[\'tmc2209 stepper_x\'].run_current %}\n{% set Y_RUN_CUR = printer.configfile.settings[\'tmc2209 stepper_y\'].run_current %}\nSET_TMC_CURRENT STEPPER=stepper_x CURRENT={X_RUN_CUR}\nSET_TMC_CURRENT STEPPER=stepper_y CURRENT={Y_RUN_CUR}\nSET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=1\nSET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=1\nG4 P1000\n\n{% if printer[\'output_pin fan0\'].value != 0 %}\n{action_respond_info("fan0_value = %s" % printer[\'gcode_macro Qmode\'].fan0_value)}\nSET_PIN PIN=fan0 VALUE={printer[\'gcode_macro Qmode\'].fan0_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE=0\n{% endif %}\n{% if printer[\'output_pin fan1\'].value != 0 %}\n{action_respond_info("fan1_value = %s" % printer[\'gcode_macro Qmode\'].fan1_value)}\nSET_PIN PIN=fan1 VALUE={printer[\'gcode_macro Qmode\'].fan1_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE=0\n{% endif %}\n{% if printer[\'output_pin fan2\'].value != 0 %}\n{action_respond_info("fan2_value = %s" % printer[\'gcode_macro Qmode\'].fan2_value)}\nSET_PIN PIN=fan2 VALUE={printer[\'gcode_macro Qmode\'].fan2_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE=0\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=0\nSET_QMODE_FLAG FLAG=0\n{% endif %}\n{% endif %}'}, 'gcode_macro M204': {'rename_existing': 'M204.1', 'gcode': '\n\n{% set get_params = "" %}\n{% set qmode_max_accel = printer[\'gcode_macro Qmode\'].max_accel|string %}\n{% if \'S\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.S|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'S\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'S\' + params.S) %}\n{% endif %}\n{% endif %}\n{% if \'P\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.P|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'P\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'P\' + params.P) %}\n{% endif %}\n{% endif %}\n{% if \'T\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.T|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'T\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'T\' + params.T) %}\n{% endif %}\n{% endif %}\nM204.1 {get_params}'}, 'gcode_macro M205': {'gcode': "\n{% if 'X' in params %}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.X}\n{% elif 'Y' in params %}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.Y}\n{% endif %}"}, 'gcode_macro M107': {'gcode': '\n{% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}\n{% if params.P is defined %}\n{% if params.P|int < fans %}\nSET_PIN PIN=fan{params.P|int} VALUE=0\n{% else %}\nSET_PIN PIN=fan0 VALUE=0\n{% endif %}\n{% else %}\nSET_PIN PIN=fan0 VALUE=0\nSET_PIN PIN=fan2 VALUE=0\n{% endif %}'}, 'gcode_macro M900': {'gcode': "\n{% if 'K' in params %}\n{% if 'E' in params %}\nSET_PRESSURE_ADVANCE EXTRUDER={params.E} ADVANCE={params.K}\n{% else %}\nSET_PRESSURE_ADVANCE ADVANCE={params.K}\n{% endif %}\n{% endif %}"}, 'delayed_gcode wait_temp': {'gcode': '\n{% set cur_temp = printer.extruder.temperature %}\n{% if cur_temp|int < 40 %}\nWAIT_TEMP_END\n{% else %}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=5\n{% endif %}'}, 'gcode_macro WAIT_TEMP_START': {'gcode': '\n{action_respond_info("wait temp start\\n")}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=1\nM106 P0 S255'}, 'gcode_macro WAIT_TEMP_END': {'gcode': '\n{action_respond_info("wait temp end\\n")}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=0\nM106 P0 S0'}, 'gcode_macro PRINT_CALIBRATION': {'gcode': '\nCX_PRINT_LEVELING_CALIBRATION'}, 'gcode_macro FIRST_FLOOR_PAUSE_POSITION': {'gcode': "\n{% set extruder_temp = printer.custom_macro.g28_ext_temp %}\nM104 S{extruder_temp}\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer['gcode_macro PRINTER_PARAM'].max_x_position|float + 1 %}\nG90\nG1 Z2 F600\nG1 X{x_park} Y{y_park} F6000\nG1 Z0.2 F600"}, 'gcode_macro ACCURATE_G28': {'gcode': '\nACCURATE_HOME_Z'}, 'gcode_macro PRINT_PREPARED': {'gcode': '\nSET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=1\n{action_respond_info("print prepared")}'}, 'gcode_macro PRINT_PREPARE_CLEAR': {'gcode': '\nSET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=0'}, 'gcode_macro END_PRINT_POINT_WITHOUT_LIFTING': {'gcode': '\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\nG91\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z2.0 F600\nG90\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("end print xyz_axes is NULL\\n")}\n{% endif %}'}, 'gcode_macro END_PRINT_POINT': {'gcode': '\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < (max_z / 2) %}\n{% set z_safe = (max_z / 2) - act_z %}\n{% elif act_z < max_z %}\n{% set z_safe = 2.0 %}\n{% endif %}\nG91\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z2.0 F600\nG90\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F30000\n{% if z_safe > 2.0 %}\nG91\n{% set z_safe = z_safe - 2.0 %}\nG1 Z{z_safe} F600\nG90\n{% endif %}\n{% else %}\n{action_respond_info("end print xyz_axes is NULL\\n")}\n{% endif %}'}, 'gcode_macro END_PRINT': {'gcode': '\nQmode_exit\nEXCLUDE_OBJECT_RESET\nPRINT_PREPARE_CLEAR\nM220 S100\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=2500\nTURN_OFF_HEATERS\nM107 P1\nM107 P2\nEND_PRINT_POINT\nWAIT_TEMP_START\nM84'}, 'gcode_macro FIRST_FLOOR_PAUSE': {'description': 'Pause the first floor print', 'variable_extrude': '2.0', 'gcode': '\n\n{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float %}\n\n\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\n\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < (max_z - 2.0) %}\n{% set z_safe = 2.0 %}\n{% elif act_z < max_z %}\n{% set z_safe = max_z - act_z %}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}\nPAUSE_BASE\nG91\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z{z_safe} F600\nG90\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("Printer not homed")}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer[\'output_pin fan2\'].value}\n{% set fspeed = printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed %}\n{action_respond_info("fan2_value = %s \\n" % (fspeed))}\n\nM106 P2 S0\nSET_E_MIN_CURRENT'}, 'gcode_macro FIRST_FLOOR_RESUME': {'description': 'Resume the first floor print', 'gcode': '\nRESTORE_E_CURRENT\n{% if printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed > 0 %}\n\n\n\n{% set s_value = (printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed * 255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) * 255 / (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min)|float %}\nM106 P2 S{s_value}\n{% endif %}\n\n{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float + 1.0 %}\n\n{% if \'VELOCITY\' in params|upper %}\n{% set get_params = (\'VELOCITY=\' + params.VELOCITY) %}\n{%else %}\n{% set get_params = "" %}\n{% endif %}\n\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG91\nG1 E{E} F2100\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nM400\nRESUME_BASE {get_params}'}, 'gcode_macro PAUSE': {'description': 'Pause the actual running print', 'rename_existing': 'PAUSE_BASE', 'variable_extrude': '2.0', 'gcode': '\n\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\n\n\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\n\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < 48.0 %}\n{% set z_safe = 50.0 - act_z %}\n{% elif act_z < (max_z - 2.0) %}\n{% set z_safe = 2.0 %}\n{% elif act_z < max_z %}\n{% set z_safe = max_z - act_z %}\n{% endif %}\n{action_respond_info("z_safe = %s"% (z_safe))}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}\nPAUSE_BASE\nG91\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE={printer.extruder.target}\nM104 S140\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z{z_safe} F600\nM400\nG90\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("Printer not homed")}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer[\'output_pin fan2\'].value}\n{% set fspeed = printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed %}\n{action_respond_info("fan2_value = %s \\n" % (fspeed))}\n\nM106 P2 S0\nSET_E_MIN_CURRENT'}, 'gcode_macro INPUTSHAPER': {'gcode': "\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0\nG90\nG28\n{% set POSITION_X = printer.configfile.settings['stepper_x'].position_max/2 %}\n{% set POSITION_Y = printer.configfile.settings['stepper_y'].position_max/2 %}\nG1 X{POSITION_X} Y{POSITION_Y} F6000\nG1 Z10 F600\nSHAPER_CALIBRATE\nCXSAVE_CONFIG\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1"}, 'gcode_macro BEDPID': {'gcode': '\nPID_CALIBRATE HEATER=heater_bed TARGET=100\nSAVE_CONFIG'}, 'gcode_macro TUNOFFINPUTSHAPER': {'gcode': '\nSET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0'}, 'gcode_macro RESUME': {'description': 'Resume the actual running print', 'rename_existing': 'RESUME_BASE', 'gcode': '\nRESTORE_E_CURRENT\n{% if printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int != 0 %}\n{% if printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int > printer.extruder.temperature %}\nM109 S{printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int}\n{% else %}\nM104 S{printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE=0\n{% endif %}\n{% if printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed > 0 %}\n\n\n\n{% set s_value = (printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed * 255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) * 255 / (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min)|float %}\nM106 P2 S{s_value}\n{% endif %}\n{% set z_resume_move = printer[\'gcode_macro PRINTER_PARAM\'].z_safe_pause|int %}\n{% if z_resume_move > 2 %}\n{% set z_resume_move = z_resume_move - 2 %}\nG91\nG1 Z-{z_resume_move} F600\nM400\n{% endif %}\n{action_respond_info("z_resume_move = %s"% (z_resume_move))}\n\n{% set E = printer["gcode_macro PAUSE"].extrude|float + 1.0 %}\n\n{% if \'VELOCITY\' in params|upper %}\n{% set get_params = (\'VELOCITY=\' + params.VELOCITY) %}\n{%else %}\n{% set get_params = "" %}\n{% endif %}\n\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG91\nG1 E{E} F2100\nG90\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nM400\nRESUME_BASE {get_params}'}, 'gcode_macro CANCEL_PRINT': {'description': 'Cancel the actual running print', 'rename_existing': 'CANCEL_PRINT_BASE', 'gcode': '\nEND_PRINT\nCANCEL_PRINT_BASE'}, 'gcode_macro G29': {'gcode': '\n{% if \'PROBE_COUNT\' in params|upper %}\n{% set get_count = (\'PROBE_COUNT\' + params.PROBE_COUNT) %}\n{%else %}\n{% set get_count = "" %}\n{% endif %}\n\n{% set bed_temp = printer.custom_macro.default_bed_temp %}\n{% set extruder_temp = printer.custom_macro.g28_ext_temp %}\n{% set nozzle_clear_temp = printer.custom_macro.default_extruder_temp %}\n\n{% if \'BED_TEMP\' in params|upper %}\n{% set bed_temp = params.BED_TEMP %}\n{% endif %}\n\n{% if \'EXTRUDER_TEMP\' in params|upper %}\n{% set nozzle_clear_temp = params.EXTRUDER_TEMP %}\n{% endif %}\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0\n\nG28\nBED_MESH_CLEAR\nNOZZLE_CLEAR HOT_MIN_TEMP={extruder_temp} HOT_MAX_TEMP={nozzle_clear_temp} BED_MAX_TEMP={bed_temp}\nACCURATE_G28\nM204 S5000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=5000\nBED_MESH_CALIBRATE {get_count}\nBED_MESH_OUTPUT\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F2000\nCXSAVE_CONFIG\nTURN_OFF_HEATERS\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1'}, 'fan_feedback': {'fan0_pin': 'nozzle_mcu:PB4', 'fan1_pin': 'PC6', 'print_delay_time': '5', 'current_delay_time': '2'}, 'custom_macro': {'default_bed_temp': '50', 'default_extruder_temp': '240', 'g28_ext_temp': '140'}, 'gcode_macro GET_TIMELAPSE_SETUP': {'description': 'Print the Timelapse setup', 'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% set output_txt = ["Timelapse Setup:"] %}\n{% set _dummy = output_txt.append("enable: %s" % tl.enable) %}\n{% set _dummy = output_txt.append("park: %s" % tl.park.enable) %}\n{% if tl.park.enable %}\n{% set _dummy = output_txt.append("park position: %s time: %s s" % (tl.park.pos, tl.park.time)) %}\n{% set _dummy = output_txt.append("park cord x:%s y:%s dz:%s" % (tl.park.coord.x, tl.park.coord.y, tl.park.coord.dz)) %}\n{% set _dummy = output_txt.append("travel speed: %s mm/s" % tl.speed.travel) %}\n{% endif %}\n{% set _dummy = output_txt.append("fw_retract: %s" % tl.extruder.fw_retract) %}\n{% if not tl.extruder.fw_retract %}\n{% set _dummy = output_txt.append("retract: %s mm speed: %s mm/s" % (tl.extruder.retract, tl.speed.retract)) %}\n{% set _dummy = output_txt.append("extrude: %s mm speed: %s mm/s" % (tl.extruder.extrude, tl.speed.extrude)) %}\n{% endif %}\n{% set _dummy = output_txt.append("verbose: %s" % tl.verbose) %}\n{action_respond_info(output_txt|join("\\n"))}'}, 'gcode_macro _SET_TIMELAPSE_SETUP': {'description': 'Set user parameters for timelapse', 'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n\n{% set min = printer.toolhead.axis_minimum %}\n{% set max = printer.toolhead.axis_maximum %}\n{% set round_bed = True if printer.configfile.settings.printer.kinematics is in [\'delta\',\'polar\',\'rotary_delta\',\'winch\']\nelse False %}\n{% set park = {\'min\' : {\'x\': (min.x / 1.42)|round(3) if round_bed else min.x|round(3),\n\'y\': (min.y / 1.42)|round(3) if round_bed else min.y|round(3)},\n\'max\' : {\'x\': (max.x / 1.42)|round(3) if round_bed else max.x|round(3),\n\'y\': (max.y / 1.42)|round(3) if round_bed else max.y|round(3)},\n\'center\': {\'x\': (max.x-(max.x-min.x)/2)|round(3),\n\'y\': (max.y-(max.y-min.y)/2)|round(3)}} %}\n\n{% if params.ENABLE %}\n{% if params.ENABLE|lower is in [\'true\', \'false\'] %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=enable VALUE={True if params.ENABLE|lower == \'true\' else False}\n{% else %}\n{action_raise_error("ENABLE=%s not supported. Allowed values are [True, False]" % params.ENABLE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.VERBOSE %}\n{% if params.VERBOSE|lower is in [\'true\', \'false\'] %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=verbose VALUE={True if params.VERBOSE|lower == \'true\' else False}\n{% else %}\n{action_raise_error("VERBOSE=%s not supported. Allowed values are [True, False]" % params.VERBOSE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_X %}\n{% if params.CUSTOM_POS_X|float >= min.x and params.CUSTOM_POS_X|float <= max.x %}\n{% set _dummy = tl.park.custom.update({\'x\':params.CUSTOM_POS_X|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_X=%s must be within [%s - %s]" % (params.CUSTOM_POS_X, min.x, max.x))}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_Y %}\n{% if params.CUSTOM_POS_Y|float >= min.y and params.CUSTOM_POS_Y|float <= max.y %}\n{% set _dummy = tl.park.custom.update({\'y\':params.CUSTOM_POS_Y|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_Y=%s must be within [%s - %s]" % (params.CUSTOM_POS_Y, min.y, max.y))}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_DZ %}\n{% if params.CUSTOM_POS_DZ|float >= min.z and params.CUSTOM_POS_DZ|float <= max.z %}\n{% set _dummy = tl.park.custom.update({\'dz\':params.CUSTOM_POS_DZ|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_DZ=%s must be within [%s - %s]" % (params.CUSTOM_POS_DZ, min.z, max.z))}\n{% endif %}\n{% endif %}\n{% if params.PARK_ENABLE %}\n{% if params.PARK_ENABLE|lower is in [\'true\', \'false\'] %}\n{% set _dummy = tl.park.update({\'enable\':True if params.PARK_ENABLE|lower == \'true\' else False}) %}\n{% else %}\n{action_raise_error("PARK_ENABLE=%s not supported. Allowed values are [True, False]" % params.PARK_ENABLE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.PARK_POS %}\n{% if params.PARK_POS|lower is in [\'center\',\'front_left\',\'front_right\',\'back_left\',\'back_right\',\'custom\',\'x_only\',\'y_only\'] %}\n{% set dic = {\'center\' : {\'x\': park.center.x , \'y\': park.center.y , \'dz\': 1 },\n\'front_left\' : {\'x\': park.min.x , \'y\': park.min.y , \'dz\': 0 },\n\'front_right\' : {\'x\': park.max.x , \'y\': park.min.y , \'dz\': 0 },\n\'back_left\' : {\'x\': park.min.x , \'y\': park.max.y , \'dz\': 0 },\n\'back_right\' : {\'x\': park.max.x , \'y\': park.max.y , \'dz\': 0 },\n\'custom\' : {\'x\': tl.park.custom.x, \'y\': tl.park.custom.y, \'dz\': tl.park.custom.dz},\n\'x_only\' : {\'x\': tl.park.custom.x, \'y\': \'none\' , \'dz\': tl.park.custom.dz},\n\'y_only\' : {\'x\': \'none\' , \'y\': tl.park.custom.y, \'dz\': tl.park.custom.dz}} %}\n{% set _dummy = tl.park.update({\'pos\':params.PARK_POS|lower}) %}\n{% set _dummy = tl.park.update({\'coord\':dic[tl.park.pos]}) %}\n{% else %}\n{action_raise_error("PARK_POS=%s not supported. Allowed values are [CENTER, FRONT_LEFT, FRONT_RIGHT, BACK_LEFT, BACK_RIGHT, CUSTOM, X_ONLY, Y_ONLY]"\n% params.PARK_POS|upper)}\n{% endif %}\n{% endif %}\n{% if params.PARK_TIME %}\n{% if params.PARK_TIME|float >= 0.0 %}\n{% set _dummy = tl.park.update({\'time\':params.PARK_TIME|float|round(3)}) %}\n{% else %}\n{action_raise_error("PARK_TIME=%s must be a positive number" % params.PARK_TIME)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=park VALUE="{tl.park}"\n{% if params.TRAVEL_SPEED %}\n{% if params.TRAVEL_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'travel\':params.TRAVEL_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("TRAVEL_SPEED=%s must be larger than 0" % params.TRAVEL_SPEED)}\n{% endif %}\n{% endif %}\n{% if params.RETRACT_SPEED %}\n{% if params.RETRACT_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'retract\':params.RETRACT_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("RETRACT_SPEED=%s must be larger than 0" % params.RETRACT_SPEED)}\n{% endif %}\n{% endif %}\n{% if params.EXTRUDE_SPEED %}\n{% if params.EXTRUDE_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'extrude\':params.EXTRUDE_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("EXTRUDE_SPEED=%s must be larger than 0" % params.EXTRUDE_SPEED)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=speed VALUE="{tl.speed}"\n{% if params.EXTRUDE_DISTANCE %}\n{% if params.EXTRUDE_DISTANCE|float >= 0.0 %}\n{% set _dummy = tl.extruder.update({\'extrude\':params.EXTRUDE_DISTANCE|float|round(3)}) %}\n{% else %}\n{action_raise_error("EXTRUDE_DISTANCE=%s must be specified as positiv number" % params.EXTRUDE_DISTANCE)}\n{% endif %}\n{% endif %}\n{% if params.RETRACT_DISTANCE %}\n{% if params.RETRACT_DISTANCE|float >= 0.0 %}\n{% set _dummy = tl.extruder.update({\'retract\':params.RETRACT_DISTANCE|float|round(3)}) %}\n{% else %}\n{action_raise_error("RETRACT_DISTANCE=%s must be specified as positiv number" % params.RETRACT_DISTANCE)}\n{% endif %}\n{% endif %}\n{% if params.FW_RETRACT %}\n{% if params.FW_RETRACT|lower is in [\'true\', \'false\'] %}\n{% if \'firmware_retraction\' in printer.configfile.settings %}\n{% set _dummy = tl.extruder.update({\'fw_retract\': True if params.FW_RETRACT|lower == \'true\' else False}) %}\n{% else %}\n{% set _dummy = tl.extruder.update({\'fw_retract\':False}) %}\n{% if params.FW_RETRACT|capitalize == \'True\' %}\n{action_raise_error("[firmware_retraction] not defined in printer.cfg. Can not enable fw_retract")}\n{% endif %}\n{% endif %}\n{% else %}\n{action_raise_error("FW_RETRACT=%s not supported. Allowed values are [True, False]" % params.FW_RETRACT|capitalize)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=extruder VALUE="{tl.extruder}"\n{% if printer.configfile.settings[\'gcode_macro pause\'] is defined %}\n{% set _dummy = tl.macro.update({\'pause\': printer.configfile.settings[\'gcode_macro pause\'].rename_existing}) %}\n{% endif %}\n{% if printer.configfile.settings[\'gcode_macro resume\'] is defined %}\n{% set _dummy = tl.macro.update({\'resume\': printer.configfile.settings[\'gcode_macro resume\'].rename_existing}) %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=macro VALUE="{tl.macro}"'}, 'gcode_macro TIMELAPSE_TAKE_FRAME': {'description': 'Take Timelapse shoot', 'variable_enable': 'False', 'variable_takingframe': 'False', 'variable_park': "{'enable': False,\n'pos' : 'center',\n'time' : 0.1,\n'custom': {'x': 0, 'y': 0, 'dz': 0},\n'coord' : {'x': 0, 'y': 0, 'dz': 0}}", 'variable_extruder': "{'fw_retract': False,\n'retract': 1.0,\n'extrude': 1.0}", 'variable_speed': "{'travel': 100,\n'retract': 15,\n'extrude': 15}", 'variable_verbose': 'True', 'variable_check_time': '0.5', 'variable_restore': "{'absolute': {'coordinates': True, 'extrude': True}, 'speed': 1500, 'e':0, 'factor': {'speed': 1.0, 'extrude': 1.0}}", 'variable_macro': "{'pause': 'PAUSE', 'resume': 'RESUME'}", 'variable_is_paused': 'False', 'gcode': '\n{% set hyperlapse = True if params.HYPERLAPSE and params.HYPERLAPSE|lower ==\'true\' else False %}\n{% if enable %}\n{% if (hyperlapse and printer[\'gcode_macro HYPERLAPSE\'].run) or\n(not hyperlapse and not printer[\'gcode_macro HYPERLAPSE\'].run) %}\n{% if park.enable %}\n{% set pos = {\'x\': \'X\' + park.coord.x|string if park.pos != \'y_only\' else \'\',\n\'y\': \'Y\' + park.coord.y|string if park.pos != \'x_only\' else \'\',\n\'z\': \'Z\'+ [printer.gcode_move.gcode_position.z + park.coord.dz, printer.toolhead.axis_maximum.z]|min|string} %}\n{% set restore = {\'absolute\': {\'coordinates\': printer.gcode_move.absolute_coordinates,\n\'extrude\' : printer.gcode_move.absolute_extrude},\n\'speed\' : printer.gcode_move.speed,\n\'e\' : printer.gcode_move.gcode_position.e,\n\'factor\' : {\'speed\' : printer.gcode_move.speed_factor,\n\'extrude\': printer.gcode_move.extrude_factor}} %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=restore VALUE="{restore}"\n{% if not printer[printer.toolhead.extruder].can_extrude %}\n{% if verbose %}{action_respond_info("Timelapse: Warning, minimum extruder temperature not reached!")}{% endif %}\n{% else %}\n{% if extruder.fw_retract %}\nG10\n{% else %}\nM83\nG0 E-{extruder.retract} F{speed.retract * 60}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=True\n{macro.pause}\nSET_GCODE_OFFSET X=0 Y=0\nG90\n{% if "xyz" not in printer.toolhead.homed_axes %}\n{% if verbose %}{action_respond_info("Timelapse: Warning, axis not homed yet!")}{% endif %}\n{% else %}\nG0 {pos.x} {pos.y} {pos.z} F{speed.travel * 60}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=takingframe VALUE=True\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={check_time}\nM400\n{% endif %}\n_TIMELAPSE_NEW_FRAME HYPERLAPSE={hyperlapse}\n{% endif %}\n{% else %}\n{% if verbose %}{action_respond_info("Timelapse: disabled, take frame ignored")}{% endif %}\n{% endif %}'}, 'gcode_macro _TIMELAPSE_NEW_FRAME': {'description': 'action call for timelapse shoot. must be a seperate macro', 'gcode': '\n{action_call_remote_method("timelapse_newframe",\nmacropark=printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'].park,\nhyperlapse=params.HYPERLAPSE)}'}, 'delayed_gcode _WAIT_TIMELAPSE_TAKE_FRAME': {'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% set factor = {\'speed\': printer.gcode_move.speed_factor, \'extrude\': printer.gcode_move.extrude_factor} %}\n{% if tl.takingframe %}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={tl.check_time}\n{% else %}\n{tl.macro.resume} VELOCITY={tl.speed.travel}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=False\n{% if not printer[printer.toolhead.extruder].can_extrude %}\n{action_respond_info("Timelapse: Warning minimum extruder temperature not reached!")}\n{% else %}\n{% if tl.extruder.fw_retract %}\nG11\n{% else %}\nG0 E{tl.extruder.extrude} F{tl.speed.extrude * 60}\nG0 F{tl.restore.speed}\n{% if tl.restore.absolute.extrude %}\nM82\nG92 E{tl.restore.e}\n{% endif %}\n{% endif %}\n{% endif %}\n{% if tl.restore.factor.speed != factor.speed %} M220 S{(factor.speed*100)|round(0)} {% endif %}\n{% if tl.restore.factor.extrude != factor.extrude %} M221 S{(factor.extrude*100)|round(0)} {% endif %}\n{% if not tl.restore.absolute.coordinates %} G91 {% endif %}\n{% endif %}'}, 'gcode_macro HYPERLAPSE': {'description': 'Start/Stop a hyperlapse recording', 'variable_cycle': '0', 'variable_run': 'False', 'gcode': '\n{% set cycle = params.CYCLE|default(30)|int %}\n{% if params.ACTION and params.ACTION|lower == \'start\' %}\n{action_respond_info("Hyperlapse: frames started (Cycle %d sec)" % cycle)}\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=True\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=cycle VALUE={cycle}\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={cycle}\nTIMELAPSE_TAKE_FRAME HYPERLAPSE=True\n{% elif params.ACTION and params.ACTION|lower == \'stop\' %}\n{% if run %}{action_respond_info("Hyperlapse: frames stopped")}{% endif %}\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=False\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION=0\n{% else %}\n{action_raise_error("Hyperlapse: No valid input parameter\nUse:\n- HYPERLAPSE ACTION=START [CYCLE=time]\n- HYPERLAPSE ACTION=STOP")}\n{% endif %}'}, 'delayed_gcode _HYPERLAPSE_LOOP': {'gcode': '\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={printer["gcode_macro HYPERLAPSE"].cycle}\nTIMELAPSE_TAKE_FRAME HYPERLAPSE=True'}, 'gcode_macro TIMELAPSE_RENDER': {'description': 'Render Timelapse video and wait for the result', 'variable_render': 'False', 'variable_run_identifier': '0', 'gcode': '\n{action_respond_info("Timelapse: Rendering started")}\n{action_call_remote_method("timelapse_render", byrendermacro="True")}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=render VALUE=True\n{printer.configfile.settings[\'gcode_macro pause\'].rename_existing}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5'}, 'delayed_gcode _WAIT_TIMELAPSE_RENDER': {'gcode': '\n{% set ri = printer[\'gcode_macro TIMELAPSE_RENDER\'].run_identifier % 4 %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=run_identifier VALUE={ri + 1}\n{% if printer[\'gcode_macro TIMELAPSE_RENDER\'].render %}\nM117 Rendering {[\'-\',\'\\\\\',\'|\',\'/\'][ri]}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5\n{% else %}\n{action_respond_info("Timelapse: Rendering finished")}\nM117\n{printer.configfile.settings[\'gcode_macro resume\'].rename_existing}\n{% endif %}'}, 'gcode_macro TEST_STREAM_DELAY': {'description': 'Helper macro to find stream and park delay', 'gcode': '\n{% set min = printer.toolhead.axis_minimum %}\n{% set max = printer.toolhead.axis_maximum %}\n{% set act = printer.toolhead.position %}\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% if act.z > 5.0 %}\nG0 X{min.x + 5.0} F{tl.speed.travel|int * 60}\nG0 X{(max.x-min.x)/2}\nG4 P{tl.park.time|float * 1000}\n_TIMELAPSE_NEW_FRAME HYPERLAPSE=FALSE\nG0 X{max.x - 5.0}\n{% else %}\n{action_raise_error("Toolhead z %.3f to low. Please place head above z = 5.0" % act.z)}\n{% endif %}'}, 'save_variables': {'filename': '/usr/data/printer_data/config/Helper-Script/variables.cfg'}, 'respond': {}, 'gcode_macro SET_GCODE_OFFSET': {'description': 'Saving Z-Offset', 'rename_existing': '_SET_GCODE_OFFSET', 'gcode': '\n{% if printer.save_variables.variables.zoffset %}\n{% set zoffset = printer.save_variables.variables.zoffset %}\n{% else %}\n{% set zoffset = {\'z\': None} %}\n{% endif %}\n{% set ns = namespace(zoffset={\'z\': zoffset.z}) %}\n_SET_GCODE_OFFSET {% for p in params %}{\'%s=%s \'% (p, params[p])}{% endfor %}\n{%if \'Z\' in params %}{% set null = ns.zoffset.update({\'z\': params.Z}) %}{% endif %}\n{%if \'Z_ADJUST\' in params %}\n{%if ns.zoffset.z == None %}{% set null = ns.zoffset.update({\'z\': 0}) %}{% endif %}\n{% set null = ns.zoffset.update({\'z\': (ns.zoffset.z | float) + (params.Z_ADJUST | float)}) %}\n{% endif %}\nSAVE_VARIABLE VARIABLE=zoffset VALUE="{ns.zoffset}"'}, 'delayed_gcode LOAD_GCODE_OFFSETS': {'initial_duration': '2', 'gcode': '\n{% if printer.save_variables.variables.zoffset %}\n{% set zoffset = printer.save_variables.variables.zoffset %}\n_SET_GCODE_OFFSET {% for axis, offset in zoffset.items() if zoffset[axis] %}{ "%s=%s " % (axis, offset) }{% endfor %}\nRESPOND TYPE=command MSG="Loaded Z-Offset from variables.cfg: {zoffset.z}mm"\n{% endif %}'}, 'calibrate_shaper_config': {}, 'gcode_shell_command resonance_graph': {'command': '/usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/calibrate_shaper.py', 'timeout': '600.0', 'verbose': 'False'}, 'gcode_shell_command belts_graph': {'command': '/usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/graph_belts.py', 'timeout': '600.0', 'verbose': 'False'}, 'gcode_shell_command delete_graph': {'command': 'sh /usr/data/helper-script/files/improved-shapers/delete_graph.sh', 'timeout': '600.0', 'verbose': 'False'}, 'gcode_shell_command delete_csv': {'command': 'sh /usr/data/helper-script/files/improved-shapers/delete_csv.sh', 'timeout': '600.0', 'verbose': 'False'}, 'gcode_macro INPUT_SHAPER_CALIBRATION': {'description': 'Measure X and Y Axis Resonances and Save values', 'gcode': '\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nRESPOND TYPE=command MSG="Measuring X and Y Resonances..."\nSHAPER_CALIBRATE\nM400\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Input Shaper Calibration complete!"\nSAVE_CONFIG'}, 'gcode_macro TEST_RESONANCES_GRAPHS': {'description': 'Test X and Y Axis Resonances and Generate Graphs', 'gcode': '\nRUN_SHELL_COMMAND CMD=delete_graph\n{% set x_png = params.X_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_x.png") %}\n{% set y_png = params.Y_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_y.png") %}\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nRESPOND TYPE=command MSG="Testing X Resonances..."\nTEST_RESONANCES AXIS=X NAME=x\nM400\nRESPOND TYPE=command MSG="Generating X Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_x_x.csv -o {x_png}"\nRESPOND TYPE=command MSG="X Graph (resonances_x.png) is now available in /Helper-Script/improved-shapers folder."\nRESPOND TYPE=command MSG="Testing Y Resonances..."\nTEST_RESONANCES AXIS=Y NAME=y\nM400\nRESPOND TYPE=command MSG="Generating Y Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_y_y.csv -o {y_png}"\nRESPOND TYPE=command MSG="Y Graph (resonances_y.png) is now available in /Helper-Script/improved-shapers folder."\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Resonances Test complete!"'}, 'gcode_macro BELTS_SHAPER_CALIBRATION': {'description': 'Perform a custom half-axis test to analyze and compare the frequency profiles of individual belts on CoreXY printers', 'gcode': '\nRUN_SHELL_COMMAND CMD=delete_graph\n{% set min_freq = params.FREQ_START|default(5)|float %}\n{% set max_freq = params.FREQ_END|default(133.33)|float %}\n{% set hz_per_sec = params.HZ_PER_SEC|default(1)|float %}\n{% set png_width = params.PNG_WIDTH|default(8)|float %}\n{% set png_height = params.PNG_HEIGHT|default(4.8)|float %}\n{% set png_out_path = params.PNG_OUT_PATH|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/belts_calibration.png") %}\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nTEST_RESONANCES AXIS=1,1 OUTPUT=raw_data NAME=b FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}\nM400\nTEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data NAME=a FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}\nM400\nRESPOND TYPE=command MSG="Generating Belts Frequency Profiles Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=belts_graph PARAMS="-w {png_width} -l {png_height} -n -o {png_out_path} -k /usr/share/klipper /tmp/raw_data_axis=1.000,-1.000_a.csv /tmp/raw_data_axis=1.000,1.000_b.csv"\nRESPOND TYPE=command MSG="Graph (belts_calibration.png) is now available in /Helper-Script/improved-shapers folder."\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Belts Shaper Calibration complete!"'}, 'gcode_macro EXCITATE_AXIS_AT_FREQ': {'description': 'Maintain a specified excitation frequency for a period of time to diagnose and locate a vibration source', 'gcode': '\n{% set frequency = params.FREQUENCY|default(25)|int %}\n{% set time = params.TIME|default(10)|int %}\n{% set axis = params.AXIS|default("x")|string|lower %}\n{% if axis not in ["x", "y", "a", "b"] %}\n{ action_raise_error("AXIS selection is invalid. Should be either x, y, a or b!") }\n{% endif %}\n{% if axis == "a" %}\n{% set axis = "1,-1" %}\n{% elif axis == "b" %}\n{% set axis = "1,1" %}\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nTEST_RESONANCES OUTPUT=raw_data AXIS={axis} FREQ_START={frequency-1} FREQ_END={frequency+1} HZ_PER_SEC={1/(time/3)}\nM400'}, 'duplicate_pin_override': {'pins': 'PC0, PC5, PB2, ADC_TEMPERATURE'}, 'temperature_fan chamber_fan': {'pin': 'PC0', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'max_power': '1', 'shutdown_speed': '0', 'sensor_type': 'EPCOS 100K B57560G104F', 'sensor_pin': 'PC5', 'min_temp': '0', 'max_temp': '70', 'control': 'watermark', 'max_delta': '2', 'target_temp': '35.0', 'max_speed': '1.0', 'min_speed': '0.0'}, 'temperature_fan mcu_fan': {'pin': 'PB2', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'max_power': '1', 'shutdown_speed': '0', 'sensor_type': 'temperature_mcu', 'min_temp': '0', 'max_temp': '100', 'control': 'watermark', 'max_delta': '2', 'target_temp': '50.0', 'max_speed': '1.0', 'min_speed': '0.0'}, 'output_pin mcu_fan': {'pin': 'PB2', 'pwm': 'True', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'value': '0.00', 'scale': '255', 'shutdown_value': '0.0'}, 'gcode_macro M141': {'description': 'Set Chamber Temperature with slicers', 'gcode': '\n{% set s = params.S|float %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=chamber_fan TARGET={s}\nRESPOND TYPE=command MSG="Chamber target temperature: {s}°C"'}, 'gcode_macro M191': {'description': 'Wait for Chamber Temperature to heat up', 'gcode': '\n{% set s = params.S|float %}\n{% set chamber_temp = printer["temperature_sensor chamber_temp"].temperature|float %}\n{% if s > 0 %}\nM141 S{s}\n{% endif %}\n{% if s > chamber_temp and s <= 90 %}\nM140 S100\nRESPOND TYPE=command MSG="Waiting for the bed to heat up the chamber..."\nTEMPERATURE_WAIT SENSOR="temperature_fan chamber_fan" MINIMUM={s-1}\nRESPOND TYPE=command MSG="Chamber target temperature reached: {s}°C"\nM140 S{s}\n{% endif %}'}, 'gcode_macro M106': {'gcode': '\n{% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}\n{% set fan = 0 %}\n{% set value = 0 %}\n{% if params.P is defined %}\n{% set tmp = params.P|int %}\n{% if tmp < fans %}\n{% set fan = tmp %}\n{% endif %}\n{% endif %}\n{% if params.S is defined %}\n{% set tmp = params.S|float %}\n{% else %}\n{% set tmp = 255 %}\n{% endif %}\n{% if tmp > 0 %}\n{% if fan == 0 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan0_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}\n{% endif %}\n{% endif %}\n{% if fan == 1 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan1_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan1_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}\n{% endif %}\n{% endif %}\n{% if fan == 2 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan2_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}\n{% endif %}\n{% endif %}\n{% endif %}\n{% if value >= 255 %}\n{% set value = 255 %}\n{% endif %}\n{% if params.P is defined and params.P|int == 3 %}\n{% set fan = 1 %}\n{% endif %}\nSET_PIN PIN=fan{fan} VALUE={value}'}, 'prtouch_v2_fan': {'max_speed': '0.5'}, 'output_pin KAMP': {'pin': 'virtual_pin:KAMP_pin', 'value': '1'}, 'output_pin BED_LEVELING': {'pin': 'virtual_pin:BED_LEVELING_pin', 'value': '1'}, 'gcode_macro START_PRINT': {'variable_prepare': '0', 'gcode': '\nWAIT_TEMP_END\nCLEAR_PAUSE\n{% set g28_extruder_temp = printer.custom_macro.g28_ext_temp %}\n{% set bed_temp = printer.custom_macro.default_bed_temp %}\n{% set extruder_temp = printer.custom_macro.default_extruder_temp %}\n{% if \'BED_TEMP\' in params|upper and (params.BED_TEMP|float) %}\n{% set bed_temp = params.BED_TEMP %}\n{% endif %}\n{% if \'EXTRUDER_TEMP\' in params|upper and (params.EXTRUDER_TEMP|float) %}\n{% set extruder_temp = params.EXTRUDER_TEMP %}\n{% endif %}\n{% if printer[\'gcode_macro START_PRINT\'].prepare|int == 0 %}\nPRINT_PREPARE_CLEAR\nCX_ROUGH_G28 EXTRUDER_TEMP={extruder_temp} BED_TEMP={bed_temp}\nCX_NOZZLE_CLEAR\nACCURATE_G28\n{% if printer[\'output_pin KAMP\'].value == 1 %}\nRESPOND TYPE=command MSG="Starting KAMP Bed Mesh..."\nBED_MESH_CLEAR\nBED_MESH_CALIBRATE\nBED_MESH_PROFILE SAVE=kamp\nBED_MESH_PROFILE LOAD=kamp\n{% else %}\n{% if printer[\'output_pin BED_LEVELING\'].value == 1 %}\nRESPOND TYPE=command MSG="Starting Full Bed Mesh..."\nCX_PRINT_LEVELING_CALIBRATION\n{% endif %}\nBED_MESH_PROFILE LOAD=default\n{% endif %}\n{% else %}\nPRINT_PREPARE_CLEAR\n{% endif %}\n{% if printer[\'output_pin KAMP\'].value == 1 %}\n_SMART_PARK\nM109 S{extruder_temp}\nM190 S{bed_temp}\nRESPOND TYPE=command MSG="Starting KAMP line purge..."\n_LINE_PURGE\n{% else %}\nRESPOND TYPE=command MSG="Starting classic line purge..."\nCX_PRINT_DRAW_ONE_LINE\n{% endif %}\nSET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel}'}, 'gcode_macro BED_MESH_CALIBRATE': {'rename_existing': '_BED_MESH_CALIBRATE', 'gcode': '\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set bed_mesh_min = printer.configfile.settings.bed_mesh.mesh_min %}\n{% set bed_mesh_max = printer.configfile.settings.bed_mesh.mesh_max %}\n{% set probe_count = printer.configfile.settings.bed_mesh.probe_count %}\n{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}\n{% set verbose_enable = kamp_settings.verbose_enable | abs %}\n{% set mesh_margin = kamp_settings.mesh_margin | float %}\n{% set fuzz_amount = kamp_settings.fuzz_amount | float %}\n{% set probe_count = probe_count if probe_count|length > 1 else probe_count * 2 %}\n{% set max_probe_point_distance_x = ( bed_mesh_max[0] - bed_mesh_min[0] ) / (probe_count[0] - 1) %}\n{% set max_probe_point_distance_y = ( bed_mesh_max[1] - bed_mesh_min[1] ) / (probe_count[1] - 1) %}\n{% set x_min = all_points | map(attribute=0) | min | default(bed_mesh_min[0]) %}\n{% set y_min = all_points | map(attribute=1) | min | default(bed_mesh_min[1]) %}\n{% set x_max = all_points | map(attribute=0) | max | default(bed_mesh_max[0]) %}\n{% set y_max = all_points | map(attribute=1) | max | default(bed_mesh_max[1]) %}\n{% set fuzz_range = range((0) | int, (fuzz_amount * 100) | int + 1) %}\n{% set adapted_x_min = x_min - mesh_margin - (fuzz_range | random / 100.0) %}\n{% set adapted_y_min = y_min - mesh_margin - (fuzz_range | random / 100.0) %}\n{% set adapted_x_max = x_max + mesh_margin + (fuzz_range | random / 100.0) %}\n{% set adapted_y_max = y_max + mesh_margin + (fuzz_range | random / 100.0) %}\n{% set adapted_x_min = [adapted_x_min , bed_mesh_min[0]] | max %}\n{% set adapted_y_min = [adapted_y_min , bed_mesh_min[1]] | max %}\n{% set adapted_x_max = [adapted_x_max , bed_mesh_max[0]] | min %}\n{% set adapted_y_max = [adapted_y_max , bed_mesh_max[1]] | min %}\n{% set points_x = (((adapted_x_max - adapted_x_min) / max_probe_point_distance_x) | round(method=\'ceil\') | int) + 1 %}\n{% set points_y = (((adapted_y_max - adapted_y_min) / max_probe_point_distance_y) | round(method=\'ceil\') | int) + 1 %}\n{% if (points_x > points_y) %}\n{% set points_y = points_x %}\n{% endif %}\n{% if (points_x < points_y) %}\n{% set points_x = points_y %}\n{% endif %}\n{% if (([points_x, points_y]|max) > 6) %}\n{% set algorithm = "bicubic" %}\n{% set min_points = 4 %}\n{% else %}\n{% set algorithm = "lagrange" %}\n{% set min_points = 3 %}\n{% endif %}\n{% set points_x = [points_x , min_points]|max %}\n{% set points_y = [points_y , min_points]|max %}\n{% set points_x = [points_x , probe_count[0]]|min %}\n{% set points_y = [points_y , probe_count[1]]|min %}\n\n{% if verbose_enable == True %}\n\n{% if printer.exclude_object.objects != [] %}\n\nRESPOND TYPE=command MSG="Algorithm: {algorithm}"\nRESPOND TYPE=command MSG="Default probe count: {probe_count[0]},{probe_count[1]}"\nRESPOND TYPE=command MSG="Adapted probe count: {points_x},{points_y}"\nRESPOND TYPE=command MSG="Default mesh bounds: {bed_mesh_min[0]},{bed_mesh_min[1]}, {bed_mesh_max[0]},{bed_mesh_max[1]}"\n\n{% if mesh_margin > 0 %}\n\nRESPOND TYPE=command MSG="Mesh margin is {mesh_margin}, mesh bounds extended by {mesh_margin}mm."\n\n{% else %}\n\nRESPOND TYPE=command MSG="Mesh margin is 0, margin not increased."\n\n{% endif %}\n\n{% if fuzz_amount > 0 %}\n\nRESPOND TYPE=command MSG="Mesh point fuzzing enabled, points fuzzed up to {fuzz_amount}mm"\n\n{% else %}\n\nRESPOND TYPE=command MSG="Fuzz amount is 0, mesh points not fuzzed."\n\n{% endif %}\n\nRESPOND TYPE=command MSG="Adapted mesh bounds: {adapted_x_min},{adapted_y_min}, {adapted_x_max},{adapted_y_max}"\nRESPOND TYPE=command MSG="KAMP adjustments successful. Happy KAMPing!"\n\n{% else %}\n\nRESPOND TYPE=command MSG="No object detected! Make sure you have enabled Exclude Objets setting in your slicer. Using Full Bed Mesh."\nG4 P5000\n\n{% endif %}\n\n{% endif %}\n\n_BED_MESH_CALIBRATE mesh_min={adapted_x_min},{adapted_y_min} mesh_max={adapted_x_max},{adapted_y_max} ALGORITHM={algorithm} PROBE_COUNT={points_x},{points_y}'}, 'gcode_macro _LINE_PURGE': {'description': 'A purge macro that adapts to be near your actual printed objects', 'gcode': '\n{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}\n{% set cross_section = printer.configfile.settings.extruder.max_extrude_cross_section | float %}\n{% if printer.firmware_retraction is defined %}\n{% set RETRACT = G10 | string %}\n{% set UNRETRACT = G11 | string %}\n{% else %}\n{% set RETRACT = \'G1 E-0.5 F2400\' | string %}\n{% set UNRETRACT = \'G1 E0.5 F2400\' | string %}\n{% endif %}\n{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}\n{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}\n{% set verbose_enable = printer["gcode_macro _KAMP_Settings"].verbose_enable | abs %}\n{% set purge_height = printer["gcode_macro _KAMP_Settings"].purge_height | float %}\n{% set tip_distance = printer["gcode_macro _KAMP_Settings"].tip_distance | float %}\n{% set purge_margin = printer["gcode_macro _KAMP_Settings"].purge_margin | float %}\n{% set purge_amount = printer["gcode_macro _KAMP_Settings"].purge_amount | float %}\n{% set flow_rate = printer["gcode_macro _KAMP_Settings"].flow_rate | float %}\n{% set rapid_move = 10 %}\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set purge_x_min = (all_points | map(attribute=0) | min | default(0)) %}\n{% set purge_x_max = (all_points | map(attribute=0) | max | default(0)) %}\n{% set purge_y_min = (all_points | map(attribute=1) | min | default(0)) %}\n{% set purge_y_max = (all_points | map(attribute=1) | max | default(0)) %}\n{% set detect_object = purge_x_min + purge_x_max + purge_y_min + purge_y_max %}\n{% set purge_x_center = ([((purge_x_max + purge_x_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% set purge_y_center = ([((purge_y_max + purge_y_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% if (purge_x_center + purge_amount + rapid_move) > bed_x_max %}\n{% set purge_x_center = (bed_x_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% if (purge_y_center + purge_amount + rapid_move) > bed_y_max %}\n{% set purge_y_center = (bed_y_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% set purge_x_origin_low = (purge_x_min - purge_margin) %}\n{% set purge_x_origin_high = (purge_x_max + purge_margin) %}\n{% set purge_y_origin_low = (purge_y_min - purge_margin) %}\n{% set purge_y_origin_high = (purge_y_max + purge_margin) %}\n{% set purge_move_speed = (flow_rate / 5.0) * 60 | float %}\n\n{% if cross_section < 5 %}\n\nRESPOND TYPE=command MSG="[Extruder] max_extrude_cross_section is insufficient for line purge, please set it to 5 or greater. Purge skipped."\n\n{% else %}\n\n{% if verbose_enable == True %}\n\nRESPOND TYPE=command MSG="Moving filament tip {tip_distance}mm"\n\n{% endif %}\n\n{% if detect_object == 0 %}\n\nRESPOND TYPE=command MSG="No object detected! Using classic purge line."\n\n{% elif purge_y_origin_low > 0 %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_low} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_x_origin_low > 0 %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_low}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_y_origin_high < bed_y_max %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_high} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_x_origin_high < bed_x_max %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_high}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% else %}\n\nRESPOND TYPE=command MSG="No space for purge line! Using classic purge line."\n\n{% endif %}\n\nSAVE_GCODE_STATE NAME=Prepurge_State\n\n{% if detect_object == 0 %}\n\nG92 E0\nG1 Z0.1 F600\nM83\n{RETRACT}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nM204 S12000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000\nM220 S100\nM221 S100\nG1 Z2.0 F1200\nG1 X0.1 Y20 Z0.3 F6000.0\nG1 X0.1 Y180.0 Z0.3 F3000.0 E10.0\nG1 X0.4 Y180.0 Z0.3 F3000.0\nG1 X0.4 Y20.0 Z0.3 F3000.0 E10.0\nG1 Y10.0 F3000.0\nG1 Z2.0 F3000.0\nG92 E0\nM82\nG1 F12000\nG21\n\n{% elif purge_y_origin_low > 0 %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_center} Y{purge_y_origin_low}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_x_origin_low > 0 %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_origin_low} Y{purge_y_center}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_y_origin_high < bed_y_max %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_center} Y{purge_y_origin_high}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_x_origin_high < bed_x_max %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_origin_high} Y{purge_y_center}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% else %}\n\nG92 E0\nG1 Z0.1 F600\nM83\n{RETRACT}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nM204 S12000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000\nM220 S100\nM221 S100\nG1 Z2.0 F1200\nG1 X0.1 Y20 Z0.3 F6000.0\nG1 X0.1 Y180.0 Z0.3 F3000.0 E10.0\nG1 X0.4 Y180.0 Z0.3 F3000.0\nG1 X0.4 Y20.0 Z0.3 F3000.0 E10.0\nG1 Y10.0 F3000.0\nG1 Z2.0 F3000.0\nG92 E0\nM82\nG1 F12000\nG21\n\n{% endif %}\n\nRESTORE_GCODE_STATE NAME=Prepurge_State\n\n{% endif %}'}, 'gcode_macro _SMART_PARK': {'description': 'Parks your printhead near the print area for pre-print hotend heating.', 'gcode': '\n{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}\n{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}\n{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}\n{% set z_height = kamp_settings.smart_park_height | float %}\n{% set purge_margin = kamp_settings.purge_margin | float %}\n{% set purge_amount = kamp_settings.purge_amount | float %}\n{% set verbose_enable = kamp_settings.verbose_enable | abs %}\n{% set center_x = bed_x_max / 2 %}\n{% set center_y = bed_y_max / 2 %}\n{% set axis_minimum_x = printer.toolhead.axis_minimum.x | float %}\n{% set axis_minimum_y = printer.toolhead.axis_minimum.y | float %}\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set x_min = (all_points | map(attribute=0) | min | default(0)) %}\n{% set x_max = (all_points | map(attribute=0) | max | default(0)) %}\n{% set y_min = (all_points | map(attribute=1) | min | default(0)) %}\n{% set y_max = (all_points | map(attribute=1) | max | default(0)) %}\n{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}\n{% set rapid_move = 10 %}\n{% set park_x_center = ([((x_max + x_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% set park_y_center = ([((y_max + y_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% if (park_x_center + purge_amount + rapid_move) > bed_x_max %}\n{% set park_x_center = (bed_x_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% if (park_y_center + purge_amount + rapid_move) > bed_y_max %}\n{% set park_y_center = (bed_y_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% set park_x_origin_low = (x_min - purge_margin) %}\n{% set park_x_origin_high = (x_max + purge_margin) %}\n{% set park_y_origin_low = (y_min - purge_margin) %}\n{% set park_y_origin_high = (y_max + purge_margin) %}\n{% set detect_object = (x_min + x_max + y_min + y_max) %}\n{% if detect_object == 0 %}\n{% set x_min = 10 %}\n{% set y_min = 10 %}\n{% set z_height = 2 %}\n{% elif park_y_origin_low > 0 %}\n{% set x_min = park_x_center %}\n{% set y_min = park_y_origin_low %}\n{% elif park_x_origin_low > 0 %}\n{% set x_min = park_x_origin_low %}\n{% set y_min = park_y_center %}\n{% elif park_y_origin_high < bed_y_max %}\n{% set x_min = park_x_center %}\n{% set y_min = park_y_origin_high %}\n{% elif park_x_origin_high < bed_x_max %}\n{% set x_min = park_x_origin_high %}\n{% set y_min = park_y_center %}\n{% else %}\n{% set x_min = 10 %}\n{% set y_min = 10 %}\n{% set z_height = 2 %}\n{% endif %}\n\n{% if verbose_enable == True %}\n\nRESPOND TYPE=command MSG="Smart Park location: {x_min},{y_min}"\n\n{% endif %}\n\nSAVE_GCODE_STATE NAME=Presmartpark_State\n\nG90\n{% if printer.toolhead.position.z < z_height %}\n\nG0 Z{z_height}\n\n{% endif %}\n\nG0 X{x_min} Y{y_min} F{travel_speed}\nG0 Z{z_height}\n\nRESTORE_GCODE_STATE NAME=Presmartpark_State'}, 'gcode_macro DEFINE_OBJECT': {'gcode': '\nEXCLUDE_OBJECT_DEFINE {rawparams}'}, 'gcode_macro START_CURRENT_OBJECT': {'gcode': '\nEXCLUDE_OBJECT_START NAME={params.NAME}'}, 'gcode_macro END_CURRENT_OBJECT': {'gcode': '\nEXCLUDE_OBJECT_END {% if params.NAME %}NAME={params.NAME}{% endif %}'}, 'gcode_macro LIST_OBJECTS': {'gcode': '\nEXCLUDE_OBJECT_DEFINE'}, 'gcode_macro LIST_EXCLUDED_OBJECTS': {'gcode': '\nEXCLUDE_OBJECT'}, 'gcode_macro REMOVE_ALL_EXCLUDED': {'gcode': '\nEXCLUDE_OBJECT RESET=1'}, 'gcode_macro _KAMP_Settings': {'description': 'This macro contains all adjustable settings for KAMP', 'variable_verbose_enable': 'True', 'variable_mesh_margin': '0', 'variable_fuzz_amount': '0', 'variable_purge_height': '0.8', 'variable_tip_distance': '0', 'variable_purge_margin': '10', 'variable_purge_amount': '50', 'variable_flow_rate': '12', 'variable_smart_park_height': '10', 'gcode': '\nRESPOND TYPE=command MSG="Running the KAMP_Settings macro does nothing, it\'s only used for storing KAMP settings."'}, 'mcu': {'serial': '/dev/ttyS7', 'baud': '230400', 'restart_method': 'command'}, 'mcu nozzle_mcu': {'serial': '/dev/ttyS1', 'baud': '230400', 'restart_method': 'command'}, 'mcu leveling_mcu': {'serial': '/dev/ttyS9', 'baud': '230400', 'restart_method': 'command'}, 'verify_heater extruder': {}, 'verify_heater heater_bed': {'check_gain_time': '120', 'heating_gain': '1.0', 'hysteresis': '10'}, 'mcu rpi': {'serial': '/tmp/klipper_host_mcu'}, 'bl24c16f': {'i2c_mcu': 'rpi', 'i2c_bus': 'i2c.2', 'i2c_speed': '400000'}, 'idle_timeout': {'timeout': '99999999'}, 'virtual_sdcard': {'path': '/usr/data/printer_data/gcodes'}, 'gcode_arcs': {'resolution': '1.0'}, 'temperature_sensor mcu_temp': {'sensor_type': 'temperature_mcu', 'min_temp': '0', 'max_temp': '100'}, 'temperature_sensor chamber_temp': {'sensor_type': 'EPCOS 100K B57560G104F', 'sensor_pin': 'PC5', 'min_temp': '0', 'max_temp': '125'}, 'stepper_x': {'step_pin': 'PC2', 'dir_pin': '!PB9', 'enable_pin': '!PC3', 'microsteps': '32', 'rotation_distance': '72', 'endstop_pin': 'tmc2209_stepper_x:virtual_endstop', 'position_endstop': '306.5', 'position_min': '-2', 'position_max': '306.5', 'homing_speed': '36', 'homing_retract_dist': '0'}, 'tmc2209 stepper_x': {'uart_pin': 'PA9', 'interpolate': 'True', 'run_current': '1.5', 'hold_current': '1.0', 'sense_resistor': '0.100', 'stealthchop_threshold': '0', 'uart_address': '3', 'diag_pin': '^PB12', 'driver_sgthrs': '65'}, 'stepper_y': {'step_pin': 'PB8', 'dir_pin': '!PB7', 'enable_pin': '!PC3', 'microsteps': '32', 'rotation_distance': '72', 'endstop_pin': 'tmc2209_stepper_y:virtual_endstop', 'position_endstop': '-2', 'position_min': '-2', 'position_max': '306', 'homing_speed': '36', 'homing_retract_dist': '0'}, 'tmc2209 stepper_y': {'uart_pin': 'PA10', 'interpolate': 'True', 'run_current': '1.5', 'hold_current': '1.0', 'sense_resistor': '0.100', 'stealthchop_threshold': '0', 'uart_address': '3', 'diag_pin': '^PB13', 'driver_sgthrs': '65'}, 'stepper_z': {'step_pin': 'PB6', 'dir_pin': '!PB5', 'enable_pin': '!PC3', 'microsteps': '16', 'rotation_distance': '8', 'gear_ratio': '64:20', 'endstop_pin': 'tmc2209_stepper_z:virtual_endstop', 'position_endstop': '0', 'position_max': '305', 'position_min': '-10', 'homing_speed': '10', 'second_homing_speed': '1', 'homing_retract_dist': '2.0'}, 'tmc2209 stepper_z': {'uart_pin': 'PA11', 'uart_address': '3', 'run_current': '0.8', 'diag_pin': '^PB14', 'stealthchop_threshold': '0', 'sense_resistor': '0.100', 'driver_sgthrs': '0'}, 'extruder': {'max_extrude_only_distance': '1000.0', 'max_extrude_cross_section': '80', 'step_pin': 'nozzle_mcu:PB1', 'dir_pin': 'nozzle_mcu:PB0', 'enable_pin': '!nozzle_mcu:PB2', 'microsteps': '16', 'rotation_distance': '6.9', 'nozzle_diameter': '0.400', 'filament_diameter': '1.750', 'heater_pin': 'nozzle_mcu:PB7', 'sensor_type': 'EPCOS 100K B57560G104F', 'sensor_pin': 'nozzle_mcu:PA0', 'pressure_advance': '0.04', 'pressure_advance_smooth_time': '0.040', 'control': 'pid', 'pid_kp': '25.013', 'pid_ki': '2.566', 'pid_kd': '60.966', 'min_temp': '0', 'max_temp': '320'}, 'tmc2209 extruder': {'uart_pin': 'nozzle_mcu:PB11', 'tx_pin': 'nozzle_mcu:PB10', 'uart_address': '3', 'run_current': '0.55', 'sense_resistor': '0.150', 'stealthchop_threshold': '0'}, 'heater_bed': {'heater_pin': 'PC8', 'sensor_type': 'NTC 100K beta 3950', 'sensor_pin': 'PC4', 'min_temp': '0', 'max_temp': '125', 'control': 'pid', 'pid_kp': '53.795', 'pid_ki': '0.525', 'pid_kd': '1377.827'}, 'filament_switch_sensor filament_sensor': {'pause_on_runout': 'true', 'switch_pin': '!PC15', 'runout_gcode': "\n{% if printer.extruder.can_extrude|lower == 'true' %}\nG91\nG0 E30 F600\nG90\n{% endif %}"}, 'filament_switch_sensor filament_sensor_2': {'pause_on_runout': 'true', 'switch_pin': '!nozzle_mcu:PA10'}, 'multi_pin heater_fans': {'pins': 'nozzle_mcu:PB5,PB2'}, 'heater_fan hotend_fan': {'pin': 'multi_pin:heater_fans', 'heater': 'extruder', 'heater_temp': '40'}, 'static_digital_output my_fan_output_pins': {'pins': 'nozzle_mcu: PB6'}, 'output_pin fan0': {'pin': '!nozzle_mcu: PB8', 'pwm': 'True', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'value': '0.00', 'scale': '255', 'shutdown_value': '0.0'}, 'output_pin fan1': {'pin': 'PC0', 'pwm': 'True', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'value': '0.00', 'scale': '255', 'shutdown_value': '0.0'}, 'output_pin fan2': {'pin': 'PB1', 'pwm': 'True', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'value': '0.00', 'scale': '255', 'shutdown_value': '0.0'}, 'output_pin LED': {'pin': 'PB0', 'pwm': 'True', 'cycle_time': '0.010', 'value': '1'}, 'output_pin power': {'pin': 'PC9'}, 'adxl345': {'cs_pin': 'nozzle_mcu:PA4', 'spi_speed': '5000000', 'axes_map': 'x,-z,y', 'spi_software_sclk_pin': 'nozzle_mcu:PA5', 'spi_software_mosi_pin': 'nozzle_mcu:PA7', 'spi_software_miso_pin': 'nozzle_mcu:PA6'}, 'resonance_tester': {'accel_chip': 'adxl345', 'accel_per_hz': '75', 'probe_points': '\n150,150,10'}, 'prtouch_v2': {'pr_version': '2', 'step_base': '2', 'z_offset': '0', 'noz_ex_com': '0.09', 'tilt_corr_dis': '0.05', 'tri_min_hold': '6000,10000', 'tri_max_hold': '13000,60000', 'pres_cnt': '4', 'pres0_clk_pins': 'leveling_mcu:PA7', 'pres0_sdo_pins': 'leveling_mcu:PA4', 'pres1_clk_pins': 'leveling_mcu:PA6', 'pres1_sdo_pins': 'leveling_mcu:PA3', 'pres2_clk_pins': 'leveling_mcu:PA2', 'pres2_sdo_pins': 'leveling_mcu:PA0', 'pres3_clk_pins': 'leveling_mcu:PA5', 'pres3_sdo_pins': 'leveling_mcu:PA1', 'show_msg': 'False', 'step_swap_pin': 'PC10', 'pres_swap_pin': 'leveling_mcu:PB1', 'g28_wait_cool_down': 'true', 'pa_clr_down_mm': '-0.15', 'clr_noz_start_x': '130', 'clr_noz_start_y': '303', 'clr_noz_len_x': '40', 'clr_noz_len_y': '2', 'speeds': '2.5,1.0', 'tri_hftr_cut': '2,1', 'tri_lftr_k1': '0.50,0.15', 'tri_min_hold_1': '6000,10000', 'tri_min_hold_2': '6000,10000', 'tri_min_hold_3': '6000,10000', 'tri_min_hold_4': '6000,10000', 'tri_min_hold_5': '6000,10000', 'tri_min_hold_6': '6000,10000', 'tri_min_hold_7': '6000,10000', 'tri_min_hold_8': '6000,10000', 'tri_min_hold_9': '6000,10000', 'tri_min_hold_10': '6000,10000', 'tri_min_hold_11': '6000,10000', 'tri_min_hold_12': '6000,10000', 'tri_min_hold_13': '6000,10000', 'tri_min_hold_14': '6000,10000', 'tri_min_hold_15': '6000,10000', 'tri_min_hold_16': '6000,10000', 'tri_min_hold_17': '6000,10000', 'tri_min_hold_18': '6000,10000', 'tri_min_hold_19': '6000,10000', 'tri_min_hold_20': '6000,10000', 'tri_min_hold_21': '6000,10000', 'tri_min_hold_22': '6000,10000', 'tri_min_hold_23': '6000,10000', 'tri_min_hold_24': '6000,10000', 'tri_min_hold_25': '6000,10000', 'tri_min_hold_26': '6000,10000', 'tri_min_hold_27': '6000,10000', 'tri_min_hold_28': '6000,10000', 'tri_min_hold_29': '6000,10000', 'tri_min_hold_30': '6000,10000', 'tri_min_hold_31': '6000,10000', 'tri_min_hold_32': '6000,10000', 'tri_min_hold_33': '6000,10000', 'tri_min_hold_34': '6000,10000', 'tri_min_hold_35': '6000,10000', 'tri_min_hold_36': '6000,10000', 'tri_max_hold_1': '13000,60000', 'tri_max_hold_2': '13000,60000', 'tri_max_hold_3': '13000,60000', 'tri_max_hold_4': '13000,60000', 'tri_max_hold_5': '13000,60000', 'tri_max_hold_6': '13000,60000', 'tri_max_hold_7': '13000,60000', 'tri_max_hold_8': '13000,60000', 'tri_max_hold_9': '13000,60000', 'tri_max_hold_10': '13000,60000', 'tri_max_hold_11': '13000,60000', 'tri_max_hold_12': '13000,60000', 'tri_max_hold_13': '13000,60000', 'tri_max_hold_14': '13000,60000', 'tri_max_hold_15': '13000,60000', 'tri_max_hold_16': '13000,60000', 'tri_max_hold_17': '13000,60000', 'tri_max_hold_18': '13000,60000', 'tri_max_hold_19': '13000,60000', 'tri_max_hold_20': '13000,60000', 'tri_max_hold_21': '13000,60000', 'tri_max_hold_22': '13000,60000', 'tri_max_hold_23': '13000,60000', 'tri_max_hold_24': '13000,60000', 'tri_max_hold_25': '13000,60000', 'tri_max_hold_26': '13000,60000', 'tri_max_hold_27': '13000,60000', 'tri_max_hold_28': '13000,60000', 'tri_max_hold_29': '13000,60000', 'tri_max_hold_30': '13000,60000', 'tri_max_hold_31': '13000,60000', 'tri_max_hold_32': '13000,60000', 'tri_max_hold_33': '13000,60000', 'tri_max_hold_34': '13000,60000', 'tri_max_hold_35': '13000,60000', 'tri_max_hold_36': '13000,60000'}, 'bed_mesh': {'speed': '150', 'mesh_min': '5,5', 'mesh_max': '295,295', 'probe_count': '6,6', 'fade_start': '5.0', 'fade_end': '50.0'}, 'display_status': {}, 'printer': {'kinematics': 'corexy', 'max_velocity': '800', 'max_accel': '20000', 'max_accel_to_decel': '20000', 'max_z_velocity': '20', 'square_corner_velocity': '5.0', 'square_corner_max_velocity': '200.0', 'max_z_accel': '300'}, 'pause_resume': {}, 'exclude_object': {}, 'input_shaper': {'shaper_type_x': '2hump_ei', 'shaper_freq_x': '39.0', 'shaper_type_y': 'zv', 'shaper_freq_y': '48.0'}}, 'settings': {'mcu': {'serial': '/dev/ttyS7', 'baud': 230400, 'restart_method': 'command', 'max_stepper_error': 2.5e-05}, 'mcu nozzle_mcu': {'serial': '/dev/ttyS1', 'baud': 230400, 'restart_method': 'command', 'max_stepper_error': 2.5e-05}, 'mcu leveling_mcu': {'serial': '/dev/ttyS9', 'baud': 230400, 'restart_method': 'command', 'max_stepper_error': 2.5e-05}, 'mcu rpi': {'serial': '/tmp/klipper_host_mcu', 'max_stepper_error': 2.5e-05}, 'force_move': {'enable_force_move': True}, 'gcode_macro xyz_ready': {'gcode': '', 'description': 'G-Code macro', 'variable_x_ready': '0', 'variable_y_ready': '0', 'variable_z_ready': '0', 'variable_xy_moved': '0', 'variable_z_moved': '0', 'variable_safe_z': '3'}, 'gcode_macro _if_home_z': {'gcode': '\n{% if printer[\'gcode_macro xyz_ready\'].z_ready|int == 1 %}\n{% if printer.toolhead.position.z|int < 5 %}\n{% set z_park = 5.0 - printer.toolhead.position.z|int %}\nG91\nG1 z{z_park} F600\nG90\n{% endif %}\n{% else %}\n{% if printer[\'gcode_macro xyz_ready\'].z_moved|int == 0 %}\n{% if printer.print_stats.z_pos|float <= 20.0 or printer.print_stats.power_loss == 1 %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE={printer["gcode_macro PRINTER_PARAM"].z_safe_g28} VELOCITY=10\n{% else %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE=0.1 VELOCITY=10\n{% endif %}\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=1\n{% endif %}\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro _if_move_xy': {'gcode': '\n_IF_HOME_Z\n{% if printer[\'gcode_macro xyz_ready\'].xy_moved|int == 0 %}\n{action_respond_info("move xy\\n")}\n\nFORCE_MOVE STEPPER=stepper_y DISTANCE=-14 VELOCITY=50\nFORCE_MOVE STEPPER=stepper_y DISTANCE=7 VELOCITY=50\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=1\nG4 P1000\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro _home_x': {'gcode': "\n_IF_MOVE_XY\n\n{% if printer['gcode_macro xyz_ready'].x_ready|int == 1 %}\n{% if (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x)|round < 10 %}\n{% set x_park = (10 - (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x))|round %}\n{% if x_park > 0 %}\nG91\nG1 x-{x_park} F3600\nG90\nG4 P1000\n{% endif %}\n{% endif %}\n{% endif %}\n\n\n\n\nG28 X\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=1\n\nG91\nG1 x-10 F3600\nG90\n\nG4 P2000", 'description': 'G-Code macro'}, 'gcode_macro _home_y': {'gcode': "\n_IF_MOVE_XY\n\n{% if printer['gcode_macro xyz_ready'].y_ready|int == 1 %}\n{% if printer.toolhead.position.y|round < 8 %}\n{% set y_park = 8 - printer.toolhead.position.y|round %}\n{% if y_park > 0 %}\nG91\nG1 y{y_park} F3600\nG90\nG4 P1000\n{% endif %}\n{% endif %}\n{% endif %}\n\n\n\n\nG28 Y\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=1\n\nG91\nG1 y10 F3600\nG90\n\nG4 P2000", 'description': 'G-Code macro'}, 'gcode_macro _home_z': {'gcode': '\n{% if printer[\'gcode_macro xyz_ready\'].y_ready|int == 1 %}\n{% if printer[\'gcode_macro xyz_ready\'].x_ready|int == 1 %}\n_IF_HOME_Z\n{% endif %}\n{% endif %}\n{% if printer.print_stats.z_pos|float >= 260.0 %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE=-8 VELOCITY=10\n{% endif %}\n\n{% set POSITION_X = printer.configfile.settings[\'stepper_x\'].position_max/2 %}\n{% set POSITION_Y = printer.configfile.settings[\'stepper_y\'].position_max/2 %}\n\nG91\n{% set x_park = POSITION_X - printer.toolhead.position.x|int %}\n{% set y_park = POSITION_Y - printer.toolhead.position.y|int %}\n{action_respond_info("x_park = %s \\n" % (x_park))}\n{action_respond_info("y_park = %s \\n" % (y_park))}\nG1 x{x_park} y{y_park} F3600\nG90\n\n\nG28 Z\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=1', 'description': 'G-Code macro'}, 'homing_override': {'axes': 'xyz', 'gcode': '\nM220 S100\n\n\n\n{% set x_axes = printer.toolhead.homed_axes %}\n{% if x_axes is defined and x_axes[0] is defined %}\n{action_respond_info(\n"x_axes: %s \\n"\n% (x_axes))}\n{% else %}\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=0\n{action_respond_info(\n"x_axes is NULL\\n")}\n{% endif %}\n\n{% if x_axes is not defined or x_axes[2] is not defined %}\nBED_MESH_CLEAR\n{% endif %}\n\n{% if x_axes is defined and x_axes[0] is defined and x_axes[1] is defined %}\n{action_respond_info("x_axes: %s \\n"% (x_axes))}\n{% set position_y = printer.toolhead.position.y|int %}\n{% set max_y_position = printer["gcode_macro PRINTER_PARAM"].max_y_position|int %}\n{% if position_y >= max_y_position %}\nG91\nG0 Y-10 F3600\nG90\n{% endif %}\n{% endif %}\n\n{% set home_all = \'X\' not in params and \'Y\' not in params %}\n{% if \'Z\' in params and \'X\' not in params and \'Y\' not in params %}\n{% if x_axes[0] is defined and x_axes[1] is defined %}\n{% set home_all = 0 %}\n{% endif %}\n{% endif %}\n\n{% if home_all or \'X\' in params %}\n_HOME_X\n{% endif %}\n\n{% if home_all or \'Y\' in params %}\n_HOME_Y\n{% endif %}\n\n{% if home_all or \'X\' in params %}\n_HOME_X\n{% endif %}\n\n{% if home_all or \'Y\' in params %}\n_HOME_Y\n{% endif %}\n\n{% if home_all or \'Z\' in params %}\n_HOME_Z\n{% endif %}\nBED_MESH_PROFILE LOAD="default"\n\n\n\n\nG4 P500'}, 'gcode_macro printer_param': {'gcode': '', 'description': 'G-Code macro', 'variable_z_safe_pause': '0.0', 'variable_z_safe_g28': 3.0, 'variable_max_x_position': '300.0', 'variable_max_y_position': '300.0', 'variable_max_z_position': '300.0', 'variable_fans': '3', 'variable_auto_g29': '0', 'variable_fan0_min': '25', 'variable_fan1_min': '50', 'variable_fan2_min': '180', 'variable_fan2_speed': '0', 'variable_hotend_temp': '0', 'variable_e_min_current': '0.27'}, 'gcode_macro autotune_shapers': {'gcode': '', 'description': 'G-Code macro'}, 'gcode_macro load_material_close_fan2': {'gcode': "\nSAVE_GCODE_STATE NAME=myMoveState\n{% if printer['output_pin fan2'].value > 0.0 %}\nSET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value}\nM107 P2\n{% endif %}\nRESTORE_E_CURRENT", 'description': 'G-Code macro', 'variable_fan2_value': '0'}, 'gcode_macro load_material_restore_fan2': {'gcode': '\n{% set fan2_value = printer[\'gcode_macro LOAD_MATERIAL_CLOSE_FAN2\'].fan2_value|float %}\nRESTORE_GCODE_STATE NAME=myMoveState\n{% if fan2_value > 0.0 %}\n{% set s_value = (fan2_value * 255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) * 255 / (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) %}\nM106 P2 S{s_value}\nSET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE=0\n{% endif %}\nSET_E_MIN_CURRENT', 'description': 'G-Code macro'}, 'gcode_macro set_e_min_current': {'gcode': "\n{% set e_current = printer['gcode_macro PRINTER_PARAM'].e_min_current %}\nM400\nSET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current}\nG4 P2000", 'description': 'G-Code macro'}, 'gcode_macro restore_e_current': {'gcode': "\n{% set e_current = printer.configfile.settings['tmc2209 extruder'].run_current %}\nM400\nSET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current}\nG4 P2000", 'description': 'G-Code macro'}, 'gcode_macro load_material': {'gcode': '\nLOAD_MATERIAL_CLOSE_FAN2\nM109 S{printer.custom_macro.default_extruder_temp}\nG91\nG1 E80 F180\nLOAD_MATERIAL_RESTORE_FAN2', 'description': 'G-Code macro'}, 'gcode_macro quit_material': {'gcode': '\nSAVE_GCODE_STATE NAME=myMoveState\nRESTORE_E_CURRENT\nM109 S{printer.custom_macro.default_extruder_temp}\nM83\nG1 E10 F300\nG1 E-15 F3000\nG1 E-22.4700 F2400\nG1 E-6.4200 F1200\nG1 E-3.2100 F720\nG1 E5.0000 F356\nG1 E-5.0000 F384\nG1 E5.0000 F412\nG1 E-5.0000 F440\nG1 E5.0000 F467\nG1 E-5.0000 F495\nG1 E5.0000 F523\nG1 E-5.0000 F3000\nG1 E-15 F3000\nSET_E_MIN_CURRENT\nRESTORE_GCODE_STATE NAME=myMoveState', 'description': 'G-Code macro'}, 'gcode_macro qmode': {'gcode': '\n{% set printer_state = printer.print_stats.state %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 0 %}\n{% if printer_state == "printing" or printer_state == "paused" %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel VALUE={printer.toolhead.max_accel}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel_to_decel VALUE={printer.toolhead.max_accel_to_decel}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=velocity VALUE={printer.toolhead.max_velocity}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=square_corner_velocity VALUE={printer.toolhead.square_corner_velocity}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=pressure_advance VALUE={printer.extruder.pressure_advance}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=speed_factor VALUE={printer.gcode_move.speed_factor}\nSET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=0\nSET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=0\nSET_TMC_CURRENT STEPPER=stepper_x CURRENT=1.0\nSET_TMC_CURRENT STEPPER=stepper_y CURRENT=1.0\nG4 P1000\n\n\nSET_VELOCITY_LIMIT ACCEL=2500\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500\nSET_VELOCITY_LIMIT VELOCITY=150\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nSET_PRESSURE_ADVANCE ADVANCE=0.05\nM220 S50\n\n{% set tmp = printer[\'output_pin fan0\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={tmp}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan0_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\nSET_PIN PIN=fan0 VALUE={tmp}\n{% endif %}\n\n{% set tmp = printer[\'output_pin fan1\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer[\'output_pin fan1\'].value * 255}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan1_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\nSET_PIN PIN=fan1 VALUE={tmp}\n{% endif %}\n\n{% set tmp = printer[\'output_pin fan2\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer[\'output_pin fan2\'].value * 255}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan2_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\nSET_PIN PIN=fan2 VALUE={tmp}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=1\nSET_QMODE_FLAG FLAG=1\n{% endif %}\n{% endif %}', 'description': 'G-Code macro', 'variable_flag': '0', 'variable_accel': '0', 'variable_accel_to_decel': '0', 'variable_velocity': '0', 'variable_square_corner_velocity': '0', 'variable_pressure_advance': '0.0', 'variable_fan0_value': '0.00', 'variable_fan1_value': '0.00', 'variable_fan2_value': '0.00', 'variable_speed_factor': '0', 'variable_max_accel': '2500', 'variable_max_accel_to_decel': '2500'}, 'gcode_macro qmode_exit': {'gcode': '\n{% set printer_state = printer.print_stats.state %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 %}\n{% if printer_state == "printing" or printer_state == "paused" %}\nSET_VELOCITY_LIMIT ACCEL={printer[\'gcode_macro Qmode\'].accel}\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer[\'gcode_macro Qmode\'].accel_to_decel}\nSET_VELOCITY_LIMIT VELOCITY={printer[\'gcode_macro Qmode\'].velocity}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={printer[\'gcode_macro Qmode\'].square_corner_velocity}\nSET_PRESSURE_ADVANCE ADVANCE={printer[\'gcode_macro Qmode\'].pressure_advance}\nM220 S{printer[\'gcode_macro Qmode\'].speed_factor * 100}\n\n{% set X_RUN_CUR = printer.configfile.settings[\'tmc2209 stepper_x\'].run_current %}\n{% set Y_RUN_CUR = printer.configfile.settings[\'tmc2209 stepper_y\'].run_current %}\nSET_TMC_CURRENT STEPPER=stepper_x CURRENT={X_RUN_CUR}\nSET_TMC_CURRENT STEPPER=stepper_y CURRENT={Y_RUN_CUR}\nSET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=1\nSET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=1\nG4 P1000\n\n{% if printer[\'output_pin fan0\'].value != 0 %}\n{action_respond_info("fan0_value = %s" % printer[\'gcode_macro Qmode\'].fan0_value)}\nSET_PIN PIN=fan0 VALUE={printer[\'gcode_macro Qmode\'].fan0_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE=0\n{% endif %}\n{% if printer[\'output_pin fan1\'].value != 0 %}\n{action_respond_info("fan1_value = %s" % printer[\'gcode_macro Qmode\'].fan1_value)}\nSET_PIN PIN=fan1 VALUE={printer[\'gcode_macro Qmode\'].fan1_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE=0\n{% endif %}\n{% if printer[\'output_pin fan2\'].value != 0 %}\n{action_respond_info("fan2_value = %s" % printer[\'gcode_macro Qmode\'].fan2_value)}\nSET_PIN PIN=fan2 VALUE={printer[\'gcode_macro Qmode\'].fan2_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE=0\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=0\nSET_QMODE_FLAG FLAG=0\n{% endif %}\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro m204': {'gcode': '\n\n{% set get_params = "" %}\n{% set qmode_max_accel = printer[\'gcode_macro Qmode\'].max_accel|string %}\n{% if \'S\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.S|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'S\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'S\' + params.S) %}\n{% endif %}\n{% endif %}\n{% if \'P\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.P|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'P\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'P\' + params.P) %}\n{% endif %}\n{% endif %}\n{% if \'T\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.T|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'T\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'T\' + params.T) %}\n{% endif %}\n{% endif %}\nM204.1 {get_params}', 'rename_existing': 'M204.1', 'description': 'G-Code macro'}, 'gcode_macro m205': {'gcode': "\n{% if 'X' in params %}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.X}\n{% elif 'Y' in params %}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.Y}\n{% endif %}", 'description': 'G-Code macro'}, 'gcode_macro m107': {'gcode': '\n{% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}\n{% if params.P is defined %}\n{% if params.P|int < fans %}\nSET_PIN PIN=fan{params.P|int} VALUE=0\n{% else %}\nSET_PIN PIN=fan0 VALUE=0\n{% endif %}\n{% else %}\nSET_PIN PIN=fan0 VALUE=0\nSET_PIN PIN=fan2 VALUE=0\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro m900': {'gcode': "\n{% if 'K' in params %}\n{% if 'E' in params %}\nSET_PRESSURE_ADVANCE EXTRUDER={params.E} ADVANCE={params.K}\n{% else %}\nSET_PRESSURE_ADVANCE ADVANCE={params.K}\n{% endif %}\n{% endif %}", 'description': 'G-Code macro'}, 'delayed_gcode wait_temp': {'gcode': '\n{% set cur_temp = printer.extruder.temperature %}\n{% if cur_temp|int < 40 %}\nWAIT_TEMP_END\n{% else %}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=5\n{% endif %}', 'initial_duration': 0.0}, 'gcode_macro wait_temp_start': {'gcode': '\n{action_respond_info("wait temp start\\n")}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=1\nM106 P0 S255', 'description': 'G-Code macro'}, 'gcode_macro wait_temp_end': {'gcode': '\n{action_respond_info("wait temp end\\n")}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=0\nM106 P0 S0', 'description': 'G-Code macro'}, 'gcode_macro print_calibration': {'gcode': '\nCX_PRINT_LEVELING_CALIBRATION', 'description': 'G-Code macro'}, 'gcode_macro first_floor_pause_position': {'gcode': "\n{% set extruder_temp = printer.custom_macro.g28_ext_temp %}\nM104 S{extruder_temp}\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer['gcode_macro PRINTER_PARAM'].max_x_position|float + 1 %}\nG90\nG1 Z2 F600\nG1 X{x_park} Y{y_park} F6000\nG1 Z0.2 F600", 'description': 'G-Code macro'}, 'gcode_macro accurate_g28': {'gcode': '\nACCURATE_HOME_Z', 'description': 'G-Code macro'}, 'gcode_macro print_prepared': {'gcode': '\nSET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=1\n{action_respond_info("print prepared")}', 'description': 'G-Code macro'}, 'gcode_macro print_prepare_clear': {'gcode': '\nSET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=0', 'description': 'G-Code macro'}, 'gcode_macro end_print_point_without_lifting': {'gcode': '\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\nG91\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z2.0 F600\nG90\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("end print xyz_axes is NULL\\n")}\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro end_print_point': {'gcode': '\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < (max_z / 2) %}\n{% set z_safe = (max_z / 2) - act_z %}\n{% elif act_z < max_z %}\n{% set z_safe = 2.0 %}\n{% endif %}\nG91\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z2.0 F600\nG90\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F30000\n{% if z_safe > 2.0 %}\nG91\n{% set z_safe = z_safe - 2.0 %}\nG1 Z{z_safe} F600\nG90\n{% endif %}\n{% else %}\n{action_respond_info("end print xyz_axes is NULL\\n")}\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro end_print': {'gcode': '\nQmode_exit\nEXCLUDE_OBJECT_RESET\nPRINT_PREPARE_CLEAR\nM220 S100\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=2500\nTURN_OFF_HEATERS\nM107 P1\nM107 P2\nEND_PRINT_POINT\nWAIT_TEMP_START\nM84', 'description': 'G-Code macro'}, 'gcode_macro first_floor_pause': {'gcode': '\n\n{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float %}\n\n\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\n\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < (max_z - 2.0) %}\n{% set z_safe = 2.0 %}\n{% elif act_z < max_z %}\n{% set z_safe = max_z - act_z %}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}\nPAUSE_BASE\nG91\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z{z_safe} F600\nG90\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("Printer not homed")}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer[\'output_pin fan2\'].value}\n{% set fspeed = printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed %}\n{action_respond_info("fan2_value = %s \\n" % (fspeed))}\n\nM106 P2 S0\nSET_E_MIN_CURRENT', 'description': 'Pause the first floor print', 'variable_extrude': '2.0'}, 'gcode_macro first_floor_resume': {'gcode': '\nRESTORE_E_CURRENT\n{% if printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed > 0 %}\n\n\n\n{% set s_value = (printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed * 255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) * 255 / (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min)|float %}\nM106 P2 S{s_value}\n{% endif %}\n\n{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float + 1.0 %}\n\n{% if \'VELOCITY\' in params|upper %}\n{% set get_params = (\'VELOCITY=\' + params.VELOCITY) %}\n{%else %}\n{% set get_params = "" %}\n{% endif %}\n\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG91\nG1 E{E} F2100\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nM400\nRESUME_BASE {get_params}', 'description': 'Resume the first floor print'}, 'gcode_macro pause': {'gcode': '\n\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\n\n\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\n\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < 48.0 %}\n{% set z_safe = 50.0 - act_z %}\n{% elif act_z < (max_z - 2.0) %}\n{% set z_safe = 2.0 %}\n{% elif act_z < max_z %}\n{% set z_safe = max_z - act_z %}\n{% endif %}\n{action_respond_info("z_safe = %s"% (z_safe))}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}\nPAUSE_BASE\nG91\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE={printer.extruder.target}\nM104 S140\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z{z_safe} F600\nM400\nG90\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("Printer not homed")}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer[\'output_pin fan2\'].value}\n{% set fspeed = printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed %}\n{action_respond_info("fan2_value = %s \\n" % (fspeed))}\n\nM106 P2 S0\nSET_E_MIN_CURRENT', 'rename_existing': 'PAUSE_BASE', 'description': 'Pause the actual running print', 'variable_extrude': '2.0'}, 'gcode_macro inputshaper': {'gcode': "\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0\nG90\nG28\n{% set POSITION_X = printer.configfile.settings['stepper_x'].position_max/2 %}\n{% set POSITION_Y = printer.configfile.settings['stepper_y'].position_max/2 %}\nG1 X{POSITION_X} Y{POSITION_Y} F6000\nG1 Z10 F600\nSHAPER_CALIBRATE\nCXSAVE_CONFIG\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1", 'description': 'G-Code macro'}, 'gcode_macro bedpid': {'gcode': '\nPID_CALIBRATE HEATER=heater_bed TARGET=100\nSAVE_CONFIG', 'description': 'G-Code macro'}, 'gcode_macro tunoffinputshaper': {'gcode': '\nSET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0', 'description': 'G-Code macro'}, 'gcode_macro resume': {'gcode': '\nRESTORE_E_CURRENT\n{% if printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int != 0 %}\n{% if printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int > printer.extruder.temperature %}\nM109 S{printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int}\n{% else %}\nM104 S{printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE=0\n{% endif %}\n{% if printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed > 0 %}\n\n\n\n{% set s_value = (printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed * 255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) * 255 / (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min)|float %}\nM106 P2 S{s_value}\n{% endif %}\n{% set z_resume_move = printer[\'gcode_macro PRINTER_PARAM\'].z_safe_pause|int %}\n{% if z_resume_move > 2 %}\n{% set z_resume_move = z_resume_move - 2 %}\nG91\nG1 Z-{z_resume_move} F600\nM400\n{% endif %}\n{action_respond_info("z_resume_move = %s"% (z_resume_move))}\n\n{% set E = printer["gcode_macro PAUSE"].extrude|float + 1.0 %}\n\n{% if \'VELOCITY\' in params|upper %}\n{% set get_params = (\'VELOCITY=\' + params.VELOCITY) %}\n{%else %}\n{% set get_params = "" %}\n{% endif %}\n\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG91\nG1 E{E} F2100\nG90\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nM400\nRESUME_BASE {get_params}', 'rename_existing': 'RESUME_BASE', 'description': 'Resume the actual running print'}, 'gcode_macro cancel_print': {'gcode': '\nEND_PRINT\nCANCEL_PRINT_BASE', 'rename_existing': 'CANCEL_PRINT_BASE', 'description': 'Cancel the actual running print'}, 'gcode_macro g29': {'gcode': '\n{% if \'PROBE_COUNT\' in params|upper %}\n{% set get_count = (\'PROBE_COUNT\' + params.PROBE_COUNT) %}\n{%else %}\n{% set get_count = "" %}\n{% endif %}\n\n{% set bed_temp = printer.custom_macro.default_bed_temp %}\n{% set extruder_temp = printer.custom_macro.g28_ext_temp %}\n{% set nozzle_clear_temp = printer.custom_macro.default_extruder_temp %}\n\n{% if \'BED_TEMP\' in params|upper %}\n{% set bed_temp = params.BED_TEMP %}\n{% endif %}\n\n{% if \'EXTRUDER_TEMP\' in params|upper %}\n{% set nozzle_clear_temp = params.EXTRUDER_TEMP %}\n{% endif %}\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0\n\nG28\nBED_MESH_CLEAR\nNOZZLE_CLEAR HOT_MIN_TEMP={extruder_temp} HOT_MAX_TEMP={nozzle_clear_temp} BED_MAX_TEMP={bed_temp}\nACCURATE_G28\nM204 S5000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=5000\nBED_MESH_CALIBRATE {get_count}\nBED_MESH_OUTPUT\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F2000\nCXSAVE_CONFIG\nTURN_OFF_HEATERS\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1', 'description': 'G-Code macro'}, 'fan_feedback': {'print_delay_time': 5.0, 'current_delay_time': 2.0, 'fan0_pin': 'nozzle_mcu:PB4', 'fan1_pin': 'PC6'}, 'custom_macro': {'default_extruder_temp': 240.0, 'default_bed_temp': 50.0, 'g28_ext_temp': 140.0, 'nozzle_clear': True, 'calibration': 0}, 'gcode_macro get_timelapse_setup': {'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% set output_txt = ["Timelapse Setup:"] %}\n{% set _dummy = output_txt.append("enable: %s" % tl.enable) %}\n{% set _dummy = output_txt.append("park: %s" % tl.park.enable) %}\n{% if tl.park.enable %}\n{% set _dummy = output_txt.append("park position: %s time: %s s" % (tl.park.pos, tl.park.time)) %}\n{% set _dummy = output_txt.append("park cord x:%s y:%s dz:%s" % (tl.park.coord.x, tl.park.coord.y, tl.park.coord.dz)) %}\n{% set _dummy = output_txt.append("travel speed: %s mm/s" % tl.speed.travel) %}\n{% endif %}\n{% set _dummy = output_txt.append("fw_retract: %s" % tl.extruder.fw_retract) %}\n{% if not tl.extruder.fw_retract %}\n{% set _dummy = output_txt.append("retract: %s mm speed: %s mm/s" % (tl.extruder.retract, tl.speed.retract)) %}\n{% set _dummy = output_txt.append("extrude: %s mm speed: %s mm/s" % (tl.extruder.extrude, tl.speed.extrude)) %}\n{% endif %}\n{% set _dummy = output_txt.append("verbose: %s" % tl.verbose) %}\n{action_respond_info(output_txt|join("\\n"))}', 'description': 'Print the Timelapse setup'}, 'gcode_macro _set_timelapse_setup': {'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n\n{% set min = printer.toolhead.axis_minimum %}\n{% set max = printer.toolhead.axis_maximum %}\n{% set round_bed = True if printer.configfile.settings.printer.kinematics is in [\'delta\',\'polar\',\'rotary_delta\',\'winch\']\nelse False %}\n{% set park = {\'min\' : {\'x\': (min.x / 1.42)|round(3) if round_bed else min.x|round(3),\n\'y\': (min.y / 1.42)|round(3) if round_bed else min.y|round(3)},\n\'max\' : {\'x\': (max.x / 1.42)|round(3) if round_bed else max.x|round(3),\n\'y\': (max.y / 1.42)|round(3) if round_bed else max.y|round(3)},\n\'center\': {\'x\': (max.x-(max.x-min.x)/2)|round(3),\n\'y\': (max.y-(max.y-min.y)/2)|round(3)}} %}\n\n{% if params.ENABLE %}\n{% if params.ENABLE|lower is in [\'true\', \'false\'] %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=enable VALUE={True if params.ENABLE|lower == \'true\' else False}\n{% else %}\n{action_raise_error("ENABLE=%s not supported. Allowed values are [True, False]" % params.ENABLE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.VERBOSE %}\n{% if params.VERBOSE|lower is in [\'true\', \'false\'] %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=verbose VALUE={True if params.VERBOSE|lower == \'true\' else False}\n{% else %}\n{action_raise_error("VERBOSE=%s not supported. Allowed values are [True, False]" % params.VERBOSE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_X %}\n{% if params.CUSTOM_POS_X|float >= min.x and params.CUSTOM_POS_X|float <= max.x %}\n{% set _dummy = tl.park.custom.update({\'x\':params.CUSTOM_POS_X|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_X=%s must be within [%s - %s]" % (params.CUSTOM_POS_X, min.x, max.x))}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_Y %}\n{% if params.CUSTOM_POS_Y|float >= min.y and params.CUSTOM_POS_Y|float <= max.y %}\n{% set _dummy = tl.park.custom.update({\'y\':params.CUSTOM_POS_Y|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_Y=%s must be within [%s - %s]" % (params.CUSTOM_POS_Y, min.y, max.y))}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_DZ %}\n{% if params.CUSTOM_POS_DZ|float >= min.z and params.CUSTOM_POS_DZ|float <= max.z %}\n{% set _dummy = tl.park.custom.update({\'dz\':params.CUSTOM_POS_DZ|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_DZ=%s must be within [%s - %s]" % (params.CUSTOM_POS_DZ, min.z, max.z))}\n{% endif %}\n{% endif %}\n{% if params.PARK_ENABLE %}\n{% if params.PARK_ENABLE|lower is in [\'true\', \'false\'] %}\n{% set _dummy = tl.park.update({\'enable\':True if params.PARK_ENABLE|lower == \'true\' else False}) %}\n{% else %}\n{action_raise_error("PARK_ENABLE=%s not supported. Allowed values are [True, False]" % params.PARK_ENABLE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.PARK_POS %}\n{% if params.PARK_POS|lower is in [\'center\',\'front_left\',\'front_right\',\'back_left\',\'back_right\',\'custom\',\'x_only\',\'y_only\'] %}\n{% set dic = {\'center\' : {\'x\': park.center.x , \'y\': park.center.y , \'dz\': 1 },\n\'front_left\' : {\'x\': park.min.x , \'y\': park.min.y , \'dz\': 0 },\n\'front_right\' : {\'x\': park.max.x , \'y\': park.min.y , \'dz\': 0 },\n\'back_left\' : {\'x\': park.min.x , \'y\': park.max.y , \'dz\': 0 },\n\'back_right\' : {\'x\': park.max.x , \'y\': park.max.y , \'dz\': 0 },\n\'custom\' : {\'x\': tl.park.custom.x, \'y\': tl.park.custom.y, \'dz\': tl.park.custom.dz},\n\'x_only\' : {\'x\': tl.park.custom.x, \'y\': \'none\' , \'dz\': tl.park.custom.dz},\n\'y_only\' : {\'x\': \'none\' , \'y\': tl.park.custom.y, \'dz\': tl.park.custom.dz}} %}\n{% set _dummy = tl.park.update({\'pos\':params.PARK_POS|lower}) %}\n{% set _dummy = tl.park.update({\'coord\':dic[tl.park.pos]}) %}\n{% else %}\n{action_raise_error("PARK_POS=%s not supported. Allowed values are [CENTER, FRONT_LEFT, FRONT_RIGHT, BACK_LEFT, BACK_RIGHT, CUSTOM, X_ONLY, Y_ONLY]"\n% params.PARK_POS|upper)}\n{% endif %}\n{% endif %}\n{% if params.PARK_TIME %}\n{% if params.PARK_TIME|float >= 0.0 %}\n{% set _dummy = tl.park.update({\'time\':params.PARK_TIME|float|round(3)}) %}\n{% else %}\n{action_raise_error("PARK_TIME=%s must be a positive number" % params.PARK_TIME)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=park VALUE="{tl.park}"\n{% if params.TRAVEL_SPEED %}\n{% if params.TRAVEL_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'travel\':params.TRAVEL_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("TRAVEL_SPEED=%s must be larger than 0" % params.TRAVEL_SPEED)}\n{% endif %}\n{% endif %}\n{% if params.RETRACT_SPEED %}\n{% if params.RETRACT_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'retract\':params.RETRACT_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("RETRACT_SPEED=%s must be larger than 0" % params.RETRACT_SPEED)}\n{% endif %}\n{% endif %}\n{% if params.EXTRUDE_SPEED %}\n{% if params.EXTRUDE_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'extrude\':params.EXTRUDE_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("EXTRUDE_SPEED=%s must be larger than 0" % params.EXTRUDE_SPEED)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=speed VALUE="{tl.speed}"\n{% if params.EXTRUDE_DISTANCE %}\n{% if params.EXTRUDE_DISTANCE|float >= 0.0 %}\n{% set _dummy = tl.extruder.update({\'extrude\':params.EXTRUDE_DISTANCE|float|round(3)}) %}\n{% else %}\n{action_raise_error("EXTRUDE_DISTANCE=%s must be specified as positiv number" % params.EXTRUDE_DISTANCE)}\n{% endif %}\n{% endif %}\n{% if params.RETRACT_DISTANCE %}\n{% if params.RETRACT_DISTANCE|float >= 0.0 %}\n{% set _dummy = tl.extruder.update({\'retract\':params.RETRACT_DISTANCE|float|round(3)}) %}\n{% else %}\n{action_raise_error("RETRACT_DISTANCE=%s must be specified as positiv number" % params.RETRACT_DISTANCE)}\n{% endif %}\n{% endif %}\n{% if params.FW_RETRACT %}\n{% if params.FW_RETRACT|lower is in [\'true\', \'false\'] %}\n{% if \'firmware_retraction\' in printer.configfile.settings %}\n{% set _dummy = tl.extruder.update({\'fw_retract\': True if params.FW_RETRACT|lower == \'true\' else False}) %}\n{% else %}\n{% set _dummy = tl.extruder.update({\'fw_retract\':False}) %}\n{% if params.FW_RETRACT|capitalize == \'True\' %}\n{action_raise_error("[firmware_retraction] not defined in printer.cfg. Can not enable fw_retract")}\n{% endif %}\n{% endif %}\n{% else %}\n{action_raise_error("FW_RETRACT=%s not supported. Allowed values are [True, False]" % params.FW_RETRACT|capitalize)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=extruder VALUE="{tl.extruder}"\n{% if printer.configfile.settings[\'gcode_macro pause\'] is defined %}\n{% set _dummy = tl.macro.update({\'pause\': printer.configfile.settings[\'gcode_macro pause\'].rename_existing}) %}\n{% endif %}\n{% if printer.configfile.settings[\'gcode_macro resume\'] is defined %}\n{% set _dummy = tl.macro.update({\'resume\': printer.configfile.settings[\'gcode_macro resume\'].rename_existing}) %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=macro VALUE="{tl.macro}"', 'description': 'Set user parameters for timelapse'}, 'gcode_macro timelapse_take_frame': {'gcode': '\n{% set hyperlapse = True if params.HYPERLAPSE and params.HYPERLAPSE|lower ==\'true\' else False %}\n{% if enable %}\n{% if (hyperlapse and printer[\'gcode_macro HYPERLAPSE\'].run) or\n(not hyperlapse and not printer[\'gcode_macro HYPERLAPSE\'].run) %}\n{% if park.enable %}\n{% set pos = {\'x\': \'X\' + park.coord.x|string if park.pos != \'y_only\' else \'\',\n\'y\': \'Y\' + park.coord.y|string if park.pos != \'x_only\' else \'\',\n\'z\': \'Z\'+ [printer.gcode_move.gcode_position.z + park.coord.dz, printer.toolhead.axis_maximum.z]|min|string} %}\n{% set restore = {\'absolute\': {\'coordinates\': printer.gcode_move.absolute_coordinates,\n\'extrude\' : printer.gcode_move.absolute_extrude},\n\'speed\' : printer.gcode_move.speed,\n\'e\' : printer.gcode_move.gcode_position.e,\n\'factor\' : {\'speed\' : printer.gcode_move.speed_factor,\n\'extrude\': printer.gcode_move.extrude_factor}} %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=restore VALUE="{restore}"\n{% if not printer[printer.toolhead.extruder].can_extrude %}\n{% if verbose %}{action_respond_info("Timelapse: Warning, minimum extruder temperature not reached!")}{% endif %}\n{% else %}\n{% if extruder.fw_retract %}\nG10\n{% else %}\nM83\nG0 E-{extruder.retract} F{speed.retract * 60}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=True\n{macro.pause}\nSET_GCODE_OFFSET X=0 Y=0\nG90\n{% if "xyz" not in printer.toolhead.homed_axes %}\n{% if verbose %}{action_respond_info("Timelapse: Warning, axis not homed yet!")}{% endif %}\n{% else %}\nG0 {pos.x} {pos.y} {pos.z} F{speed.travel * 60}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=takingframe VALUE=True\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={check_time}\nM400\n{% endif %}\n_TIMELAPSE_NEW_FRAME HYPERLAPSE={hyperlapse}\n{% endif %}\n{% else %}\n{% if verbose %}{action_respond_info("Timelapse: disabled, take frame ignored")}{% endif %}\n{% endif %}', 'description': 'Take Timelapse shoot', 'variable_enable': 'False', 'variable_takingframe': 'False', 'variable_park': "{'enable': False,\n'pos' : 'center',\n'time' : 0.1,\n'custom': {'x': 0, 'y': 0, 'dz': 0},\n'coord' : {'x': 0, 'y': 0, 'dz': 0}}", 'variable_extruder': "{'fw_retract': False,\n'retract': 1.0,\n'extrude': 1.0}", 'variable_speed': "{'travel': 100,\n'retract': 15,\n'extrude': 15}", 'variable_verbose': 'True', 'variable_check_time': '0.5', 'variable_restore': "{'absolute': {'coordinates': True, 'extrude': True}, 'speed': 1500, 'e':0, 'factor': {'speed': 1.0, 'extrude': 1.0}}", 'variable_macro': "{'pause': 'PAUSE', 'resume': 'RESUME'}", 'variable_is_paused': 'False'}, 'gcode_macro _timelapse_new_frame': {'gcode': '\n{action_call_remote_method("timelapse_newframe",\nmacropark=printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'].park,\nhyperlapse=params.HYPERLAPSE)}', 'description': 'action call for timelapse shoot. must be a seperate macro'}, 'delayed_gcode _wait_timelapse_take_frame': {'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% set factor = {\'speed\': printer.gcode_move.speed_factor, \'extrude\': printer.gcode_move.extrude_factor} %}\n{% if tl.takingframe %}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={tl.check_time}\n{% else %}\n{tl.macro.resume} VELOCITY={tl.speed.travel}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=False\n{% if not printer[printer.toolhead.extruder].can_extrude %}\n{action_respond_info("Timelapse: Warning minimum extruder temperature not reached!")}\n{% else %}\n{% if tl.extruder.fw_retract %}\nG11\n{% else %}\nG0 E{tl.extruder.extrude} F{tl.speed.extrude * 60}\nG0 F{tl.restore.speed}\n{% if tl.restore.absolute.extrude %}\nM82\nG92 E{tl.restore.e}\n{% endif %}\n{% endif %}\n{% endif %}\n{% if tl.restore.factor.speed != factor.speed %} M220 S{(factor.speed*100)|round(0)} {% endif %}\n{% if tl.restore.factor.extrude != factor.extrude %} M221 S{(factor.extrude*100)|round(0)} {% endif %}\n{% if not tl.restore.absolute.coordinates %} G91 {% endif %}\n{% endif %}', 'initial_duration': 0.0}, 'gcode_macro hyperlapse': {'gcode': '\n{% set cycle = params.CYCLE|default(30)|int %}\n{% if params.ACTION and params.ACTION|lower == \'start\' %}\n{action_respond_info("Hyperlapse: frames started (Cycle %d sec)" % cycle)}\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=True\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=cycle VALUE={cycle}\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={cycle}\nTIMELAPSE_TAKE_FRAME HYPERLAPSE=True\n{% elif params.ACTION and params.ACTION|lower == \'stop\' %}\n{% if run %}{action_respond_info("Hyperlapse: frames stopped")}{% endif %}\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=False\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION=0\n{% else %}\n{action_raise_error("Hyperlapse: No valid input parameter\nUse:\n- HYPERLAPSE ACTION=START [CYCLE=time]\n- HYPERLAPSE ACTION=STOP")}\n{% endif %}', 'description': 'Start/Stop a hyperlapse recording', 'variable_cycle': '0', 'variable_run': 'False'}, 'delayed_gcode _hyperlapse_loop': {'gcode': '\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={printer["gcode_macro HYPERLAPSE"].cycle}\nTIMELAPSE_TAKE_FRAME HYPERLAPSE=True', 'initial_duration': 0.0}, 'gcode_macro timelapse_render': {'gcode': '\n{action_respond_info("Timelapse: Rendering started")}\n{action_call_remote_method("timelapse_render", byrendermacro="True")}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=render VALUE=True\n{printer.configfile.settings[\'gcode_macro pause\'].rename_existing}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5', 'description': 'Render Timelapse video and wait for the result', 'variable_render': 'False', 'variable_run_identifier': '0'}, 'delayed_gcode _wait_timelapse_render': {'gcode': '\n{% set ri = printer[\'gcode_macro TIMELAPSE_RENDER\'].run_identifier % 4 %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=run_identifier VALUE={ri + 1}\n{% if printer[\'gcode_macro TIMELAPSE_RENDER\'].render %}\nM117 Rendering {[\'-\',\'\\\\\',\'|\',\'/\'][ri]}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5\n{% else %}\n{action_respond_info("Timelapse: Rendering finished")}\nM117\n{printer.configfile.settings[\'gcode_macro resume\'].rename_existing}\n{% endif %}', 'initial_duration': 0.0}, 'gcode_macro test_stream_delay': {'gcode': '\n{% set min = printer.toolhead.axis_minimum %}\n{% set max = printer.toolhead.axis_maximum %}\n{% set act = printer.toolhead.position %}\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% if act.z > 5.0 %}\nG0 X{min.x + 5.0} F{tl.speed.travel|int * 60}\nG0 X{(max.x-min.x)/2}\nG4 P{tl.park.time|float * 1000}\n_TIMELAPSE_NEW_FRAME HYPERLAPSE=FALSE\nG0 X{max.x - 5.0}\n{% else %}\n{action_raise_error("Toolhead z %.3f to low. Please place head above z = 5.0" % act.z)}\n{% endif %}', 'description': 'Helper macro to find stream and park delay'}, 'save_variables': {'filename': '/usr/data/printer_data/config/Helper-Script/variables.cfg'}, 'respond': {'default_type': 'echo', 'default_prefix': 'echo:'}, 'gcode_macro set_gcode_offset': {'gcode': '\n{% if printer.save_variables.variables.zoffset %}\n{% set zoffset = printer.save_variables.variables.zoffset %}\n{% else %}\n{% set zoffset = {\'z\': None} %}\n{% endif %}\n{% set ns = namespace(zoffset={\'z\': zoffset.z}) %}\n_SET_GCODE_OFFSET {% for p in params %}{\'%s=%s \'% (p, params[p])}{% endfor %}\n{%if \'Z\' in params %}{% set null = ns.zoffset.update({\'z\': params.Z}) %}{% endif %}\n{%if \'Z_ADJUST\' in params %}\n{%if ns.zoffset.z == None %}{% set null = ns.zoffset.update({\'z\': 0}) %}{% endif %}\n{% set null = ns.zoffset.update({\'z\': (ns.zoffset.z | float) + (params.Z_ADJUST | float)}) %}\n{% endif %}\nSAVE_VARIABLE VARIABLE=zoffset VALUE="{ns.zoffset}"', 'rename_existing': '_SET_GCODE_OFFSET', 'description': 'Saving Z-Offset'}, 'delayed_gcode load_gcode_offsets': {'gcode': '\n{% if printer.save_variables.variables.zoffset %}\n{% set zoffset = printer.save_variables.variables.zoffset %}\n_SET_GCODE_OFFSET {% for axis, offset in zoffset.items() if zoffset[axis] %}{ "%s=%s " % (axis, offset) }{% endfor %}\nRESPOND TYPE=command MSG="Loaded Z-Offset from variables.cfg: {zoffset.z}mm"\n{% endif %}', 'initial_duration': 2.0}, 'calibrate_shaper_config': {'shaper_type': 'mzv', 'shaper_type_x': 'mzv', 'shaper_freq_x': 0.0, 'shaper_type_y': 'mzv', 'shaper_freq_y': 0.0}, 'gcode_shell_command resonance_graph': {'command': '/usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/calibrate_shaper.py', 'timeout': 600.0, 'verbose': False}, 'gcode_shell_command belts_graph': {'command': '/usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/graph_belts.py', 'timeout': 600.0, 'verbose': False}, 'gcode_shell_command delete_graph': {'command': 'sh /usr/data/helper-script/files/improved-shapers/delete_graph.sh', 'timeout': 600.0, 'verbose': False}, 'gcode_shell_command delete_csv': {'command': 'sh /usr/data/helper-script/files/improved-shapers/delete_csv.sh', 'timeout': 600.0, 'verbose': False}, 'gcode_macro input_shaper_calibration': {'gcode': '\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nRESPOND TYPE=command MSG="Measuring X and Y Resonances..."\nSHAPER_CALIBRATE\nM400\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Input Shaper Calibration complete!"\nSAVE_CONFIG', 'description': 'Measure X and Y Axis Resonances and Save values'}, 'gcode_macro test_resonances_graphs': {'gcode': '\nRUN_SHELL_COMMAND CMD=delete_graph\n{% set x_png = params.X_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_x.png") %}\n{% set y_png = params.Y_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_y.png") %}\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nRESPOND TYPE=command MSG="Testing X Resonances..."\nTEST_RESONANCES AXIS=X NAME=x\nM400\nRESPOND TYPE=command MSG="Generating X Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_x_x.csv -o {x_png}"\nRESPOND TYPE=command MSG="X Graph (resonances_x.png) is now available in /Helper-Script/improved-shapers folder."\nRESPOND TYPE=command MSG="Testing Y Resonances..."\nTEST_RESONANCES AXIS=Y NAME=y\nM400\nRESPOND TYPE=command MSG="Generating Y Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_y_y.csv -o {y_png}"\nRESPOND TYPE=command MSG="Y Graph (resonances_y.png) is now available in /Helper-Script/improved-shapers folder."\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Resonances Test complete!"', 'description': 'Test X and Y Axis Resonances and Generate Graphs'}, 'gcode_macro belts_shaper_calibration': {'gcode': '\nRUN_SHELL_COMMAND CMD=delete_graph\n{% set min_freq = params.FREQ_START|default(5)|float %}\n{% set max_freq = params.FREQ_END|default(133.33)|float %}\n{% set hz_per_sec = params.HZ_PER_SEC|default(1)|float %}\n{% set png_width = params.PNG_WIDTH|default(8)|float %}\n{% set png_height = params.PNG_HEIGHT|default(4.8)|float %}\n{% set png_out_path = params.PNG_OUT_PATH|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/belts_calibration.png") %}\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nTEST_RESONANCES AXIS=1,1 OUTPUT=raw_data NAME=b FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}\nM400\nTEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data NAME=a FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}\nM400\nRESPOND TYPE=command MSG="Generating Belts Frequency Profiles Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=belts_graph PARAMS="-w {png_width} -l {png_height} -n -o {png_out_path} -k /usr/share/klipper /tmp/raw_data_axis=1.000,-1.000_a.csv /tmp/raw_data_axis=1.000,1.000_b.csv"\nRESPOND TYPE=command MSG="Graph (belts_calibration.png) is now available in /Helper-Script/improved-shapers folder."\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Belts Shaper Calibration complete!"', 'description': 'Perform a custom half-axis test to analyze and compare the frequency profiles of individual belts on CoreXY printers'}, 'gcode_macro excitate_axis_at_freq': {'gcode': '\n{% set frequency = params.FREQUENCY|default(25)|int %}\n{% set time = params.TIME|default(10)|int %}\n{% set axis = params.AXIS|default("x")|string|lower %}\n{% if axis not in ["x", "y", "a", "b"] %}\n{ action_raise_error("AXIS selection is invalid. Should be either x, y, a or b!") }\n{% endif %}\n{% if axis == "a" %}\n{% set axis = "1,-1" %}\n{% elif axis == "b" %}\n{% set axis = "1,1" %}\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nTEST_RESONANCES OUTPUT=raw_data AXIS={axis} FREQ_START={frequency-1} FREQ_END={frequency+1} HZ_PER_SEC={1/(time/3)}\nM400', 'description': 'Maintain a specified excitation frequency for a period of time to diagnose and locate a vibration source'}, 'duplicate_pin_override': {'pins': ('PC0', 'PC5', 'PB2', 'ADC_TEMPERATURE')}, 'temperature_fan chamber_fan': {'max_power': 1.0, 'kick_start_time': 0.1, 'off_below': 0.0, 'cycle_time': 0.01, 'hardware_pwm': False, 'shutdown_speed': 0.0, 'pin': 'PC0', 'min_temp': 0.0, 'max_temp': 70.0, 'sensor_type': 'EPCOS 100K B57560G104F', 'pullup_resistor': 4700.0, 'inline_resistor': 0.0, 'sensor_pin': 'PC5', 'max_speed': 1.0, 'min_speed': 0.0, 'target_temp': 35.0, 'control': 'watermark', 'max_delta': 2.0}, 'temperature_fan mcu_fan': {'max_power': 1.0, 'kick_start_time': 0.1, 'off_below': 0.0, 'cycle_time': 0.01, 'hardware_pwm': False, 'shutdown_speed': 0.0, 'pin': 'PB2', 'min_temp': 0.0, 'max_temp': 100.0, 'sensor_type': 'temperature_mcu', 'sensor_mcu': 'mcu', 'max_speed': 1.0, 'min_speed': 0.0, 'target_temp': 50.0, 'control': 'watermark', 'max_delta': 2.0}, 'output_pin mcu_fan': {'pwm': True, 'pin': 'PB2', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 255.0, 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'gcode_macro m141': {'gcode': '\n{% set s = params.S|float %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=chamber_fan TARGET={s}\nRESPOND TYPE=command MSG="Chamber target temperature: {s}°C"', 'description': 'Set Chamber Temperature with slicers'}, 'gcode_macro m191': {'gcode': '\n{% set s = params.S|float %}\n{% set chamber_temp = printer["temperature_sensor chamber_temp"].temperature|float %}\n{% if s > 0 %}\nM141 S{s}\n{% endif %}\n{% if s > chamber_temp and s <= 90 %}\nM140 S100\nRESPOND TYPE=command MSG="Waiting for the bed to heat up the chamber..."\nTEMPERATURE_WAIT SENSOR="temperature_fan chamber_fan" MINIMUM={s-1}\nRESPOND TYPE=command MSG="Chamber target temperature reached: {s}°C"\nM140 S{s}\n{% endif %}', 'description': 'Wait for Chamber Temperature to heat up'}, 'gcode_macro m106': {'gcode': '\n{% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}\n{% set fan = 0 %}\n{% set value = 0 %}\n{% if params.P is defined %}\n{% set tmp = params.P|int %}\n{% if tmp < fans %}\n{% set fan = tmp %}\n{% endif %}\n{% endif %}\n{% if params.S is defined %}\n{% set tmp = params.S|float %}\n{% else %}\n{% set tmp = 255 %}\n{% endif %}\n{% if tmp > 0 %}\n{% if fan == 0 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan0_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}\n{% endif %}\n{% endif %}\n{% if fan == 1 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan1_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan1_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}\n{% endif %}\n{% endif %}\n{% if fan == 2 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan2_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}\n{% endif %}\n{% endif %}\n{% endif %}\n{% if value >= 255 %}\n{% set value = 255 %}\n{% endif %}\n{% if params.P is defined and params.P|int == 3 %}\n{% set fan = 1 %}\n{% endif %}\nSET_PIN PIN=fan{fan} VALUE={value}', 'description': 'G-Code macro'}, 'prtouch_v2_fan': {'max_speed': 0.5}, 'output_pin kamp': {'pwm': False, 'pin': 'virtual_pin:KAMP_pin', 'maximum_mcu_duration': 0.0, 'value': 1.0, 'shutdown_value': 0.0}, 'output_pin bed_leveling': {'pwm': False, 'pin': 'virtual_pin:BED_LEVELING_pin', 'maximum_mcu_duration': 0.0, 'value': 1.0, 'shutdown_value': 0.0}, 'gcode_macro start_print': {'gcode': '\nWAIT_TEMP_END\nCLEAR_PAUSE\n{% set g28_extruder_temp = printer.custom_macro.g28_ext_temp %}\n{% set bed_temp = printer.custom_macro.default_bed_temp %}\n{% set extruder_temp = printer.custom_macro.default_extruder_temp %}\n{% if \'BED_TEMP\' in params|upper and (params.BED_TEMP|float) %}\n{% set bed_temp = params.BED_TEMP %}\n{% endif %}\n{% if \'EXTRUDER_TEMP\' in params|upper and (params.EXTRUDER_TEMP|float) %}\n{% set extruder_temp = params.EXTRUDER_TEMP %}\n{% endif %}\n{% if printer[\'gcode_macro START_PRINT\'].prepare|int == 0 %}\nPRINT_PREPARE_CLEAR\nCX_ROUGH_G28 EXTRUDER_TEMP={extruder_temp} BED_TEMP={bed_temp}\nCX_NOZZLE_CLEAR\nACCURATE_G28\n{% if printer[\'output_pin KAMP\'].value == 1 %}\nRESPOND TYPE=command MSG="Starting KAMP Bed Mesh..."\nBED_MESH_CLEAR\nBED_MESH_CALIBRATE\nBED_MESH_PROFILE SAVE=kamp\nBED_MESH_PROFILE LOAD=kamp\n{% else %}\n{% if printer[\'output_pin BED_LEVELING\'].value == 1 %}\nRESPOND TYPE=command MSG="Starting Full Bed Mesh..."\nCX_PRINT_LEVELING_CALIBRATION\n{% endif %}\nBED_MESH_PROFILE LOAD=default\n{% endif %}\n{% else %}\nPRINT_PREPARE_CLEAR\n{% endif %}\n{% if printer[\'output_pin KAMP\'].value == 1 %}\n_SMART_PARK\nM109 S{extruder_temp}\nM190 S{bed_temp}\nRESPOND TYPE=command MSG="Starting KAMP line purge..."\n_LINE_PURGE\n{% else %}\nRESPOND TYPE=command MSG="Starting classic line purge..."\nCX_PRINT_DRAW_ONE_LINE\n{% endif %}\nSET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel}', 'description': 'G-Code macro', 'variable_prepare': '0'}, 'gcode_macro bed_mesh_calibrate': {'gcode': '\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set bed_mesh_min = printer.configfile.settings.bed_mesh.mesh_min %}\n{% set bed_mesh_max = printer.configfile.settings.bed_mesh.mesh_max %}\n{% set probe_count = printer.configfile.settings.bed_mesh.probe_count %}\n{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}\n{% set verbose_enable = kamp_settings.verbose_enable | abs %}\n{% set mesh_margin = kamp_settings.mesh_margin | float %}\n{% set fuzz_amount = kamp_settings.fuzz_amount | float %}\n{% set probe_count = probe_count if probe_count|length > 1 else probe_count * 2 %}\n{% set max_probe_point_distance_x = ( bed_mesh_max[0] - bed_mesh_min[0] ) / (probe_count[0] - 1) %}\n{% set max_probe_point_distance_y = ( bed_mesh_max[1] - bed_mesh_min[1] ) / (probe_count[1] - 1) %}\n{% set x_min = all_points | map(attribute=0) | min | default(bed_mesh_min[0]) %}\n{% set y_min = all_points | map(attribute=1) | min | default(bed_mesh_min[1]) %}\n{% set x_max = all_points | map(attribute=0) | max | default(bed_mesh_max[0]) %}\n{% set y_max = all_points | map(attribute=1) | max | default(bed_mesh_max[1]) %}\n{% set fuzz_range = range((0) | int, (fuzz_amount * 100) | int + 1) %}\n{% set adapted_x_min = x_min - mesh_margin - (fuzz_range | random / 100.0) %}\n{% set adapted_y_min = y_min - mesh_margin - (fuzz_range | random / 100.0) %}\n{% set adapted_x_max = x_max + mesh_margin + (fuzz_range | random / 100.0) %}\n{% set adapted_y_max = y_max + mesh_margin + (fuzz_range | random / 100.0) %}\n{% set adapted_x_min = [adapted_x_min , bed_mesh_min[0]] | max %}\n{% set adapted_y_min = [adapted_y_min , bed_mesh_min[1]] | max %}\n{% set adapted_x_max = [adapted_x_max , bed_mesh_max[0]] | min %}\n{% set adapted_y_max = [adapted_y_max , bed_mesh_max[1]] | min %}\n{% set points_x = (((adapted_x_max - adapted_x_min) / max_probe_point_distance_x) | round(method=\'ceil\') | int) + 1 %}\n{% set points_y = (((adapted_y_max - adapted_y_min) / max_probe_point_distance_y) | round(method=\'ceil\') | int) + 1 %}\n{% if (points_x > points_y) %}\n{% set points_y = points_x %}\n{% endif %}\n{% if (points_x < points_y) %}\n{% set points_x = points_y %}\n{% endif %}\n{% if (([points_x, points_y]|max) > 6) %}\n{% set algorithm = "bicubic" %}\n{% set min_points = 4 %}\n{% else %}\n{% set algorithm = "lagrange" %}\n{% set min_points = 3 %}\n{% endif %}\n{% set points_x = [points_x , min_points]|max %}\n{% set points_y = [points_y , min_points]|max %}\n{% set points_x = [points_x , probe_count[0]]|min %}\n{% set points_y = [points_y , probe_count[1]]|min %}\n\n{% if verbose_enable == True %}\n\n{% if printer.exclude_object.objects != [] %}\n\nRESPOND TYPE=command MSG="Algorithm: {algorithm}"\nRESPOND TYPE=command MSG="Default probe count: {probe_count[0]},{probe_count[1]}"\nRESPOND TYPE=command MSG="Adapted probe count: {points_x},{points_y}"\nRESPOND TYPE=command MSG="Default mesh bounds: {bed_mesh_min[0]},{bed_mesh_min[1]}, {bed_mesh_max[0]},{bed_mesh_max[1]}"\n\n{% if mesh_margin > 0 %}\n\nRESPOND TYPE=command MSG="Mesh margin is {mesh_margin}, mesh bounds extended by {mesh_margin}mm."\n\n{% else %}\n\nRESPOND TYPE=command MSG="Mesh margin is 0, margin not increased."\n\n{% endif %}\n\n{% if fuzz_amount > 0 %}\n\nRESPOND TYPE=command MSG="Mesh point fuzzing enabled, points fuzzed up to {fuzz_amount}mm"\n\n{% else %}\n\nRESPOND TYPE=command MSG="Fuzz amount is 0, mesh points not fuzzed."\n\n{% endif %}\n\nRESPOND TYPE=command MSG="Adapted mesh bounds: {adapted_x_min},{adapted_y_min}, {adapted_x_max},{adapted_y_max}"\nRESPOND TYPE=command MSG="KAMP adjustments successful. Happy KAMPing!"\n\n{% else %}\n\nRESPOND TYPE=command MSG="No object detected! Make sure you have enabled Exclude Objets setting in your slicer. Using Full Bed Mesh."\nG4 P5000\n\n{% endif %}\n\n{% endif %}\n\n_BED_MESH_CALIBRATE mesh_min={adapted_x_min},{adapted_y_min} mesh_max={adapted_x_max},{adapted_y_max} ALGORITHM={algorithm} PROBE_COUNT={points_x},{points_y}', 'rename_existing': '_BED_MESH_CALIBRATE', 'description': 'G-Code macro'}, 'gcode_macro _line_purge': {'gcode': '\n{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}\n{% set cross_section = printer.configfile.settings.extruder.max_extrude_cross_section | float %}\n{% if printer.firmware_retraction is defined %}\n{% set RETRACT = G10 | string %}\n{% set UNRETRACT = G11 | string %}\n{% else %}\n{% set RETRACT = \'G1 E-0.5 F2400\' | string %}\n{% set UNRETRACT = \'G1 E0.5 F2400\' | string %}\n{% endif %}\n{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}\n{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}\n{% set verbose_enable = printer["gcode_macro _KAMP_Settings"].verbose_enable | abs %}\n{% set purge_height = printer["gcode_macro _KAMP_Settings"].purge_height | float %}\n{% set tip_distance = printer["gcode_macro _KAMP_Settings"].tip_distance | float %}\n{% set purge_margin = printer["gcode_macro _KAMP_Settings"].purge_margin | float %}\n{% set purge_amount = printer["gcode_macro _KAMP_Settings"].purge_amount | float %}\n{% set flow_rate = printer["gcode_macro _KAMP_Settings"].flow_rate | float %}\n{% set rapid_move = 10 %}\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set purge_x_min = (all_points | map(attribute=0) | min | default(0)) %}\n{% set purge_x_max = (all_points | map(attribute=0) | max | default(0)) %}\n{% set purge_y_min = (all_points | map(attribute=1) | min | default(0)) %}\n{% set purge_y_max = (all_points | map(attribute=1) | max | default(0)) %}\n{% set detect_object = purge_x_min + purge_x_max + purge_y_min + purge_y_max %}\n{% set purge_x_center = ([((purge_x_max + purge_x_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% set purge_y_center = ([((purge_y_max + purge_y_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% if (purge_x_center + purge_amount + rapid_move) > bed_x_max %}\n{% set purge_x_center = (bed_x_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% if (purge_y_center + purge_amount + rapid_move) > bed_y_max %}\n{% set purge_y_center = (bed_y_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% set purge_x_origin_low = (purge_x_min - purge_margin) %}\n{% set purge_x_origin_high = (purge_x_max + purge_margin) %}\n{% set purge_y_origin_low = (purge_y_min - purge_margin) %}\n{% set purge_y_origin_high = (purge_y_max + purge_margin) %}\n{% set purge_move_speed = (flow_rate / 5.0) * 60 | float %}\n\n{% if cross_section < 5 %}\n\nRESPOND TYPE=command MSG="[Extruder] max_extrude_cross_section is insufficient for line purge, please set it to 5 or greater. Purge skipped."\n\n{% else %}\n\n{% if verbose_enable == True %}\n\nRESPOND TYPE=command MSG="Moving filament tip {tip_distance}mm"\n\n{% endif %}\n\n{% if detect_object == 0 %}\n\nRESPOND TYPE=command MSG="No object detected! Using classic purge line."\n\n{% elif purge_y_origin_low > 0 %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_low} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_x_origin_low > 0 %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_low}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_y_origin_high < bed_y_max %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_high} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_x_origin_high < bed_x_max %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_high}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% else %}\n\nRESPOND TYPE=command MSG="No space for purge line! Using classic purge line."\n\n{% endif %}\n\nSAVE_GCODE_STATE NAME=Prepurge_State\n\n{% if detect_object == 0 %}\n\nG92 E0\nG1 Z0.1 F600\nM83\n{RETRACT}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nM204 S12000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000\nM220 S100\nM221 S100\nG1 Z2.0 F1200\nG1 X0.1 Y20 Z0.3 F6000.0\nG1 X0.1 Y180.0 Z0.3 F3000.0 E10.0\nG1 X0.4 Y180.0 Z0.3 F3000.0\nG1 X0.4 Y20.0 Z0.3 F3000.0 E10.0\nG1 Y10.0 F3000.0\nG1 Z2.0 F3000.0\nG92 E0\nM82\nG1 F12000\nG21\n\n{% elif purge_y_origin_low > 0 %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_center} Y{purge_y_origin_low}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_x_origin_low > 0 %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_origin_low} Y{purge_y_center}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_y_origin_high < bed_y_max %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_center} Y{purge_y_origin_high}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_x_origin_high < bed_x_max %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_origin_high} Y{purge_y_center}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% else %}\n\nG92 E0\nG1 Z0.1 F600\nM83\n{RETRACT}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nM204 S12000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000\nM220 S100\nM221 S100\nG1 Z2.0 F1200\nG1 X0.1 Y20 Z0.3 F6000.0\nG1 X0.1 Y180.0 Z0.3 F3000.0 E10.0\nG1 X0.4 Y180.0 Z0.3 F3000.0\nG1 X0.4 Y20.0 Z0.3 F3000.0 E10.0\nG1 Y10.0 F3000.0\nG1 Z2.0 F3000.0\nG92 E0\nM82\nG1 F12000\nG21\n\n{% endif %}\n\nRESTORE_GCODE_STATE NAME=Prepurge_State\n\n{% endif %}', 'description': 'A purge macro that adapts to be near your actual printed objects'}, 'gcode_macro _smart_park': {'gcode': '\n{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}\n{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}\n{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}\n{% set z_height = kamp_settings.smart_park_height | float %}\n{% set purge_margin = kamp_settings.purge_margin | float %}\n{% set purge_amount = kamp_settings.purge_amount | float %}\n{% set verbose_enable = kamp_settings.verbose_enable | abs %}\n{% set center_x = bed_x_max / 2 %}\n{% set center_y = bed_y_max / 2 %}\n{% set axis_minimum_x = printer.toolhead.axis_minimum.x | float %}\n{% set axis_minimum_y = printer.toolhead.axis_minimum.y | float %}\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set x_min = (all_points | map(attribute=0) | min | default(0)) %}\n{% set x_max = (all_points | map(attribute=0) | max | default(0)) %}\n{% set y_min = (all_points | map(attribute=1) | min | default(0)) %}\n{% set y_max = (all_points | map(attribute=1) | max | default(0)) %}\n{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}\n{% set rapid_move = 10 %}\n{% set park_x_center = ([((x_max + x_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% set park_y_center = ([((y_max + y_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% if (park_x_center + purge_amount + rapid_move) > bed_x_max %}\n{% set park_x_center = (bed_x_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% if (park_y_center + purge_amount + rapid_move) > bed_y_max %}\n{% set park_y_center = (bed_y_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% set park_x_origin_low = (x_min - purge_margin) %}\n{% set park_x_origin_high = (x_max + purge_margin) %}\n{% set park_y_origin_low = (y_min - purge_margin) %}\n{% set park_y_origin_high = (y_max + purge_margin) %}\n{% set detect_object = (x_min + x_max + y_min + y_max) %}\n{% if detect_object == 0 %}\n{% set x_min = 10 %}\n{% set y_min = 10 %}\n{% set z_height = 2 %}\n{% elif park_y_origin_low > 0 %}\n{% set x_min = park_x_center %}\n{% set y_min = park_y_origin_low %}\n{% elif park_x_origin_low > 0 %}\n{% set x_min = park_x_origin_low %}\n{% set y_min = park_y_center %}\n{% elif park_y_origin_high < bed_y_max %}\n{% set x_min = park_x_center %}\n{% set y_min = park_y_origin_high %}\n{% elif park_x_origin_high < bed_x_max %}\n{% set x_min = park_x_origin_high %}\n{% set y_min = park_y_center %}\n{% else %}\n{% set x_min = 10 %}\n{% set y_min = 10 %}\n{% set z_height = 2 %}\n{% endif %}\n\n{% if verbose_enable == True %}\n\nRESPOND TYPE=command MSG="Smart Park location: {x_min},{y_min}"\n\n{% endif %}\n\nSAVE_GCODE_STATE NAME=Presmartpark_State\n\nG90\n{% if printer.toolhead.position.z < z_height %}\n\nG0 Z{z_height}\n\n{% endif %}\n\nG0 X{x_min} Y{y_min} F{travel_speed}\nG0 Z{z_height}\n\nRESTORE_GCODE_STATE NAME=Presmartpark_State', 'description': 'Parks your printhead near the print area for pre-print hotend heating.'}, 'gcode_macro define_object': {'gcode': '\nEXCLUDE_OBJECT_DEFINE {rawparams}', 'description': 'G-Code macro'}, 'gcode_macro start_current_object': {'gcode': '\nEXCLUDE_OBJECT_START NAME={params.NAME}', 'description': 'G-Code macro'}, 'gcode_macro end_current_object': {'gcode': '\nEXCLUDE_OBJECT_END {% if params.NAME %}NAME={params.NAME}{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro list_objects': {'gcode': '\nEXCLUDE_OBJECT_DEFINE', 'description': 'G-Code macro'}, 'gcode_macro list_excluded_objects': {'gcode': '\nEXCLUDE_OBJECT', 'description': 'G-Code macro'}, 'gcode_macro remove_all_excluded': {'gcode': '\nEXCLUDE_OBJECT RESET=1', 'description': 'G-Code macro'}, 'gcode_macro _kamp_settings': {'gcode': '\nRESPOND TYPE=command MSG="Running the KAMP_Settings macro does nothing, it\'s only used for storing KAMP settings."', 'description': 'This macro contains all adjustable settings for KAMP', 'variable_verbose_enable': 'True', 'variable_mesh_margin': '0', 'variable_fuzz_amount': '0', 'variable_purge_height': '0.8', 'variable_tip_distance': '0', 'variable_purge_margin': '10', 'variable_purge_amount': '50', 'variable_flow_rate': '12', 'variable_smart_park_height': '10'}, 'verify_heater extruder': {'hysteresis': 5.0, 'max_error': 120.0, 'heating_gain': 2.0, 'check_gain_time': 20.0}, 'verify_heater heater_bed': {'hysteresis': 10.0, 'max_error': 120.0, 'heating_gain': 1.0, 'check_gain_time': 120.0}, 'bl24c16f': {'i2c_mcu': 'rpi', 'i2c_speed': 400000, 'i2c_bus': 'i2c.2', 'i2c_address': 87}, 'idle_timeout': {'timeout': 99999999.0, 'gcode': "\n{% if 'heaters' in printer %}\n TURN_OFF_HEATERS\n{% endif %}\nM84\n"}, 'virtual_sdcard': {'path': '/usr/data/printer_data/gcodes', 'on_error_gcode': ''}, 'gcode_arcs': {'resolution': 1.0}, 'temperature_sensor mcu_temp': {'sensor_type': 'temperature_mcu', 'sensor_mcu': 'mcu', 'min_temp': 0.0, 'max_temp': 100.0}, 'temperature_sensor chamber_temp': {'sensor_type': 'EPCOS 100K B57560G104F', 'pullup_resistor': 4700.0, 'inline_resistor': 0.0, 'sensor_pin': 'PC5', 'min_temp': 0.0, 'max_temp': 125.0}, 'tmc2209 stepper_x': {'uart_pin': 'PA9', 'uart_address': 3, 'diag_pin': '^PB12', 'run_current': 1.5, 'hold_current': 1.0, 'sense_resistor': 0.1, 'interpolate': True, 'stealthchop_threshold': 0.0, 'driver_toff': 3, 'driver_hstrt': 5, 'driver_hend': 0, 'driver_tbl': 2, 'driver_iholddelay': 8, 'driver_tpowerdown': 20, 'driver_pwm_ofs': 36, 'driver_pwm_grad': 14, 'driver_pwm_freq': 1, 'driver_pwm_autoscale': True, 'driver_pwm_autograd': True, 'driver_pwm_reg': 8, 'driver_pwm_lim': 12, 'driver_sgthrs': 65}, 'stepper_x': {'microsteps': 32, 'step_pin': 'PC2', 'dir_pin': '!PB9', 'rotation_distance': 72.0, 'full_steps_per_rotation': 200, 'gear_ratio': (), 'enable_pin': '!PC3', 'endstop_pin': 'tmc2209_stepper_x:virtual_endstop', 'position_endstop': 306.5, 'position_min': -2.0, 'position_max': 306.5, 'homing_speed': 36.0, 'second_homing_speed': 18.0, 'homing_retract_speed': 36.0, 'homing_retract_dist': 0.0, 'homing_positive_dir': True}, 'tmc2209 stepper_y': {'uart_pin': 'PA10', 'uart_address': 3, 'diag_pin': '^PB13', 'run_current': 1.5, 'hold_current': 1.0, 'sense_resistor': 0.1, 'interpolate': True, 'stealthchop_threshold': 0.0, 'driver_toff': 3, 'driver_hstrt': 5, 'driver_hend': 0, 'driver_tbl': 2, 'driver_iholddelay': 8, 'driver_tpowerdown': 20, 'driver_pwm_ofs': 36, 'driver_pwm_grad': 14, 'driver_pwm_freq': 1, 'driver_pwm_autoscale': True, 'driver_pwm_autograd': True, 'driver_pwm_reg': 8, 'driver_pwm_lim': 12, 'driver_sgthrs': 65}, 'stepper_y': {'microsteps': 32, 'step_pin': 'PB8', 'dir_pin': '!PB7', 'rotation_distance': 72.0, 'full_steps_per_rotation': 200, 'gear_ratio': (), 'enable_pin': '!PC3', 'endstop_pin': 'tmc2209_stepper_y:virtual_endstop', 'position_endstop': -2.0, 'position_min': -2.0, 'position_max': 306.0, 'homing_speed': 36.0, 'second_homing_speed': 18.0, 'homing_retract_speed': 36.0, 'homing_retract_dist': 0.0, 'homing_positive_dir': False}, 'tmc2209 stepper_z': {'uart_pin': 'PA11', 'uart_address': 3, 'diag_pin': '^PB14', 'run_current': 0.8, 'hold_current': 2.0, 'sense_resistor': 0.1, 'interpolate': True, 'stealthchop_threshold': 0.0, 'driver_toff': 3, 'driver_hstrt': 5, 'driver_hend': 0, 'driver_tbl': 2, 'driver_iholddelay': 8, 'driver_tpowerdown': 20, 'driver_pwm_ofs': 36, 'driver_pwm_grad': 14, 'driver_pwm_freq': 1, 'driver_pwm_autoscale': True, 'driver_pwm_autograd': True, 'driver_pwm_reg': 8, 'driver_pwm_lim': 12, 'driver_sgthrs': 0}, 'stepper_z': {'microsteps': 16, 'position_max': 305.0, 'position_min': -10.0, 'step_pin': 'PB6', 'dir_pin': '!PB5', 'rotation_distance': 8.0, 'full_steps_per_rotation': 200, 'gear_ratio': ((64.0, 20.0),), 'enable_pin': '!PC3', 'endstop_pin': 'tmc2209_stepper_z:virtual_endstop', 'position_endstop': 0.0, 'homing_speed': 10.0, 'second_homing_speed': 1.0, 'homing_retract_speed': 10.0, 'homing_retract_dist': 2.0, 'homing_positive_dir': False}, 'tmc2209 extruder': {'uart_pin': 'nozzle_mcu:PB11', 'tx_pin': 'nozzle_mcu:PB10', 'uart_address': 3, 'run_current': 0.55, 'hold_current': 2.0, 'sense_resistor': 0.15, 'interpolate': True, 'stealthchop_threshold': 0.0, 'driver_toff': 3, 'driver_hstrt': 5, 'driver_hend': 0, 'driver_tbl': 2, 'driver_iholddelay': 8, 'driver_tpowerdown': 20, 'driver_pwm_ofs': 36, 'driver_pwm_grad': 14, 'driver_pwm_freq': 1, 'driver_pwm_autoscale': True, 'driver_pwm_autograd': True, 'driver_pwm_reg': 8, 'driver_pwm_lim': 12, 'driver_sgthrs': 0}, 'extruder': {'microsteps': 16, 'sensor_type': 'EPCOS 100K B57560G104F', 'pullup_resistor': 4700.0, 'inline_resistor': 0.0, 'sensor_pin': 'nozzle_mcu:PA0', 'min_temp': 0.0, 'max_temp': 320.0, 'min_extrude_temp': 170.0, 'max_power': 1.0, 'smooth_time': 1.0, 'control': 'pid', 'pid_kp': 25.013, 'pid_ki': 2.566, 'pid_kd': 60.966, 'heater_pin': 'nozzle_mcu:PB7', 'pwm_cycle_time': 0.1, 'nozzle_diameter': 0.4, 'filament_diameter': 1.75, 'max_extrude_cross_section': 80.0, 'max_extrude_only_velocity': 212.86486429531544, 'max_extrude_only_accel': 5321.6216073828855, 'max_extrude_only_distance': 1000.0, 'instantaneous_corner_velocity': 1.0, 'step_pin': 'nozzle_mcu:PB1', 'pressure_advance': 0.04, 'pressure_advance_smooth_time': 0.04, 'dir_pin': 'nozzle_mcu:PB0', 'rotation_distance': 6.9, 'full_steps_per_rotation': 200, 'gear_ratio': (), 'enable_pin': '!nozzle_mcu:PB2'}, 'heater_bed': {'sensor_type': 'NTC 100K beta 3950', 'pullup_resistor': 4700.0, 'inline_resistor': 0.0, 'sensor_pin': 'PC4', 'min_temp': 0.0, 'max_temp': 125.0, 'min_extrude_temp': 170.0, 'max_power': 1.0, 'smooth_time': 1.0, 'control': 'pid', 'pid_kp': 53.795, 'pid_ki': 0.525, 'pid_kd': 1377.827, 'heater_pin': 'PC8', 'pwm_cycle_time': 0.1}, 'filament_switch_sensor filament_sensor': {'switch_pin': '!PC15', 'pause_on_runout': True, 'runout_gcode': "\n{% if printer.extruder.can_extrude|lower == 'true' %}\nG91\nG0 E30 F600\nG90\n{% endif %}", 'pause_delay': 0.5, 'event_delay': 3.0}, 'pause_resume': {'recover_velocity': 50.0}, 'filament_switch_sensor filament_sensor_2': {'switch_pin': '!nozzle_mcu:PA10', 'pause_on_runout': True, 'runout_gcode': '', 'pause_delay': 0.5, 'event_delay': 3.0}, 'multi_pin heater_fans': {'pins': ('nozzle_mcu:PB5', 'PB2')}, 'heater_fan hotend_fan': {'heater': ('extruder',), 'heater_temp': 40.0, 'max_power': 1.0, 'kick_start_time': 0.1, 'off_below': 0.0, 'cycle_time': 0.01, 'hardware_pwm': False, 'shutdown_speed': 1.0, 'pin': 'multi_pin:heater_fans', 'fan_speed': 1.0}, 'static_digital_output my_fan_output_pins': {'pins': ('nozzle_mcu: PB6',)}, 'output_pin fan0': {'pwm': True, 'pin': '!nozzle_mcu: PB8', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 255.0, 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'output_pin fan1': {'pwm': True, 'pin': 'PC0', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 255.0, 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'output_pin fan2': {'pwm': True, 'pin': 'PB1', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 255.0, 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'output_pin led': {'pwm': True, 'pin': 'PB0', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 1.0, 'maximum_mcu_duration': 0.0, 'value': 1.0, 'shutdown_value': 0.0}, 'output_pin power': {'pwm': False, 'pin': 'PC9', 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'adxl345': {'axes_map': ('x', '-z', 'y'), 'rate': 3200, 'cs_pin': 'nozzle_mcu:PA4', 'spi_speed': 5000000, 'spi_software_sclk_pin': 'nozzle_mcu:PA5', 'spi_software_miso_pin': 'nozzle_mcu:PA6', 'spi_software_mosi_pin': 'nozzle_mcu:PA7'}, 'resonance_tester': {'move_speed': 50.0, 'min_freq': 5.0, 'max_freq': 133.33333333333334, 'accel_per_hz': 75.0, 'hz_per_sec': 1.0, 'probe_points': ((150.0, 150.0, 10.0),), 'low_mem': True, 'accel_chip': 'adxl345'}, 'prtouch_v2': {'pr_version': 2, 'tri_min_hold_1': (6000, 10000), 'tri_max_hold_1': (13000, 60000), 'tri_min_hold_2': (6000, 10000), 'tri_max_hold_2': (13000, 60000), 'tri_min_hold_3': (6000, 10000), 'tri_max_hold_3': (13000, 60000), 'tri_min_hold_4': (6000, 10000), 'tri_max_hold_4': (13000, 60000), 'tri_min_hold_5': (6000, 10000), 'tri_max_hold_5': (13000, 60000), 'tri_min_hold_6': (6000, 10000), 'tri_max_hold_6': (13000, 60000), 'tri_min_hold_7': (6000, 10000), 'tri_max_hold_7': (13000, 60000), 'tri_min_hold_8': (6000, 10000), 'tri_max_hold_8': (13000, 60000), 'tri_min_hold_9': (6000, 10000), 'tri_max_hold_9': (13000, 60000), 'tri_min_hold_10': (6000, 10000), 'tri_max_hold_10': (13000, 60000), 'tri_min_hold_11': (6000, 10000), 'tri_max_hold_11': (13000, 60000), 'tri_min_hold_12': (6000, 10000), 'tri_max_hold_12': (13000, 60000), 'tri_min_hold_13': (6000, 10000), 'tri_max_hold_13': (13000, 60000), 'tri_min_hold_14': (6000, 10000), 'tri_max_hold_14': (13000, 60000), 'tri_min_hold_15': (6000, 10000), 'tri_max_hold_15': (13000, 60000), 'tri_min_hold_16': (6000, 10000), 'tri_max_hold_16': (13000, 60000), 'tri_min_hold_17': (6000, 10000), 'tri_max_hold_17': (13000, 60000), 'tri_min_hold_18': (6000, 10000), 'tri_max_hold_18': (13000, 60000), 'tri_min_hold_19': (6000, 10000), 'tri_max_hold_19': (13000, 60000), 'tri_min_hold_20': (6000, 10000), 'tri_max_hold_20': (13000, 60000), 'tri_min_hold_21': (6000, 10000), 'tri_max_hold_21': (13000, 60000), 'tri_min_hold_22': (6000, 10000), 'tri_max_hold_22': (13000, 60000), 'tri_min_hold_23': (6000, 10000), 'tri_max_hold_23': (13000, 60000), 'tri_min_hold_24': (6000, 10000), 'tri_max_hold_24': (13000, 60000), 'tri_min_hold_25': (6000, 10000), 'tri_max_hold_25': (13000, 60000), 'tri_min_hold_26': (6000, 10000), 'tri_max_hold_26': (13000, 60000), 'tri_min_hold_27': (6000, 10000), 'tri_max_hold_27': (13000, 60000), 'tri_min_hold_28': (6000, 10000), 'tri_max_hold_28': (13000, 60000), 'tri_min_hold_29': (6000, 10000), 'tri_max_hold_29': (13000, 60000), 'tri_min_hold_30': (6000, 10000), 'tri_max_hold_30': (13000, 60000), 'tri_min_hold_31': (6000, 10000), 'tri_max_hold_31': (13000, 60000), 'tri_min_hold_32': (6000, 10000), 'tri_max_hold_32': (13000, 60000), 'tri_min_hold_33': (6000, 10000), 'tri_max_hold_33': (13000, 60000), 'tri_min_hold_34': (6000, 10000), 'tri_max_hold_34': (13000, 60000), 'tri_min_hold_35': (6000, 10000), 'tri_max_hold_35': (13000, 60000), 'tri_min_hold_36': (6000, 10000), 'tri_max_hold_36': (13000, 60000), 'use_adc': False, 'tri_acq_ms': 12, 'tri_send_ms': 10, 'tri_need_cnt': 1, 'tri_try_max_times': 10, 'cal_hftr_cut': 10, 'cal_lftr_k1': 0.85, 'tri_min_hold': (6000, 10000), 'tri_max_hold': (13000, 60000), 'tri_hftr_cut': (2.0, 1.0), 'tri_lftr_k1': (0.5, 0.15), 'correct_tri_hold': 0, 'correct_step_mm': 0.04, 'show_msg': False, 'shake_cnt': 8, 'shake_range': 0.5, 'hot_min_temp': 140, 'hot_max_temp': 200, 'bed_max_temp': 60, 'pa_clr_dis_mm': 30, 'pa_clr_down_mm': -0.15, 'clr_noz_start_x': 130.0, 'clr_noz_start_y': 303.0, 'clr_noz_len_x': 40.0, 'clr_noz_len_y': 2.0, 'clr_xy_spd': 2.0, 'speeds': (2.5, 1.0), 'lift_speed': 5.0, 'rdy_xy_spd': 200, 'rdy_z_spd': 5.0, 'acc_ctl_mm': 0.25, 'low_spd_nul': 5, 'send_step_duty': 16, 'run_max_velocity': 500, 'run_max_accel': 500, 'run_max_z_velocity': 20, 'run_max_z_accel': 200, 'check_bed_mesh_max_err': 0.2, 'need_self_check': True, 'bed_max_err': 5, 'g29_down_min_z': 25, 'probe_min_3err': 0.1, 'step_base': 2, 'g28_wait_cool_down': True, 'best_above_z': 3, 'safe_z_dead_dis': 2, 'fan_heat_min_spd': 0.3, 'fan_heat_max_spd': 1.0, 'lost_step_dis': 0.5, 'tilt_corr_dis': 0.05, 'bed_mesh_top_mid_com': 0.0, 'bed_mesh_bottom_mid_com': 0.0, 'bed_mesh_left_mid_com': 0.0, 'bed_mesh_right_mid_com': 0.0, 'noz_ex_com': 0.09, 'sys_time_duty': 0.001, 'shake_sample_num': 100, 'shake_z_velocity': 100, 'shake_z_accel': 500, 'shake_num': 20, 'check_std_max': 6000, 'check_std_mim': 250, 'step_swap_pin': 'PC10', 'pres_swap_pin': 'leveling_mcu:PB1', 'pres_cnt': 4, 'pres0_clk_pins': 'leveling_mcu:PA7', 'pres0_sdo_pins': 'leveling_mcu:PA4', 'pres1_clk_pins': 'leveling_mcu:PA6', 'pres1_sdo_pins': 'leveling_mcu:PA3', 'pres2_clk_pins': 'leveling_mcu:PA2', 'pres2_sdo_pins': 'leveling_mcu:PA0', 'pres3_clk_pins': 'leveling_mcu:PA5', 'pres3_sdo_pins': 'leveling_mcu:PA1', 'speed': 5.0, 'x_offset': 0.0, 'y_offset': 0.0, 'z_offset': 0.0, 'samples': 1, 'sample_retract_dist': 2.0, 'samples_result': 'average', 'samples_tolerance': 0.1, 'samples_tolerance_retries': 0}, 'printer': {'kinematics': 'corexy', 'max_velocity': 800.0, 'max_accel': 20000.0, 'max_accel_to_decel': 20000.0, 'square_corner_velocity': 5.0, 'square_corner_max_velocity': 200.0, 'buffer_time_low': 1.0, 'buffer_time_high': 2.0, 'buffer_time_start': 0.25, 'move_flush_time': 0.05, 'max_z_velocity': 20.0, 'max_z_accel': 300.0}, 'bed_mesh': {'probe_count': (6, 6), 'mesh_min': (5.0, 5.0), 'mesh_max': (295.0, 295.0), 'mesh_pps': (2, 2), 'algorithm': 'lagrange', 'bicubic_tension': 0.2, 'horizontal_move_z': 5.0, 'speed': 150.0, 'fade_start': 5.0, 'fade_end': 50.0, 'split_delta_z': 0.025, 'move_check_distance': 5.0}, 'input_shaper': {'shaper_type': 'mzv', 'shaper_type_x': '2hump_ei', 'damping_ratio_x': 0.1, 'shaper_freq_x': 39.0, 'shaper_type_y': 'zv', 'damping_ratio_y': 0.1, 'shaper_freq_y': 48.0}}, 'warnings': [{'type': 'deprecated_value', 'value': 'NTC 100K beta 3950', 'message': "Value 'NTC 100K beta 3950' in option 'sensor_type' in section 'heater_bed' is deprecated.", 'section': 'heater_bed', 'option': 'sensor_type'}], 'save_config_pending': False, 'save_config_pending_items': {}}, 'mcu': {'mcu_version': '1.3.0.40-5-g6977eaff-dirty-20230711_100121-ubuntu', 'mcu_build_versions': 'gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34', 'mcu_constants': {'ADC_MAX': 4095, 'CLOCK_FREQ': 120000000, 'INITIAL_PINS': 'PC7,PB0', 'MCU': 'gd32f303xe', 'RECEIVE_WINDOW': 192, 'RESERVE_PINS_serial': 'PA2,PA3', 'SERIAL_BAUD': 230400, 'STATS_SUMSQ_BASE': 256, 'STEPPER_BOTH_EDGE': 1, 'build_machine_uid': 'Jul 11 202310:01:16'}, 'last_stats': {'mcu_awake': 0.004, 'mcu_task_avg': 8e-06, 'mcu_task_stddev': 4e-06, 'bytes_write': 3986, 'bytes_read': 58560, 'bytes_retransmit': 9, 'bytes_invalid': 0, 'send_seq': 462, 'receive_seq': 462, 'retransmit_seq': 17, 'srtt': 0.001, 'rttvar': 0.0, 'rto': 0.025, 'ready_bytes': 0, 'stalled_bytes': 0, 'freq': 119996879}}, 'mcu nozzle_mcu': {'mcu_version': '1.3.0.40-5-g6977eaff-dirty-20230711_100254-ubuntu', 'mcu_build_versions': 'gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34', 'mcu_constants': {'ADC_MAX': 4095, 'CLOCK_FREQ': 120000000, 'INITIAL_PINS': '!PB5,!PB6,!PB7', 'MCU': 'gd32f303xb', 'RECEIVE_WINDOW': 192, 'RESERVE_PINS_serial': 'PA2,PA3', 'SERIAL_BAUD': 230400, 'STATS_SUMSQ_BASE': 256, 'STEPPER_BOTH_EDGE': 1, 'build_machine_uid': 'Jul 11 202310:02:50'}, 'last_stats': {'mcu_awake': 0.002, 'mcu_task_avg': 6e-06, 'mcu_task_stddev': 4e-06, 'bytes_write': 3282, 'bytes_read': 19633, 'bytes_retransmit': 0, 'bytes_invalid': 0, 'send_seq': 440, 'receive_seq': 440, 'retransmit_seq': 0, 'srtt': 0.001, 'rttvar': 0.0, 'rto': 0.025, 'ready_bytes': 0, 'stalled_bytes': 0, 'freq': 119998790, 'adj': 120001962}}, 'mcu leveling_mcu': {'mcu_version': '1.3.0.40-5-g6977eaff-dirty-20230711_095416-ubuntu', 'mcu_build_versions': 'gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34', 'mcu_constants': {'ADC_MAX': 4095, 'CLOCK_FREQ': 72000000, 'MCU': 'gd32e230x8', 'RECEIVE_WINDOW': 192, 'RESERVE_PINS_serial': 'PA9,PA10', 'SERIAL_BAUD': 230400, 'STATS_SUMSQ_BASE': 256, 'STEPPER_BOTH_EDGE': 1, 'build_machine_uid': 'Jul 11 202309:54:12'}, 'last_stats': {'mcu_awake': 0.0, 'mcu_task_avg': 4e-06, 'mcu_task_stddev': 3e-06, 'bytes_write': 1999, 'bytes_read': 8014, 'bytes_retransmit': 9, 'bytes_invalid': 0, 'send_seq': 307, 'receive_seq': 307, 'retransmit_seq': 17, 'srtt': 0.002, 'rttvar': 0.002, 'rto': 0.025, 'ready_bytes': 0, 'stalled_bytes': 0, 'freq': 71831727, 'adj': 71834596}}, 'mcu rpi': {'mcu_version': 'v0.11.0-372-gb9ad7605', 'mcu_build_versions': 'gcc: (Ingenic Linux-Release5.1.0-Default(xburst2(fp64)+glibc2.29) 2021.12-22 10:52:10) 7.2.0 binutils: (Ingenic Linux-Release5.1.0.-Default(xburst2(fp64)+glibc2.29) 2021.12-22 08:55:37) 2.27', 'mcu_constants': {'ADC_MAX': 4095, 'CLOCK_FREQ': 50000000, 'MCU': 'linux', 'PCA9685_MAX': 4096, 'PWM_MAX': 32768, 'STATS_SUMSQ_BASE': 256, 'build_machine_uid': 'May 18 202311:46:31'}, 'last_stats': {'mcu_awake': 0.001, 'mcu_task_avg': 1.3e-05, 'mcu_task_stddev': 1.7e-05, 'bytes_write': 2074, 'bytes_read': 8153, 'bytes_retransmit': 0, 'bytes_invalid': 0, 'send_seq': 313, 'receive_seq': 313, 'retransmit_seq': 0, 'srtt': 0.001, 'rttvar': 0.001, 'rto': 0.025, 'ready_bytes': 0, 'stalled_bytes': 0, 'freq': 49999969, 'adj': 50001253}}, 'virtual_pins': {'pins': {'KAMP_pin': {'value': 1.0, 'type': 'digital_out'}, 'BED_LEVELING_pin': {'value': 1.0, 'type': 'digital_out'}}}, 'gcode_macro xyz_ready': {'x_ready': 0, 'y_ready': 0, 'z_ready': 0, 'xy_moved': 0, 'z_moved': 0, 'safe_z': 3}, 'gcode_macro _IF_HOME_Z': {}, 'gcode_macro _IF_MOVE_XY': {}, 'gcode_macro _HOME_X': {}, 'gcode_macro _HOME_Y': {}, 'gcode_macro _HOME_Z': {}, 'gcode_macro PRINTER_PARAM': {'z_safe_pause': 0.0, 'z_safe_g28': 3.0, 'max_x_position': 300.0, 'max_y_position': 300.0, 'max_z_position': 300.0, 'fans': 3, 'auto_g29': 0, 'fan0_min': 25, 'fan1_min': 50, 'fan2_min': 180, 'fan2_speed': 0, 'hotend_temp': 0, 'e_min_current': 0.27}, 'gcode_macro AUTOTUNE_SHAPERS': {}, 'gcode_macro LOAD_MATERIAL_CLOSE_FAN2': {'fan2_value': 0}, 'gcode_macro LOAD_MATERIAL_RESTORE_FAN2': {}, 'gcode_macro SET_E_MIN_CURRENT': {}, 'gcode_macro RESTORE_E_CURRENT': {}, 'gcode_macro LOAD_MATERIAL': {}, 'gcode_macro QUIT_MATERIAL': {}, 'gcode_macro Qmode': {'flag': 0, 'accel': 0, 'accel_to_decel': 0, 'velocity': 0, 'square_corner_velocity': 0, 'pressure_advance': 0.0, 'fan0_value': 0.0, 'fan1_value': 0.0, 'fan2_value': 0.0, 'speed_factor': 0, 'max_accel': 2500, 'max_accel_to_decel': 2500}, 'gcode_macro Qmode_exit': {}, 'gcode_macro M204': {}, 'gcode_macro M205': {}, 'gcode_macro M107': {}, 'gcode_macro M900': {}, 'gcode_macro WAIT_TEMP_START': {}, 'gcode_macro WAIT_TEMP_END': {}, 'gcode_macro PRINT_CALIBRATION': {}, 'gcode_macro FIRST_FLOOR_PAUSE_POSITION': {}, 'gcode_macro ACCURATE_G28': {}, 'gcode_macro PRINT_PREPARED': {}, 'gcode_macro PRINT_PREPARE_CLEAR': {}, 'gcode_macro END_PRINT_POINT_WITHOUT_LIFTING': {}, 'gcode_macro END_PRINT_POINT': {}, 'gcode_macro END_PRINT': {}, 'gcode_macro FIRST_FLOOR_PAUSE': {'extrude': 2.0}, 'gcode_macro FIRST_FLOOR_RESUME': {}, 'gcode_macro PAUSE': {'extrude': 2.0}, 'gcode_macro INPUTSHAPER': {}, 'gcode_macro BEDPID': {}, 'gcode_macro TUNOFFINPUTSHAPER': {}, 'gcode_macro RESUME': {}, 'gcode_macro CANCEL_PRINT': {}, 'gcode_macro G29': {}, 'gcode_move': {'speed_factor': 1.0, 'speed': 1500.0, 'extrude_factor': 1.0, 'absolute_coordinates': True, 'absolute_extrude': True, 'homing_origin': Coord(x=0.0, y=0.0, z=0.0, e=0.0), 'position': Coord(x=0.0, y=0.0, z=0.0, e=0.0), 'gcode_position': Coord(x=0.0, y=0.0, z=0.0, e=0.0)}, 'print_stats': {'filename': '', 'total_duration': 0.0, 'print_duration': 0.0, 'filament_used': 0.0, 'state': 'standby', 'message': '', 'info': {'total_layer': None, 'current_layer': None}, 'power_loss': 0, 'z_pos': 6.0}, 'fan_feedback': {'fan0_speed': 0, 'fan1_speed': 0, 'fan2_speed': 0, 'fan3_speed': 0, 'fan4_speed': 0}, 'custom_macro': {'leveling_calibration': 0, 'default_extruder_temp': 240.0, 'default_bed_temp': 50.0, 'g28_ext_temp': 140.0, 'qmode_flag': 0}, 'gcode_macro GET_TIMELAPSE_SETUP': {}, 'gcode_macro _SET_TIMELAPSE_SETUP': {}, 'gcode_macro TIMELAPSE_TAKE_FRAME': {'enable': True, 'takingframe': False, 'park': {'enable': False, 'pos': 'back_right', 'time': 0.1, 'custom': {'x': 10.0, 'y': 10.0, 'dz': 0.0}, 'coord': {'x': 306.5, 'y': 306.0, 'dz': 0}}, 'extruder': {'fw_retract': False, 'retract': 0.5, 'extrude': 0.5}, 'speed': {'travel': 400.0, 'retract': 40.0, 'extrude': 40.0}, 'verbose': False, 'check_time': 0.5, 'restore': {'absolute': {'coordinates': True, 'extrude': True}, 'speed': 1500, 'e': 0, 'factor': {'speed': 1.0, 'extrude': 1.0}}, 'macro': {'pause': 'PAUSE_BASE', 'resume': 'RESUME_BASE'}, 'is_paused': False}, 'gcode_macro _TIMELAPSE_NEW_FRAME': {}, 'gcode_macro HYPERLAPSE': {'cycle': 0, 'run': False}, 'gcode_macro TIMELAPSE_RENDER': {'render': False, 'run_identifier': 0}, 'gcode_macro TEST_STREAM_DELAY': {}, 'save_variables': {'variables': {}}, 'gcode_macro SET_GCODE_OFFSET': {}, 'calibrate_shaper_config': {}, 'gcode_macro INPUT_SHAPER_CALIBRATION': {}, 'gcode_macro TEST_RESONANCES_GRAPHS': {}, 'gcode_macro BELTS_SHAPER_CALIBRATION': {}, 'gcode_macro EXCITATE_AXIS_AT_FREQ': {}, 'heaters': {'available_heaters': ['heater_bed', 'extruder'], 'available_sensors': ['temperature_fan chamber_fan', 'temperature_fan mcu_fan', 'temperature_sensor mcu_temp', 'temperature_sensor chamber_temp', 'heater_bed', 'extruder'], 'extruder_temperature_wait': False, 'bed_temperature_wait': False}, 'temperature_fan chamber_fan': {'speed': 0.0, 'rpm': None, 'temperature': 19.23, 'target': 35.0}, 'temperature_fan mcu_fan': {'speed': 0.0, 'rpm': None, 'temperature': 27.47, 'target': 50.0}, 'output_pin mcu_fan': {'value': 0.0}, 'gcode_macro M141': {}, 'gcode_macro M191': {}, 'gcode_macro M106': {}, 'output_pin KAMP': {'value': 1.0}, 'output_pin BED_LEVELING': {'value': 1.0}, 'gcode_macro START_PRINT': {'prepare': 0}, 'gcode_macro BED_MESH_CALIBRATE': {}, 'gcode_macro _LINE_PURGE': {}, 'gcode_macro _SMART_PARK': {}, 'gcode_macro DEFINE_OBJECT': {}, 'gcode_macro START_CURRENT_OBJECT': {}, 'gcode_macro END_CURRENT_OBJECT': {}, 'gcode_macro LIST_OBJECTS': {}, 'gcode_macro LIST_EXCLUDED_OBJECTS': {}, 'gcode_macro REMOVE_ALL_EXCLUDED': {}, 'gcode_macro _KAMP_Settings': {'verbose_enable': True, 'mesh_margin': 0, 'fuzz_amount': 0, 'purge_height': 0.8, 'tip_distance': 0, 'purge_margin': 10, 'purge_amount': 50, 'flow_rate': 12, 'smart_park_height': 10}, 'idle_timeout': {'state': 'Ready', 'printing_time': 0.0}, 'virtual_sdcard': {'file_path': None, 'progress': 0.0, 'is_active': False, 'file_position': 0, 'file_size': 0, 'first_layer_stop': False, 'layer': 0, 'layer_count': 0, 'run_dis': 0.0}, 'temperature_sensor mcu_temp': {'temperature': 34.03, 'measured_min_temp': 29.24, 'measured_max_temp': 34.08}, 'temperature_sensor chamber_temp': {'temperature': 19.31, 'measured_min_temp': 19.23, 'measured_max_temp': 19.37}, 'tmc2209 stepper_x': {'mcu_phase_offset': 1, 'phase_offset_position': 0.01125, 'run_current': 1.4731391274719736, 'hold_current': 1.0017346066809423, 'drv_status': None}, 'tmc2209 stepper_y': {'mcu_phase_offset': 1, 'phase_offset_position': 0.01125, 'run_current': 1.4731391274719736, 'hold_current': 1.0017346066809423, 'drv_status': None}, 'tmc2209 stepper_z': {'mcu_phase_offset': 0, 'phase_offset_position': 0.0, 'run_current': 0.7954951288348658, 'hold_current': 0.7954951288348658, 'drv_status': None}, 'tmc2209 extruder': {'mcu_phase_offset': 63, 'phase_offset_position': 0.13584375, 'run_current': 0.5615259732951996, 'hold_current': 0.5615259732951996, 'drv_status': None}, 'heater_bed': {'temperature': 19.18, 'target': 0.0, 'power': 0.0}, 'pause_resume': {'is_paused': False}, 'filament_switch_sensor filament_sensor': {'filament_detected': True, 'enabled': True}, 'filament_switch_sensor filament_sensor_2': {'filament_detected': True, 'enabled': True}, 'heater_fan hotend_fan': {'speed': 0.0, 'rpm': None}, 'output_pin fan0': {'value': 0.0}, 'output_pin fan1': {'value': 0.0}, 'output_pin fan2': {'value': 0.0}, 'output_pin LED': {'value': 1.0}, 'output_pin power': {'value': 0.0}, 'probe': {'last_query': False, 'last_z_result': 0.0, 'z_offset': 0.0}, 'bed_mesh': {'profile_name': '', 'mesh_min': (0.0, 0.0), 'mesh_max': (0.0, 0.0), 'probed_matrix': [[]], 'mesh_matrix': [[]], 'profiles': {}}, 'display_status': {'progress': 0.0, 'message': None}, 'exclude_object': {'objects': [], 'excluded_objects': [], 'current_object': None}, 'motion_report': {'live_position': Coord(x=0.0, y=0.0, z=0.0, e=0.0), 'live_velocity': 0.0, 'live_extruder_velocity': 0.0, 'steppers': ['extruder', 'stepper_x', 'stepper_y', 'stepper_z'], 'trapq': ['extruder', 'toolhead']}, 'query_endstops': {'last_query': {}}, 'system_stats': {'sysload': 0.55, 'cputime': 29.95673968, 'memavail': 129792}, 'manual_probe': {'is_active': False, 'z_position': None, 'z_position_lower': None, 'z_position_upper': None}, 'toolhead': {'homed_axes': '', 'axis_minimum': Coord(x=-2.0, y=-2.0, z=-10.0, e=0.0), 'axis_maximum': Coord(x=306.5, y=306.0, z=305.0, e=0.0), 'print_time': 30.879072325, 'stalls': 0, 'estimated_print_time': 221.71372845, 'extruder': 'extruder', 'position': Coord(x=0.0, y=0.0, z=0.0, e=0.0), 'max_velocity': 800.0, 'max_accel': 20000.0, 'max_accel_to_decel': 20000.0, 'square_corner_velocity': 5.0}, 'extruder': {'temperature': 18.81, 'target': 0.0, 'power': 0.0, 'can_extrude': False, 'pressure_advance': 0.04, 'smooth_time': 0.04}}} [INFO] 2024-04-13 06:55:55,947 [root] [verify_heater:check_event:63] Heater heater_bed approaching new target of 50.000 [INFO] 2024-04-13 06:55:57,863 [root] [statistics:generate_stats:68] Stats 341.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5115 bytes_read=89263 bytes_retransmit=9 bytes_invalid=0 send_seq=630 receive_seq=630 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996879 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4400 bytes_read=28204 bytes_retransmit=0 bytes_invalid=0 send_seq=608 receive_seq=608 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998815 adj=120002072 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2677 bytes_read=10091 bytes_retransmit=9 bytes_invalid=0 send_seq=420 receive_seq=420 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831517 adj=71830976 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000011 bytes_write=2752 bytes_read=10241 bytes_retransmit=0 bytes_invalid=0 send_seq=426 receive_seq=426 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49999993 adj=50001316 mcu_temp: temp=35.8 chamber_temp: temp=19.3 heater_bed: target=50 temp=19.0 pwm=1.000 sysload=1.17 cputime=37.877 memavail=129096 print_time=330.935 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:56:00,863 [root] [statistics:generate_stats:68] Stats 344.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5165 bytes_read=90100 bytes_retransmit=9 bytes_invalid=0 send_seq=636 receive_seq=636 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996882 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4434 bytes_read=28450 bytes_retransmit=0 bytes_invalid=0 send_seq=613 receive_seq=613 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998829 adj=120001917 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2695 bytes_read=10152 bytes_retransmit=9 bytes_invalid=0 send_seq=423 receive_seq=423 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831624 adj=71832328 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000011 bytes_write=2770 bytes_read=10289 bytes_retransmit=0 bytes_invalid=0 send_seq=429 receive_seq=429 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000019 adj=50001375 mcu_temp: temp=35.9 chamber_temp: temp=19.3 heater_bed: target=50 temp=20.2 pwm=1.000 sysload=1.17 cputime=38.111 memavail=128920 print_time=333.938 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:56:03,863 [root] [statistics:generate_stats:68] Stats 347.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5191 bytes_read=90930 bytes_retransmit=9 bytes_invalid=0 send_seq=640 receive_seq=640 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=11 stalled_bytes=0 freq=119996878 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4460 bytes_read=28665 bytes_retransmit=0 bytes_invalid=0 send_seq=617 receive_seq=617 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998825 adj=120002105 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2713 bytes_read=10213 bytes_retransmit=9 bytes_invalid=0 send_seq=426 receive_seq=426 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831656 adj=71834786 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000013 bytes_write=2788 bytes_read=10350 bytes_retransmit=0 bytes_invalid=0 send_seq=432 receive_seq=432 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000017 adj=50001709 mcu_temp: temp=35.9 chamber_temp: temp=19.2 heater_bed: target=50 temp=22.1 pwm=1.000 sysload=1.08 cputime=38.338 memavail=129104 print_time=336.941 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 [INFO] 2024-04-13 06:56:06,866 [root] [statistics:generate_stats:68] Stats 350.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5241 bytes_read=91782 bytes_retransmit=9 bytes_invalid=0 send_seq=646 receive_seq=646 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996875 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4494 bytes_read=28911 bytes_retransmit=0 bytes_invalid=0 send_seq=622 receive_seq=622 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998826 adj=120001973 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2731 bytes_read=10261 bytes_retransmit=9 bytes_invalid=0 send_seq=429 receive_seq=429 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831662 adj=71834384 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000009 bytes_write=2806 bytes_read=10411 bytes_retransmit=0 bytes_invalid=0 send_seq=435 receive_seq=435 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000031 adj=50001414 mcu_temp: temp=35.9 chamber_temp: temp=19.3 heater_bed: target=50 temp=24.0 pwm=1.000 sysload=1.08 cputime=38.574 memavail=129436 print_time=339.942 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 [INFO] 2024-04-13 06:56:09,871 [root] [statistics:generate_stats:68] Stats 353.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5283 bytes_read=92602 bytes_retransmit=9 bytes_invalid=0 send_seq=651 receive_seq=651 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996878 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4520 bytes_read=29126 bytes_retransmit=0 bytes_invalid=0 send_seq=626 receive_seq=626 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998819 adj=120002019 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2749 bytes_read=10322 bytes_retransmit=9 bytes_invalid=0 send_seq=432 receive_seq=432 retransmit_seq=17 srtt=0.003 rttvar=0.003 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831630 adj=71833872 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000009 bytes_write=2824 bytes_read=10459 bytes_retransmit=0 bytes_invalid=0 send_seq=438 receive_seq=438 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000060 adj=50001581 mcu_temp: temp=36.0 chamber_temp: temp=19.3 heater_bed: target=50 temp=25.9 pwm=1.000 sysload=1.07 cputime=38.813 memavail=128984 print_time=342.946 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:56:12,870 [root] [statistics:generate_stats:68] Stats 356.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5328 bytes_read=93449 bytes_retransmit=9 bytes_invalid=0 send_seq=656 receive_seq=656 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996878 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4554 bytes_read=29372 bytes_retransmit=0 bytes_invalid=0 send_seq=631 receive_seq=631 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998858 adj=120001814 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2767 bytes_read=10370 bytes_retransmit=9 bytes_invalid=0 send_seq=435 receive_seq=435 retransmit_seq=17 srtt=0.002 rttvar=0.002 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831690 adj=71833088 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000021 bytes_write=2842 bytes_read=10518 bytes_retransmit=0 bytes_invalid=0 send_seq=441 receive_seq=441 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000059 adj=50001839 mcu_temp: temp=36.0 chamber_temp: temp=19.3 heater_bed: target=50 temp=27.8 pwm=1.000 sysload=1.07 cputime=39.042 memavail=129468 print_time=345.947 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:56:15,870 [root] [statistics:generate_stats:68] Stats 359.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5354 bytes_read=94264 bytes_retransmit=9 bytes_invalid=0 send_seq=660 receive_seq=660 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996879 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4580 bytes_read=29601 bytes_retransmit=0 bytes_invalid=0 send_seq=635 receive_seq=635 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998855 adj=120002540 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2785 bytes_read=10431 bytes_retransmit=9 bytes_invalid=0 send_seq=438 receive_seq=438 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831698 adj=71834334 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000021 bytes_write=2860 bytes_read=10563 bytes_retransmit=0 bytes_invalid=0 send_seq=444 receive_seq=444 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000051 adj=50001475 mcu_temp: temp=36.0 chamber_temp: temp=19.3 heater_bed: target=50 temp=29.6 pwm=1.000 sysload=1.07 cputime=39.268 memavail=129512 print_time=348.949 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 [INFO] 2024-04-13 06:56:18,873 [root] [statistics:generate_stats:68] Stats 362.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5404 bytes_read=95116 bytes_retransmit=9 bytes_invalid=0 send_seq=666 receive_seq=666 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996877 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4614 bytes_read=29833 bytes_retransmit=0 bytes_invalid=0 send_seq=640 receive_seq=640 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998848 adj=120002061 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2803 bytes_read=10492 bytes_retransmit=9 bytes_invalid=0 send_seq=441 receive_seq=441 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831596 adj=71833865 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000009 bytes_write=2878 bytes_read=10623 bytes_retransmit=0 bytes_invalid=0 send_seq=447 receive_seq=447 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000037 adj=50001259 mcu_temp: temp=36.1 chamber_temp: temp=19.3 heater_bed: target=50 temp=31.4 pwm=1.000 sysload=0.98 cputime=39.501 memavail=129432 print_time=351.952 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:56:21,871 [root] [statistics:generate_stats:68] Stats 365.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5446 bytes_read=95951 bytes_retransmit=9 bytes_invalid=0 send_seq=671 receive_seq=671 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996874 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4640 bytes_read=30062 bytes_retransmit=0 bytes_invalid=0 send_seq=644 receive_seq=644 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998837 adj=120001905 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2821 bytes_read=10540 bytes_retransmit=9 bytes_invalid=0 send_seq=444 receive_seq=444 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831516 adj=71832034 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000009 bytes_write=2896 bytes_read=10671 bytes_retransmit=0 bytes_invalid=0 send_seq=450 receive_seq=450 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=50000024 adj=50001104 mcu_temp: temp=36.1 chamber_temp: temp=19.3 heater_bed: target=50 temp=33.0 pwm=1.000 sysload=0.98 cputime=39.737 memavail=129144 print_time=354.954 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:56:24,870 [root] [statistics:generate_stats:68] Stats 368.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5480 bytes_read=96761 bytes_retransmit=9 bytes_invalid=0 send_seq=676 receive_seq=676 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=11 stalled_bytes=0 freq=119996872 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4674 bytes_read=30292 bytes_retransmit=0 bytes_invalid=0 send_seq=649 receive_seq=649 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998840 adj=120001838 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2839 bytes_read=10601 bytes_retransmit=9 bytes_invalid=0 send_seq=447 receive_seq=447 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831517 adj=71831856 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000014 bytes_write=2914 bytes_read=10732 bytes_retransmit=0 bytes_invalid=0 send_seq=453 receive_seq=453 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49999937 adj=50001089 mcu_temp: temp=36.2 chamber_temp: temp=19.3 heater_bed: target=50 temp=34.8 pwm=1.000 sysload=0.90 cputime=39.961 memavail=129084 print_time=357.956 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:56:27,873 [root] [statistics:generate_stats:68] Stats 371.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5522 bytes_read=97579 bytes_retransmit=9 bytes_invalid=0 send_seq=681 receive_seq=681 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996873 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4700 bytes_read=30514 bytes_retransmit=0 bytes_invalid=0 send_seq=653 receive_seq=653 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998834 adj=120001999 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2857 bytes_read=10646 bytes_retransmit=9 bytes_invalid=0 send_seq=450 receive_seq=450 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831648 adj=71833024 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000009 bytes_write=2932 bytes_read=10793 bytes_retransmit=0 bytes_invalid=0 send_seq=456 receive_seq=456 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49999766 adj=49999892 mcu_temp: temp=36.2 chamber_temp: temp=19.3 heater_bed: target=50 temp=36.4 pwm=1.000 sysload=0.83 cputime=40.194 memavail=129072 print_time=360.959 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:56:30,871 [root] [statistics:generate_stats:68] Stats 374.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5572 bytes_read=98416 bytes_retransmit=9 bytes_invalid=0 send_seq=687 receive_seq=687 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996872 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=4734 bytes_read=30746 bytes_retransmit=0 bytes_invalid=0 send_seq=658 receive_seq=658 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998827 adj=120001872 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2875 bytes_read=10706 bytes_retransmit=9 bytes_invalid=0 send_seq=453 receive_seq=453 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831659 adj=71835369 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000009 bytes_write=2956 bytes_read=10857 bytes_retransmit=0 bytes_invalid=0 send_seq=460 receive_seq=460 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49999453 adj=49998160 mcu_temp: temp=36.2 chamber_temp: temp=19.3 heater_bed: target=50 temp=38.0 pwm=1.000 sysload=0.83 cputime=40.441 memavail=129008 print_time=363.960 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:56:33,872 [root] [statistics:generate_stats:68] Stats 377.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5614 bytes_read=99251 bytes_retransmit=9 bytes_invalid=0 send_seq=692 receive_seq=692 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996872 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4760 bytes_read=30975 bytes_retransmit=0 bytes_invalid=0 send_seq=662 receive_seq=662 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998826 adj=120001853 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2893 bytes_read=10754 bytes_retransmit=9 bytes_invalid=0 send_seq=456 receive_seq=456 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831668 adj=71834153 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000008 bytes_write=2974 bytes_read=10918 bytes_retransmit=0 bytes_invalid=0 send_seq=463 receive_seq=463 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49999176 adj=49995347 mcu_temp: temp=36.2 chamber_temp: temp=19.3 heater_bed: target=50 temp=39.6 pwm=1.000 sysload=0.76 cputime=40.665 memavail=129328 print_time=366.962 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:56:36,078 [root] [verify_heater:check_event:52] Heater heater_bed within range of 50.000 [INFO] 2024-04-13 06:56:36,875 [root] [statistics:generate_stats:68] Stats 380.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5654 bytes_read=100114 bytes_retransmit=9 bytes_invalid=0 send_seq=698 receive_seq=698 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996879 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4794 bytes_read=31221 bytes_retransmit=0 bytes_invalid=0 send_seq=667 receive_seq=667 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998822 adj=120001902 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2911 bytes_read=10815 bytes_retransmit=9 bytes_invalid=0 send_seq=459 receive_seq=459 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831629 adj=71833822 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000008 bytes_write=2992 bytes_read=10966 bytes_retransmit=0 bytes_invalid=0 send_seq=466 receive_seq=466 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998888 adj=49995006 mcu_temp: temp=36.3 chamber_temp: temp=19.3 heater_bed: target=50 temp=41.1 pwm=1.000 sysload=0.76 cputime=40.897 memavail=129716 print_time=369.971 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:56:39,872 [root] [statistics:generate_stats:68] Stats 383.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5696 bytes_read=100934 bytes_retransmit=9 bytes_invalid=0 send_seq=703 receive_seq=703 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996881 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4820 bytes_read=31436 bytes_retransmit=0 bytes_invalid=0 send_seq=671 receive_seq=671 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998817 adj=120001766 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2929 bytes_read=10876 bytes_retransmit=9 bytes_invalid=0 send_seq=462 receive_seq=462 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831718 adj=71832907 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000009 bytes_write=3010 bytes_read=11027 bytes_retransmit=0 bytes_invalid=0 send_seq=469 receive_seq=469 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998591 adj=49994515 mcu_temp: temp=36.2 chamber_temp: temp=19.3 heater_bed: target=50 temp=42.7 pwm=1.000 sysload=0.70 cputime=41.126 memavail=128896 print_time=372.995 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.1 pwm=0.000 [INFO] 2024-04-13 06:56:42,872 [root] [statistics:generate_stats:68] Stats 386.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000005 bytes_write=5746 bytes_read=101786 bytes_retransmit=9 bytes_invalid=0 send_seq=709 receive_seq=709 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996876 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4854 bytes_read=31682 bytes_retransmit=0 bytes_invalid=0 send_seq=676 receive_seq=676 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998823 adj=120001796 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2947 bytes_read=10924 bytes_retransmit=9 bytes_invalid=0 send_seq=465 receive_seq=465 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831655 adj=71834754 rpi: mcu_awake=0.001 mcu_task_avg=0.000015 mcu_task_stddev=0.000032 bytes_write=3028 bytes_read=11088 bytes_retransmit=0 bytes_invalid=0 send_seq=472 receive_seq=472 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998297 adj=49994032 mcu_temp: temp=36.3 chamber_temp: temp=19.3 heater_bed: target=50 temp=44.2 pwm=1.000 sysload=0.64 cputime=41.364 memavail=129376 print_time=375.999 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:56:45,872 [root] [statistics:generate_stats:68] Stats 389.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000005 bytes_write=5772 bytes_read=102601 bytes_retransmit=9 bytes_invalid=0 send_seq=713 receive_seq=713 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=11 stalled_bytes=0 freq=119996874 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4886 bytes_read=31913 bytes_retransmit=0 bytes_invalid=0 send_seq=681 receive_seq=681 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998816 adj=120002064 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2965 bytes_read=10985 bytes_retransmit=9 bytes_invalid=0 send_seq=468 receive_seq=468 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831551 adj=71832910 rpi: mcu_awake=0.001 mcu_task_avg=0.000015 mcu_task_stddev=0.000032 bytes_write=3046 bytes_read=11136 bytes_retransmit=0 bytes_invalid=0 send_seq=475 receive_seq=475 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998012 adj=49993792 mcu_temp: temp=36.4 chamber_temp: temp=19.3 heater_bed: target=50 temp=45.7 pwm=1.000 sysload=0.64 cputime=41.588 memavail=129020 print_time=379.006 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:56:48,872 [root] [statistics:generate_stats:68] Stats 392.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5822 bytes_read=103453 bytes_retransmit=9 bytes_invalid=0 send_seq=719 receive_seq=719 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996883 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4920 bytes_read=32159 bytes_retransmit=0 bytes_invalid=0 send_seq=686 receive_seq=686 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998813 adj=120001900 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=2983 bytes_read=11033 bytes_retransmit=9 bytes_invalid=0 send_seq=471 receive_seq=471 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831519 adj=71831725 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000010 bytes_write=3064 bytes_read=11197 bytes_retransmit=0 bytes_invalid=0 send_seq=478 receive_seq=478 retransmit_seq=0 srtt=0.002 rttvar=0.003 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997830 adj=49993631 mcu_temp: temp=36.4 chamber_temp: temp=19.3 heater_bed: target=50 temp=47.1 pwm=1.000 sysload=0.67 cputime=41.809 memavail=128940 print_time=382.014 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:56:51,884 [root] [statistics:generate_stats:68] Stats 395.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5864 bytes_read=104288 bytes_retransmit=9 bytes_invalid=0 send_seq=724 receive_seq=724 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996879 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4946 bytes_read=32388 bytes_retransmit=0 bytes_invalid=0 send_seq=690 receive_seq=690 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998810 adj=120001735 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3007 bytes_read=11110 bytes_retransmit=9 bytes_invalid=0 send_seq=475 receive_seq=475 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831639 adj=71832386 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000010 bytes_write=3082 bytes_read=11245 bytes_retransmit=0 bytes_invalid=0 send_seq=481 receive_seq=481 retransmit_seq=0 srtt=0.001 rttvar=0.002 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997564 adj=49994947 mcu_temp: temp=36.4 chamber_temp: temp=19.3 heater_bed: target=50 temp=48.5 pwm=1.000 sysload=0.67 cputime=42.031 memavail=129252 print_time=385.025 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:56:54,888 [root] [statistics:generate_stats:68] Stats 398.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5914 bytes_read=105125 bytes_retransmit=9 bytes_invalid=0 send_seq=730 receive_seq=730 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996875 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=4980 bytes_read=32620 bytes_retransmit=0 bytes_invalid=0 send_seq=695 receive_seq=695 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998809 adj=120001902 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3025 bytes_read=11171 bytes_retransmit=9 bytes_invalid=0 send_seq=478 receive_seq=478 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831696 adj=71835064 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000013 bytes_write=3100 bytes_read=11306 bytes_retransmit=0 bytes_invalid=0 send_seq=484 receive_seq=484 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997323 adj=49993880 mcu_temp: temp=36.5 chamber_temp: temp=19.3 heater_bed: target=50 temp=49.9 pwm=1.000 sysload=0.62 cputime=42.259 memavail=129132 print_time=388.035 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:56:57,887 [root] [statistics:generate_stats:68] Stats 401.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5953 bytes_read=105960 bytes_retransmit=9 bytes_invalid=0 send_seq=735 receive_seq=735 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996878 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5006 bytes_read=32849 bytes_retransmit=0 bytes_invalid=0 send_seq=699 receive_seq=699 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998803 adj=120001972 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3043 bytes_read=11219 bytes_retransmit=9 bytes_invalid=0 send_seq=481 receive_seq=481 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831662 adj=71834861 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000008 bytes_write=3118 bytes_read=11367 bytes_retransmit=0 bytes_invalid=0 send_seq=487 receive_seq=487 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997141 adj=49993796 mcu_temp: temp=36.5 chamber_temp: temp=19.4 heater_bed: target=45 temp=51.3 pwm=0.000 sysload=0.57 cputime=42.479 memavail=129016 print_time=391.059 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:57:00,888 [root] [statistics:generate_stats:68] Stats 404.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=5987 bytes_read=106766 bytes_retransmit=9 bytes_invalid=0 send_seq=740 receive_seq=740 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996876 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5040 bytes_read=33077 bytes_retransmit=0 bytes_invalid=0 send_seq=704 receive_seq=704 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998803 adj=120001812 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3061 bytes_read=11280 bytes_retransmit=9 bytes_invalid=0 send_seq=484 receive_seq=484 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831714 adj=71833330 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000008 bytes_write=3136 bytes_read=11415 bytes_retransmit=0 bytes_invalid=0 send_seq=490 receive_seq=490 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996960 adj=49994483 mcu_temp: temp=36.5 chamber_temp: temp=19.3 heater_bed: target=45 temp=51.5 pwm=0.000 sysload=0.57 cputime=42.704 memavail=129000 print_time=394.066 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 [INFO] 2024-04-13 06:57:03,889 [root] [statistics:generate_stats:68] Stats 407.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6013 bytes_read=107583 bytes_retransmit=9 bytes_invalid=0 send_seq=744 receive_seq=744 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996881 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5066 bytes_read=33300 bytes_retransmit=0 bytes_invalid=0 send_seq=708 receive_seq=708 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998807 adj=120001921 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3079 bytes_read=11328 bytes_retransmit=9 bytes_invalid=0 send_seq=487 receive_seq=487 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831801 adj=71834327 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000013 bytes_write=3154 bytes_read=11476 bytes_retransmit=0 bytes_invalid=0 send_seq=493 receive_seq=493 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996799 adj=49994552 mcu_temp: temp=36.5 chamber_temp: temp=19.3 heater_bed: target=45 temp=51.0 pwm=0.000 sysload=0.60 cputime=42.924 memavail=129008 print_time=397.069 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.1 pwm=0.000 [INFO] 2024-04-13 06:57:06,889 [root] [statistics:generate_stats:68] Stats 410.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6047 bytes_read=108430 bytes_retransmit=9 bytes_invalid=0 send_seq=749 receive_seq=749 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996886 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5100 bytes_read=33546 bytes_retransmit=0 bytes_invalid=0 send_seq=713 receive_seq=713 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998801 adj=120001903 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3097 bytes_read=11389 bytes_retransmit=9 bytes_invalid=0 send_seq=490 receive_seq=490 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831789 adj=71835101 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000013 bytes_write=3172 bytes_read=11524 bytes_retransmit=0 bytes_invalid=0 send_seq=496 receive_seq=496 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996665 adj=49994726 mcu_temp: temp=36.5 chamber_temp: temp=19.3 heater_bed: target=45 temp=50.4 pwm=0.000 sysload=0.60 cputime=43.145 memavail=129140 print_time=400.078 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.1 pwm=0.000 [INFO] 2024-04-13 06:57:09,890 [root] [statistics:generate_stats:68] Stats 413.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6073 bytes_read=109245 bytes_retransmit=9 bytes_invalid=0 send_seq=753 receive_seq=753 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996879 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5126 bytes_read=33761 bytes_retransmit=0 bytes_invalid=0 send_seq=717 receive_seq=717 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998798 adj=120001744 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3115 bytes_read=11450 bytes_retransmit=9 bytes_invalid=0 send_seq=493 receive_seq=493 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831721 adj=71833801 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=3190 bytes_read=11585 bytes_retransmit=0 bytes_invalid=0 send_seq=499 receive_seq=499 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996544 adj=49995060 mcu_temp: temp=36.6 chamber_temp: temp=19.3 heater_bed: target=45 temp=49.7 pwm=0.000 sysload=0.64 cputime=43.356 memavail=129272 print_time=403.090 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.1 pwm=0.000 [INFO] 2024-04-13 06:57:12,892 [root] [statistics:generate_stats:68] Stats 416.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6107 bytes_read=110092 bytes_retransmit=9 bytes_invalid=0 send_seq=758 receive_seq=758 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996876 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5160 bytes_read=34007 bytes_retransmit=0 bytes_invalid=0 send_seq=722 receive_seq=722 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998801 adj=120001946 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3133 bytes_read=11498 bytes_retransmit=9 bytes_invalid=0 send_seq=496 receive_seq=496 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831634 adj=71832687 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=3208 bytes_read=11646 bytes_retransmit=0 bytes_invalid=0 send_seq=502 receive_seq=502 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996455 adj=49995334 mcu_temp: temp=36.6 chamber_temp: temp=19.4 heater_bed: target=45 temp=48.9 pwm=0.000 sysload=0.67 cputime=43.581 memavail=128940 print_time=406.101 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.2 pwm=0.000 [INFO] 2024-04-13 06:57:15,892 [root] [statistics:generate_stats:68] Stats 419.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6133 bytes_read=110907 bytes_retransmit=9 bytes_invalid=0 send_seq=762 receive_seq=762 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996875 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5186 bytes_read=34222 bytes_retransmit=0 bytes_invalid=0 send_seq=726 receive_seq=726 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998801 adj=120002020 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3151 bytes_read=11559 bytes_retransmit=9 bytes_invalid=0 send_seq=499 receive_seq=499 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831618 adj=71831996 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=3226 bytes_read=11694 bytes_retransmit=0 bytes_invalid=0 send_seq=505 receive_seq=505 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996584 adj=49995800 mcu_temp: temp=36.7 chamber_temp: temp=19.3 heater_bed: target=45 temp=48.2 pwm=0.000 sysload=0.67 cputime=43.788 memavail=129044 print_time=409.106 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.2 pwm=0.000 [INFO] 2024-04-13 06:57:18,893 [root] [statistics:generate_stats:68] Stats 422.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6167 bytes_read=111754 bytes_retransmit=9 bytes_invalid=0 send_seq=767 receive_seq=767 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996872 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5220 bytes_read=34468 bytes_retransmit=0 bytes_invalid=0 send_seq=731 receive_seq=731 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998801 adj=120001966 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3169 bytes_read=11607 bytes_retransmit=9 bytes_invalid=0 send_seq=502 receive_seq=502 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831715 adj=71832876 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000009 bytes_write=3244 bytes_read=11755 bytes_retransmit=0 bytes_invalid=0 send_seq=508 receive_seq=508 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996490 adj=49999367 mcu_temp: temp=36.6 chamber_temp: temp=19.4 heater_bed: target=45 temp=47.5 pwm=0.000 sysload=0.61 cputime=44.009 memavail=129072 print_time=412.130 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.2 pwm=0.000 [INFO] 2024-04-13 06:57:21,893 [root] [statistics:generate_stats:68] Stats 425.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6193 bytes_read=112569 bytes_retransmit=9 bytes_invalid=0 send_seq=771 receive_seq=771 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996871 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5246 bytes_read=34697 bytes_retransmit=0 bytes_invalid=0 send_seq=735 receive_seq=735 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998823 adj=120001987 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3187 bytes_read=11668 bytes_retransmit=9 bytes_invalid=0 send_seq=505 receive_seq=505 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831712 adj=71834882 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000009 bytes_write=3262 bytes_read=11803 bytes_retransmit=0 bytes_invalid=0 send_seq=511 receive_seq=511 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996433 adj=49996754 mcu_temp: temp=36.6 chamber_temp: temp=19.4 heater_bed: target=45 temp=46.8 pwm=0.000 sysload=0.61 cputime=44.234 memavail=128652 print_time=415.131 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.2 pwm=0.000 [INFO] 2024-04-13 06:57:24,893 [root] [statistics:generate_stats:68] Stats 428.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6227 bytes_read=113416 bytes_retransmit=9 bytes_invalid=0 send_seq=776 receive_seq=776 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996873 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5280 bytes_read=34929 bytes_retransmit=0 bytes_invalid=0 send_seq=740 receive_seq=740 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998817 adj=120002306 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3205 bytes_read=11729 bytes_retransmit=9 bytes_invalid=0 send_seq=508 receive_seq=508 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831703 adj=71833881 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=3280 bytes_read=11864 bytes_retransmit=0 bytes_invalid=0 send_seq=514 receive_seq=514 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996381 adj=49996611 mcu_temp: temp=36.7 chamber_temp: temp=19.4 heater_bed: target=45 temp=46.2 pwm=0.000 sysload=0.56 cputime=44.461 memavail=129092 print_time=418.138 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.2 pwm=0.000 [INFO] 2024-04-13 06:57:27,894 [root] [statistics:generate_stats:68] Stats 431.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6253 bytes_read=114246 bytes_retransmit=9 bytes_invalid=0 send_seq=780 receive_seq=780 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996872 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5306 bytes_read=35158 bytes_retransmit=0 bytes_invalid=0 send_seq=744 receive_seq=744 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998813 adj=120001904 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3223 bytes_read=11774 bytes_retransmit=9 bytes_invalid=0 send_seq=511 receive_seq=511 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831734 adj=71833476 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=3298 bytes_read=11912 bytes_retransmit=0 bytes_invalid=0 send_seq=517 receive_seq=517 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996376 adj=49996602 mcu_temp: temp=36.6 chamber_temp: temp=19.4 heater_bed: target=45 temp=45.6 pwm=0.000 sysload=0.52 cputime=44.677 memavail=129040 print_time=421.149 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.4 pwm=0.000 [INFO] 2024-04-13 06:57:30,894 [root] [statistics:generate_stats:68] Stats 434.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6287 bytes_read=115078 bytes_retransmit=9 bytes_invalid=0 send_seq=785 receive_seq=785 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996870 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5340 bytes_read=35390 bytes_retransmit=0 bytes_invalid=0 send_seq=749 receive_seq=749 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998810 adj=120001889 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000062 bytes_write=3241 bytes_read=11836 bytes_retransmit=9 bytes_invalid=0 send_seq=514 receive_seq=514 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831836 adj=71834024 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000010 bytes_write=3316 bytes_read=11973 bytes_retransmit=0 bytes_invalid=0 send_seq=520 receive_seq=520 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996432 adj=49997322 mcu_temp: temp=36.7 chamber_temp: temp=19.4 heater_bed: target=45 temp=45.0 pwm=0.000 sysload=0.52 cputime=44.893 memavail=129136 print_time=424.162 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.3 pwm=0.000 [INFO] 2024-04-13 06:57:33,896 [root] [statistics:generate_stats:68] Stats 437.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6329 bytes_read=115913 bytes_retransmit=9 bytes_invalid=0 send_seq=790 receive_seq=790 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996868 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5366 bytes_read=35619 bytes_retransmit=0 bytes_invalid=0 send_seq=753 receive_seq=753 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998807 adj=120001903 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000062 bytes_write=3259 bytes_read=11884 bytes_retransmit=9 bytes_invalid=0 send_seq=517 receive_seq=517 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831797 adj=71835349 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000027 bytes_write=3334 bytes_read=12034 bytes_retransmit=0 bytes_invalid=0 send_seq=523 receive_seq=523 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996407 adj=49998540 mcu_temp: temp=36.7 chamber_temp: temp=19.4 heater_bed: target=50 temp=44.4 pwm=1.000 sysload=0.56 cputime=45.130 memavail=129056 print_time=427.181 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.3 pwm=0.000 [INFO] 2024-04-13 06:57:36,897 [root] [statistics:generate_stats:68] Stats 440.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6379 bytes_read=116719 bytes_retransmit=9 bytes_invalid=0 send_seq=796 receive_seq=796 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996866 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5400 bytes_read=35862 bytes_retransmit=0 bytes_invalid=0 send_seq=758 receive_seq=758 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998803 adj=120001925 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3277 bytes_read=11945 bytes_retransmit=9 bytes_invalid=0 send_seq=520 receive_seq=520 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831716 adj=71833528 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000027 bytes_write=3358 bytes_read=12098 bytes_retransmit=0 bytes_invalid=0 send_seq=527 receive_seq=527 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996378 adj=49997538 mcu_temp: temp=36.8 chamber_temp: temp=19.4 heater_bed: target=50 temp=45.0 pwm=1.000 sysload=0.56 cputime=45.368 memavail=129332 print_time=430.199 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.3 pwm=0.000 [INFO] 2024-04-13 06:57:39,897 [root] [statistics:generate_stats:68] Stats 443.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6427 bytes_read=117559 bytes_retransmit=9 bytes_invalid=0 send_seq=802 receive_seq=802 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996869 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5426 bytes_read=36071 bytes_retransmit=0 bytes_invalid=0 send_seq=762 receive_seq=762 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998803 adj=120001908 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3295 bytes_read=11993 bytes_retransmit=9 bytes_invalid=0 send_seq=523 receive_seq=523 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831632 adj=71832348 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000010 bytes_write=3376 bytes_read=12156 bytes_retransmit=0 bytes_invalid=0 send_seq=530 receive_seq=530 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996376 adj=49997219 mcu_temp: temp=36.8 chamber_temp: temp=19.4 heater_bed: target=50 temp=46.3 pwm=1.000 sysload=0.51 cputime=45.594 memavail=129104 print_time=433.201 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.3 pwm=0.000 [INFO] 2024-04-13 06:57:42,898 [root] [statistics:generate_stats:68] Stats 446.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6461 bytes_read=118406 bytes_retransmit=9 bytes_invalid=0 send_seq=807 receive_seq=807 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996878 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5460 bytes_read=36317 bytes_retransmit=0 bytes_invalid=0 send_seq=767 receive_seq=767 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998815 adj=120001874 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=3313 bytes_read=12055 bytes_retransmit=9 bytes_invalid=0 send_seq=526 receive_seq=526 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831691 adj=71831864 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000010 bytes_write=3394 bytes_read=12202 bytes_retransmit=0 bytes_invalid=0 send_seq=533 receive_seq=533 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996496 adj=49997510 mcu_temp: temp=36.7 chamber_temp: temp=19.4 heater_bed: target=50 temp=47.8 pwm=1.000 sysload=0.47 cputime=45.839 memavail=128900 print_time=436.203 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.4 pwm=0.000 [INFO] 2024-04-13 06:57:45,899 [root] [statistics:generate_stats:68] Stats 449.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6503 bytes_read=119226 bytes_retransmit=9 bytes_invalid=0 send_seq=812 receive_seq=812 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996875 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5486 bytes_read=36532 bytes_retransmit=0 bytes_invalid=0 send_seq=771 receive_seq=771 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998811 adj=120001964 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3331 bytes_read=12116 bytes_retransmit=9 bytes_invalid=0 send_seq=529 receive_seq=529 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831714 adj=71833945 rpi: mcu_awake=0.001 mcu_task_avg=0.000014 mcu_task_stddev=0.000021 bytes_write=3412 bytes_read=12263 bytes_retransmit=0 bytes_invalid=0 send_seq=536 receive_seq=536 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996472 adj=49999504 mcu_temp: temp=36.8 chamber_temp: temp=19.4 heater_bed: target=50 temp=49.3 pwm=1.000 sysload=0.47 cputime=46.059 memavail=128784 print_time=439.213 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.4 pwm=0.000 [INFO] 2024-04-13 06:57:47,315 [root] [pid_calibrate:calc_pid:126] Autotune: raw=-7.212656/1.000000 Ku=0.353057 Tu=97.800000 Kp=54.017733 Ki=1.104657 Kd=660.366788 [INFO] 2024-04-13 06:57:48,899 [root] [statistics:generate_stats:68] Stats 452.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6550 bytes_read=120078 bytes_retransmit=9 bytes_invalid=0 send_seq=818 receive_seq=818 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996872 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5526 bytes_read=36794 bytes_retransmit=0 bytes_invalid=0 send_seq=777 receive_seq=777 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998811 adj=120001917 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3349 bytes_read=12164 bytes_retransmit=9 bytes_invalid=0 send_seq=532 receive_seq=532 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831724 adj=71834055 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000013 bytes_write=3430 bytes_read=12324 bytes_retransmit=0 bytes_invalid=0 send_seq=539 receive_seq=539 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996456 adj=49997851 mcu_temp: temp=36.8 chamber_temp: temp=19.4 heater_bed: target=45 temp=50.7 pwm=0.000 sysload=0.43 cputime=46.295 memavail=129088 print_time=442.226 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.4 pwm=0.000 [INFO] 2024-04-13 06:57:51,901 [root] [statistics:generate_stats:68] Stats 455.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6576 bytes_read=120893 bytes_retransmit=9 bytes_invalid=0 send_seq=822 receive_seq=822 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996874 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5552 bytes_read=37023 bytes_retransmit=0 bytes_invalid=0 send_seq=781 receive_seq=781 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998805 adj=120001995 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3367 bytes_read=12225 bytes_retransmit=9 bytes_invalid=0 send_seq=535 receive_seq=535 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831697 adj=71833873 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000013 bytes_write=3448 bytes_read=12372 bytes_retransmit=0 bytes_invalid=0 send_seq=542 receive_seq=542 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996462 adj=49997561 mcu_temp: temp=36.9 chamber_temp: temp=19.4 heater_bed: target=45 temp=51.5 pwm=0.000 sysload=0.43 cputime=46.518 memavail=129012 print_time=445.234 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.5 pwm=0.000 [INFO] 2024-04-13 06:57:54,901 [root] [statistics:generate_stats:68] Stats 458.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6610 bytes_read=121740 bytes_retransmit=9 bytes_invalid=0 send_seq=827 receive_seq=827 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996875 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5586 bytes_read=37255 bytes_retransmit=0 bytes_invalid=0 send_seq=786 receive_seq=786 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998804 adj=120001823 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3391 bytes_read=12289 bytes_retransmit=9 bytes_invalid=0 send_seq=539 receive_seq=539 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831740 adj=71833217 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000015 bytes_write=3466 bytes_read=12433 bytes_retransmit=0 bytes_invalid=0 send_seq=545 receive_seq=545 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996463 adj=49997791 mcu_temp: temp=36.9 chamber_temp: temp=19.4 heater_bed: target=45 temp=51.4 pwm=0.000 sysload=0.40 cputime=46.750 memavail=128964 print_time=448.254 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.5 pwm=0.000 [INFO] 2024-04-13 06:57:57,902 [root] [statistics:generate_stats:68] Stats 461.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6636 bytes_read=122570 bytes_retransmit=9 bytes_invalid=0 send_seq=831 receive_seq=831 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996874 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5612 bytes_read=37484 bytes_retransmit=0 bytes_invalid=0 send_seq=790 receive_seq=790 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998801 adj=120001879 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3409 bytes_read=12350 bytes_retransmit=9 bytes_invalid=0 send_seq=542 receive_seq=542 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831756 adj=71834142 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000015 bytes_write=3484 bytes_read=12481 bytes_retransmit=0 bytes_invalid=0 send_seq=548 receive_seq=548 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996616 adj=49997776 mcu_temp: temp=36.9 chamber_temp: temp=19.4 heater_bed: target=45 temp=51.0 pwm=0.000 sysload=0.45 cputime=46.980 memavail=129044 print_time=451.266 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.6 pwm=0.000 [INFO] 2024-04-13 06:58:00,903 [root] [statistics:generate_stats:68] Stats 464.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6670 bytes_read=123402 bytes_retransmit=9 bytes_invalid=0 send_seq=836 receive_seq=836 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996874 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5646 bytes_read=37716 bytes_retransmit=0 bytes_invalid=0 send_seq=795 receive_seq=795 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998801 adj=120001890 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3427 bytes_read=12411 bytes_retransmit=9 bytes_invalid=0 send_seq=545 receive_seq=545 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831637 adj=71834020 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000015 bytes_write=3502 bytes_read=12542 bytes_retransmit=0 bytes_invalid=0 send_seq=551 receive_seq=551 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996610 adj=50000258 mcu_temp: temp=36.9 chamber_temp: temp=19.5 heater_bed: target=45 temp=50.5 pwm=0.000 sysload=0.45 cputime=47.208 memavail=129004 print_time=454.267 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.5 pwm=0.000 [INFO] 2024-04-13 06:58:03,904 [root] [statistics:generate_stats:68] Stats 467.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6696 bytes_read=124232 bytes_retransmit=9 bytes_invalid=0 send_seq=840 receive_seq=840 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996873 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5672 bytes_read=37945 bytes_retransmit=0 bytes_invalid=0 send_seq=799 receive_seq=799 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998801 adj=120001902 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3445 bytes_read=12459 bytes_retransmit=9 bytes_invalid=0 send_seq=548 receive_seq=548 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831580 adj=71831856 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=3520 bytes_read=12603 bytes_retransmit=0 bytes_invalid=0 send_seq=554 receive_seq=554 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996618 adj=49998403 mcu_temp: temp=37.0 chamber_temp: temp=19.4 heater_bed: target=45 temp=50.0 pwm=0.000 sysload=0.41 cputime=47.430 memavail=128932 print_time=457.272 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.6 pwm=0.000 [INFO] 2024-04-13 06:58:06,904 [root] [statistics:generate_stats:68] Stats 470.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6730 bytes_read=125064 bytes_retransmit=9 bytes_invalid=0 send_seq=845 receive_seq=845 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996878 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5706 bytes_read=38177 bytes_retransmit=0 bytes_invalid=0 send_seq=804 receive_seq=804 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998802 adj=120001933 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3463 bytes_read=12520 bytes_retransmit=9 bytes_invalid=0 send_seq=551 receive_seq=551 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831626 adj=71832216 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=3538 bytes_read=12651 bytes_retransmit=0 bytes_invalid=0 send_seq=557 receive_seq=557 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996638 adj=49998165 mcu_temp: temp=37.0 chamber_temp: temp=19.5 heater_bed: target=45 temp=49.5 pwm=0.000 sysload=0.41 cputime=47.655 memavail=129108 print_time=460.286 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.7 pwm=0.000 [INFO] 2024-04-13 06:58:09,905 [root] [statistics:generate_stats:68] Stats 473.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6756 bytes_read=125894 bytes_retransmit=9 bytes_invalid=0 send_seq=849 receive_seq=849 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996876 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5732 bytes_read=38406 bytes_retransmit=0 bytes_invalid=0 send_seq=808 receive_seq=808 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998804 adj=120001865 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3481 bytes_read=12568 bytes_retransmit=9 bytes_invalid=0 send_seq=554 receive_seq=554 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831732 adj=71833816 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000008 bytes_write=3556 bytes_read=12712 bytes_retransmit=0 bytes_invalid=0 send_seq=560 receive_seq=560 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996665 adj=49998266 mcu_temp: temp=37.1 chamber_temp: temp=19.5 heater_bed: target=45 temp=49.0 pwm=0.000 sysload=0.54 cputime=47.878 memavail=129124 print_time=463.298 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.6 pwm=0.000 [INFO] 2024-04-13 06:58:12,907 [root] [statistics:generate_stats:68] Stats 476.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6790 bytes_read=126707 bytes_retransmit=9 bytes_invalid=0 send_seq=854 receive_seq=854 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996873 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5766 bytes_read=38647 bytes_retransmit=0 bytes_invalid=0 send_seq=813 receive_seq=813 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998800 adj=120001969 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3499 bytes_read=12629 bytes_retransmit=9 bytes_invalid=0 send_seq=557 receive_seq=557 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831702 adj=71835273 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000008 bytes_write=3574 bytes_read=12760 bytes_retransmit=0 bytes_invalid=0 send_seq=563 receive_seq=563 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996702 adj=49998471 mcu_temp: temp=37.0 chamber_temp: temp=19.5 heater_bed: target=45 temp=48.5 pwm=0.000 sysload=0.49 cputime=48.106 memavail=129120 print_time=466.319 buffer_time=0.011 print_stall=0 extruder: target=0 temp=19.7 pwm=0.000 [INFO] 2024-04-13 06:58:15,907 [root] [statistics:generate_stats:68] Stats 479.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6816 bytes_read=127516 bytes_retransmit=9 bytes_invalid=0 send_seq=858 receive_seq=858 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996869 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5792 bytes_read=38858 bytes_retransmit=0 bytes_invalid=0 send_seq=817 receive_seq=817 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998796 adj=120001945 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.001929 bytes_write=3517 bytes_read=12688 bytes_retransmit=9 bytes_invalid=0 send_seq=560 receive_seq=560 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831733 adj=71833592 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000010 bytes_write=3592 bytes_read=12821 bytes_retransmit=0 bytes_invalid=0 send_seq=566 receive_seq=566 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996742 adj=49998706 mcu_temp: temp=37.0 chamber_temp: temp=19.5 heater_bed: target=45 temp=48.0 pwm=0.000 sysload=0.49 cputime=48.322 memavail=129032 print_time=469.329 buffer_time=0.020 print_stall=0 extruder: target=0 temp=19.8 pwm=0.000 [INFO] 2024-04-13 06:58:18,908 [root] [statistics:generate_stats:68] Stats 482.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000005 bytes_write=6850 bytes_read=128363 bytes_retransmit=9 bytes_invalid=0 send_seq=863 receive_seq=863 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996897 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5826 bytes_read=39104 bytes_retransmit=0 bytes_invalid=0 send_seq=822 receive_seq=822 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998808 adj=120001917 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.001929 bytes_write=3535 bytes_read=12736 bytes_retransmit=9 bytes_invalid=0 send_seq=563 receive_seq=563 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831725 adj=71834112 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000013 bytes_write=3610 bytes_read=12882 bytes_retransmit=0 bytes_invalid=0 send_seq=569 receive_seq=569 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996801 adj=49998835 mcu_temp: temp=37.1 chamber_temp: temp=19.5 heater_bed: target=45 temp=47.6 pwm=0.000 sysload=0.61 cputime=48.551 memavail=129196 print_time=472.337 buffer_time=0.028 print_stall=0 extruder: target=0 temp=19.7 pwm=0.000 [INFO] 2024-04-13 06:58:21,909 [root] [statistics:generate_stats:68] Stats 485.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000005 bytes_write=6876 bytes_read=129178 bytes_retransmit=9 bytes_invalid=0 send_seq=867 receive_seq=867 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996889 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5852 bytes_read=39319 bytes_retransmit=0 bytes_invalid=0 send_seq=826 receive_seq=826 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998806 adj=120001666 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3553 bytes_read=12797 bytes_retransmit=9 bytes_invalid=0 send_seq=566 receive_seq=566 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831854 adj=71833320 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000013 bytes_write=3628 bytes_read=12930 bytes_retransmit=0 bytes_invalid=0 send_seq=572 receive_seq=572 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996853 adj=49998999 mcu_temp: temp=37.1 chamber_temp: temp=19.5 heater_bed: target=45 temp=47.1 pwm=0.000 sysload=0.61 cputime=48.765 memavail=129044 print_time=475.348 buffer_time=0.038 print_stall=0 extruder: target=0 temp=19.9 pwm=0.000 [INFO] 2024-04-13 06:58:24,909 [root] [statistics:generate_stats:68] Stats 488.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6910 bytes_read=130025 bytes_retransmit=9 bytes_invalid=0 send_seq=872 receive_seq=872 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996883 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5886 bytes_read=39565 bytes_retransmit=0 bytes_invalid=0 send_seq=831 receive_seq=831 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998808 adj=120001946 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3571 bytes_read=12844 bytes_retransmit=9 bytes_invalid=0 send_seq=569 receive_seq=569 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831798 adj=71835653 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=3646 bytes_read=12991 bytes_retransmit=0 bytes_invalid=0 send_seq=575 receive_seq=575 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996912 adj=49999214 mcu_temp: temp=37.1 chamber_temp: temp=19.6 heater_bed: target=45 temp=46.7 pwm=0.000 sysload=0.57 cputime=48.994 memavail=129324 print_time=478.359 buffer_time=0.048 print_stall=0 extruder: target=0 temp=19.9 pwm=0.000 [INFO] 2024-04-13 06:58:27,910 [root] [statistics:generate_stats:68] Stats 491.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6936 bytes_read=130855 bytes_retransmit=9 bytes_invalid=0 send_seq=876 receive_seq=876 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996881 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5912 bytes_read=39794 bytes_retransmit=0 bytes_invalid=0 send_seq=835 receive_seq=835 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998805 adj=120002052 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3589 bytes_read=12902 bytes_retransmit=9 bytes_invalid=0 send_seq=572 receive_seq=572 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831673 adj=71833358 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=3664 bytes_read=13039 bytes_retransmit=0 bytes_invalid=0 send_seq=578 receive_seq=578 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49996978 adj=49999395 mcu_temp: temp=37.1 chamber_temp: temp=19.6 heater_bed: target=45 temp=46.3 pwm=0.000 sysload=0.76 cputime=49.217 memavail=129052 print_time=481.381 buffer_time=0.069 print_stall=0 extruder: target=0 temp=19.8 pwm=0.000 [INFO] 2024-04-13 06:58:30,911 [root] [statistics:generate_stats:68] Stats 494.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6970 bytes_read=131687 bytes_retransmit=9 bytes_invalid=0 send_seq=881 receive_seq=881 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996881 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5946 bytes_read=40026 bytes_retransmit=0 bytes_invalid=0 send_seq=840 receive_seq=840 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998803 adj=120001949 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3607 bytes_read=12950 bytes_retransmit=9 bytes_invalid=0 send_seq=575 receive_seq=575 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831564 adj=71831626 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000009 bytes_write=3682 bytes_read=13100 bytes_retransmit=0 bytes_invalid=0 send_seq=581 receive_seq=581 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997055 adj=49999571 mcu_temp: temp=37.1 chamber_temp: temp=19.6 heater_bed: target=45 temp=45.9 pwm=0.000 sysload=0.76 cputime=49.440 memavail=128924 print_time=484.395 buffer_time=0.083 print_stall=0 extruder: target=0 temp=19.9 pwm=0.000 [INFO] 2024-04-13 06:58:33,912 [root] [statistics:generate_stats:68] Stats 497.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=6996 bytes_read=132517 bytes_retransmit=9 bytes_invalid=0 send_seq=885 receive_seq=885 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996879 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=5972 bytes_read=40255 bytes_retransmit=0 bytes_invalid=0 send_seq=844 receive_seq=844 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998803 adj=120001885 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3625 bytes_read=13011 bytes_retransmit=9 bytes_invalid=0 send_seq=578 receive_seq=578 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831557 adj=71831294 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000010 bytes_write=3700 bytes_read=13161 bytes_retransmit=0 bytes_invalid=0 send_seq=584 receive_seq=584 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997160 adj=49999832 mcu_temp: temp=37.2 chamber_temp: temp=19.5 heater_bed: target=45 temp=45.5 pwm=0.000 sysload=0.78 cputime=49.657 memavail=128600 print_time=487.398 buffer_time=0.086 print_stall=0 extruder: target=0 temp=20.0 pwm=0.000 [INFO] 2024-04-13 06:58:36,913 [root] [statistics:generate_stats:68] Stats 500.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7030 bytes_read=133349 bytes_retransmit=9 bytes_invalid=0 send_seq=890 receive_seq=890 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996882 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=6006 bytes_read=40487 bytes_retransmit=0 bytes_invalid=0 send_seq=849 receive_seq=849 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998801 adj=120001969 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3643 bytes_read=13072 bytes_retransmit=9 bytes_invalid=0 send_seq=581 receive_seq=581 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831675 adj=71832807 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000010 bytes_write=3718 bytes_read=13209 bytes_retransmit=0 bytes_invalid=0 send_seq=587 receive_seq=587 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997229 adj=50000439 mcu_temp: temp=37.1 chamber_temp: temp=19.5 heater_bed: target=45 temp=45.2 pwm=0.000 sysload=0.78 cputime=49.887 memavail=129212 print_time=490.404 buffer_time=0.090 print_stall=0 extruder: target=0 temp=19.9 pwm=0.000 [INFO] 2024-04-13 06:58:38,614 [root] [pid_calibrate:calc_pid:126] Autotune: raw=7.212656/1.000000 Ku=0.353057 Tu=52.800000 Kp=54.017733 Ki=2.046126 Kd=356.517039 [INFO] 2024-04-13 06:58:39,914 [root] [statistics:generate_stats:68] Stats 503.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000005 bytes_write=7072 bytes_read=134184 bytes_retransmit=9 bytes_invalid=0 send_seq=895 receive_seq=895 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996891 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6032 bytes_read=40716 bytes_retransmit=0 bytes_invalid=0 send_seq=853 receive_seq=853 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998800 adj=120001840 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3661 bytes_read=13120 bytes_retransmit=9 bytes_invalid=0 send_seq=584 receive_seq=584 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831704 adj=71835116 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000013 bytes_write=3736 bytes_read=13270 bytes_retransmit=0 bytes_invalid=0 send_seq=590 receive_seq=590 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997395 adj=50000040 mcu_temp: temp=37.1 chamber_temp: temp=19.5 heater_bed: target=50 temp=44.8 pwm=1.000 sysload=0.80 cputime=50.101 memavail=129100 print_time=493.411 buffer_time=0.096 print_stall=0 extruder: target=0 temp=20.0 pwm=0.000 [INFO] 2024-04-13 06:58:42,915 [root] [statistics:generate_stats:68] Stats 506.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7122 bytes_read=135036 bytes_retransmit=9 bytes_invalid=0 send_seq=901 receive_seq=901 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996883 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6066 bytes_read=40962 bytes_retransmit=0 bytes_invalid=0 send_seq=858 receive_seq=858 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998799 adj=120001737 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000062 bytes_write=3679 bytes_read=13182 bytes_retransmit=9 bytes_invalid=0 send_seq=587 receive_seq=587 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831668 adj=71834294 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000013 bytes_write=3754 bytes_read=13318 bytes_retransmit=0 bytes_invalid=0 send_seq=593 receive_seq=593 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997477 adj=50001485 mcu_temp: temp=37.2 chamber_temp: temp=19.6 heater_bed: target=50 temp=45.0 pwm=1.000 sysload=0.73 cputime=50.325 memavail=129032 print_time=496.422 buffer_time=0.106 print_stall=0 extruder: target=0 temp=20.0 pwm=0.000 [INFO] 2024-04-13 06:58:45,915 [root] [statistics:generate_stats:68] Stats 509.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7154 bytes_read=135867 bytes_retransmit=9 bytes_invalid=0 send_seq=906 receive_seq=906 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996879 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6092 bytes_read=41177 bytes_retransmit=0 bytes_invalid=0 send_seq=862 receive_seq=862 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998807 adj=120001981 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000062 bytes_write=3697 bytes_read=13230 bytes_retransmit=9 bytes_invalid=0 send_seq=590 receive_seq=590 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831717 adj=71833216 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000016 bytes_write=3778 bytes_read=13395 bytes_retransmit=0 bytes_invalid=0 send_seq=597 receive_seq=597 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997573 adj=50000771 mcu_temp: temp=37.2 chamber_temp: temp=19.5 heater_bed: target=50 temp=46.2 pwm=1.000 sysload=0.73 cputime=50.549 memavail=129124 print_time=499.429 buffer_time=0.112 print_stall=0 extruder: target=0 temp=20.1 pwm=0.000 [INFO] 2024-04-13 06:58:48,919 [root] [statistics:generate_stats:68] Stats 512.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7204 bytes_read=136682 bytes_retransmit=9 bytes_invalid=0 send_seq=912 receive_seq=912 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996880 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6126 bytes_read=41417 bytes_retransmit=0 bytes_invalid=0 send_seq=867 receive_seq=867 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998802 adj=120002117 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3715 bytes_read=13291 bytes_retransmit=9 bytes_invalid=0 send_seq=593 receive_seq=593 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831773 adj=71834260 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000011 bytes_write=3796 bytes_read=13456 bytes_retransmit=0 bytes_invalid=0 send_seq=600 receive_seq=600 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997636 adj=50000824 mcu_temp: temp=37.2 chamber_temp: temp=19.6 heater_bed: target=50 temp=47.8 pwm=1.000 sysload=0.68 cputime=50.794 memavail=129300 print_time=502.451 buffer_time=0.133 print_stall=0 extruder: target=0 temp=20.1 pwm=0.000 [INFO] 2024-04-13 06:58:51,920 [root] [statistics:generate_stats:68] Stats 515.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7246 bytes_read=137501 bytes_retransmit=9 bytes_invalid=0 send_seq=917 receive_seq=917 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996875 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6152 bytes_read=41628 bytes_retransmit=0 bytes_invalid=0 send_seq=871 receive_seq=871 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998800 adj=120001896 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=3733 bytes_read=13353 bytes_retransmit=9 bytes_invalid=0 send_seq=596 receive_seq=596 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831701 adj=71834638 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000011 bytes_write=3814 bytes_read=13504 bytes_retransmit=0 bytes_invalid=0 send_seq=603 receive_seq=603 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997679 adj=50000358 mcu_temp: temp=37.3 chamber_temp: temp=19.6 heater_bed: target=50 temp=49.5 pwm=1.000 sysload=0.68 cputime=51.025 memavail=128964 print_time=505.462 buffer_time=0.143 print_stall=0 extruder: target=0 temp=20.1 pwm=0.000 [INFO] 2024-04-13 06:58:53,014 [root] [pid_calibrate:calc_pid:126] Autotune: raw=-6.879924/1.000000 Ku=0.370132 Tu=67.200000 Kp=56.630172 Ki=1.685422 Kd=475.693448 [INFO] 2024-04-13 06:58:54,922 [root] [statistics:generate_stats:68] Stats 518.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7293 bytes_read=138353 bytes_retransmit=9 bytes_invalid=0 send_seq=923 receive_seq=923 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996887 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6192 bytes_read=41890 bytes_retransmit=0 bytes_invalid=0 send_seq=877 receive_seq=877 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998807 adj=120001964 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=3751 bytes_read=13401 bytes_retransmit=9 bytes_invalid=0 send_seq=599 receive_seq=599 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831583 adj=71832790 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000017 bytes_write=3832 bytes_read=13565 bytes_retransmit=0 bytes_invalid=0 send_seq=606 receive_seq=606 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997747 adj=50000002 mcu_temp: temp=37.3 chamber_temp: temp=19.6 heater_bed: target=45 temp=51.3 pwm=0.000 sysload=0.70 cputime=51.259 memavail=128912 print_time=508.465 buffer_time=0.146 print_stall=0 extruder: target=0 temp=20.2 pwm=0.000 [INFO] 2024-04-13 06:58:57,924 [root] [statistics:generate_stats:68] Stats 521.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7319 bytes_read=139168 bytes_retransmit=9 bytes_invalid=0 send_seq=927 receive_seq=927 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996884 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6218 bytes_read=42119 bytes_retransmit=0 bytes_invalid=0 send_seq=881 receive_seq=881 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998803 adj=120001837 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3775 bytes_read=13478 bytes_retransmit=9 bytes_invalid=0 send_seq=603 receive_seq=603 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831526 adj=71831327 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000017 bytes_write=3850 bytes_read=13613 bytes_retransmit=0 bytes_invalid=0 send_seq=609 receive_seq=609 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997792 adj=50000229 mcu_temp: temp=37.3 chamber_temp: temp=19.6 heater_bed: target=45 temp=52.1 pwm=0.000 sysload=0.64 cputime=51.487 memavail=129164 print_time=511.473 buffer_time=0.152 print_stall=0 extruder: target=0 temp=20.2 pwm=0.000 [INFO] 2024-04-13 06:59:00,922 [root] [statistics:generate_stats:68] Stats 524.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7353 bytes_read=140015 bytes_retransmit=9 bytes_invalid=0 send_seq=932 receive_seq=932 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996880 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6252 bytes_read=42351 bytes_retransmit=0 bytes_invalid=0 send_seq=886 receive_seq=886 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998800 adj=120001899 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3793 bytes_read=13526 bytes_retransmit=9 bytes_invalid=0 send_seq=606 receive_seq=606 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831593 adj=71832044 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=3868 bytes_read=13674 bytes_retransmit=0 bytes_invalid=0 send_seq=612 receive_seq=612 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997847 adj=50000067 mcu_temp: temp=37.4 chamber_temp: temp=19.6 heater_bed: target=45 temp=52.1 pwm=0.000 sysload=0.64 cputime=51.722 memavail=129036 print_time=514.485 buffer_time=0.164 print_stall=0 extruder: target=0 temp=20.2 pwm=0.000 [INFO] 2024-04-13 06:59:03,923 [root] [statistics:generate_stats:68] Stats 527.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7379 bytes_read=140845 bytes_retransmit=9 bytes_invalid=0 send_seq=936 receive_seq=936 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996876 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=6278 bytes_read=42580 bytes_retransmit=0 bytes_invalid=0 send_seq=890 receive_seq=890 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998797 adj=120001940 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=3811 bytes_read=13588 bytes_retransmit=9 bytes_invalid=0 send_seq=609 receive_seq=609 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831536 adj=71834148 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=3886 bytes_read=13721 bytes_retransmit=0 bytes_invalid=0 send_seq=615 receive_seq=615 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997898 adj=50000234 mcu_temp: temp=37.3 chamber_temp: temp=19.6 heater_bed: target=45 temp=51.8 pwm=0.000 sysload=0.59 cputime=51.945 memavail=128888 print_time=517.494 buffer_time=0.172 print_stall=0 extruder: target=0 temp=20.3 pwm=0.000 [INFO] 2024-04-13 06:59:06,928 [root] [statistics:generate_stats:68] Stats 530.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7413 bytes_read=141677 bytes_retransmit=9 bytes_invalid=0 send_seq=941 receive_seq=941 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996872 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=6312 bytes_read=42812 bytes_retransmit=0 bytes_invalid=0 send_seq=895 receive_seq=895 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998798 adj=120001927 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3829 bytes_read=13649 bytes_retransmit=9 bytes_invalid=0 send_seq=612 receive_seq=612 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831532 adj=71832781 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000015 bytes_write=3904 bytes_read=13779 bytes_retransmit=0 bytes_invalid=0 send_seq=618 receive_seq=618 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49997928 adj=50000256 mcu_temp: temp=37.4 chamber_temp: temp=19.6 heater_bed: target=45 temp=51.5 pwm=0.000 sysload=0.59 cputime=52.177 memavail=129012 print_time=520.506 buffer_time=0.183 print_stall=0 extruder: target=0 temp=20.4 pwm=0.000 [INFO] 2024-04-13 06:59:09,929 [root] [statistics:generate_stats:68] Stats 533.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7439 bytes_read=142507 bytes_retransmit=9 bytes_invalid=0 send_seq=945 receive_seq=945 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996868 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6338 bytes_read=43041 bytes_retransmit=0 bytes_invalid=0 send_seq=899 receive_seq=899 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998802 adj=120002002 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3847 bytes_read=13697 bytes_retransmit=9 bytes_invalid=0 send_seq=615 receive_seq=615 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831570 adj=71833230 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=3922 bytes_read=13839 bytes_retransmit=0 bytes_invalid=0 send_seq=621 receive_seq=621 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998005 adj=49999967 mcu_temp: temp=37.4 chamber_temp: temp=19.6 heater_bed: target=45 temp=51.1 pwm=0.000 sysload=0.55 cputime=52.418 memavail=128908 print_time=523.528 buffer_time=0.203 print_stall=0 extruder: target=0 temp=20.3 pwm=0.000 [INFO] 2024-04-13 06:59:12,929 [root] [statistics:generate_stats:68] Stats 536.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7473 bytes_read=143339 bytes_retransmit=9 bytes_invalid=0 send_seq=950 receive_seq=950 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996871 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6372 bytes_read=43287 bytes_retransmit=0 bytes_invalid=0 send_seq=904 receive_seq=904 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998799 adj=120002077 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3865 bytes_read=13758 bytes_retransmit=9 bytes_invalid=0 send_seq=618 receive_seq=618 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831672 adj=71834015 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=3940 bytes_read=13887 bytes_retransmit=0 bytes_invalid=0 send_seq=624 receive_seq=624 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998058 adj=50000675 mcu_temp: temp=37.5 chamber_temp: temp=19.6 heater_bed: target=45 temp=50.8 pwm=0.000 sysload=0.58 cputime=52.649 memavail=129336 print_time=526.532 buffer_time=0.206 print_stall=0 extruder: target=0 temp=20.4 pwm=0.000 [INFO] 2024-04-13 06:59:15,928 [root] [statistics:generate_stats:68] Stats 539.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7499 bytes_read=144169 bytes_retransmit=9 bytes_invalid=0 send_seq=954 receive_seq=954 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996867 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6398 bytes_read=43502 bytes_retransmit=0 bytes_invalid=0 send_seq=908 receive_seq=908 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998795 adj=120001866 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3883 bytes_read=13806 bytes_retransmit=9 bytes_invalid=0 send_seq=621 receive_seq=621 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831617 adj=71835185 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000012 bytes_write=3958 bytes_read=13948 bytes_retransmit=0 bytes_invalid=0 send_seq=627 receive_seq=627 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998102 adj=50000485 mcu_temp: temp=37.4 chamber_temp: temp=19.7 heater_bed: target=45 temp=50.4 pwm=0.000 sysload=0.58 cputime=52.871 memavail=128596 print_time=529.539 buffer_time=0.212 print_stall=0 extruder: target=0 temp=20.4 pwm=0.000 [INFO] 2024-04-13 06:59:18,927 [root] [statistics:generate_stats:68] Stats 542.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7533 bytes_read=145016 bytes_retransmit=9 bytes_invalid=0 send_seq=959 receive_seq=959 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996868 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6432 bytes_read=43748 bytes_retransmit=0 bytes_invalid=0 send_seq=913 receive_seq=913 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998799 adj=120001920 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3901 bytes_read=13867 bytes_retransmit=9 bytes_invalid=0 send_seq=624 receive_seq=624 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831553 adj=71833126 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000012 bytes_write=3976 bytes_read=13996 bytes_retransmit=0 bytes_invalid=0 send_seq=630 receive_seq=630 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998147 adj=50000412 mcu_temp: temp=37.4 chamber_temp: temp=19.7 heater_bed: target=45 temp=50.1 pwm=0.000 sysload=0.70 cputime=53.098 memavail=129092 print_time=532.549 buffer_time=0.222 print_stall=0 extruder: target=0 temp=20.5 pwm=0.000 [INFO] 2024-04-13 06:59:21,930 [root] [statistics:generate_stats:68] Stats 545.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7559 bytes_read=145831 bytes_retransmit=9 bytes_invalid=0 send_seq=963 receive_seq=963 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996870 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6458 bytes_read=43963 bytes_retransmit=0 bytes_invalid=0 send_seq=917 receive_seq=917 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998795 adj=120001972 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3919 bytes_read=13915 bytes_retransmit=9 bytes_invalid=0 send_seq=627 receive_seq=627 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831474 adj=71832381 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000013 bytes_write=3994 bytes_read=14057 bytes_retransmit=0 bytes_invalid=0 send_seq=633 receive_seq=633 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998231 adj=50000371 mcu_temp: temp=37.4 chamber_temp: temp=19.7 heater_bed: target=45 temp=49.7 pwm=0.000 sysload=0.70 cputime=53.315 memavail=129440 print_time=535.561 buffer_time=0.233 print_stall=0 extruder: target=0 temp=20.6 pwm=0.000 [INFO] 2024-04-13 06:59:24,930 [root] [statistics:generate_stats:68] Stats 548.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7593 bytes_read=146636 bytes_retransmit=9 bytes_invalid=0 send_seq=968 receive_seq=968 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996866 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6492 bytes_read=44203 bytes_retransmit=0 bytes_invalid=0 send_seq=922 receive_seq=922 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998797 adj=120001852 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3937 bytes_read=13975 bytes_retransmit=9 bytes_invalid=0 send_seq=630 receive_seq=630 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831527 adj=71831893 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000010 bytes_write=4012 bytes_read=14118 bytes_retransmit=0 bytes_invalid=0 send_seq=636 receive_seq=636 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998266 adj=50001024 mcu_temp: temp=37.4 chamber_temp: temp=19.7 heater_bed: target=45 temp=49.4 pwm=0.000 sysload=0.64 cputime=53.539 memavail=128916 print_time=537.573 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.6 pwm=0.000 [INFO] 2024-04-13 06:59:27,942 [root] [statistics:generate_stats:68] Stats 551.1: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7619 bytes_read=147451 bytes_retransmit=9 bytes_invalid=0 send_seq=972 receive_seq=972 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996867 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6518 bytes_read=44429 bytes_retransmit=0 bytes_invalid=0 send_seq=926 receive_seq=926 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998797 adj=120001993 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3955 bytes_read=14033 bytes_retransmit=9 bytes_invalid=0 send_seq=633 receive_seq=633 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831599 adj=71833776 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000010 bytes_write=4030 bytes_read=14166 bytes_retransmit=0 bytes_invalid=0 send_seq=639 receive_seq=639 retransmit_seq=0 srtt=0.000 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998323 adj=50000581 mcu_temp: temp=37.6 chamber_temp: temp=19.7 heater_bed: target=45 temp=49.0 pwm=0.000 sysload=0.59 cputime=53.771 memavail=129100 print_time=540.591 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.6 pwm=0.000 [INFO] 2024-04-13 06:59:30,945 [root] [statistics:generate_stats:68] Stats 554.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7653 bytes_read=148298 bytes_retransmit=9 bytes_invalid=0 send_seq=977 receive_seq=977 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996869 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6552 bytes_read=44661 bytes_retransmit=0 bytes_invalid=0 send_seq=931 receive_seq=931 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998797 adj=120001914 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3973 bytes_read=14081 bytes_retransmit=9 bytes_invalid=0 send_seq=636 receive_seq=636 retransmit_seq=17 srtt=0.002 rttvar=0.002 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831585 adj=71834638 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=4048 bytes_read=14227 bytes_retransmit=0 bytes_invalid=0 send_seq=642 receive_seq=642 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998354 adj=50000738 mcu_temp: temp=37.5 chamber_temp: temp=19.7 heater_bed: target=45 temp=48.7 pwm=0.000 sysload=0.59 cputime=53.994 memavail=129000 print_time=543.593 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.6 pwm=0.000 [INFO] 2024-04-13 06:59:33,951 [root] [statistics:generate_stats:68] Stats 557.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7679 bytes_read=149128 bytes_retransmit=9 bytes_invalid=0 send_seq=981 receive_seq=981 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996866 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000003 bytes_write=6578 bytes_read=44890 bytes_retransmit=0 bytes_invalid=0 send_seq=935 receive_seq=935 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998797 adj=120001904 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3991 bytes_read=14142 bytes_retransmit=9 bytes_invalid=0 send_seq=639 receive_seq=639 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831556 adj=71833517 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=4066 bytes_read=14275 bytes_retransmit=0 bytes_invalid=0 send_seq=645 receive_seq=645 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998397 adj=50000404 mcu_temp: temp=37.5 chamber_temp: temp=19.7 heater_bed: target=45 temp=48.4 pwm=0.000 sysload=0.54 cputime=54.213 memavail=129064 print_time=546.601 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.7 pwm=0.000 [INFO] 2024-04-13 06:59:36,951 [root] [statistics:generate_stats:68] Stats 560.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7713 bytes_read=149960 bytes_retransmit=9 bytes_invalid=0 send_seq=986 receive_seq=986 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996868 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000003 bytes_write=6612 bytes_read=45122 bytes_retransmit=0 bytes_invalid=0 send_seq=940 receive_seq=940 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998816 adj=120001969 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4009 bytes_read=14190 bytes_retransmit=9 bytes_invalid=0 send_seq=642 receive_seq=642 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831625 adj=71833026 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000010 bytes_write=4084 bytes_read=14336 bytes_retransmit=0 bytes_invalid=0 send_seq=648 receive_seq=648 retransmit_seq=0 srtt=0.002 rttvar=0.003 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998414 adj=50000553 mcu_temp: temp=37.5 chamber_temp: temp=19.7 heater_bed: target=45 temp=48.0 pwm=0.000 sysload=0.54 cputime=54.424 memavail=129104 print_time=549.609 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 [INFO] 2024-04-13 06:59:39,952 [root] [statistics:generate_stats:68] Stats 563.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7739 bytes_read=150790 bytes_retransmit=9 bytes_invalid=0 send_seq=990 receive_seq=990 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996869 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6638 bytes_read=45351 bytes_retransmit=0 bytes_invalid=0 send_seq=944 receive_seq=944 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998814 adj=120002223 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4027 bytes_read=14251 bytes_retransmit=9 bytes_invalid=0 send_seq=645 receive_seq=645 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831672 adj=71834397 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=4102 bytes_read=14397 bytes_retransmit=0 bytes_invalid=0 send_seq=651 receive_seq=651 retransmit_seq=0 srtt=0.001 rttvar=0.002 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998467 adj=50000165 mcu_temp: temp=37.6 chamber_temp: temp=19.7 heater_bed: target=45 temp=47.8 pwm=0.000 sysload=0.50 cputime=54.645 memavail=129320 print_time=552.621 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 [INFO] 2024-04-13 06:59:42,953 [root] [statistics:generate_stats:68] Stats 566.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7773 bytes_read=151622 bytes_retransmit=9 bytes_invalid=0 send_seq=995 receive_seq=995 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996868 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6672 bytes_read=45583 bytes_retransmit=0 bytes_invalid=0 send_seq=949 receive_seq=949 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998815 adj=120001947 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4045 bytes_read=14312 bytes_retransmit=9 bytes_invalid=0 send_seq=648 receive_seq=648 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831645 adj=71834462 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=4120 bytes_read=14445 bytes_retransmit=0 bytes_invalid=0 send_seq=654 receive_seq=654 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998513 adj=50000683 mcu_temp: temp=37.6 chamber_temp: temp=19.7 heater_bed: target=45 temp=47.5 pwm=0.000 sysload=0.46 cputime=54.872 memavail=128928 print_time=555.631 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 [INFO] 2024-04-13 06:59:45,953 [root] [statistics:generate_stats:68] Stats 569.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7799 bytes_read=152452 bytes_retransmit=9 bytes_invalid=0 send_seq=999 receive_seq=999 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996871 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6698 bytes_read=45812 bytes_retransmit=0 bytes_invalid=0 send_seq=953 receive_seq=953 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998808 adj=120001990 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4063 bytes_read=14360 bytes_retransmit=9 bytes_invalid=0 send_seq=651 receive_seq=651 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831609 adj=71833344 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000010 bytes_write=4138 bytes_read=14506 bytes_retransmit=0 bytes_invalid=0 send_seq=657 receive_seq=657 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998553 adj=50000766 mcu_temp: temp=37.6 chamber_temp: temp=19.7 heater_bed: target=45 temp=47.2 pwm=0.000 sysload=0.46 cputime=55.087 memavail=128712 print_time=558.646 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 [INFO] 2024-04-13 06:59:48,953 [root] [statistics:generate_stats:68] Stats 572.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7833 bytes_read=153299 bytes_retransmit=9 bytes_invalid=0 send_seq=1004 receive_seq=1004 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996879 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=6732 bytes_read=46058 bytes_retransmit=0 bytes_invalid=0 send_seq=958 receive_seq=958 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998803 adj=120001806 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4081 bytes_read=14421 bytes_retransmit=9 bytes_invalid=0 send_seq=654 receive_seq=654 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831603 adj=71832852 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000010 bytes_write=4156 bytes_read=14554 bytes_retransmit=0 bytes_invalid=0 send_seq=660 receive_seq=660 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998585 adj=50000695 mcu_temp: temp=37.7 chamber_temp: temp=19.7 heater_bed: target=45 temp=47.0 pwm=0.000 sysload=0.58 cputime=55.317 memavail=129392 print_time=561.658 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 [INFO] 2024-04-13 06:59:51,954 [root] [statistics:generate_stats:68] Stats 575.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7865 bytes_read=154130 bytes_retransmit=9 bytes_invalid=0 send_seq=1009 receive_seq=1009 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996924 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=6758 bytes_read=46273 bytes_retransmit=0 bytes_invalid=0 send_seq=962 receive_seq=962 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998799 adj=120001690 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4099 bytes_read=14469 bytes_retransmit=9 bytes_invalid=0 send_seq=657 receive_seq=657 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831674 adj=71833131 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000013 bytes_write=4180 bytes_read=14631 bytes_retransmit=0 bytes_invalid=0 send_seq=664 receive_seq=664 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998617 adj=50000538 mcu_temp: temp=37.7 chamber_temp: temp=19.7 heater_bed: target=45 temp=46.7 pwm=0.000 sysload=0.58 cputime=55.543 memavail=128844 print_time=564.664 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 [INFO] 2024-04-13 06:59:54,955 [root] [statistics:generate_stats:68] Stats 578.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7899 bytes_read=154977 bytes_retransmit=9 bytes_invalid=0 send_seq=1014 receive_seq=1014 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996906 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6798 bytes_read=46519 bytes_retransmit=0 bytes_invalid=0 send_seq=968 receive_seq=967 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998800 adj=120001107 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4117 bytes_read=14530 bytes_retransmit=9 bytes_invalid=0 send_seq=660 receive_seq=660 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831660 adj=71834090 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000013 bytes_write=4198 bytes_read=14692 bytes_retransmit=0 bytes_invalid=0 send_seq=667 receive_seq=667 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998630 adj=50000274 mcu_temp: temp=37.6 chamber_temp: temp=19.8 heater_bed: target=45 temp=46.5 pwm=0.000 sysload=1.02 cputime=55.764 memavail=129412 print_time=567.672 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 [INFO] 2024-04-13 06:59:57,956 [root] [statistics:generate_stats:68] Stats 581.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7925 bytes_read=155792 bytes_retransmit=9 bytes_invalid=0 send_seq=1018 receive_seq=1018 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996900 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6824 bytes_read=46750 bytes_retransmit=0 bytes_invalid=0 send_seq=972 receive_seq=972 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998796 adj=120001976 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4135 bytes_read=14591 bytes_retransmit=9 bytes_invalid=0 send_seq=663 receive_seq=663 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831634 adj=71833591 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000013 bytes_write=4216 bytes_read=14740 bytes_retransmit=0 bytes_invalid=0 send_seq=670 receive_seq=670 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998673 adj=50000325 mcu_temp: temp=37.6 chamber_temp: temp=19.8 heater_bed: target=45 temp=46.3 pwm=0.000 sysload=1.33 cputime=55.992 memavail=129260 print_time=570.683 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 [INFO] 2024-04-13 07:00:00,956 [root] [statistics:generate_stats:68] Stats 584.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7959 bytes_read=156599 bytes_retransmit=9 bytes_invalid=0 send_seq=1023 receive_seq=1023 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996893 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6858 bytes_read=46988 bytes_retransmit=0 bytes_invalid=0 send_seq=977 receive_seq=977 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998802 adj=120001958 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4159 bytes_read=14655 bytes_retransmit=9 bytes_invalid=0 send_seq=667 receive_seq=667 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831618 adj=71833178 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000020 bytes_write=4234 bytes_read=14801 bytes_retransmit=0 bytes_invalid=0 send_seq=673 receive_seq=673 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998677 adj=50000773 mcu_temp: temp=37.7 chamber_temp: temp=19.7 heater_bed: target=45 temp=46.1 pwm=0.000 sysload=1.33 cputime=56.221 memavail=128932 print_time=573.692 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 [INFO] 2024-04-13 07:00:03,957 [root] [statistics:generate_stats:68] Stats 587.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=7985 bytes_read=157414 bytes_retransmit=9 bytes_invalid=0 send_seq=1027 receive_seq=1027 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996888 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6884 bytes_read=47216 bytes_retransmit=0 bytes_invalid=0 send_seq=981 receive_seq=981 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998804 adj=120002103 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4177 bytes_read=14716 bytes_retransmit=9 bytes_invalid=0 send_seq=670 receive_seq=670 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831682 adj=71833199 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000020 bytes_write=4252 bytes_read=14849 bytes_retransmit=0 bytes_invalid=0 send_seq=676 receive_seq=676 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998681 adj=50000267 mcu_temp: temp=37.7 chamber_temp: temp=19.8 heater_bed: target=45 temp=45.9 pwm=0.000 sysload=1.23 cputime=56.429 memavail=129424 print_time=576.703 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 [INFO] 2024-04-13 07:00:06,958 [root] [statistics:generate_stats:68] Stats 590.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8019 bytes_read=158261 bytes_retransmit=9 bytes_invalid=0 send_seq=1032 receive_seq=1032 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996885 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6918 bytes_read=47448 bytes_retransmit=0 bytes_invalid=0 send_seq=986 receive_seq=986 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998801 adj=120002074 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4195 bytes_read=14764 bytes_retransmit=9 bytes_invalid=0 send_seq=673 receive_seq=673 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831691 adj=71834478 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000010 bytes_write=4270 bytes_read=14910 bytes_retransmit=0 bytes_invalid=0 send_seq=679 receive_seq=679 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998692 adj=50000141 mcu_temp: temp=37.7 chamber_temp: temp=19.8 heater_bed: target=45 temp=45.7 pwm=0.000 sysload=1.23 cputime=56.662 memavail=128760 print_time=579.716 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 [INFO] 2024-04-13 07:00:09,959 [root] [statistics:generate_stats:68] Stats 593.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8045 bytes_read=159091 bytes_retransmit=9 bytes_invalid=0 send_seq=1036 receive_seq=1036 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996885 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6944 bytes_read=47677 bytes_retransmit=0 bytes_invalid=0 send_seq=990 receive_seq=990 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998800 adj=120006740 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=4213 bytes_read=14826 bytes_retransmit=9 bytes_invalid=0 send_seq=676 receive_seq=676 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831599 adj=71833958 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=4288 bytes_read=14971 bytes_retransmit=0 bytes_invalid=0 send_seq=682 receive_seq=682 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998729 adj=50000219 mcu_temp: temp=37.7 chamber_temp: temp=19.8 heater_bed: target=45 temp=45.5 pwm=0.000 sysload=1.13 cputime=56.879 memavail=129196 print_time=582.727 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 [INFO] 2024-04-13 07:00:12,960 [root] [statistics:generate_stats:68] Stats 596.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8079 bytes_read=159923 bytes_retransmit=9 bytes_invalid=0 send_seq=1041 receive_seq=1041 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996882 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6978 bytes_read=47909 bytes_retransmit=0 bytes_invalid=0 send_seq=995 receive_seq=995 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998796 adj=120003107 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4231 bytes_read=14887 bytes_retransmit=9 bytes_invalid=0 send_seq=679 receive_seq=679 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831579 adj=71832225 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=4306 bytes_read=15019 bytes_retransmit=0 bytes_invalid=0 send_seq=685 receive_seq=685 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998733 adj=50000654 mcu_temp: temp=37.8 chamber_temp: temp=19.9 heater_bed: target=45 temp=45.3 pwm=0.000 sysload=1.04 cputime=57.098 memavail=129008 print_time=585.737 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 [INFO] 2024-04-13 07:00:15,961 [root] [statistics:generate_stats:68] Stats 599.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8105 bytes_read=160753 bytes_retransmit=9 bytes_invalid=0 send_seq=1045 receive_seq=1045 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996876 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7004 bytes_read=48138 bytes_retransmit=0 bytes_invalid=0 send_seq=999 receive_seq=999 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998793 adj=120002183 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4249 bytes_read=14935 bytes_retransmit=9 bytes_invalid=0 send_seq=682 receive_seq=682 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831542 adj=71832859 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000013 bytes_write=4324 bytes_read=15080 bytes_retransmit=0 bytes_invalid=0 send_seq=688 receive_seq=688 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998733 adj=50000301 mcu_temp: temp=37.8 chamber_temp: temp=19.9 heater_bed: target=45 temp=45.2 pwm=0.000 sysload=1.04 cputime=57.319 memavail=128984 print_time=588.748 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 [INFO] 2024-04-13 07:00:18,814 [root] [pid_calibrate:calc_pid:126] Autotune: raw=7.476906/1.000000 Ku=0.340579 Tu=66.300000 Kp=52.108624 Ki=1.571904 Kd=431.850225 [INFO] 2024-04-13 07:00:18,962 [root] [statistics:generate_stats:68] Stats 602.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8155 bytes_read=161590 bytes_retransmit=9 bytes_invalid=0 send_seq=1051 receive_seq=1051 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996872 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7038 bytes_read=48384 bytes_retransmit=0 bytes_invalid=0 send_seq=1004 receive_seq=1004 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998791 adj=120002022 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4267 bytes_read=14996 bytes_retransmit=9 bytes_invalid=0 send_seq=685 receive_seq=685 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831634 adj=71832774 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000013 bytes_write=4342 bytes_read=15128 bytes_retransmit=0 bytes_invalid=0 send_seq=691 receive_seq=691 retransmit_seq=0 srtt=0.001 rttvar=0.002 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998733 adj=50000140 mcu_temp: temp=37.9 chamber_temp: temp=19.9 heater_bed: target=50 temp=45.0 pwm=1.000 sysload=1.03 cputime=57.549 memavail=129340 print_time=591.756 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.3 pwm=0.000 [INFO] 2024-04-13 07:00:21,961 [root] [statistics:generate_stats:68] Stats 605.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8181 bytes_read=162420 bytes_retransmit=9 bytes_invalid=0 send_seq=1055 receive_seq=1055 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996864 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7064 bytes_read=48599 bytes_retransmit=0 bytes_invalid=0 send_seq=1008 receive_seq=1008 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998790 adj=120001991 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4285 bytes_read=15044 bytes_retransmit=9 bytes_invalid=0 send_seq=688 receive_seq=688 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831638 adj=71834768 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000008 bytes_write=4360 bytes_read=15189 bytes_retransmit=0 bytes_invalid=0 send_seq=694 receive_seq=694 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998735 adj=50000092 mcu_temp: temp=37.8 chamber_temp: temp=19.9 heater_bed: target=50 temp=45.1 pwm=1.000 sysload=1.03 cputime=57.761 memavail=129044 print_time=594.768 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.3 pwm=0.000 [INFO] 2024-04-13 07:00:24,961 [root] [statistics:generate_stats:68] Stats 608.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8231 bytes_read=163272 bytes_retransmit=9 bytes_invalid=0 send_seq=1061 receive_seq=1061 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996862 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7098 bytes_read=48845 bytes_retransmit=0 bytes_invalid=0 send_seq=1013 receive_seq=1013 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998790 adj=120001967 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4303 bytes_read=15104 bytes_retransmit=9 bytes_invalid=0 send_seq=691 receive_seq=691 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831641 adj=71833918 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000008 bytes_write=4378 bytes_read=15237 bytes_retransmit=0 bytes_invalid=0 send_seq=697 receive_seq=697 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998749 adj=50000106 mcu_temp: temp=37.8 chamber_temp: temp=19.8 heater_bed: target=50 temp=46.1 pwm=1.000 sysload=0.95 cputime=57.975 memavail=129004 print_time=597.789 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.4 pwm=0.000 [INFO] 2024-04-13 07:00:27,962 [root] [statistics:generate_stats:68] Stats 611.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8273 bytes_read=164092 bytes_retransmit=9 bytes_invalid=0 send_seq=1066 receive_seq=1066 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996861 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7124 bytes_read=49060 bytes_retransmit=0 bytes_invalid=0 send_seq=1017 receive_seq=1017 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998791 adj=120001977 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4321 bytes_read=15149 bytes_retransmit=9 bytes_invalid=0 send_seq=694 receive_seq=694 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831653 adj=71833699 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=4396 bytes_read=15298 bytes_retransmit=0 bytes_invalid=0 send_seq=700 receive_seq=700 retransmit_seq=0 srtt=0.000 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998751 adj=50000300 mcu_temp: temp=37.9 chamber_temp: temp=19.9 heater_bed: target=50 temp=47.7 pwm=1.000 sysload=0.87 cputime=58.204 memavail=129392 print_time=600.796 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.4 pwm=0.000 [INFO] 2024-04-13 07:00:30,967 [root] [statistics:generate_stats:68] Stats 614.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8307 bytes_read=164939 bytes_retransmit=9 bytes_invalid=0 send_seq=1071 receive_seq=1071 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996867 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7158 bytes_read=49306 bytes_retransmit=0 bytes_invalid=0 send_seq=1022 receive_seq=1022 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998788 adj=120001972 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=4339 bytes_read=15211 bytes_retransmit=9 bytes_invalid=0 send_seq=697 receive_seq=697 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831736 adj=71833782 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000017 bytes_write=4414 bytes_read=15357 bytes_retransmit=0 bytes_invalid=0 send_seq=703 receive_seq=703 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998766 adj=50000158 mcu_temp: temp=37.9 chamber_temp: temp=19.9 heater_bed: target=50 temp=49.4 pwm=1.000 sysload=0.87 cputime=58.425 memavail=129472 print_time=603.800 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.5 pwm=0.000 [INFO] 2024-04-13 07:00:32,015 [root] [pid_calibrate:calc_pid:126] Autotune: raw=-7.182488/1.000000 Ku=0.354540 Tu=97.800000 Kp=54.244617 Ki=1.109297 Kd=663.140438 [INFO] 2024-04-13 07:00:33,964 [root] [statistics:generate_stats:68] Stats 617.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8362 bytes_read=165764 bytes_retransmit=9 bytes_invalid=0 send_seq=1077 receive_seq=1077 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996867 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7184 bytes_read=49535 bytes_retransmit=0 bytes_invalid=0 send_seq=1026 receive_seq=1026 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998790 adj=120001793 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4357 bytes_read=15272 bytes_retransmit=9 bytes_invalid=0 send_seq=700 receive_seq=700 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831668 adj=71834876 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000017 bytes_write=4432 bytes_read=15402 bytes_retransmit=0 bytes_invalid=0 send_seq=706 receive_seq=706 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998788 adj=50000290 mcu_temp: temp=37.8 chamber_temp: temp=19.9 heater_bed: target=45 temp=51.4 pwm=0.000 sysload=0.89 cputime=58.654 memavail=129324 print_time=606.812 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.4 pwm=0.000 [INFO] 2024-04-13 07:00:36,964 [root] [statistics:generate_stats:68] Stats 620.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8396 bytes_read=166562 bytes_retransmit=9 bytes_invalid=0 send_seq=1082 receive_seq=1082 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996867 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7218 bytes_read=49746 bytes_retransmit=0 bytes_invalid=0 send_seq=1031 receive_seq=1031 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998788 adj=120001924 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4375 bytes_read=15320 bytes_retransmit=9 bytes_invalid=0 send_seq=703 receive_seq=703 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831571 adj=71832852 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000013 bytes_write=4450 bytes_read=15463 bytes_retransmit=0 bytes_invalid=0 send_seq=709 receive_seq=709 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998801 adj=50000492 mcu_temp: temp=37.9 chamber_temp: temp=19.9 heater_bed: target=45 temp=52.3 pwm=0.000 sysload=0.89 cputime=58.877 memavail=129108 print_time=609.823 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.5 pwm=0.000 [INFO] 2024-04-13 07:00:39,964 [root] [statistics:generate_stats:68] Stats 623.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8422 bytes_read=167404 bytes_retransmit=9 bytes_invalid=0 send_seq=1086 receive_seq=1086 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996867 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7244 bytes_read=49986 bytes_retransmit=0 bytes_invalid=0 send_seq=1035 receive_seq=1035 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998785 adj=120001891 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4393 bytes_read=15381 bytes_retransmit=9 bytes_invalid=0 send_seq=706 receive_seq=706 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831511 adj=71831807 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000013 bytes_write=4468 bytes_read=15511 bytes_retransmit=0 bytes_invalid=0 send_seq=712 receive_seq=712 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998808 adj=50000409 mcu_temp: temp=38.0 chamber_temp: temp=19.9 heater_bed: target=45 temp=52.5 pwm=0.000 sysload=0.89 cputime=59.104 memavail=129236 print_time=612.833 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.5 pwm=0.000 [INFO] 2024-04-13 07:00:42,965 [root] [statistics:generate_stats:68] Stats 626.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8456 bytes_read=168224 bytes_retransmit=9 bytes_invalid=0 send_seq=1091 receive_seq=1091 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996870 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7278 bytes_read=50206 bytes_retransmit=0 bytes_invalid=0 send_seq=1040 receive_seq=1040 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998787 adj=120001857 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4411 bytes_read=15429 bytes_retransmit=9 bytes_invalid=0 send_seq=709 receive_seq=709 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831564 adj=71832084 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000013 bytes_write=4486 bytes_read=15572 bytes_retransmit=0 bytes_invalid=0 send_seq=715 receive_seq=715 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998809 adj=50000293 mcu_temp: temp=37.9 chamber_temp: temp=19.9 heater_bed: target=45 temp=52.3 pwm=0.000 sysload=0.90 cputime=59.332 memavail=129000 print_time=615.857 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.6 pwm=0.000 [INFO] 2024-04-13 07:00:45,967 [root] [statistics:generate_stats:68] Stats 629.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8482 bytes_read=169066 bytes_retransmit=9 bytes_invalid=0 send_seq=1095 receive_seq=1095 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996866 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7304 bytes_read=50447 bytes_retransmit=0 bytes_invalid=0 send_seq=1044 receive_seq=1044 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998787 adj=120001886 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4429 bytes_read=15490 bytes_retransmit=9 bytes_invalid=0 send_seq=712 receive_seq=712 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831622 adj=71833861 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000027 bytes_write=4504 bytes_read=15633 bytes_retransmit=0 bytes_invalid=0 send_seq=718 receive_seq=718 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998815 adj=50000163 mcu_temp: temp=37.9 chamber_temp: temp=19.9 heater_bed: target=45 temp=52.1 pwm=0.000 sysload=0.90 cputime=59.551 memavail=128868 print_time=618.860 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.6 pwm=0.000 [INFO] 2024-04-13 07:00:48,968 [root] [statistics:generate_stats:68] Stats 632.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8516 bytes_read=169886 bytes_retransmit=9 bytes_invalid=0 send_seq=1100 receive_seq=1100 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996863 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7338 bytes_read=50681 bytes_retransmit=0 bytes_invalid=0 send_seq=1049 receive_seq=1049 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998783 adj=120001973 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4447 bytes_read=15551 bytes_retransmit=9 bytes_invalid=0 send_seq=715 receive_seq=715 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831619 adj=71834485 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000027 bytes_write=4522 bytes_read=15681 bytes_retransmit=0 bytes_invalid=0 send_seq=721 receive_seq=721 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998824 adj=50000243 mcu_temp: temp=38.0 chamber_temp: temp=19.9 heater_bed: target=45 temp=51.8 pwm=0.000 sysload=0.83 cputime=59.784 memavail=129012 print_time=621.866 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.7 pwm=0.000 [INFO] 2024-04-13 07:00:51,972 [root] [statistics:generate_stats:68] Stats 635.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8542 bytes_read=170728 bytes_retransmit=9 bytes_invalid=0 send_seq=1104 receive_seq=1104 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996859 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7364 bytes_read=50908 bytes_retransmit=0 bytes_invalid=0 send_seq=1053 receive_seq=1053 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998786 adj=120001929 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4465 bytes_read=15599 bytes_retransmit=9 bytes_invalid=0 send_seq=718 receive_seq=718 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831621 adj=71833722 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=4540 bytes_read=15742 bytes_retransmit=0 bytes_invalid=0 send_seq=724 receive_seq=724 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998836 adj=50000328 mcu_temp: temp=38.1 chamber_temp: temp=19.9 heater_bed: target=45 temp=51.6 pwm=0.000 sysload=0.83 cputime=59.999 memavail=129004 print_time=624.872 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.7 pwm=0.000 [INFO] 2024-04-13 07:00:54,984 [root] [statistics:generate_stats:68] Stats 638.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8568 bytes_read=171558 bytes_retransmit=9 bytes_invalid=0 send_seq=1108 receive_seq=1108 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996857 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7390 bytes_read=51152 bytes_retransmit=0 bytes_invalid=0 send_seq=1057 receive_seq=1057 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998786 adj=120002028 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4483 bytes_read=15660 bytes_retransmit=9 bytes_invalid=0 send_seq=721 receive_seq=721 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831714 adj=71833598 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=4558 bytes_read=15790 bytes_retransmit=0 bytes_invalid=0 send_seq=727 receive_seq=727 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998839 adj=50000411 mcu_temp: temp=38.0 chamber_temp: temp=19.9 heater_bed: target=45 temp=51.3 pwm=0.000 sysload=0.76 cputime=60.213 memavail=128972 print_time=627.881 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.7 pwm=0.000 [INFO] 2024-04-13 07:00:58,005 [root] [statistics:generate_stats:68] Stats 641.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8608 bytes_read=172390 bytes_retransmit=9 bytes_invalid=0 send_seq=1114 receive_seq=1113 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996857 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7430 bytes_read=51384 bytes_retransmit=0 bytes_invalid=0 send_seq=1063 receive_seq=1062 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998781 adj=120001978 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4501 bytes_read=15708 bytes_retransmit=9 bytes_invalid=0 send_seq=724 receive_seq=724 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831767 adj=71835012 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000009 bytes_write=4582 bytes_read=15867 bytes_retransmit=0 bytes_invalid=0 send_seq=731 receive_seq=731 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998866 adj=50000267 mcu_temp: temp=38.1 chamber_temp: temp=19.9 heater_bed: target=45 temp=51.1 pwm=0.000 sysload=0.70 cputime=60.440 memavail=128672 print_time=630.888 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.8 pwm=0.000 [INFO] 2024-04-13 07:01:01,010 [root] [statistics:generate_stats:68] Stats 644.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8634 bytes_read=173236 bytes_retransmit=9 bytes_invalid=0 send_seq=1118 receive_seq=1118 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996859 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7456 bytes_read=51629 bytes_retransmit=0 bytes_invalid=0 send_seq=1067 receive_seq=1067 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998781 adj=120001820 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4525 bytes_read=15785 bytes_retransmit=9 bytes_invalid=0 send_seq=728 receive_seq=728 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831637 adj=71834757 rpi: mcu_awake=0.001 mcu_task_avg=0.000014 mcu_task_stddev=0.000031 bytes_write=4600 bytes_read=15928 bytes_retransmit=0 bytes_invalid=0 send_seq=734 receive_seq=734 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998859 adj=50000605 mcu_temp: temp=38.1 chamber_temp: temp=20.0 heater_bed: target=45 temp=50.8 pwm=0.000 sysload=0.70 cputime=60.660 memavail=128992 print_time=633.900 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.8 pwm=0.000 [INFO] 2024-04-13 07:01:04,013 [root] [statistics:generate_stats:68] Stats 647.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8668 bytes_read=174068 bytes_retransmit=9 bytes_invalid=0 send_seq=1123 receive_seq=1123 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996861 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7490 bytes_read=51875 bytes_retransmit=0 bytes_invalid=0 send_seq=1072 receive_seq=1072 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998774 adj=120001900 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4543 bytes_read=15846 bytes_retransmit=9 bytes_invalid=0 send_seq=731 receive_seq=731 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831568 adj=71831227 rpi: mcu_awake=0.001 mcu_task_avg=0.000014 mcu_task_stddev=0.000031 bytes_write=4618 bytes_read=15976 bytes_retransmit=0 bytes_invalid=0 send_seq=737 receive_seq=737 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998874 adj=50000169 mcu_temp: temp=38.1 chamber_temp: temp=20.0 heater_bed: target=45 temp=50.5 pwm=0.000 sysload=0.89 cputime=60.881 memavail=129352 print_time=636.916 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.9 pwm=0.000 [INFO] 2024-04-13 07:01:07,013 [root] [statistics:generate_stats:68] Stats 650.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8694 bytes_read=174898 bytes_retransmit=9 bytes_invalid=0 send_seq=1127 receive_seq=1127 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996857 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7516 bytes_read=52090 bytes_retransmit=0 bytes_invalid=0 send_seq=1076 receive_seq=1076 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998771 adj=120001775 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4561 bytes_read=15894 bytes_retransmit=9 bytes_invalid=0 send_seq=734 receive_seq=734 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831512 adj=71832413 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000008 bytes_write=4636 bytes_read=16037 bytes_retransmit=0 bytes_invalid=0 send_seq=740 receive_seq=740 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998863 adj=50000401 mcu_temp: temp=38.1 chamber_temp: temp=19.9 heater_bed: target=45 temp=50.2 pwm=0.000 sysload=0.89 cputime=61.091 memavail=128972 print_time=639.927 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.8 pwm=0.000 [INFO] 2024-04-13 07:01:10,014 [root] [statistics:generate_stats:68] Stats 653.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8728 bytes_read=175745 bytes_retransmit=9 bytes_invalid=0 send_seq=1132 receive_seq=1132 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996856 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7550 bytes_read=52336 bytes_retransmit=0 bytes_invalid=0 send_seq=1081 receive_seq=1081 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998770 adj=120001907 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=4579 bytes_read=15956 bytes_retransmit=9 bytes_invalid=0 send_seq=737 receive_seq=737 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831621 adj=71832349 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000008 bytes_write=4654 bytes_read=16085 bytes_retransmit=0 bytes_invalid=0 send_seq=743 receive_seq=743 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998857 adj=50000084 mcu_temp: temp=38.1 chamber_temp: temp=20.0 heater_bed: target=45 temp=50.0 pwm=0.000 sysload=1.06 cputime=61.319 memavail=129412 print_time=642.936 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.9 pwm=0.000 [INFO] 2024-04-13 07:01:13,015 [root] [statistics:generate_stats:68] Stats 656.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8754 bytes_read=176518 bytes_retransmit=9 bytes_invalid=0 send_seq=1136 receive_seq=1136 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996856 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7576 bytes_read=52541 bytes_retransmit=0 bytes_invalid=0 send_seq=1085 receive_seq=1085 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998765 adj=120001909 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=4597 bytes_read=16004 bytes_retransmit=9 bytes_invalid=0 send_seq=740 receive_seq=740 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831622 adj=71834888 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000008 bytes_write=4672 bytes_read=16146 bytes_retransmit=0 bytes_invalid=0 send_seq=746 receive_seq=746 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998856 adj=50000065 mcu_temp: temp=38.1 chamber_temp: temp=20.0 heater_bed: target=45 temp=49.7 pwm=0.000 sysload=1.37 cputime=61.533 memavail=129168 print_time=645.940 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.0 pwm=0.000 [INFO] 2024-04-13 07:01:16,016 [root] [statistics:generate_stats:68] Stats 659.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8788 bytes_read=177365 bytes_retransmit=9 bytes_invalid=0 send_seq=1141 receive_seq=1141 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996853 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7610 bytes_read=52787 bytes_retransmit=0 bytes_invalid=0 send_seq=1090 receive_seq=1090 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998769 adj=120001833 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=4615 bytes_read=16066 bytes_retransmit=9 bytes_invalid=0 send_seq=743 receive_seq=743 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831657 adj=71833863 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000017 bytes_write=4690 bytes_read=16207 bytes_retransmit=0 bytes_invalid=0 send_seq=749 receive_seq=749 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998871 adj=50000121 mcu_temp: temp=38.2 chamber_temp: temp=20.0 heater_bed: target=45 temp=49.5 pwm=0.000 sysload=1.37 cputime=61.752 memavail=129272 print_time=648.952 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.0 pwm=0.000 [INFO] 2024-04-13 07:01:19,016 [root] [statistics:generate_stats:68] Stats 662.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8814 bytes_read=178180 bytes_retransmit=9 bytes_invalid=0 send_seq=1145 receive_seq=1145 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996857 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7636 bytes_read=53002 bytes_retransmit=0 bytes_invalid=0 send_seq=1094 receive_seq=1094 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998766 adj=120002002 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=4633 bytes_read=16114 bytes_retransmit=9 bytes_invalid=0 send_seq=746 receive_seq=746 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831610 adj=71834202 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000017 bytes_write=4708 bytes_read=16255 bytes_retransmit=0 bytes_invalid=0 send_seq=752 receive_seq=752 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998875 adj=50000429 mcu_temp: temp=38.2 chamber_temp: temp=20.0 heater_bed: target=45 temp=49.2 pwm=0.000 sysload=1.34 cputime=61.983 memavail=128656 print_time=651.961 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.1 pwm=0.000 [INFO] 2024-04-13 07:01:22,018 [root] [statistics:generate_stats:68] Stats 665.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8848 bytes_read=179027 bytes_retransmit=9 bytes_invalid=0 send_seq=1150 receive_seq=1150 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996858 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7670 bytes_read=53248 bytes_retransmit=0 bytes_invalid=0 send_seq=1099 receive_seq=1099 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998761 adj=120001819 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4651 bytes_read=16175 bytes_retransmit=9 bytes_invalid=0 send_seq=749 receive_seq=749 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831675 adj=71832919 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=4726 bytes_read=16316 bytes_retransmit=0 bytes_invalid=0 send_seq=755 receive_seq=755 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998866 adj=50000273 mcu_temp: temp=38.2 chamber_temp: temp=20.0 heater_bed: target=45 temp=49.0 pwm=0.000 sysload=1.34 cputime=62.211 memavail=128932 print_time=654.979 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.1 pwm=0.000 [INFO] 2024-04-13 07:01:25,018 [root] [statistics:generate_stats:68] Stats 668.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8874 bytes_read=179857 bytes_retransmit=9 bytes_invalid=0 send_seq=1154 receive_seq=1154 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996860 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7696 bytes_read=53477 bytes_retransmit=0 bytes_invalid=0 send_seq=1103 receive_seq=1103 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998760 adj=120001805 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4669 bytes_read=16235 bytes_retransmit=9 bytes_invalid=0 send_seq=752 receive_seq=752 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831664 adj=71834398 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=4744 bytes_read=16364 bytes_retransmit=0 bytes_invalid=0 send_seq=758 receive_seq=758 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998882 adj=50000056 mcu_temp: temp=38.2 chamber_temp: temp=20.1 heater_bed: target=45 temp=48.8 pwm=0.000 sysload=1.55 cputime=62.419 memavail=128880 print_time=657.987 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.2 pwm=0.000 [INFO] 2024-04-13 07:01:28,020 [root] [statistics:generate_stats:68] Stats 671.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8908 bytes_read=180689 bytes_retransmit=9 bytes_invalid=0 send_seq=1159 receive_seq=1159 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996864 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7730 bytes_read=53709 bytes_retransmit=0 bytes_invalid=0 send_seq=1108 receive_seq=1108 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998762 adj=120001826 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4687 bytes_read=16281 bytes_retransmit=9 bytes_invalid=0 send_seq=755 receive_seq=755 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831643 adj=71833596 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=4762 bytes_read=16425 bytes_retransmit=0 bytes_invalid=0 send_seq=761 receive_seq=761 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998888 adj=50000389 mcu_temp: temp=38.3 chamber_temp: temp=20.0 heater_bed: target=45 temp=48.6 pwm=0.000 sysload=1.59 cputime=62.641 memavail=129344 print_time=660.995 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.2 pwm=0.000 [INFO] 2024-04-13 07:01:31,020 [root] [statistics:generate_stats:68] Stats 674.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8934 bytes_read=181519 bytes_retransmit=9 bytes_invalid=0 send_seq=1163 receive_seq=1163 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996872 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7756 bytes_read=53938 bytes_retransmit=0 bytes_invalid=0 send_seq=1112 receive_seq=1112 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998763 adj=120001840 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4705 bytes_read=16342 bytes_retransmit=9 bytes_invalid=0 send_seq=758 receive_seq=758 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831573 adj=71833190 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000013 bytes_write=4780 bytes_read=16486 bytes_retransmit=0 bytes_invalid=0 send_seq=764 receive_seq=764 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998896 adj=50000322 mcu_temp: temp=38.2 chamber_temp: temp=20.1 heater_bed: target=45 temp=48.4 pwm=0.000 sysload=1.59 cputime=62.863 memavail=128932 print_time=664.005 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.2 pwm=0.000 [INFO] 2024-04-13 07:01:34,020 [root] [statistics:generate_stats:68] Stats 677.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8968 bytes_read=182351 bytes_retransmit=9 bytes_invalid=0 send_seq=1168 receive_seq=1168 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996875 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7790 bytes_read=54170 bytes_retransmit=0 bytes_invalid=0 send_seq=1117 receive_seq=1117 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998764 adj=120001781 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4723 bytes_read=16390 bytes_retransmit=9 bytes_invalid=0 send_seq=761 receive_seq=761 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831556 adj=71832244 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000013 bytes_write=4798 bytes_read=16534 bytes_retransmit=0 bytes_invalid=0 send_seq=767 receive_seq=767 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998918 adj=50000302 mcu_temp: temp=38.3 chamber_temp: temp=20.1 heater_bed: target=45 temp=48.2 pwm=0.000 sysload=1.46 cputime=63.071 memavail=129320 print_time=667.016 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.2 pwm=0.000 [INFO] 2024-04-13 07:01:37,021 [root] [statistics:generate_stats:68] Stats 680.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=8994 bytes_read=183181 bytes_retransmit=9 bytes_invalid=0 send_seq=1172 receive_seq=1172 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996870 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7816 bytes_read=54399 bytes_retransmit=0 bytes_invalid=0 send_seq=1121 receive_seq=1121 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998764 adj=120001832 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4741 bytes_read=16451 bytes_retransmit=9 bytes_invalid=0 send_seq=764 receive_seq=764 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831601 adj=71832835 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000010 bytes_write=4816 bytes_read=16595 bytes_retransmit=0 bytes_invalid=0 send_seq=770 receive_seq=770 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998940 adj=50000567 mcu_temp: temp=38.3 chamber_temp: temp=20.1 heater_bed: target=45 temp=48.0 pwm=0.000 sysload=1.46 cputime=63.288 memavail=128976 print_time=670.027 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.3 pwm=0.000 [INFO] 2024-04-13 07:01:40,021 [root] [statistics:generate_stats:68] Stats 683.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9028 bytes_read=184013 bytes_retransmit=9 bytes_invalid=0 send_seq=1177 receive_seq=1177 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996867 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7850 bytes_read=54645 bytes_retransmit=0 bytes_invalid=0 send_seq=1126 receive_seq=1126 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998766 adj=120001949 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4759 bytes_read=16512 bytes_retransmit=9 bytes_invalid=0 send_seq=767 receive_seq=767 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831556 adj=71834062 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000010 bytes_write=4834 bytes_read=16643 bytes_retransmit=0 bytes_invalid=0 send_seq=773 receive_seq=773 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998945 adj=50000716 mcu_temp: temp=38.3 chamber_temp: temp=20.1 heater_bed: target=45 temp=47.8 pwm=0.000 sysload=1.35 cputime=63.508 memavail=128684 print_time=673.039 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.3 pwm=0.000 [INFO] 2024-04-13 07:01:43,022 [root] [statistics:generate_stats:68] Stats 686.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9054 bytes_read=184843 bytes_retransmit=9 bytes_invalid=0 send_seq=1181 receive_seq=1181 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996865 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7876 bytes_read=54860 bytes_retransmit=0 bytes_invalid=0 send_seq=1130 receive_seq=1130 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998763 adj=120001995 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4777 bytes_read=16560 bytes_retransmit=9 bytes_invalid=0 send_seq=770 receive_seq=770 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831563 adj=71832923 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000010 bytes_write=4852 bytes_read=16704 bytes_retransmit=0 bytes_invalid=0 send_seq=776 receive_seq=776 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998945 adj=50000468 mcu_temp: temp=38.3 chamber_temp: temp=20.2 heater_bed: target=45 temp=47.7 pwm=0.000 sysload=1.24 cputime=63.721 memavail=129292 print_time=676.052 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.4 pwm=0.000 [INFO] 2024-04-13 07:01:46,023 [root] [statistics:generate_stats:68] Stats 689.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9088 bytes_read=185687 bytes_retransmit=9 bytes_invalid=0 send_seq=1186 receive_seq=1186 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996862 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7910 bytes_read=55106 bytes_retransmit=0 bytes_invalid=0 send_seq=1135 receive_seq=1135 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998763 adj=120001896 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4795 bytes_read=16621 bytes_retransmit=9 bytes_invalid=0 send_seq=773 receive_seq=773 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831652 adj=71833413 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000018 bytes_write=4870 bytes_read=16765 bytes_retransmit=0 bytes_invalid=0 send_seq=779 receive_seq=779 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998929 adj=50000308 mcu_temp: temp=38.3 chamber_temp: temp=20.1 heater_bed: target=45 temp=47.5 pwm=0.000 sysload=1.24 cputime=63.947 memavail=128828 print_time=679.061 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.4 pwm=0.000 [INFO] 2024-04-13 07:01:49,023 [root] [statistics:generate_stats:68] Stats 692.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9114 bytes_read=186464 bytes_retransmit=9 bytes_invalid=0 send_seq=1190 receive_seq=1190 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996865 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7936 bytes_read=55312 bytes_retransmit=0 bytes_invalid=0 send_seq=1139 receive_seq=1139 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998760 adj=120001947 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4813 bytes_read=16669 bytes_retransmit=9 bytes_invalid=0 send_seq=776 receive_seq=776 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831699 adj=71834870 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000018 bytes_write=4888 bytes_read=16813 bytes_retransmit=0 bytes_invalid=0 send_seq=782 receive_seq=782 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998912 adj=50000015 mcu_temp: temp=38.3 chamber_temp: temp=20.1 heater_bed: target=45 temp=47.3 pwm=0.000 sysload=1.14 cputime=64.167 memavail=128892 print_time=682.071 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.4 pwm=0.000 [INFO] 2024-04-13 07:01:52,024 [root] [statistics:generate_stats:68] Stats 695.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9148 bytes_read=187311 bytes_retransmit=9 bytes_invalid=0 send_seq=1195 receive_seq=1195 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996864 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7970 bytes_read=55558 bytes_retransmit=0 bytes_invalid=0 send_seq=1144 receive_seq=1144 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998769 adj=120001818 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000020 mcu_task_stddev=0.000085 bytes_write=4831 bytes_read=16731 bytes_retransmit=9 bytes_invalid=0 send_seq=779 receive_seq=779 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831653 adj=71834594 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000015 bytes_write=4906 bytes_read=16874 bytes_retransmit=0 bytes_invalid=0 send_seq=785 receive_seq=785 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998905 adj=49999887 mcu_temp: temp=38.4 chamber_temp: temp=20.2 heater_bed: target=45 temp=47.2 pwm=0.000 sysload=1.14 cputime=64.390 memavail=128904 print_time=685.081 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.5 pwm=0.000 [INFO] 2024-04-13 07:01:55,025 [root] [statistics:generate_stats:68] Stats 698.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9174 bytes_read=188126 bytes_retransmit=9 bytes_invalid=0 send_seq=1199 receive_seq=1199 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996862 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7996 bytes_read=55787 bytes_retransmit=0 bytes_invalid=0 send_seq=1148 receive_seq=1148 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998766 adj=120002034 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4849 bytes_read=16792 bytes_retransmit=9 bytes_invalid=0 send_seq=782 receive_seq=782 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831582 adj=71833091 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000015 bytes_write=4924 bytes_read=16922 bytes_retransmit=0 bytes_invalid=0 send_seq=788 receive_seq=788 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998904 adj=50000021 mcu_temp: temp=38.4 chamber_temp: temp=20.2 heater_bed: target=45 temp=47.0 pwm=0.000 sysload=1.05 cputime=64.609 memavail=128860 print_time=688.090 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.5 pwm=0.000 [INFO] 2024-04-13 07:01:58,026 [root] [statistics:generate_stats:68] Stats 701.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9208 bytes_read=188973 bytes_retransmit=9 bytes_invalid=0 send_seq=1204 receive_seq=1204 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996858 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8030 bytes_read=56019 bytes_retransmit=0 bytes_invalid=0 send_seq=1153 receive_seq=1153 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998768 adj=120001936 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4867 bytes_read=16840 bytes_retransmit=9 bytes_invalid=0 send_seq=785 receive_seq=785 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831619 adj=71832286 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000012 bytes_write=4942 bytes_read=16980 bytes_retransmit=0 bytes_invalid=0 send_seq=791 receive_seq=791 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998898 adj=50000160 mcu_temp: temp=38.3 chamber_temp: temp=20.2 heater_bed: target=45 temp=46.9 pwm=0.000 sysload=0.96 cputime=64.835 memavail=129024 print_time=691.111 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.6 pwm=0.000 [INFO] 2024-04-13 07:02:01,026 [root] [statistics:generate_stats:68] Stats 704.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9234 bytes_read=189803 bytes_retransmit=9 bytes_invalid=0 send_seq=1208 receive_seq=1208 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996865 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8056 bytes_read=56248 bytes_retransmit=0 bytes_invalid=0 send_seq=1157 receive_seq=1157 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998768 adj=120001990 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4885 bytes_read=16901 bytes_retransmit=9 bytes_invalid=0 send_seq=788 receive_seq=788 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831649 adj=71833776 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000010 bytes_write=4960 bytes_read=17039 bytes_retransmit=0 bytes_invalid=0 send_seq=794 receive_seq=794 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998909 adj=50000113 mcu_temp: temp=38.4 chamber_temp: temp=20.2 heater_bed: target=45 temp=46.8 pwm=0.000 sysload=0.96 cputime=65.062 memavail=128860 print_time=694.126 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.6 pwm=0.000 [INFO] 2024-04-13 07:02:04,027 [root] [statistics:generate_stats:68] Stats 707.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9274 bytes_read=190651 bytes_retransmit=9 bytes_invalid=0 send_seq=1214 receive_seq=1214 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996866 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8096 bytes_read=56496 bytes_retransmit=0 bytes_invalid=0 send_seq=1163 receive_seq=1163 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998770 adj=120001817 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4903 bytes_read=16949 bytes_retransmit=9 bytes_invalid=0 send_seq=791 receive_seq=791 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831653 adj=71833955 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000010 bytes_write=4984 bytes_read=17103 bytes_retransmit=0 bytes_invalid=0 send_seq=798 receive_seq=798 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998913 adj=50000330 mcu_temp: temp=38.4 chamber_temp: temp=20.2 heater_bed: target=45 temp=46.7 pwm=0.000 sysload=0.89 cputime=65.280 memavail=128996 print_time=697.126 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.6 pwm=0.000 [INFO] 2024-04-13 07:02:07,029 [root] [statistics:generate_stats:68] Stats 710.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9300 bytes_read=191481 bytes_retransmit=9 bytes_invalid=0 send_seq=1218 receive_seq=1218 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996864 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8122 bytes_read=56725 bytes_retransmit=0 bytes_invalid=0 send_seq=1167 receive_seq=1167 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998769 adj=120001892 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4921 bytes_read=17010 bytes_retransmit=9 bytes_invalid=0 send_seq=794 receive_seq=794 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831639 adj=71833668 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000011 bytes_write=5002 bytes_read=17164 bytes_retransmit=0 bytes_invalid=0 send_seq=801 receive_seq=801 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998918 adj=50000298 mcu_temp: temp=38.4 chamber_temp: temp=20.2 heater_bed: target=45 temp=46.6 pwm=0.000 sysload=0.89 cputime=65.493 memavail=129164 print_time=700.136 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.7 pwm=0.000 [INFO] 2024-04-13 07:02:10,029 [root] [statistics:generate_stats:68] Stats 713.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9334 bytes_read=192313 bytes_retransmit=9 bytes_invalid=0 send_seq=1223 receive_seq=1223 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996872 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8156 bytes_read=56971 bytes_retransmit=0 bytes_invalid=0 send_seq=1172 receive_seq=1172 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998770 adj=120001911 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4945 bytes_read=17074 bytes_retransmit=9 bytes_invalid=0 send_seq=798 receive_seq=798 retransmit_seq=17 srtt=0.003 rttvar=0.005 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831595 adj=71833364 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000011 bytes_write=5020 bytes_read=17212 bytes_retransmit=0 bytes_invalid=0 send_seq=804 receive_seq=804 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998915 adj=50000334 mcu_temp: temp=38.5 chamber_temp: temp=20.2 heater_bed: target=45 temp=46.4 pwm=0.000 sysload=0.81 cputime=65.721 memavail=128600 print_time=703.147 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.7 pwm=0.000 [INFO] 2024-04-13 07:02:13,029 [root] [statistics:generate_stats:68] Stats 716.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9360 bytes_read=193143 bytes_retransmit=9 bytes_invalid=0 send_seq=1227 receive_seq=1227 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996869 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8182 bytes_read=57186 bytes_retransmit=0 bytes_invalid=0 send_seq=1176 receive_seq=1176 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998775 adj=120001797 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4963 bytes_read=17135 bytes_retransmit=9 bytes_invalid=0 send_seq=801 receive_seq=801 retransmit_seq=17 srtt=0.003 rttvar=0.003 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831630 adj=71832683 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000016 bytes_write=5038 bytes_read=17273 bytes_retransmit=0 bytes_invalid=0 send_seq=807 receive_seq=807 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998935 adj=50000155 mcu_temp: temp=38.4 chamber_temp: temp=20.2 heater_bed: target=45 temp=46.3 pwm=0.000 sysload=0.75 cputime=65.934 memavail=128820 print_time=706.155 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.8 pwm=0.000 [INFO] 2024-04-13 07:02:16,030 [root] [statistics:generate_stats:68] Stats 719.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9394 bytes_read=193990 bytes_retransmit=9 bytes_invalid=0 send_seq=1232 receive_seq=1232 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996864 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8216 bytes_read=57432 bytes_retransmit=0 bytes_invalid=0 send_seq=1181 receive_seq=1181 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998775 adj=120002011 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4981 bytes_read=17196 bytes_retransmit=9 bytes_invalid=0 send_seq=804 receive_seq=804 retransmit_seq=17 srtt=0.002 rttvar=0.002 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831604 adj=71833892 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000012 bytes_write=5056 bytes_read=17334 bytes_retransmit=0 bytes_invalid=0 send_seq=810 receive_seq=810 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998919 adj=50000557 mcu_temp: temp=38.4 chamber_temp: temp=20.2 heater_bed: target=45 temp=46.2 pwm=0.000 sysload=0.75 cputime=66.155 memavail=128888 print_time=709.166 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.8 pwm=0.000 [INFO] 2024-04-13 07:02:19,031 [root] [statistics:generate_stats:68] Stats 722.2: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9420 bytes_read=194805 bytes_retransmit=9 bytes_invalid=0 send_seq=1236 receive_seq=1236 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996863 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8242 bytes_read=57647 bytes_retransmit=0 bytes_invalid=0 send_seq=1185 receive_seq=1185 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998771 adj=120002009 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4999 bytes_read=17244 bytes_retransmit=9 bytes_invalid=0 send_seq=807 receive_seq=807 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831574 adj=71833234 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000012 bytes_write=5074 bytes_read=17382 bytes_retransmit=0 bytes_invalid=0 send_seq=813 receive_seq=813 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998930 adj=50000086 mcu_temp: temp=38.4 chamber_temp: temp=20.3 heater_bed: target=45 temp=46.1 pwm=0.000 sysload=0.69 cputime=66.367 memavail=128996 print_time=712.183 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.9 pwm=0.000 [INFO] 2024-04-13 07:02:22,036 [root] [statistics:generate_stats:68] Stats 725.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000005 bytes_write=9454 bytes_read=195647 bytes_retransmit=9 bytes_invalid=0 send_seq=1241 receive_seq=1241 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996859 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8276 bytes_read=57893 bytes_retransmit=0 bytes_invalid=0 send_seq=1190 receive_seq=1190 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998774 adj=120001887 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5017 bytes_read=17305 bytes_retransmit=9 bytes_invalid=0 send_seq=810 receive_seq=810 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831488 adj=71832963 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000007 bytes_write=5092 bytes_read=17443 bytes_retransmit=0 bytes_invalid=0 send_seq=816 receive_seq=816 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998924 adj=50000375 mcu_temp: temp=38.5 chamber_temp: temp=20.3 heater_bed: target=45 temp=46.0 pwm=0.000 sysload=0.69 cputime=66.600 memavail=128912 print_time=715.188 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.9 pwm=0.000 [INFO] 2024-04-13 07:02:25,035 [root] [statistics:generate_stats:68] Stats 728.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000005 bytes_write=9480 bytes_read=196430 bytes_retransmit=9 bytes_invalid=0 send_seq=1245 receive_seq=1245 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996859 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8302 bytes_read=58113 bytes_retransmit=0 bytes_invalid=0 send_seq=1194 receive_seq=1194 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998774 adj=120002026 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5035 bytes_read=17351 bytes_retransmit=9 bytes_invalid=0 send_seq=813 receive_seq=813 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831560 adj=71832022 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000007 bytes_write=5110 bytes_read=17491 bytes_retransmit=0 bytes_invalid=0 send_seq=819 receive_seq=819 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998917 adj=50000201 mcu_temp: temp=38.5 chamber_temp: temp=20.3 heater_bed: target=45 temp=46.0 pwm=0.000 sysload=0.87 cputime=66.803 memavail=128768 print_time=718.195 buffer_time=0.000 print_stall=0 extruder: target=0 temp=22.9 pwm=0.000 [INFO] 2024-04-13 07:02:28,036 [root] [statistics:generate_stats:68] Stats 731.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9514 bytes_read=197277 bytes_retransmit=9 bytes_invalid=0 send_seq=1250 receive_seq=1250 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996858 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8336 bytes_read=58345 bytes_retransmit=0 bytes_invalid=0 send_seq=1199 receive_seq=1199 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998776 adj=120001933 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5053 bytes_read=17410 bytes_retransmit=9 bytes_invalid=0 send_seq=816 receive_seq=816 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831625 adj=71834178 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000015 bytes_write=5128 bytes_read=17552 bytes_retransmit=0 bytes_invalid=0 send_seq=822 receive_seq=822 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998943 adj=50000114 mcu_temp: temp=38.5 chamber_temp: temp=20.3 heater_bed: target=45 temp=45.9 pwm=0.000 sysload=1.04 cputime=67.010 memavail=128988 print_time=721.204 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.0 pwm=0.000 [INFO] 2024-04-13 07:02:31,037 [root] [statistics:generate_stats:68] Stats 734.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9540 bytes_read=198107 bytes_retransmit=9 bytes_invalid=0 send_seq=1254 receive_seq=1254 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996862 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8362 bytes_read=58574 bytes_retransmit=0 bytes_invalid=0 send_seq=1203 receive_seq=1203 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998770 adj=120001959 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5071 bytes_read=17471 bytes_retransmit=9 bytes_invalid=0 send_seq=819 receive_seq=819 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831562 adj=71834687 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000015 bytes_write=5146 bytes_read=17600 bytes_retransmit=0 bytes_invalid=0 send_seq=825 receive_seq=825 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998962 adj=50000635 mcu_temp: temp=38.5 chamber_temp: temp=20.3 heater_bed: target=45 temp=45.8 pwm=0.000 sysload=1.04 cputime=67.239 memavail=128788 print_time=724.220 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.0 pwm=0.000 [INFO] 2024-04-13 07:02:34,038 [root] [statistics:generate_stats:68] Stats 737.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9574 bytes_read=198939 bytes_retransmit=9 bytes_invalid=0 send_seq=1259 receive_seq=1259 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996868 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8396 bytes_read=58806 bytes_retransmit=0 bytes_invalid=0 send_seq=1208 receive_seq=1208 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998767 adj=120001776 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5089 bytes_read=17519 bytes_retransmit=9 bytes_invalid=0 send_seq=822 receive_seq=822 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831552 adj=71832751 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000011 bytes_write=5164 bytes_read=17661 bytes_retransmit=0 bytes_invalid=0 send_seq=828 receive_seq=828 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998959 adj=50000631 mcu_temp: temp=38.6 chamber_temp: temp=20.3 heater_bed: target=45 temp=45.7 pwm=0.000 sysload=1.12 cputime=67.455 memavail=128968 print_time=727.225 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.1 pwm=0.000 [INFO] 2024-04-13 07:02:37,038 [root] [statistics:generate_stats:68] Stats 740.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9600 bytes_read=199769 bytes_retransmit=9 bytes_invalid=0 send_seq=1263 receive_seq=1263 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996869 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8422 bytes_read=59035 bytes_retransmit=0 bytes_invalid=0 send_seq=1212 receive_seq=1212 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998765 adj=120001742 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5107 bytes_read=17580 bytes_retransmit=9 bytes_invalid=0 send_seq=825 receive_seq=825 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831561 adj=71833064 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000012 bytes_write=5182 bytes_read=17722 bytes_retransmit=0 bytes_invalid=0 send_seq=831 receive_seq=831 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998975 adj=50000283 mcu_temp: temp=38.5 chamber_temp: temp=20.3 heater_bed: target=45 temp=45.6 pwm=0.000 sysload=1.12 cputime=67.669 memavail=128828 print_time=730.234 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.1 pwm=0.000 [INFO] 2024-04-13 07:02:40,039 [root] [statistics:generate_stats:68] Stats 743.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9634 bytes_read=200601 bytes_retransmit=9 bytes_invalid=0 send_seq=1268 receive_seq=1268 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996870 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8456 bytes_read=59281 bytes_retransmit=0 bytes_invalid=0 send_seq=1217 receive_seq=1217 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998764 adj=120001794 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5125 bytes_read=17628 bytes_retransmit=9 bytes_invalid=0 send_seq=828 receive_seq=828 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831593 adj=71833454 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000012 bytes_write=5200 bytes_read=17770 bytes_retransmit=0 bytes_invalid=0 send_seq=834 receive_seq=834 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998953 adj=50000513 mcu_temp: temp=38.6 chamber_temp: temp=20.3 heater_bed: target=45 temp=45.5 pwm=0.000 sysload=1.27 cputime=67.894 memavail=129244 print_time=733.254 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.1 pwm=0.000 [INFO] 2024-04-13 07:02:43,039 [root] [statistics:generate_stats:68] Stats 746.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9660 bytes_read=201431 bytes_retransmit=9 bytes_invalid=0 send_seq=1272 receive_seq=1272 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996873 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8482 bytes_read=59496 bytes_retransmit=0 bytes_invalid=0 send_seq=1221 receive_seq=1221 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998763 adj=120001852 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=5143 bytes_read=17690 bytes_retransmit=9 bytes_invalid=0 send_seq=831 receive_seq=831 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831537 adj=71833937 rpi: mcu_awake=0.000 mcu_task_avg=0.000008 mcu_task_stddev=0.000007 bytes_write=5218 bytes_read=17831 bytes_retransmit=0 bytes_invalid=0 send_seq=837 receive_seq=837 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998972 adj=49999971 mcu_temp: temp=38.6 chamber_temp: temp=20.4 heater_bed: target=45 temp=45.4 pwm=0.000 sysload=1.25 cputime=68.112 memavail=129052 print_time=736.259 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.1 pwm=0.000 [INFO] 2024-04-13 07:02:46,040 [root] [statistics:generate_stats:68] Stats 749.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9694 bytes_read=202278 bytes_retransmit=9 bytes_invalid=0 send_seq=1277 receive_seq=1277 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996873 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8516 bytes_read=59742 bytes_retransmit=0 bytes_invalid=0 send_seq=1226 receive_seq=1226 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998759 adj=120001817 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5161 bytes_read=17751 bytes_retransmit=9 bytes_invalid=0 send_seq=834 receive_seq=834 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831464 adj=71832664 rpi: mcu_awake=0.000 mcu_task_avg=0.000008 mcu_task_stddev=0.000007 bytes_write=5236 bytes_read=17879 bytes_retransmit=0 bytes_invalid=0 send_seq=840 receive_seq=840 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998954 adj=50000490 mcu_temp: temp=38.6 chamber_temp: temp=20.3 heater_bed: target=45 temp=45.4 pwm=0.000 sysload=1.25 cputime=68.334 memavail=128992 print_time=739.264 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.1 pwm=0.000 [INFO] 2024-04-13 07:02:49,041 [root] [statistics:generate_stats:68] Stats 752.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9720 bytes_read=203093 bytes_retransmit=9 bytes_invalid=0 send_seq=1281 receive_seq=1281 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996873 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8542 bytes_read=59957 bytes_retransmit=0 bytes_invalid=0 send_seq=1230 receive_seq=1230 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998762 adj=120001803 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5179 bytes_read=17799 bytes_retransmit=9 bytes_invalid=0 send_seq=837 receive_seq=837 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831449 adj=71832046 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000012 bytes_write=5254 bytes_read=17940 bytes_retransmit=0 bytes_invalid=0 send_seq=843 receive_seq=843 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998937 adj=50000015 mcu_temp: temp=38.6 chamber_temp: temp=20.3 heater_bed: target=45 temp=45.3 pwm=0.000 sysload=1.15 cputime=68.551 memavail=128980 print_time=742.273 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.2 pwm=0.000 [INFO] 2024-04-13 07:02:52,041 [root] [statistics:generate_stats:68] Stats 755.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9754 bytes_read=203940 bytes_retransmit=9 bytes_invalid=0 send_seq=1286 receive_seq=1286 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996874 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8576 bytes_read=60203 bytes_retransmit=0 bytes_invalid=0 send_seq=1235 receive_seq=1235 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998758 adj=120001918 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5197 bytes_read=17860 bytes_retransmit=9 bytes_invalid=0 send_seq=840 receive_seq=840 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831599 adj=71832759 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000013 bytes_write=5272 bytes_read=18001 bytes_retransmit=0 bytes_invalid=0 send_seq=846 receive_seq=846 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998925 adj=49999932 mcu_temp: temp=38.6 chamber_temp: temp=20.4 heater_bed: target=45 temp=45.2 pwm=0.000 sysload=1.15 cputime=68.773 memavail=128668 print_time=745.282 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.3 pwm=0.000 [INFO] 2024-04-13 07:02:55,042 [root] [statistics:generate_stats:68] Stats 758.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9780 bytes_read=204755 bytes_retransmit=9 bytes_invalid=0 send_seq=1290 receive_seq=1290 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996874 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8602 bytes_read=60432 bytes_retransmit=0 bytes_invalid=0 send_seq=1239 receive_seq=1239 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998757 adj=120001818 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5215 bytes_read=17908 bytes_retransmit=9 bytes_invalid=0 send_seq=843 receive_seq=843 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831605 adj=71835530 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000013 bytes_write=5290 bytes_read=18049 bytes_retransmit=0 bytes_invalid=0 send_seq=849 receive_seq=849 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998914 adj=49999941 mcu_temp: temp=38.7 chamber_temp: temp=20.3 heater_bed: target=45 temp=45.1 pwm=0.000 sysload=1.14 cputime=68.985 memavail=128960 print_time=748.293 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.2 pwm=0.000 [INFO] 2024-04-13 07:02:58,043 [root] [statistics:generate_stats:68] Stats 761.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9814 bytes_read=205592 bytes_retransmit=9 bytes_invalid=0 send_seq=1295 receive_seq=1295 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996872 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8636 bytes_read=60663 bytes_retransmit=0 bytes_invalid=0 send_seq=1244 receive_seq=1244 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998757 adj=120001853 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5233 bytes_read=17969 bytes_retransmit=9 bytes_invalid=0 send_seq=846 receive_seq=846 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831597 adj=71834056 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000016 bytes_write=5308 bytes_read=18110 bytes_retransmit=0 bytes_invalid=0 send_seq=852 receive_seq=852 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998907 adj=49999982 mcu_temp: temp=38.7 chamber_temp: temp=20.4 heater_bed: target=45 temp=45.0 pwm=0.000 sysload=1.13 cputime=69.204 memavail=128944 print_time=751.314 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.2 pwm=0.000 [INFO] 2024-04-13 07:03:00,215 [root] [pid_calibrate:calc_pid:126] Autotune: raw=7.481802/1.000000 Ku=0.340356 Tu=100.500000 Kp=52.074525 Ki=1.036309 Kd=654.186223 [INFO] 2024-04-13 07:03:01,044 [root] [statistics:generate_stats:68] Stats 764.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9856 bytes_read=206397 bytes_retransmit=9 bytes_invalid=0 send_seq=1300 receive_seq=1300 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996881 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8662 bytes_read=60883 bytes_retransmit=0 bytes_invalid=0 send_seq=1248 receive_seq=1248 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998757 adj=120001901 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5251 bytes_read=18017 bytes_retransmit=9 bytes_invalid=0 send_seq=849 receive_seq=849 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831620 adj=71833507 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000016 bytes_write=5326 bytes_read=18158 bytes_retransmit=0 bytes_invalid=0 send_seq=855 receive_seq=855 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998906 adj=50000048 mcu_temp: temp=38.6 chamber_temp: temp=20.4 heater_bed: target=50 temp=45.2 pwm=1.000 sysload=1.13 cputime=69.428 memavail=128852 print_time=754.323 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.3 pwm=0.000 [INFO] 2024-04-13 07:03:04,044 [root] [statistics:generate_stats:68] Stats 767.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9890 bytes_read=207229 bytes_retransmit=9 bytes_invalid=0 send_seq=1305 receive_seq=1305 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996874 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8696 bytes_read=61115 bytes_retransmit=0 bytes_invalid=0 send_seq=1253 receive_seq=1253 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998759 adj=120001739 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5269 bytes_read=18078 bytes_retransmit=9 bytes_invalid=0 send_seq=852 receive_seq=852 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831691 adj=71833741 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000013 bytes_write=5344 bytes_read=18219 bytes_retransmit=0 bytes_invalid=0 send_seq=858 receive_seq=858 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998899 adj=50000090 mcu_temp: temp=38.6 chamber_temp: temp=20.5 heater_bed: target=50 temp=45.5 pwm=1.000 sysload=1.04 cputime=69.655 memavail=128872 print_time=757.330 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.4 pwm=0.000 [INFO] 2024-04-13 07:03:07,045 [root] [statistics:generate_stats:68] Stats 770.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9938 bytes_read=208080 bytes_retransmit=9 bytes_invalid=0 send_seq=1311 receive_seq=1311 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996879 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8728 bytes_read=61360 bytes_retransmit=0 bytes_invalid=0 send_seq=1258 receive_seq=1258 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998763 adj=120001983 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5287 bytes_read=18139 bytes_retransmit=9 bytes_invalid=0 send_seq=855 receive_seq=855 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831684 adj=71834731 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000009 bytes_write=5368 bytes_read=18296 bytes_retransmit=0 bytes_invalid=0 send_seq=862 receive_seq=862 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998907 adj=50000108 mcu_temp: temp=38.7 chamber_temp: temp=20.4 heater_bed: target=50 temp=46.8 pwm=1.000 sysload=1.04 cputime=69.869 memavail=128984 print_time=760.337 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.4 pwm=0.000 [INFO] 2024-04-13 07:03:10,045 [root] [statistics:generate_stats:68] Stats 773.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=9988 bytes_read=208917 bytes_retransmit=9 bytes_invalid=0 send_seq=1317 receive_seq=1317 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996916 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8762 bytes_read=61592 bytes_retransmit=0 bytes_invalid=0 send_seq=1263 receive_seq=1263 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998765 adj=120001904 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5305 bytes_read=18187 bytes_retransmit=9 bytes_invalid=0 send_seq=858 receive_seq=858 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831599 adj=71833695 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000009 bytes_write=5386 bytes_read=18344 bytes_retransmit=0 bytes_invalid=0 send_seq=865 receive_seq=865 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998944 adj=50000287 mcu_temp: temp=38.7 chamber_temp: temp=20.4 heater_bed: target=50 temp=48.5 pwm=1.000 sysload=0.95 cputime=70.091 memavail=129268 print_time=763.345 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.4 pwm=0.000 [INFO] 2024-04-13 07:03:12,515 [root] [pid_calibrate:calc_pid:126] Autotune: raw=-7.481802/1.000000 Ku=0.340356 Tu=161.400000 Kp=52.074525 Ki=0.645285 Kd=1050.603547 [INFO] 2024-04-13 07:03:13,049 [root] [statistics:generate_stats:68] Stats 776.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10027 bytes_read=209752 bytes_retransmit=9 bytes_invalid=0 send_seq=1322 receive_seq=1322 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996906 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8788 bytes_read=61821 bytes_retransmit=0 bytes_invalid=0 send_seq=1267 receive_seq=1267 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998765 adj=120001322 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5329 bytes_read=18264 bytes_retransmit=9 bytes_invalid=0 send_seq=862 receive_seq=862 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831458 adj=71831875 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000008 bytes_write=5404 bytes_read=18405 bytes_retransmit=0 bytes_invalid=0 send_seq=868 receive_seq=868 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998968 adj=50000573 mcu_temp: temp=38.7 chamber_temp: temp=20.4 heater_bed: target=45 temp=50.3 pwm=0.000 sysload=0.88 cputime=70.331 memavail=129148 print_time=766.360 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.5 pwm=0.000 [INFO] 2024-04-13 07:03:16,048 [root] [statistics:generate_stats:68] Stats 779.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10061 bytes_read=210584 bytes_retransmit=9 bytes_invalid=0 send_seq=1327 receive_seq=1327 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996895 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8822 bytes_read=62067 bytes_retransmit=0 bytes_invalid=0 send_seq=1272 receive_seq=1272 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998761 adj=120001866 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5347 bytes_read=18312 bytes_retransmit=9 bytes_invalid=0 send_seq=865 receive_seq=865 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831476 adj=71830906 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000008 bytes_write=5422 bytes_read=18453 bytes_retransmit=0 bytes_invalid=0 send_seq=871 receive_seq=871 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998970 adj=50000768 mcu_temp: temp=38.8 chamber_temp: temp=20.5 heater_bed: target=45 temp=51.8 pwm=0.000 sysload=0.88 cputime=70.561 memavail=129124 print_time=769.374 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.5 pwm=0.000 [INFO] 2024-04-13 07:03:19,056 [root] [statistics:generate_stats:68] Stats 782.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10087 bytes_read=211414 bytes_retransmit=9 bytes_invalid=0 send_seq=1331 receive_seq=1331 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996905 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8848 bytes_read=62282 bytes_retransmit=0 bytes_invalid=0 send_seq=1276 receive_seq=1276 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998760 adj=120001961 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5365 bytes_read=18373 bytes_retransmit=9 bytes_invalid=0 send_seq=868 receive_seq=868 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831555 adj=71833092 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000015 bytes_write=5440 bytes_read=18514 bytes_retransmit=0 bytes_invalid=0 send_seq=874 receive_seq=874 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998953 adj=50000484 mcu_temp: temp=38.7 chamber_temp: temp=20.5 heater_bed: target=45 temp=52.3 pwm=0.000 sysload=0.81 cputime=70.792 memavail=128896 print_time=772.389 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.6 pwm=0.000 [INFO] 2024-04-13 07:03:22,058 [root] [statistics:generate_stats:68] Stats 785.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10121 bytes_read=212261 bytes_retransmit=9 bytes_invalid=0 send_seq=1336 receive_seq=1336 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996898 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8882 bytes_read=62528 bytes_retransmit=0 bytes_invalid=0 send_seq=1281 receive_seq=1281 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998757 adj=120001708 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5383 bytes_read=18434 bytes_retransmit=9 bytes_invalid=0 send_seq=871 receive_seq=871 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831612 adj=71834443 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000007 bytes_write=5458 bytes_read=18573 bytes_retransmit=0 bytes_invalid=0 send_seq=877 receive_seq=877 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998938 adj=49999972 mcu_temp: temp=38.8 chamber_temp: temp=20.4 heater_bed: target=45 temp=52.3 pwm=0.000 sysload=0.81 cputime=71.027 memavail=128448 print_time=775.393 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.6 pwm=0.000 [INFO] 2024-04-13 07:03:25,056 [root] [statistics:generate_stats:68] Stats 788.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10147 bytes_read=213076 bytes_retransmit=9 bytes_invalid=0 send_seq=1340 receive_seq=1340 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996890 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8908 bytes_read=62743 bytes_retransmit=0 bytes_invalid=0 send_seq=1285 receive_seq=1285 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998753 adj=120001873 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5401 bytes_read=18480 bytes_retransmit=9 bytes_invalid=0 send_seq=874 receive_seq=874 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831578 adj=71834655 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000007 bytes_write=5476 bytes_read=18618 bytes_retransmit=0 bytes_invalid=0 send_seq=880 receive_seq=880 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998935 adj=49999975 mcu_temp: temp=38.8 chamber_temp: temp=20.4 heater_bed: target=45 temp=52.2 pwm=0.000 sysload=0.74 cputime=71.244 memavail=128984 print_time=778.401 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.7 pwm=0.000 [INFO] 2024-04-13 07:03:28,053 [root] [statistics:generate_stats:68] Stats 791.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10181 bytes_read=213923 bytes_retransmit=9 bytes_invalid=0 send_seq=1345 receive_seq=1345 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996890 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8942 bytes_read=62989 bytes_retransmit=0 bytes_invalid=0 send_seq=1290 receive_seq=1290 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998756 adj=120001932 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5419 bytes_read=18539 bytes_retransmit=9 bytes_invalid=0 send_seq=877 receive_seq=877 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831680 adj=71833313 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000009 bytes_write=5494 bytes_read=18678 bytes_retransmit=0 bytes_invalid=0 send_seq=883 receive_seq=883 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998923 adj=50000174 mcu_temp: temp=38.8 chamber_temp: temp=20.4 heater_bed: target=45 temp=52.0 pwm=0.000 sysload=0.68 cputime=71.471 memavail=129148 print_time=781.412 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.6 pwm=0.000 [INFO] 2024-04-13 07:03:31,052 [root] [statistics:generate_stats:68] Stats 794.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10207 bytes_read=214738 bytes_retransmit=9 bytes_invalid=0 send_seq=1349 receive_seq=1349 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996884 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8968 bytes_read=63218 bytes_retransmit=0 bytes_invalid=0 send_seq=1294 receive_seq=1294 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998763 adj=120001943 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5437 bytes_read=18587 bytes_retransmit=9 bytes_invalid=0 send_seq=880 receive_seq=880 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831728 adj=71835025 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000009 bytes_write=5512 bytes_read=18726 bytes_retransmit=0 bytes_invalid=0 send_seq=886 receive_seq=886 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998916 adj=50000025 mcu_temp: temp=38.8 chamber_temp: temp=20.5 heater_bed: target=45 temp=51.8 pwm=0.000 sysload=0.68 cputime=71.689 memavail=128948 print_time=784.423 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.6 pwm=0.000 [INFO] 2024-04-13 07:03:34,057 [root] [statistics:generate_stats:68] Stats 797.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10241 bytes_read=215570 bytes_retransmit=9 bytes_invalid=0 send_seq=1354 receive_seq=1354 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996878 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9002 bytes_read=63449 bytes_retransmit=0 bytes_invalid=0 send_seq=1299 receive_seq=1299 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998763 adj=120002076 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5455 bytes_read=18648 bytes_retransmit=9 bytes_invalid=0 send_seq=883 receive_seq=883 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831688 adj=71834751 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000009 bytes_write=5530 bytes_read=18787 bytes_retransmit=0 bytes_invalid=0 send_seq=889 receive_seq=889 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998926 adj=50000102 mcu_temp: temp=38.8 chamber_temp: temp=20.5 heater_bed: target=45 temp=51.6 pwm=0.000 sysload=0.71 cputime=71.912 memavail=128988 print_time=787.437 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.7 pwm=0.000 [INFO] 2024-04-13 07:03:37,052 [root] [statistics:generate_stats:68] Stats 800.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10267 bytes_read=216373 bytes_retransmit=9 bytes_invalid=0 send_seq=1358 receive_seq=1358 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996873 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9028 bytes_read=63669 bytes_retransmit=0 bytes_invalid=0 send_seq=1303 receive_seq=1303 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998764 adj=120002033 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5473 bytes_read=18709 bytes_retransmit=9 bytes_invalid=0 send_seq=886 receive_seq=886 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831587 adj=71833312 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=5548 bytes_read=18848 bytes_retransmit=0 bytes_invalid=0 send_seq=892 receive_seq=892 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998917 adj=50000373 mcu_temp: temp=38.9 chamber_temp: temp=20.5 heater_bed: target=45 temp=51.4 pwm=0.000 sysload=0.71 cputime=72.136 memavail=128920 print_time=790.450 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.7 pwm=0.000 [INFO] 2024-04-13 07:03:40,069 [root] [statistics:generate_stats:68] Stats 803.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10301 bytes_read=217220 bytes_retransmit=9 bytes_invalid=0 send_seq=1363 receive_seq=1363 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996874 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9062 bytes_read=63901 bytes_retransmit=0 bytes_invalid=0 send_seq=1308 receive_seq=1308 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998766 adj=120002021 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5491 bytes_read=18757 bytes_retransmit=9 bytes_invalid=0 send_seq=889 receive_seq=889 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831528 adj=71831948 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=5566 bytes_read=18896 bytes_retransmit=0 bytes_invalid=0 send_seq=895 receive_seq=895 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998922 adj=50000163 mcu_temp: temp=38.9 chamber_temp: temp=20.5 heater_bed: target=45 temp=51.2 pwm=0.000 sysload=0.65 cputime=72.351 memavail=129052 print_time=793.461 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.8 pwm=0.000 [INFO] 2024-04-13 07:03:43,071 [root] [statistics:generate_stats:68] Stats 806.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10327 bytes_read=218050 bytes_retransmit=9 bytes_invalid=0 send_seq=1367 receive_seq=1367 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996871 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9088 bytes_read=64130 bytes_retransmit=0 bytes_invalid=0 send_seq=1312 receive_seq=1312 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998761 adj=120001944 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5509 bytes_read=18818 bytes_retransmit=9 bytes_invalid=0 send_seq=892 receive_seq=892 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831626 adj=71832146 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000020 bytes_write=5584 bytes_read=18957 bytes_retransmit=0 bytes_invalid=0 send_seq=898 receive_seq=898 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998938 adj=50000276 mcu_temp: temp=38.9 chamber_temp: temp=20.5 heater_bed: target=45 temp=50.9 pwm=0.000 sysload=0.68 cputime=72.553 memavail=128880 print_time=796.469 buffer_time=0.000 print_stall=0 extruder: target=0 temp=23.8 pwm=0.000 [INFO] 2024-04-13 07:03:46,071 [root] [statistics:generate_stats:68] Stats 809.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10361 bytes_read=218882 bytes_retransmit=9 bytes_invalid=0 send_seq=1372 receive_seq=1372 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996872 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9122 bytes_read=64376 bytes_retransmit=0 bytes_invalid=0 send_seq=1317 receive_seq=1317 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998758 adj=120001859 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5527 bytes_read=18866 bytes_retransmit=9 bytes_invalid=0 send_seq=895 receive_seq=895 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831635 adj=71834645 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000020 bytes_write=5602 bytes_read=19005 bytes_retransmit=0 bytes_invalid=0 send_seq=901 receive_seq=901 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998932 adj=50000520 mcu_temp: temp=38.9 chamber_temp: temp=20.5 heater_bed: target=45 temp=50.7 pwm=0.000 sysload=0.68 cputime=72.755 memavail=128996 print_time=799.482 buffer_time=0.010 print_stall=0 extruder: target=0 temp=23.9 pwm=0.000 [INFO] 2024-04-13 07:03:49,072 [root] [statistics:generate_stats:68] Stats 812.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10387 bytes_read=219712 bytes_retransmit=9 bytes_invalid=0 send_seq=1376 receive_seq=1376 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996903 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9148 bytes_read=64591 bytes_retransmit=0 bytes_invalid=0 send_seq=1321 receive_seq=1321 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998767 adj=120001824 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5545 bytes_read=18927 bytes_retransmit=9 bytes_invalid=0 send_seq=898 receive_seq=898 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831601 adj=71833906 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000010 bytes_write=5620 bytes_read=19066 bytes_retransmit=0 bytes_invalid=0 send_seq=904 receive_seq=904 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998965 adj=50000214 mcu_temp: temp=38.9 chamber_temp: temp=20.5 heater_bed: target=45 temp=50.5 pwm=0.000 sysload=0.94 cputime=72.964 memavail=128860 print_time=802.491 buffer_time=0.019 print_stall=0 extruder: target=0 temp=23.9 pwm=0.000 [INFO] 2024-04-13 07:03:52,073 [root] [statistics:generate_stats:68] Stats 815.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10421 bytes_read=220559 bytes_retransmit=9 bytes_invalid=0 send_seq=1381 receive_seq=1381 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996890 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9182 bytes_read=64837 bytes_retransmit=0 bytes_invalid=0 send_seq=1326 receive_seq=1326 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998764 adj=120001520 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5563 bytes_read=18975 bytes_retransmit=9 bytes_invalid=0 send_seq=901 receive_seq=901 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831616 adj=71832766 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000011 bytes_write=5638 bytes_read=19127 bytes_retransmit=0 bytes_invalid=0 send_seq=907 receive_seq=907 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998947 adj=50000559 mcu_temp: temp=39.0 chamber_temp: temp=20.5 heater_bed: target=45 temp=50.3 pwm=0.000 sysload=0.94 cputime=73.181 memavail=128896 print_time=805.508 buffer_time=0.035 print_stall=0 extruder: target=0 temp=23.9 pwm=0.000 [INFO] 2024-04-13 07:03:55,074 [root] [statistics:generate_stats:68] Stats 818.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10447 bytes_read=221374 bytes_retransmit=9 bytes_invalid=0 send_seq=1385 receive_seq=1385 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996916 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9208 bytes_read=65052 bytes_retransmit=0 bytes_invalid=0 send_seq=1330 receive_seq=1330 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998759 adj=120001932 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5581 bytes_read=19036 bytes_retransmit=9 bytes_invalid=0 send_seq=904 receive_seq=904 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831748 adj=71833626 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000011 bytes_write=5656 bytes_read=19175 bytes_retransmit=0 bytes_invalid=0 send_seq=910 receive_seq=910 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998952 adj=50000133 mcu_temp: temp=39.0 chamber_temp: temp=20.6 heater_bed: target=45 temp=50.0 pwm=0.000 sysload=0.95 cputime=73.400 memavail=129008 print_time=808.518 buffer_time=0.043 print_stall=0 extruder: target=0 temp=24.0 pwm=0.000 [INFO] 2024-04-13 07:03:58,075 [root] [statistics:generate_stats:68] Stats 821.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10481 bytes_read=222221 bytes_retransmit=9 bytes_invalid=0 send_seq=1390 receive_seq=1390 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996953 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9242 bytes_read=65298 bytes_retransmit=0 bytes_invalid=0 send_seq=1335 receive_seq=1335 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998755 adj=120001391 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5599 bytes_read=19097 bytes_retransmit=9 bytes_invalid=0 send_seq=907 receive_seq=907 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831786 adj=71835335 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=5674 bytes_read=19236 bytes_retransmit=0 bytes_invalid=0 send_seq=913 receive_seq=913 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998988 adj=50000118 mcu_temp: temp=38.9 chamber_temp: temp=20.6 heater_bed: target=45 temp=49.8 pwm=0.000 sysload=1.03 cputime=73.617 memavail=128984 print_time=811.523 buffer_time=0.048 print_stall=0 extruder: target=0 temp=24.1 pwm=0.000 [INFO] 2024-04-13 07:04:01,077 [root] [statistics:generate_stats:68] Stats 824.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10507 bytes_read=223036 bytes_retransmit=9 bytes_invalid=0 send_seq=1394 receive_seq=1394 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996931 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9268 bytes_read=65527 bytes_retransmit=0 bytes_invalid=0 send_seq=1339 receive_seq=1339 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998749 adj=120001092 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5617 bytes_read=19145 bytes_retransmit=9 bytes_invalid=0 send_seq=910 receive_seq=910 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831694 adj=71834281 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=5692 bytes_read=19284 bytes_retransmit=0 bytes_invalid=0 send_seq=916 receive_seq=916 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998968 adj=50000542 mcu_temp: temp=38.9 chamber_temp: temp=20.6 heater_bed: target=45 temp=49.7 pwm=0.000 sysload=1.03 cputime=73.826 memavail=128908 print_time=814.533 buffer_time=0.057 print_stall=0 extruder: target=0 temp=24.1 pwm=0.000 [INFO] 2024-04-13 07:04:04,077 [root] [statistics:generate_stats:68] Stats 827.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10541 bytes_read=223883 bytes_retransmit=9 bytes_invalid=0 send_seq=1399 receive_seq=1399 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996915 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9302 bytes_read=65759 bytes_retransmit=0 bytes_invalid=0 send_seq=1344 receive_seq=1344 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998753 adj=120001875 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5635 bytes_read=19206 bytes_retransmit=9 bytes_invalid=0 send_seq=913 receive_seq=913 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831627 adj=71832513 rpi: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000022 bytes_write=5710 bytes_read=19345 bytes_retransmit=0 bytes_invalid=0 send_seq=919 receive_seq=919 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998973 adj=50000156 mcu_temp: temp=39.0 chamber_temp: temp=20.6 heater_bed: target=45 temp=49.4 pwm=0.000 sysload=0.95 cputime=74.044 memavail=128692 print_time=817.542 buffer_time=0.065 print_stall=0 extruder: target=0 temp=24.1 pwm=0.000 [INFO] 2024-04-13 07:04:07,079 [root] [statistics:generate_stats:68] Stats 830.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10567 bytes_read=224728 bytes_retransmit=9 bytes_invalid=0 send_seq=1403 receive_seq=1403 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996904 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9328 bytes_read=65988 bytes_retransmit=0 bytes_invalid=0 send_seq=1348 receive_seq=1348 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998750 adj=120002152 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5653 bytes_read=19254 bytes_retransmit=9 bytes_invalid=0 send_seq=916 receive_seq=916 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831631 adj=71832337 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=5728 bytes_read=19406 bytes_retransmit=0 bytes_invalid=0 send_seq=922 receive_seq=922 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998998 adj=50000403 mcu_temp: temp=39.0 chamber_temp: temp=20.6 heater_bed: target=45 temp=49.3 pwm=0.000 sysload=0.95 cputime=74.255 memavail=128964 print_time=820.551 buffer_time=0.073 print_stall=0 extruder: target=0 temp=24.2 pwm=0.000 [INFO] 2024-04-13 07:04:10,079 [root] [statistics:generate_stats:68] Stats 833.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10607 bytes_read=225556 bytes_retransmit=9 bytes_invalid=0 send_seq=1409 receive_seq=1409 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996896 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9368 bytes_read=66233 bytes_retransmit=0 bytes_invalid=0 send_seq=1354 receive_seq=1354 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998755 adj=120002052 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5671 bytes_read=19315 bytes_retransmit=9 bytes_invalid=0 send_seq=919 receive_seq=919 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831712 adj=71833351 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=5752 bytes_read=19470 bytes_retransmit=0 bytes_invalid=0 send_seq=926 receive_seq=926 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998999 adj=50000767 mcu_temp: temp=39.0 chamber_temp: temp=20.6 heater_bed: target=45 temp=49.1 pwm=0.000 sysload=0.87 cputime=74.473 memavail=128912 print_time=823.567 buffer_time=0.089 print_stall=0 extruder: target=0 temp=24.2 pwm=0.000 [INFO] 2024-04-13 07:04:13,079 [root] [statistics:generate_stats:68] Stats 836.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10633 bytes_read=226367 bytes_retransmit=9 bytes_invalid=0 send_seq=1413 receive_seq=1413 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996892 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9394 bytes_read=66455 bytes_retransmit=0 bytes_invalid=0 send_seq=1358 receive_seq=1358 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998791 adj=120002101 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5689 bytes_read=19376 bytes_retransmit=9 bytes_invalid=0 send_seq=922 receive_seq=922 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831689 adj=71834810 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=5770 bytes_read=19531 bytes_retransmit=0 bytes_invalid=0 send_seq=929 receive_seq=929 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998979 adj=50000478 mcu_temp: temp=39.0 chamber_temp: temp=20.6 heater_bed: target=45 temp=48.9 pwm=0.000 sysload=0.80 cputime=74.699 memavail=128856 print_time=826.588 buffer_time=0.109 print_stall=0 extruder: target=0 temp=24.3 pwm=0.000 [INFO] 2024-04-13 07:04:16,080 [root] [statistics:generate_stats:68] Stats 839.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10667 bytes_read=227199 bytes_retransmit=9 bytes_invalid=0 send_seq=1418 receive_seq=1418 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996880 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9428 bytes_read=66701 bytes_retransmit=0 bytes_invalid=0 send_seq=1363 receive_seq=1363 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998784 adj=120002545 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5713 bytes_read=19440 bytes_retransmit=9 bytes_invalid=0 send_seq=926 receive_seq=926 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831604 adj=71833542 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000011 bytes_write=5788 bytes_read=19579 bytes_retransmit=0 bytes_invalid=0 send_seq=932 receive_seq=932 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49999004 adj=50000039 mcu_temp: temp=39.0 chamber_temp: temp=20.7 heater_bed: target=45 temp=48.8 pwm=0.000 sysload=0.80 cputime=74.910 memavail=128812 print_time=829.590 buffer_time=0.110 print_stall=0 extruder: target=0 temp=24.3 pwm=0.000 [INFO] 2024-04-13 07:04:19,081 [root] [statistics:generate_stats:68] Stats 842.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000005 bytes_write=10693 bytes_read=228029 bytes_retransmit=9 bytes_invalid=0 send_seq=1422 receive_seq=1422 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996875 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9454 bytes_read=66916 bytes_retransmit=0 bytes_invalid=0 send_seq=1367 receive_seq=1367 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998777 adj=120002136 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000060 bytes_write=5731 bytes_read=19502 bytes_retransmit=9 bytes_invalid=0 send_seq=929 receive_seq=929 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831671 adj=71832324 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000009 bytes_write=5806 bytes_read=19640 bytes_retransmit=0 bytes_invalid=0 send_seq=935 receive_seq=935 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998978 adj=50000698 mcu_temp: temp=39.0 chamber_temp: temp=20.6 heater_bed: target=45 temp=48.6 pwm=0.000 sysload=0.90 cputime=75.127 memavail=128768 print_time=832.596 buffer_time=0.115 print_stall=0 extruder: target=0 temp=24.3 pwm=0.000 [INFO] 2024-04-13 07:04:22,081 [root] [statistics:generate_stats:68] Stats 845.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10727 bytes_read=228876 bytes_retransmit=9 bytes_invalid=0 send_seq=1427 receive_seq=1427 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996867 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9488 bytes_read=67162 bytes_retransmit=0 bytes_invalid=0 send_seq=1372 receive_seq=1372 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998768 adj=120001927 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000060 bytes_write=5749 bytes_read=19550 bytes_retransmit=9 bytes_invalid=0 send_seq=932 receive_seq=932 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831717 adj=71834305 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000009 bytes_write=5824 bytes_read=19701 bytes_retransmit=0 bytes_invalid=0 send_seq=938 receive_seq=938 retransmit_seq=0 srtt=0.000 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998964 adj=50000020 mcu_temp: temp=39.0 chamber_temp: temp=20.7 heater_bed: target=45 temp=48.5 pwm=0.000 sysload=0.90 cputime=75.351 memavail=128988 print_time=835.607 buffer_time=0.125 print_stall=0 extruder: target=0 temp=24.3 pwm=0.000 [INFO] 2024-04-13 07:04:25,082 [root] [statistics:generate_stats:68] Stats 848.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10753 bytes_read=229691 bytes_retransmit=9 bytes_invalid=0 send_seq=1431 receive_seq=1431 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996865 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9514 bytes_read=67377 bytes_retransmit=0 bytes_invalid=0 send_seq=1376 receive_seq=1376 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998765 adj=120001907 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=5767 bytes_read=19610 bytes_retransmit=9 bytes_invalid=0 send_seq=935 receive_seq=935 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831663 adj=71834543 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000009 bytes_write=5842 bytes_read=19749 bytes_retransmit=0 bytes_invalid=0 send_seq=941 receive_seq=941 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998983 adj=50000046 mcu_temp: temp=39.0 chamber_temp: temp=20.7 heater_bed: target=45 temp=48.3 pwm=0.000 sysload=0.99 cputime=75.573 memavail=128980 print_time=838.618 buffer_time=0.135 print_stall=0 extruder: target=0 temp=24.4 pwm=0.000 [INFO] 2024-04-13 07:04:28,083 [root] [statistics:generate_stats:68] Stats 851.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10787 bytes_read=230538 bytes_retransmit=9 bytes_invalid=0 send_seq=1436 receive_seq=1436 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996866 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9548 bytes_read=67623 bytes_retransmit=0 bytes_invalid=0 send_seq=1381 receive_seq=1381 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998758 adj=120001880 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5785 bytes_read=19670 bytes_retransmit=9 bytes_invalid=0 send_seq=938 receive_seq=938 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831594 adj=71833005 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000010 bytes_write=5860 bytes_read=19810 bytes_retransmit=0 bytes_invalid=0 send_seq=944 receive_seq=944 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998996 adj=50000534 mcu_temp: temp=39.1 chamber_temp: temp=20.7 heater_bed: target=45 temp=48.1 pwm=0.000 sysload=0.99 cputime=75.802 memavail=128980 print_time=841.627 buffer_time=0.145 print_stall=0 extruder: target=0 temp=24.4 pwm=0.000 [INFO] 2024-04-13 07:04:31,084 [root] [statistics:generate_stats:68] Stats 854.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10813 bytes_read=231353 bytes_retransmit=9 bytes_invalid=0 send_seq=1440 receive_seq=1440 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996863 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9574 bytes_read=67852 bytes_retransmit=0 bytes_invalid=0 send_seq=1385 receive_seq=1385 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998751 adj=120001762 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5803 bytes_read=19718 bytes_retransmit=9 bytes_invalid=0 send_seq=941 receive_seq=941 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831582 adj=71832304 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000010 bytes_write=5878 bytes_read=19858 bytes_retransmit=0 bytes_invalid=0 send_seq=947 receive_seq=947 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998973 adj=50000555 mcu_temp: temp=39.1 chamber_temp: temp=20.7 heater_bed: target=45 temp=48.0 pwm=0.000 sysload=0.99 cputime=76.020 memavail=128964 print_time=844.645 buffer_time=0.162 print_stall=0 extruder: target=0 temp=24.5 pwm=0.000 [INFO] 2024-04-13 07:04:34,085 [root] [statistics:generate_stats:68] Stats 857.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10847 bytes_read=232200 bytes_retransmit=9 bytes_invalid=0 send_seq=1445 receive_seq=1445 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996857 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9608 bytes_read=68084 bytes_retransmit=0 bytes_invalid=0 send_seq=1390 receive_seq=1390 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998744 adj=120001787 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5821 bytes_read=19779 bytes_retransmit=9 bytes_invalid=0 send_seq=944 receive_seq=944 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831701 adj=71833037 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000009 bytes_write=5896 bytes_read=19919 bytes_retransmit=0 bytes_invalid=0 send_seq=950 receive_seq=950 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998951 adj=50000012 mcu_temp: temp=39.1 chamber_temp: temp=20.7 heater_bed: target=45 temp=47.9 pwm=0.000 sysload=1.07 cputime=76.237 memavail=128628 print_time=847.652 buffer_time=0.168 print_stall=0 extruder: target=0 temp=24.6 pwm=0.000 [INFO] 2024-04-13 07:04:37,085 [root] [statistics:generate_stats:68] Stats 860.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10873 bytes_read=233030 bytes_retransmit=9 bytes_invalid=0 send_seq=1449 receive_seq=1449 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996893 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9634 bytes_read=68313 bytes_retransmit=0 bytes_invalid=0 send_seq=1394 receive_seq=1394 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998741 adj=120001851 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5839 bytes_read=19827 bytes_retransmit=9 bytes_invalid=0 send_seq=947 receive_seq=947 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831689 adj=71835303 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000009 bytes_write=5914 bytes_read=19967 bytes_retransmit=0 bytes_invalid=0 send_seq=953 receive_seq=953 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998940 adj=49999904 mcu_temp: temp=39.1 chamber_temp: temp=20.7 heater_bed: target=45 temp=47.7 pwm=0.000 sysload=1.07 cputime=76.457 memavail=128880 print_time=850.664 buffer_time=0.179 print_stall=0 extruder: target=0 temp=24.6 pwm=0.000 [INFO] 2024-04-13 07:04:40,086 [root] [statistics:generate_stats:68] Stats 863.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10907 bytes_read=233862 bytes_retransmit=9 bytes_invalid=0 send_seq=1454 receive_seq=1454 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996888 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9668 bytes_read=68545 bytes_retransmit=0 bytes_invalid=0 send_seq=1399 receive_seq=1399 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998739 adj=120001270 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5857 bytes_read=19888 bytes_retransmit=9 bytes_invalid=0 send_seq=950 receive_seq=950 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831675 adj=71833468 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000013 bytes_write=5932 bytes_read=20028 bytes_retransmit=0 bytes_invalid=0 send_seq=956 receive_seq=956 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998926 adj=49999755 mcu_temp: temp=39.2 chamber_temp: temp=20.7 heater_bed: target=45 temp=47.6 pwm=0.000 sysload=1.07 cputime=76.680 memavail=128852 print_time=853.668 buffer_time=0.183 print_stall=0 extruder: target=0 temp=24.6 pwm=0.000 [INFO] 2024-04-13 07:04:43,086 [root] [statistics:generate_stats:68] Stats 866.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10933 bytes_read=234692 bytes_retransmit=9 bytes_invalid=0 send_seq=1458 receive_seq=1458 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996894 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9694 bytes_read=68774 bytes_retransmit=0 bytes_invalid=0 send_seq=1403 receive_seq=1403 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998736 adj=120001740 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5875 bytes_read=19936 bytes_retransmit=9 bytes_invalid=0 send_seq=953 receive_seq=953 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831645 adj=71833378 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000008 bytes_write=5950 bytes_read=20089 bytes_retransmit=0 bytes_invalid=0 send_seq=959 receive_seq=959 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998919 adj=49999930 mcu_temp: temp=39.2 chamber_temp: temp=20.7 heater_bed: target=45 temp=47.6 pwm=0.000 sysload=0.98 cputime=76.900 memavail=129024 print_time=856.679 buffer_time=0.192 print_stall=0 extruder: target=0 temp=24.6 pwm=0.000 [INFO] 2024-04-13 07:04:46,088 [root] [statistics:generate_stats:68] Stats 869.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10967 bytes_read=235501 bytes_retransmit=9 bytes_invalid=0 send_seq=1463 receive_seq=1463 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996886 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9728 bytes_read=69003 bytes_retransmit=0 bytes_invalid=0 send_seq=1408 receive_seq=1408 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998733 adj=120001677 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5893 bytes_read=19997 bytes_retransmit=9 bytes_invalid=0 send_seq=956 receive_seq=956 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831698 adj=71833017 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000008 bytes_write=5968 bytes_read=20137 bytes_retransmit=0 bytes_invalid=0 send_seq=962 receive_seq=962 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998933 adj=49999988 mcu_temp: temp=39.2 chamber_temp: temp=20.7 heater_bed: target=45 temp=47.5 pwm=0.000 sysload=0.98 cputime=77.124 memavail=128668 print_time=859.688 buffer_time=0.200 print_stall=0 extruder: target=0 temp=24.6 pwm=0.000 [INFO] 2024-04-13 07:04:49,088 [root] [statistics:generate_stats:68] Stats 872.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=10993 bytes_read=236315 bytes_retransmit=9 bytes_invalid=0 send_seq=1467 receive_seq=1467 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996876 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9754 bytes_read=69225 bytes_retransmit=0 bytes_invalid=0 send_seq=1412 receive_seq=1412 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998728 adj=120001899 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5911 bytes_read=20058 bytes_retransmit=9 bytes_invalid=0 send_seq=959 receive_seq=959 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831700 adj=71834303 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000010 bytes_write=5986 bytes_read=20195 bytes_retransmit=0 bytes_invalid=0 send_seq=965 receive_seq=965 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998939 adj=50000439 mcu_temp: temp=39.2 chamber_temp: temp=20.8 heater_bed: target=45 temp=47.3 pwm=0.000 sysload=1.14 cputime=77.333 memavail=129388 print_time=862.697 buffer_time=0.209 print_stall=0 extruder: target=0 temp=24.7 pwm=0.000 [INFO] 2024-04-13 07:04:52,091 [root] [statistics:generate_stats:68] Stats 875.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11027 bytes_read=237147 bytes_retransmit=9 bytes_invalid=0 send_seq=1472 receive_seq=1472 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996867 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9788 bytes_read=69471 bytes_retransmit=0 bytes_invalid=0 send_seq=1417 receive_seq=1417 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998733 adj=120001927 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5929 bytes_read=20106 bytes_retransmit=9 bytes_invalid=0 send_seq=962 receive_seq=962 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831661 adj=71833851 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000010 bytes_write=6004 bytes_read=20240 bytes_retransmit=0 bytes_invalid=0 send_seq=968 receive_seq=968 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998952 adj=50000437 mcu_temp: temp=39.2 chamber_temp: temp=20.7 heater_bed: target=45 temp=47.2 pwm=0.000 sysload=1.14 cputime=77.552 memavail=128936 print_time=865.711 buffer_time=0.221 print_stall=0 extruder: target=0 temp=24.8 pwm=0.000 [INFO] 2024-04-13 07:04:55,091 [root] [statistics:generate_stats:68] Stats 878.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11053 bytes_read=237977 bytes_retransmit=9 bytes_invalid=0 send_seq=1476 receive_seq=1476 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996891 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9814 bytes_read=69686 bytes_retransmit=0 bytes_invalid=0 send_seq=1421 receive_seq=1421 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998735 adj=120002087 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=5947 bytes_read=20168 bytes_retransmit=9 bytes_invalid=0 send_seq=965 receive_seq=965 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831582 adj=71833095 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000011 bytes_write=6022 bytes_read=20301 bytes_retransmit=0 bytes_invalid=0 send_seq=971 receive_seq=971 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998966 adj=50000568 mcu_temp: temp=39.3 chamber_temp: temp=20.8 heater_bed: target=45 temp=47.2 pwm=0.000 sysload=1.21 cputime=77.769 memavail=128908 print_time=868.722 buffer_time=0.231 print_stall=0 extruder: target=0 temp=24.7 pwm=0.000 [INFO] 2024-04-13 07:04:58,093 [root] [statistics:generate_stats:68] Stats 881.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11087 bytes_read=238824 bytes_retransmit=9 bytes_invalid=0 send_seq=1481 receive_seq=1481 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996883 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9848 bytes_read=69932 bytes_retransmit=0 bytes_invalid=0 send_seq=1426 receive_seq=1426 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998733 adj=120001585 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=5965 bytes_read=20216 bytes_retransmit=9 bytes_invalid=0 send_seq=968 receive_seq=968 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831578 adj=71831935 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000018 bytes_write=6040 bytes_read=20362 bytes_retransmit=0 bytes_invalid=0 send_seq=974 receive_seq=974 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998965 adj=50000393 mcu_temp: temp=39.2 chamber_temp: temp=20.8 heater_bed: target=45 temp=47.1 pwm=0.000 sysload=1.11 cputime=77.986 memavail=129396 print_time=871.730 buffer_time=0.238 print_stall=0 extruder: target=0 temp=24.8 pwm=0.000 [INFO] 2024-04-13 07:05:01,095 [root] [statistics:generate_stats:68] Stats 884.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11113 bytes_read=239639 bytes_retransmit=9 bytes_invalid=0 send_seq=1485 receive_seq=1485 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996875 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9874 bytes_read=70147 bytes_retransmit=0 bytes_invalid=0 send_seq=1430 receive_seq=1430 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998728 adj=120001867 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5983 bytes_read=20277 bytes_retransmit=9 bytes_invalid=0 send_seq=971 receive_seq=971 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831681 adj=71833047 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000018 bytes_write=6058 bytes_read=20410 bytes_retransmit=0 bytes_invalid=0 send_seq=977 receive_seq=977 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998982 adj=50000320 mcu_temp: temp=39.3 chamber_temp: temp=20.8 heater_bed: target=45 temp=47.0 pwm=0.000 sysload=1.11 cputime=78.201 memavail=129240 print_time=874.741 buffer_time=0.247 print_stall=0 extruder: target=0 temp=24.8 pwm=0.000 [INFO] 2024-04-13 07:05:04,097 [root] [statistics:generate_stats:68] Stats 887.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11147 bytes_read=240486 bytes_retransmit=9 bytes_invalid=0 send_seq=1490 receive_seq=1490 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996872 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000005 mcu_task_stddev=0.000004 bytes_write=9908 bytes_read=70393 bytes_retransmit=0 bytes_invalid=0 send_seq=1435 receive_seq=1435 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998735 adj=120001928 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6001 bytes_read=20338 bytes_retransmit=9 bytes_invalid=0 send_seq=974 receive_seq=974 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831692 adj=71835053 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000017 bytes_write=6076 bytes_read=20471 bytes_retransmit=0 bytes_invalid=0 send_seq=980 receive_seq=980 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998964 adj=50000621 mcu_temp: temp=39.3 chamber_temp: temp=20.8 heater_bed: target=45 temp=46.9 pwm=0.000 sysload=1.02 cputime=78.410 memavail=128912 print_time=876.746 buffer_time=0.000 print_stall=0 extruder: target=0 temp=24.9 pwm=0.000 [INFO] 2024-04-13 07:05:07,099 [root] [statistics:generate_stats:68] Stats 890.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11173 bytes_read=241301 bytes_retransmit=9 bytes_invalid=0 send_seq=1494 receive_seq=1494 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996861 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9934 bytes_read=70622 bytes_retransmit=0 bytes_invalid=0 send_seq=1439 receive_seq=1439 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998737 adj=120002022 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6019 bytes_read=20386 bytes_retransmit=9 bytes_invalid=0 send_seq=977 receive_seq=977 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831667 adj=71834216 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000017 bytes_write=6094 bytes_read=20519 bytes_retransmit=0 bytes_invalid=0 send_seq=983 receive_seq=983 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998944 adj=50000114 mcu_temp: temp=39.3 chamber_temp: temp=20.8 heater_bed: target=45 temp=46.8 pwm=0.000 sysload=1.02 cputime=78.625 memavail=128956 print_time=879.757 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.0 pwm=0.000 [INFO] 2024-04-13 07:05:10,099 [root] [statistics:generate_stats:68] Stats 893.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11207 bytes_read=242163 bytes_retransmit=9 bytes_invalid=0 send_seq=1499 receive_seq=1499 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996856 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9968 bytes_read=70854 bytes_retransmit=0 bytes_invalid=0 send_seq=1444 receive_seq=1444 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998733 adj=120002106 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6037 bytes_read=20447 bytes_retransmit=9 bytes_invalid=0 send_seq=980 receive_seq=980 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831639 adj=71833414 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000010 bytes_write=6112 bytes_read=20580 bytes_retransmit=0 bytes_invalid=0 send_seq=986 receive_seq=986 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998932 adj=49999987 mcu_temp: temp=39.3 chamber_temp: temp=20.9 heater_bed: target=45 temp=46.7 pwm=0.000 sysload=0.94 cputime=78.848 memavail=129132 print_time=882.771 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.0 pwm=0.000 [INFO] 2024-04-13 07:05:13,099 [root] [statistics:generate_stats:68] Stats 896.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11233 bytes_read=242993 bytes_retransmit=9 bytes_invalid=0 send_seq=1503 receive_seq=1503 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996854 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9994 bytes_read=71083 bytes_retransmit=0 bytes_invalid=0 send_seq=1448 receive_seq=1448 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998734 adj=120001956 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6055 bytes_read=20495 bytes_retransmit=9 bytes_invalid=0 send_seq=983 receive_seq=983 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831658 adj=71833097 rpi: mcu_awake=0.001 mcu_task_avg=0.000015 mcu_task_stddev=0.000040 bytes_write=6130 bytes_read=20641 bytes_retransmit=0 bytes_invalid=0 send_seq=989 receive_seq=989 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998941 adj=50000019 mcu_temp: temp=39.3 chamber_temp: temp=20.8 heater_bed: target=45 temp=46.6 pwm=0.000 sysload=1.03 cputime=79.074 memavail=129324 print_time=885.786 buffer_time=0.000 print_stall=0 extruder: target=0 temp=24.9 pwm=0.000 [INFO] 2024-04-13 07:05:16,099 [root] [statistics:generate_stats:68] Stats 899.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11273 bytes_read=243841 bytes_retransmit=9 bytes_invalid=0 send_seq=1509 receive_seq=1509 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996855 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10034 bytes_read=71331 bytes_retransmit=0 bytes_invalid=0 send_seq=1454 receive_seq=1454 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998734 adj=120001944 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6073 bytes_read=20556 bytes_retransmit=9 bytes_invalid=0 send_seq=986 receive_seq=986 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831648 adj=71833734 rpi: mcu_awake=0.001 mcu_task_avg=0.000015 mcu_task_stddev=0.000040 bytes_write=6154 bytes_read=20705 bytes_retransmit=0 bytes_invalid=0 send_seq=993 receive_seq=993 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998962 adj=50000346 mcu_temp: temp=39.3 chamber_temp: temp=20.9 heater_bed: target=45 temp=46.6 pwm=0.000 sysload=1.03 cputime=79.299 memavail=128784 print_time=888.789 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.0 pwm=0.000 [INFO] 2024-04-13 07:05:19,100 [root] [statistics:generate_stats:68] Stats 902.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11299 bytes_read=244671 bytes_retransmit=9 bytes_invalid=0 send_seq=1513 receive_seq=1513 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996848 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10060 bytes_read=71560 bytes_retransmit=0 bytes_invalid=0 send_seq=1458 receive_seq=1458 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998734 adj=120001870 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6091 bytes_read=20617 bytes_retransmit=9 bytes_invalid=0 send_seq=989 receive_seq=989 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831581 adj=71833420 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000012 bytes_write=6172 bytes_read=20766 bytes_retransmit=0 bytes_invalid=0 send_seq=996 receive_seq=996 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998983 adj=50000609 mcu_temp: temp=39.4 chamber_temp: temp=20.9 heater_bed: target=45 temp=46.5 pwm=0.000 sysload=0.94 cputime=79.523 memavail=129276 print_time=891.799 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.1 pwm=0.000 [INFO] 2024-04-13 07:05:22,101 [root] [statistics:generate_stats:68] Stats 905.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11333 bytes_read=245473 bytes_retransmit=9 bytes_invalid=0 send_seq=1518 receive_seq=1518 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996846 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10094 bytes_read=71802 bytes_retransmit=0 bytes_invalid=0 send_seq=1463 receive_seq=1463 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998733 adj=120001992 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6115 bytes_read=20681 bytes_retransmit=9 bytes_invalid=0 send_seq=993 receive_seq=993 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831477 adj=71832493 rpi: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000012 bytes_write=6190 bytes_read=20814 bytes_retransmit=0 bytes_invalid=0 send_seq=999 receive_seq=999 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998958 adj=50000745 mcu_temp: temp=39.3 chamber_temp: temp=20.9 heater_bed: target=45 temp=46.4 pwm=0.000 sysload=0.94 cputime=79.753 memavail=128872 print_time=894.810 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.1 pwm=0.000 [INFO] 2024-04-13 07:05:25,101 [root] [statistics:generate_stats:68] Stats 908.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11359 bytes_read=246290 bytes_retransmit=9 bytes_invalid=0 send_seq=1522 receive_seq=1522 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996848 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10120 bytes_read=72012 bytes_retransmit=0 bytes_invalid=0 send_seq=1467 receive_seq=1467 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998729 adj=120001934 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6133 bytes_read=20739 bytes_retransmit=9 bytes_invalid=0 send_seq=996 receive_seq=996 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831630 adj=71831574 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000013 bytes_write=6208 bytes_read=20875 bytes_retransmit=0 bytes_invalid=0 send_seq=1002 receive_seq=1002 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998984 adj=50000028 mcu_temp: temp=39.4 chamber_temp: temp=20.8 heater_bed: target=45 temp=46.3 pwm=0.000 sysload=1.03 cputime=79.977 memavail=128912 print_time=897.820 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.1 pwm=0.000 [INFO] 2024-04-13 07:05:28,102 [root] [statistics:generate_stats:68] Stats 911.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11393 bytes_read=247137 bytes_retransmit=9 bytes_invalid=0 send_seq=1527 receive_seq=1527 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996846 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10154 bytes_read=72258 bytes_retransmit=0 bytes_invalid=0 send_seq=1472 receive_seq=1472 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998729 adj=120001814 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6151 bytes_read=20786 bytes_retransmit=9 bytes_invalid=0 send_seq=999 receive_seq=999 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831690 adj=71835327 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000010 bytes_write=6226 bytes_read=20936 bytes_retransmit=0 bytes_invalid=0 send_seq=1005 receive_seq=1005 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998977 adj=50000609 mcu_temp: temp=39.4 chamber_temp: temp=20.9 heater_bed: target=45 temp=46.3 pwm=0.000 sysload=0.95 cputime=80.194 memavail=129300 print_time=900.834 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.2 pwm=0.000 [INFO] 2024-04-13 07:05:31,103 [root] [statistics:generate_stats:68] Stats 914.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11419 bytes_read=247952 bytes_retransmit=9 bytes_invalid=0 send_seq=1531 receive_seq=1531 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996850 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10180 bytes_read=72473 bytes_retransmit=0 bytes_invalid=0 send_seq=1476 receive_seq=1476 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998726 adj=120001878 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6169 bytes_read=20847 bytes_retransmit=9 bytes_invalid=0 send_seq=1002 receive_seq=1002 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831638 adj=71834950 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000010 bytes_write=6244 bytes_read=20984 bytes_retransmit=0 bytes_invalid=0 send_seq=1008 receive_seq=1008 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998960 adj=50000269 mcu_temp: temp=39.4 chamber_temp: temp=20.9 heater_bed: target=45 temp=46.2 pwm=0.000 sysload=0.95 cputime=80.411 memavail=128920 print_time=903.854 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.2 pwm=0.000 [INFO] 2024-04-13 07:05:34,104 [root] [statistics:generate_stats:68] Stats 917.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11453 bytes_read=248799 bytes_retransmit=9 bytes_invalid=0 send_seq=1536 receive_seq=1536 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996847 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10214 bytes_read=72719 bytes_retransmit=0 bytes_invalid=0 send_seq=1481 receive_seq=1481 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998722 adj=120001778 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6187 bytes_read=20908 bytes_retransmit=9 bytes_invalid=0 send_seq=1005 receive_seq=1005 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831618 adj=71833064 rpi: mcu_awake=0.000 mcu_task_avg=0.000008 mcu_task_stddev=0.000008 bytes_write=6262 bytes_read=21045 bytes_retransmit=0 bytes_invalid=0 send_seq=1011 receive_seq=1011 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998952 adj=49999990 mcu_temp: temp=39.4 chamber_temp: temp=20.9 heater_bed: target=45 temp=46.1 pwm=0.000 sysload=0.95 cputime=80.638 memavail=128868 print_time=906.857 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.2 pwm=0.000 [INFO] 2024-04-13 07:05:37,105 [root] [statistics:generate_stats:68] Stats 920.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11479 bytes_read=249614 bytes_retransmit=9 bytes_invalid=0 send_seq=1540 receive_seq=1540 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996847 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10240 bytes_read=72948 bytes_retransmit=0 bytes_invalid=0 send_seq=1485 receive_seq=1485 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998733 adj=120001838 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6205 bytes_read=20956 bytes_retransmit=9 bytes_invalid=0 send_seq=1008 receive_seq=1008 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831724 adj=71833121 rpi: mcu_awake=0.000 mcu_task_avg=0.000008 mcu_task_stddev=0.000008 bytes_write=6280 bytes_read=21093 bytes_retransmit=0 bytes_invalid=0 send_seq=1014 receive_seq=1014 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998937 adj=50000085 mcu_temp: temp=39.5 chamber_temp: temp=20.9 heater_bed: target=45 temp=46.1 pwm=0.000 sysload=0.95 cputime=80.856 memavail=128788 print_time=909.862 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.3 pwm=0.000 [INFO] 2024-04-13 07:05:40,106 [root] [statistics:generate_stats:68] Stats 923.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11513 bytes_read=250461 bytes_retransmit=9 bytes_invalid=0 send_seq=1545 receive_seq=1545 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996844 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10274 bytes_read=73180 bytes_retransmit=0 bytes_invalid=0 send_seq=1490 receive_seq=1490 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998730 adj=120002043 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6223 bytes_read=21017 bytes_retransmit=9 bytes_invalid=0 send_seq=1011 receive_seq=1011 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831722 adj=71835091 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000009 bytes_write=6298 bytes_read=21154 bytes_retransmit=0 bytes_invalid=0 send_seq=1017 receive_seq=1017 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998992 adj=49999985 mcu_temp: temp=39.4 chamber_temp: temp=20.9 heater_bed: target=45 temp=46.0 pwm=0.000 sysload=0.87 cputime=81.064 memavail=129036 print_time=912.873 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.3 pwm=0.000 [INFO] 2024-04-13 07:05:43,106 [root] [statistics:generate_stats:68] Stats 926.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11539 bytes_read=251291 bytes_retransmit=9 bytes_invalid=0 send_seq=1549 receive_seq=1549 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996842 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10300 bytes_read=73409 bytes_retransmit=0 bytes_invalid=0 send_seq=1494 receive_seq=1494 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998729 adj=120001931 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6241 bytes_read=21065 bytes_retransmit=9 bytes_invalid=0 send_seq=1014 receive_seq=1014 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831640 adj=71833983 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000024 bytes_write=6316 bytes_read=21215 bytes_retransmit=0 bytes_invalid=0 send_seq=1020 receive_seq=1020 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998969 adj=50001096 mcu_temp: temp=39.4 chamber_temp: temp=20.9 heater_bed: target=45 temp=46.0 pwm=0.000 sysload=0.80 cputime=81.274 memavail=129340 print_time=915.882 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.3 pwm=0.000 [INFO] 2024-04-13 07:05:46,108 [root] [statistics:generate_stats:68] Stats 929.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11573 bytes_read=252123 bytes_retransmit=9 bytes_invalid=0 send_seq=1554 receive_seq=1554 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996844 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10334 bytes_read=73641 bytes_retransmit=0 bytes_invalid=0 send_seq=1499 receive_seq=1499 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998724 adj=120001900 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6259 bytes_read=21126 bytes_retransmit=9 bytes_invalid=0 send_seq=1017 receive_seq=1017 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831548 adj=71832422 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000024 bytes_write=6334 bytes_read=21263 bytes_retransmit=0 bytes_invalid=0 send_seq=1023 receive_seq=1023 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998957 adj=50000144 mcu_temp: temp=39.4 chamber_temp: temp=20.9 heater_bed: target=45 temp=45.9 pwm=0.000 sysload=0.80 cputime=81.483 memavail=128712 print_time=918.893 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.4 pwm=0.000 [INFO] 2024-04-13 07:05:49,108 [root] [statistics:generate_stats:68] Stats 932.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11599 bytes_read=252953 bytes_retransmit=9 bytes_invalid=0 send_seq=1558 receive_seq=1558 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996843 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10360 bytes_read=73870 bytes_retransmit=0 bytes_invalid=0 send_seq=1503 receive_seq=1503 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998721 adj=120001785 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6277 bytes_read=21174 bytes_retransmit=9 bytes_invalid=0 send_seq=1020 receive_seq=1020 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831581 adj=71831760 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000011 bytes_write=6352 bytes_read=21324 bytes_retransmit=0 bytes_invalid=0 send_seq=1026 receive_seq=1026 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998939 adj=50000051 mcu_temp: temp=39.4 chamber_temp: temp=21.0 heater_bed: target=45 temp=45.8 pwm=0.000 sysload=0.74 cputime=81.697 memavail=129364 print_time=921.906 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.3 pwm=0.000 [INFO] 2024-04-13 07:05:52,109 [root] [statistics:generate_stats:68] Stats 935.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11633 bytes_read=253785 bytes_retransmit=9 bytes_invalid=0 send_seq=1563 receive_seq=1563 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996840 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10394 bytes_read=74116 bytes_retransmit=0 bytes_invalid=0 send_seq=1508 receive_seq=1508 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998719 adj=120001830 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000060 bytes_write=6295 bytes_read=21236 bytes_retransmit=9 bytes_invalid=0 send_seq=1023 receive_seq=1023 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831682 adj=71833543 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000011 bytes_write=6370 bytes_read=21372 bytes_retransmit=0 bytes_invalid=0 send_seq=1029 receive_seq=1029 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998930 adj=49999934 mcu_temp: temp=39.4 chamber_temp: temp=21.0 heater_bed: target=45 temp=45.8 pwm=0.000 sysload=0.74 cputime=81.911 memavail=129196 print_time=924.918 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.4 pwm=0.000 [INFO] 2024-04-13 07:05:55,110 [root] [statistics:generate_stats:68] Stats 938.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11659 bytes_read=254630 bytes_retransmit=9 bytes_invalid=0 send_seq=1567 receive_seq=1567 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996842 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10420 bytes_read=74331 bytes_retransmit=0 bytes_invalid=0 send_seq=1512 receive_seq=1512 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998719 adj=120001868 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6313 bytes_read=21297 bytes_retransmit=9 bytes_invalid=0 send_seq=1026 receive_seq=1026 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831706 adj=71835099 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000025 bytes_write=6388 bytes_read=21433 bytes_retransmit=0 bytes_invalid=0 send_seq=1032 receive_seq=1032 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998947 adj=50000040 mcu_temp: temp=39.5 chamber_temp: temp=21.0 heater_bed: target=45 temp=45.7 pwm=0.000 sysload=0.68 cputime=82.124 memavail=129200 print_time=927.925 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.5 pwm=0.000 [INFO] 2024-04-13 07:05:58,112 [root] [statistics:generate_stats:68] Stats 941.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11693 bytes_read=255432 bytes_retransmit=9 bytes_invalid=0 send_seq=1572 receive_seq=1572 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996849 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10454 bytes_read=74572 bytes_retransmit=0 bytes_invalid=0 send_seq=1517 receive_seq=1517 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998726 adj=120001857 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6331 bytes_read=21345 bytes_retransmit=9 bytes_invalid=0 send_seq=1029 receive_seq=1029 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831639 adj=71834318 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000008 bytes_write=6406 bytes_read=21494 bytes_retransmit=0 bytes_invalid=0 send_seq=1035 receive_seq=1035 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998976 adj=50000469 mcu_temp: temp=39.4 chamber_temp: temp=21.1 heater_bed: target=45 temp=45.7 pwm=0.000 sysload=0.95 cputime=82.347 memavail=129280 print_time=930.934 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.5 pwm=0.000 [INFO] 2024-04-13 07:06:01,113 [root] [statistics:generate_stats:68] Stats 944.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11719 bytes_read=256255 bytes_retransmit=9 bytes_invalid=0 send_seq=1576 receive_seq=1576 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996846 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10480 bytes_read=74783 bytes_retransmit=0 bytes_invalid=0 send_seq=1521 receive_seq=1521 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998728 adj=120001866 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6349 bytes_read=21406 bytes_retransmit=9 bytes_invalid=0 send_seq=1032 receive_seq=1032 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831663 adj=71832623 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000008 bytes_write=6424 bytes_read=21542 bytes_retransmit=0 bytes_invalid=0 send_seq=1038 receive_seq=1038 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998954 adj=50000746 mcu_temp: temp=39.4 chamber_temp: temp=21.0 heater_bed: target=45 temp=45.6 pwm=0.000 sysload=0.95 cputime=82.564 memavail=129280 print_time=933.943 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.5 pwm=0.000 [INFO] 2024-04-13 07:06:04,115 [root] [statistics:generate_stats:68] Stats 947.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11753 bytes_read=257102 bytes_retransmit=9 bytes_invalid=0 send_seq=1581 receive_seq=1581 retransmit_seq=17 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996847 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10514 bytes_read=75029 bytes_retransmit=0 bytes_invalid=0 send_seq=1526 receive_seq=1526 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998725 adj=120001956 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6367 bytes_read=21454 bytes_retransmit=9 bytes_invalid=0 send_seq=1035 receive_seq=1035 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831773 adj=71833691 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000009 bytes_write=6442 bytes_read=21603 bytes_retransmit=0 bytes_invalid=0 send_seq=1041 receive_seq=1041 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998953 adj=50000064 mcu_temp: temp=39.4 chamber_temp: temp=21.1 heater_bed: target=45 temp=45.6 pwm=0.000 sysload=1.03 cputime=82.792 memavail=129116 print_time=936.955 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.6 pwm=0.000 [INFO] 2024-04-13 07:06:07,114 [root] [statistics:generate_stats:68] Stats 950.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11779 bytes_read=257917 bytes_retransmit=9 bytes_invalid=0 send_seq=1585 receive_seq=1585 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996847 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10540 bytes_read=75258 bytes_retransmit=0 bytes_invalid=0 send_seq=1530 receive_seq=1530 retransmit_seq=0 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998725 adj=120001820 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6385 bytes_read=21515 bytes_retransmit=9 bytes_invalid=0 send_seq=1038 receive_seq=1038 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831731 adj=71835311 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000009 bytes_write=6460 bytes_read=21651 bytes_retransmit=0 bytes_invalid=0 send_seq=1044 receive_seq=1044 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998944 adj=50000189 mcu_temp: temp=39.5 chamber_temp: temp=21.1 heater_bed: target=45 temp=45.5 pwm=0.000 sysload=1.03 cputime=83.007 memavail=129072 print_time=939.967 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.6 pwm=0.000 [INFO] 2024-04-13 07:06:10,113 [root] [statistics:generate_stats:68] Stats 953.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11813 bytes_read=258764 bytes_retransmit=9 bytes_invalid=0 send_seq=1590 receive_seq=1590 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996847 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10574 bytes_read=75490 bytes_retransmit=0 bytes_invalid=0 send_seq=1535 receive_seq=1535 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998721 adj=120001865 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6403 bytes_read=21576 bytes_retransmit=9 bytes_invalid=0 send_seq=1041 receive_seq=1041 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831660 adj=71833389 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000011 bytes_write=6478 bytes_read=21712 bytes_retransmit=0 bytes_invalid=0 send_seq=1047 receive_seq=1047 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998941 adj=50000099 mcu_temp: temp=39.5 chamber_temp: temp=21.1 heater_bed: target=45 temp=45.4 pwm=0.000 sysload=1.03 cputime=83.232 memavail=129184 print_time=942.981 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.6 pwm=0.000 [INFO] 2024-04-13 07:06:13,115 [root] [statistics:generate_stats:68] Stats 956.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11839 bytes_read=259579 bytes_retransmit=9 bytes_invalid=0 send_seq=1594 receive_seq=1594 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996846 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000003 bytes_write=10600 bytes_read=75719 bytes_retransmit=0 bytes_invalid=0 send_seq=1539 receive_seq=1539 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998722 adj=120001826 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6421 bytes_read=21624 bytes_retransmit=9 bytes_invalid=0 send_seq=1044 receive_seq=1044 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831537 adj=71832420 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000011 bytes_write=6496 bytes_read=21760 bytes_retransmit=0 bytes_invalid=0 send_seq=1050 receive_seq=1050 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998950 adj=50000170 mcu_temp: temp=39.4 chamber_temp: temp=21.1 heater_bed: target=45 temp=45.4 pwm=0.000 sysload=0.95 cputime=83.453 memavail=129156 print_time=945.991 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.7 pwm=0.000 [INFO] 2024-04-13 07:06:16,120 [root] [statistics:generate_stats:68] Stats 959.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11873 bytes_read=260426 bytes_retransmit=9 bytes_invalid=0 send_seq=1599 receive_seq=1599 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996849 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000003 bytes_write=10634 bytes_read=75951 bytes_retransmit=0 bytes_invalid=0 send_seq=1544 receive_seq=1544 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998720 adj=120001892 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6439 bytes_read=21685 bytes_retransmit=9 bytes_invalid=0 send_seq=1047 receive_seq=1047 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831595 adj=71831296 rpi: mcu_awake=0.000 mcu_task_avg=0.000008 mcu_task_stddev=0.000009 bytes_write=6514 bytes_read=21818 bytes_retransmit=0 bytes_invalid=0 send_seq=1053 receive_seq=1053 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998949 adj=50000381 mcu_temp: temp=39.5 chamber_temp: temp=21.1 heater_bed: target=45 temp=45.3 pwm=0.000 sysload=0.95 cputime=83.684 memavail=129072 print_time=949.001 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.7 pwm=0.000 [INFO] 2024-04-13 07:06:19,119 [root] [statistics:generate_stats:68] Stats 962.3: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11899 bytes_read=261256 bytes_retransmit=9 bytes_invalid=0 send_seq=1603 receive_seq=1603 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996850 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10660 bytes_read=76180 bytes_retransmit=0 bytes_invalid=0 send_seq=1548 receive_seq=1548 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998718 adj=120001792 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6457 bytes_read=21733 bytes_retransmit=9 bytes_invalid=0 send_seq=1050 receive_seq=1050 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831640 adj=71833775 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000013 bytes_write=6532 bytes_read=21877 bytes_retransmit=0 bytes_invalid=0 send_seq=1056 receive_seq=1056 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998938 adj=50000260 mcu_temp: temp=39.4 chamber_temp: temp=21.1 heater_bed: target=45 temp=45.3 pwm=0.000 sysload=0.87 cputime=83.910 memavail=128840 print_time=952.010 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.7 pwm=0.000 [INFO] 2024-04-13 07:06:22,135 [root] [statistics:generate_stats:68] Stats 965.4: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11939 bytes_read=262119 bytes_retransmit=9 bytes_invalid=0 send_seq=1609 receive_seq=1609 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996850 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10700 bytes_read=76442 bytes_retransmit=0 bytes_invalid=0 send_seq=1554 receive_seq=1554 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998714 adj=120001800 leveling_mcu: mcu_awake=0.001 mcu_task_avg=0.000012 mcu_task_stddev=0.000061 bytes_write=6475 bytes_read=21795 bytes_retransmit=9 bytes_invalid=0 send_seq=1053 receive_seq=1053 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831623 adj=71834257 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000013 bytes_write=6556 bytes_read=21941 bytes_retransmit=0 bytes_invalid=0 send_seq=1060 receive_seq=1060 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998938 adj=50000071 mcu_temp: temp=39.4 chamber_temp: temp=21.1 heater_bed: target=45 temp=45.2 pwm=0.000 sysload=0.87 cputime=84.139 memavail=128980 print_time=955.020 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.7 pwm=0.000 [INFO] 2024-04-13 07:06:25,136 [root] [statistics:generate_stats:68] Stats 968.4: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11965 bytes_read=262949 bytes_retransmit=9 bytes_invalid=0 send_seq=1613 receive_seq=1613 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996855 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10726 bytes_read=76657 bytes_retransmit=0 bytes_invalid=0 send_seq=1558 receive_seq=1558 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998710 adj=120001793 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6499 bytes_read=21869 bytes_retransmit=9 bytes_invalid=0 send_seq=1057 receive_seq=1057 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831575 adj=71833426 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000012 bytes_write=6574 bytes_read=22002 bytes_retransmit=0 bytes_invalid=0 send_seq=1063 receive_seq=1063 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998927 adj=50000221 mcu_temp: temp=39.5 chamber_temp: temp=21.1 heater_bed: target=45 temp=45.2 pwm=0.000 sysload=0.88 cputime=84.360 memavail=128976 print_time=958.040 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.8 pwm=0.000 [INFO] 2024-04-13 07:06:28,145 [root] [statistics:generate_stats:68] Stats 971.4: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=11999 bytes_read=263781 bytes_retransmit=9 bytes_invalid=0 send_seq=1618 receive_seq=1618 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996857 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10760 bytes_read=76903 bytes_retransmit=0 bytes_invalid=0 send_seq=1563 receive_seq=1563 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998709 adj=120001717 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6517 bytes_read=21916 bytes_retransmit=9 bytes_invalid=0 send_seq=1060 receive_seq=1060 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831634 adj=71832692 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000012 bytes_write=6592 bytes_read=22050 bytes_retransmit=0 bytes_invalid=0 send_seq=1066 receive_seq=1066 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998917 adj=50000026 mcu_temp: temp=39.5 chamber_temp: temp=21.1 heater_bed: target=45 temp=45.1 pwm=0.000 sysload=0.89 cputime=84.584 memavail=128596 print_time=961.052 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.8 pwm=0.000 [INFO] 2024-04-13 07:06:31,155 [root] [statistics:generate_stats:68] Stats 974.4: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=12025 bytes_read=264611 bytes_retransmit=9 bytes_invalid=0 send_seq=1622 receive_seq=1622 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996855 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10786 bytes_read=77118 bytes_retransmit=0 bytes_invalid=0 send_seq=1567 receive_seq=1567 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998709 adj=120001768 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6535 bytes_read=21977 bytes_retransmit=9 bytes_invalid=0 send_seq=1063 receive_seq=1063 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831654 adj=71834179 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000013 bytes_write=6610 bytes_read=22111 bytes_retransmit=0 bytes_invalid=0 send_seq=1069 receive_seq=1069 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998919 adj=50000021 mcu_temp: temp=39.5 chamber_temp: temp=21.1 heater_bed: target=45 temp=45.1 pwm=0.000 sysload=0.89 cputime=84.804 memavail=128796 print_time=964.053 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.9 pwm=0.000 [INFO] 2024-04-13 07:06:34,165 [root] [statistics:generate_stats:68] Stats 977.4: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=12059 bytes_read=265421 bytes_retransmit=9 bytes_invalid=0 send_seq=1627 receive_seq=1627 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996856 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10820 bytes_read=77358 bytes_retransmit=0 bytes_invalid=0 send_seq=1572 receive_seq=1572 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998710 adj=120001857 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6553 bytes_read=22025 bytes_retransmit=9 bytes_invalid=0 send_seq=1066 receive_seq=1066 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831536 adj=71834017 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000011 bytes_write=6628 bytes_read=22172 bytes_retransmit=0 bytes_invalid=0 send_seq=1072 receive_seq=1072 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998921 adj=50000221 mcu_temp: temp=39.6 chamber_temp: temp=21.1 heater_bed: target=45 temp=45.0 pwm=0.000 sysload=1.06 cputime=85.016 memavail=128820 print_time=967.061 buffer_time=0.000 print_stall=0 extruder: target=0 temp=26.0 pwm=0.000 [INFO] 2024-04-13 07:06:35,918 [root] [pid_calibrate:calc_pid:126] Autotune: raw=7.354832/1.000000 Ku=0.346232 Tu=161.100000 Kp=52.973512 Ki=0.657648 Kd=1066.754096 [INFO] 2024-04-13 07:06:37,173 [root] [statistics:generate_stats:68] Stats 980.4: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=12101 bytes_read=266241 bytes_retransmit=9 bytes_invalid=0 send_seq=1632 receive_seq=1632 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996864 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10846 bytes_read=77583 bytes_retransmit=0 bytes_invalid=0 send_seq=1576 receive_seq=1576 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998712 adj=120001856 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6571 bytes_read=22086 bytes_retransmit=9 bytes_invalid=0 send_seq=1069 receive_seq=1069 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831500 adj=71831805 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000011 bytes_write=6646 bytes_read=22220 bytes_retransmit=0 bytes_invalid=0 send_seq=1075 receive_seq=1075 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998926 adj=50000239 mcu_temp: temp=39.6 chamber_temp: temp=21.1 heater_bed: target=50 temp=44.8 pwm=1.000 sysload=1.06 cputime=85.227 memavail=129312 print_time=970.071 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.9 pwm=0.000 [INFO] 2024-04-13 07:06:40,173 [root] [statistics:generate_stats:68] Stats 983.4: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=12151 bytes_read=267093 bytes_retransmit=9 bytes_invalid=0 send_seq=1638 receive_seq=1638 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996857 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10880 bytes_read=77815 bytes_retransmit=0 bytes_invalid=0 send_seq=1581 receive_seq=1581 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998713 adj=120001748 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6589 bytes_read=22134 bytes_retransmit=9 bytes_invalid=0 send_seq=1072 receive_seq=1072 retransmit_seq=17 srtt=0.002 rttvar=0.002 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831549 adj=71832383 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000011 bytes_write=6664 bytes_read=22281 bytes_retransmit=0 bytes_invalid=0 send_seq=1078 receive_seq=1078 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998926 adj=50000267 mcu_temp: temp=39.6 chamber_temp: temp=21.2 heater_bed: target=50 temp=45.3 pwm=1.000 sysload=1.14 cputime=85.439 memavail=129068 print_time=973.083 buffer_time=0.000 print_stall=0 extruder: target=0 temp=25.9 pwm=0.000 [INFO] 2024-04-13 07:06:43,175 [root] [statistics:generate_stats:68] Stats 986.4: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=12177 bytes_read=267908 bytes_retransmit=9 bytes_invalid=0 send_seq=1642 receive_seq=1642 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996876 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10906 bytes_read=78044 bytes_retransmit=0 bytes_invalid=0 send_seq=1585 receive_seq=1585 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998711 adj=120001945 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6607 bytes_read=22195 bytes_retransmit=9 bytes_invalid=0 send_seq=1075 receive_seq=1075 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831644 adj=71833973 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000011 bytes_write=6682 bytes_read=22329 bytes_retransmit=0 bytes_invalid=0 send_seq=1081 receive_seq=1081 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998941 adj=50000285 mcu_temp: temp=39.6 chamber_temp: temp=21.2 heater_bed: target=50 temp=46.8 pwm=1.000 sysload=1.12 cputime=85.664 memavail=129220 print_time=976.097 buffer_time=0.000 print_stall=0 extruder: target=0 temp=26.0 pwm=0.000 [INFO] 2024-04-13 07:06:46,175 [root] [statistics:generate_stats:68] Stats 989.4: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=12227 bytes_read=268760 bytes_retransmit=9 bytes_invalid=0 send_seq=1648 receive_seq=1648 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996874 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10940 bytes_read=78276 bytes_retransmit=0 bytes_invalid=0 send_seq=1590 receive_seq=1590 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998709 adj=120001556 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6625 bytes_read=22256 bytes_retransmit=9 bytes_invalid=0 send_seq=1078 receive_seq=1078 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831655 adj=71834878 rpi: mcu_awake=0.001 mcu_task_avg=0.000011 mcu_task_stddev=0.000012 bytes_write=6700 bytes_read=22390 bytes_retransmit=0 bytes_invalid=0 send_seq=1084 receive_seq=1084 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998944 adj=50000374 mcu_temp: temp=39.6 chamber_temp: temp=21.1 heater_bed: target=50 temp=48.6 pwm=1.000 sysload=1.12 cputime=85.896 memavail=129284 print_time=979.113 buffer_time=0.000 print_stall=0 extruder: target=0 temp=26.1 pwm=0.000 [INFO] 2024-04-13 07:06:48,518 [root] [pid_calibrate:calc_pid:126] Autotune: raw=-7.524079/1.000000 Ku=0.338444 Tu=217.200000 Kp=51.781925 Ki=0.476813 Kd=1405.879263 [INFO] 2024-04-13 07:06:49,176 [root] [statistics:generate_stats:68] Stats 992.4: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=12266 bytes_read=269595 bytes_retransmit=9 bytes_invalid=0 send_seq=1653 receive_seq=1653 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996871 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10966 bytes_read=78505 bytes_retransmit=0 bytes_invalid=0 send_seq=1594 receive_seq=1594 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998742 adj=120001772 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6643 bytes_read=22304 bytes_retransmit=9 bytes_invalid=0 send_seq=1081 receive_seq=1081 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831595 adj=71834063 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000011 bytes_write=6718 bytes_read=22451 bytes_retransmit=0 bytes_invalid=0 send_seq=1087 receive_seq=1087 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998941 adj=50000334 mcu_temp: temp=39.7 chamber_temp: temp=21.2 heater_bed: target=45 temp=50.6 pwm=0.000 sysload=1.03 cputime=86.129 memavail=129016 print_time=982.120 buffer_time=0.000 print_stall=0 extruder: target=0 temp=26.1 pwm=0.000 [INFO] 2024-04-13 07:06:49,468 [root] [pid_calibrate:calc_pid:126] Autotune: raw=7.481802/1.000000 Ku=0.340356 Tu=100.500000 Kp=52.074525 Ki=1.036309 Kd=654.186223 [INFO] 2024-04-13 07:06:49,469 [root] [pid_calibrate:cmd_PID_CALIBRATE:40] Autotune: final: Kp=52.074525 Ki=1.036309 Kd=654.186223 [INFO] 2024-04-13 07:06:49,470 [root] [gcode:respond_info:301] PID parameters: pid_Kp=52.075 pid_Ki=1.036 pid_Kd=654.186 The SAVE_CONFIG command will update the printer config file with these parameters and restart the printer. [INFO] 2024-04-13 07:06:49,473 [root] [configfile:set:358] save_config: set [heater_bed] control = pid [INFO] 2024-04-13 07:06:49,474 [root] [configfile:set:358] save_config: set [heater_bed] pid_Kp = 52.075 [INFO] 2024-04-13 07:06:49,475 [root] [configfile:set:358] save_config: set [heater_bed] pid_Ki = 1.036 [INFO] 2024-04-13 07:06:49,476 [root] [configfile:set:358] save_config: set [heater_bed] pid_Kd = 654.186 [INFO] 2024-04-13 07:06:52,178 [root] [statistics:generate_stats:68] Stats 995.4: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=12300 bytes_read=270427 bytes_retransmit=9 bytes_invalid=0 send_seq=1658 receive_seq=1658 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996867 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11000 bytes_read=78737 bytes_retransmit=0 bytes_invalid=0 send_seq=1599 receive_seq=1599 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998736 adj=120002396 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6661 bytes_read=22365 bytes_retransmit=9 bytes_invalid=0 send_seq=1084 receive_seq=1084 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831627 adj=71832725 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000011 bytes_write=6736 bytes_read=22499 bytes_retransmit=0 bytes_invalid=0 send_seq=1090 receive_seq=1090 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998944 adj=50000239 mcu_temp: temp=39.7 chamber_temp: temp=21.2 heater_bed: target=0 temp=52.1 pwm=0.000 sysload=1.03 cputime=86.363 memavail=129188 print_time=982.120 buffer_time=0.000 print_stall=0 extruder: target=0 temp=26.2 pwm=0.000 [INFO] 2024-04-13 07:06:55,183 [root] [statistics:generate_stats:68] Stats 998.4: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=12326 bytes_read=271257 bytes_retransmit=9 bytes_invalid=0 send_seq=1662 receive_seq=1662 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996865 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11026 bytes_read=78966 bytes_retransmit=0 bytes_invalid=0 send_seq=1603 receive_seq=1603 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998730 adj=120001963 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6679 bytes_read=22413 bytes_retransmit=9 bytes_invalid=0 send_seq=1087 receive_seq=1087 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831724 adj=71833809 rpi: mcu_awake=0.000 mcu_task_avg=0.000008 mcu_task_stddev=0.000009 bytes_write=6754 bytes_read=22560 bytes_retransmit=0 bytes_invalid=0 send_seq=1093 receive_seq=1093 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998937 adj=50000325 mcu_temp: temp=39.7 chamber_temp: temp=21.2 heater_bed: target=0 temp=52.6 pwm=0.000 sysload=1.03 cputime=86.586 memavail=129224 print_time=982.120 buffer_time=0.000 print_stall=0 extruder: target=0 temp=26.2 pwm=0.000 [INFO] 2024-04-13 07:06:58,177 [root] [statistics:generate_stats:68] Stats 1001.4: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=12360 bytes_read=272089 bytes_retransmit=9 bytes_invalid=0 send_seq=1667 receive_seq=1667 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996865 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11060 bytes_read=79212 bytes_retransmit=0 bytes_invalid=0 send_seq=1608 receive_seq=1608 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998722 adj=120001845 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6697 bytes_read=22474 bytes_retransmit=9 bytes_invalid=0 send_seq=1090 receive_seq=1090 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831682 adj=71835143 rpi: mcu_awake=0.000 mcu_task_avg=0.000008 mcu_task_stddev=0.000009 bytes_write=6772 bytes_read=22608 bytes_retransmit=0 bytes_invalid=0 send_seq=1096 receive_seq=1096 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998933 adj=50000164 mcu_temp: temp=39.8 chamber_temp: temp=21.2 heater_bed: target=0 temp=52.5 pwm=0.000 sysload=1.27 cputime=86.797 memavail=128712 print_time=982.120 buffer_time=0.000 print_stall=0 extruder: target=0 temp=26.2 pwm=0.000 [INFO] 2024-04-13 07:07:01,186 [root] [statistics:generate_stats:68] Stats 1004.4: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=12386 bytes_read=272919 bytes_retransmit=9 bytes_invalid=0 send_seq=1671 receive_seq=1671 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996865 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11086 bytes_read=79427 bytes_retransmit=0 bytes_invalid=0 send_seq=1612 receive_seq=1612 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998718 adj=120001719 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6715 bytes_read=22535 bytes_retransmit=9 bytes_invalid=0 send_seq=1093 receive_seq=1093 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831595 adj=71833310 rpi: mcu_awake=0.001 mcu_task_avg=0.000010 mcu_task_stddev=0.000012 bytes_write=6790 bytes_read=22669 bytes_retransmit=0 bytes_invalid=0 send_seq=1099 receive_seq=1099 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998990 adj=50000160 mcu_temp: temp=39.7 chamber_temp: temp=21.2 heater_bed: target=0 temp=52.4 pwm=0.000 sysload=1.27 cputime=87.018 memavail=128980 print_time=982.120 buffer_time=0.000 print_stall=0 extruder: target=0 temp=26.2 pwm=0.000 [INFO] 2024-04-13 07:07:04,186 [root] [statistics:generate_stats:68] Stats 1007.4: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=12420 bytes_read=273766 bytes_retransmit=9 bytes_invalid=0 send_seq=1676 receive_seq=1676 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996862 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11120 bytes_read=79673 bytes_retransmit=0 bytes_invalid=0 send_seq=1617 receive_seq=1617 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998719 adj=120001771 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6733 bytes_read=22583 bytes_retransmit=9 bytes_invalid=0 send_seq=1096 receive_seq=1096 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831532 adj=71832101 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000010 bytes_write=6808 bytes_read=22730 bytes_retransmit=0 bytes_invalid=0 send_seq=1102 receive_seq=1102 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998971 adj=50001170 mcu_temp: temp=39.7 chamber_temp: temp=21.2 heater_bed: target=0 temp=52.3 pwm=0.000 sysload=1.17 cputime=87.245 memavail=129116 print_time=982.120 buffer_time=0.000 print_stall=0 extruder: target=0 temp=26.2 pwm=0.000 [INFO] 2024-04-13 07:07:07,187 [root] [statistics:generate_stats:68] Stats 1010.4: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=12446 bytes_read=274581 bytes_retransmit=9 bytes_invalid=0 send_seq=1680 receive_seq=1680 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996860 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11146 bytes_read=79888 bytes_retransmit=0 bytes_invalid=0 send_seq=1621 receive_seq=1621 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998717 adj=120001882 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6751 bytes_read=22644 bytes_retransmit=9 bytes_invalid=0 send_seq=1099 receive_seq=1099 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831544 adj=71832131 rpi: mcu_awake=0.001 mcu_task_avg=0.000009 mcu_task_stddev=0.000010 bytes_write=6826 bytes_read=22778 bytes_retransmit=0 bytes_invalid=0 send_seq=1105 receive_seq=1105 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998995 adj=50000217 mcu_temp: temp=39.7 chamber_temp: temp=21.2 heater_bed: target=0 temp=52.1 pwm=0.000 sysload=1.17 cputime=87.468 memavail=129220 print_time=982.120 buffer_time=0.000 print_stall=0 extruder: target=0 temp=26.3 pwm=0.000 [INFO] 2024-04-13 07:07:10,189 [root] [statistics:generate_stats:68] Stats 1013.4: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=12480 bytes_read=275386 bytes_retransmit=9 bytes_invalid=0 send_seq=1685 receive_seq=1685 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996863 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11180 bytes_read=80127 bytes_retransmit=0 bytes_invalid=0 send_seq=1626 receive_seq=1626 retransmit_seq=0 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998713 adj=120001871 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6769 bytes_read=22692 bytes_retransmit=9 bytes_invalid=0 send_seq=1102 receive_seq=1102 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831645 adj=71833278 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000012 bytes_write=6844 bytes_read=22839 bytes_retransmit=0 bytes_invalid=0 send_seq=1108 receive_seq=1108 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998975 adj=50000693 mcu_temp: temp=39.8 chamber_temp: temp=21.2 heater_bed: target=0 temp=51.8 pwm=0.000 sysload=1.15 cputime=87.691 memavail=129196 print_time=982.120 buffer_time=0.000 print_stall=0 extruder: target=0 temp=26.4 pwm=0.000 [INFO] 2024-04-13 07:07:13,188 [root] [statistics:generate_stats:68] Stats 1016.4: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000008 mcu_task_stddev=0.000004 bytes_write=12506 bytes_read=276200 bytes_retransmit=9 bytes_invalid=0 send_seq=1689 receive_seq=1689 retransmit_seq=17 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119996867 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11206 bytes_read=80353 bytes_retransmit=0 bytes_invalid=0 send_seq=1630 receive_seq=1630 retransmit_seq=0 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998707 adj=120001747 leveling_mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6787 bytes_read=22753 bytes_retransmit=9 bytes_invalid=0 send_seq=1105 receive_seq=1105 retransmit_seq=17 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71831617 adj=71834962 rpi: mcu_awake=0.000 mcu_task_avg=0.000009 mcu_task_stddev=0.000012 bytes_write=6862 bytes_read=22887 bytes_retransmit=0 bytes_invalid=0 send_seq=1111 receive_seq=1111 retransmit_seq=0 srtt=0.000 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998963 adj=50000047 mcu_temp: temp=39.8 chamber_temp: temp=21.2 heater_bed: target=0 temp=51.6 pwm=0.000 sysload=1.06 cputime=87.908 memavail=129120 print_time=982.120 buffer_time=0.000 print_stall=0 extruder: target=0 temp=26.4 pwm=0.000 [INFO] 2024-04-13 07:07:14,221 [root] [configfile:cmd_SAVE_CONFIG:413] SAVE_CONFIG to '/usr/data/printer_data/config/printer.cfg' (backup in '/usr/data/printer_data/config/printer-20240413_070714.cfg') [INFO] 2024-04-13 07:07:15,261 [root] [webhooks:set_client_info:202] webhooks client 1986688336: Disconnected [INFO] 2024-04-13 07:07:15,263 [root] [webhooks:set_client_info:202] webhooks client 1975891136: Disconnected [INFO] 2024-04-13 07:07:16,272 [root] [klippy:main:447] Restarting printer [INFO] 2024-04-13 07:07:16,396 [root] [klippy:run:265] Start printer at Sat Apr 13 07:07:16 2024 (1712963236.4 1019.6) [INFO] 2024-04-13 07:07:16,398 [root] [reactor:_dispatch_loop:340] _dispatch_loop current nice = -20 [INFO] 2024-04-13 07:07:16,400 [root] [reactor:_dispatch_loop:342] _dispatch_loop new nice = -20 [INFO] 2024-04-13 07:07:17,213 [root] [klippy:set_rollover_info:293] ===== Config file ===== [virtual_pins] [force_move] enable_force_move = true [gcode_macro xyz_ready] variable_x_ready = 0 variable_y_ready = 0 variable_z_ready = 0 variable_xy_moved = 0 variable_z_moved = 0 variable_safe_z = 3 gcode = [gcode_macro _IF_HOME_Z] gcode = {% if printer['gcode_macro xyz_ready'].z_ready|int == 1 %} {% if printer.toolhead.position.z|int < 5 %} {% set z_park = 5.0 - printer.toolhead.position.z|int %} G91 G1 z{z_park} F600 G90 {% endif %} {% else %} {% if printer['gcode_macro xyz_ready'].z_moved|int == 0 %} {% if printer.print_stats.z_pos|float <= 20.0 or printer.print_stats.power_loss == 1 %} FORCE_MOVE STEPPER=stepper_z DISTANCE={printer["gcode_macro PRINTER_PARAM"].z_safe_g28} VELOCITY=10 {% else %} FORCE_MOVE STEPPER=stepper_z DISTANCE=0.1 VELOCITY=10 {% endif %} SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=1 {% endif %} {% endif %} [gcode_macro _IF_MOVE_XY] gcode = _IF_HOME_Z {% if printer['gcode_macro xyz_ready'].xy_moved|int == 0 %} {action_respond_info("move xy\n")} FORCE_MOVE STEPPER=stepper_y DISTANCE=-14 VELOCITY=50 FORCE_MOVE STEPPER=stepper_y DISTANCE=7 VELOCITY=50 SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=1 G4 P1000 {% endif %} [gcode_macro _HOME_X] gcode = _IF_MOVE_XY {% if printer['gcode_macro xyz_ready'].x_ready|int == 1 %} {% if (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x)|round < 10 %} {% set x_park = (10 - (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x))|round %} {% if x_park > 0 %} G91 G1 x-{x_park} F3600 G90 G4 P1000 {% endif %} {% endif %} {% endif %} G28 X SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=1 G91 G1 x-10 F3600 G90 G4 P2000 [gcode_macro _HOME_Y] gcode = _IF_MOVE_XY {% if printer['gcode_macro xyz_ready'].y_ready|int == 1 %} {% if printer.toolhead.position.y|round < 8 %} {% set y_park = 8 - printer.toolhead.position.y|round %} {% if y_park > 0 %} G91 G1 y{y_park} F3600 G90 G4 P1000 {% endif %} {% endif %} {% endif %} G28 Y SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=1 G91 G1 y10 F3600 G90 G4 P2000 [gcode_macro _HOME_Z] gcode = {% if printer['gcode_macro xyz_ready'].y_ready|int == 1 %} {% if printer['gcode_macro xyz_ready'].x_ready|int == 1 %} _IF_HOME_Z {% endif %} {% endif %} {% if printer.print_stats.z_pos|float >= 260.0 %} FORCE_MOVE STEPPER=stepper_z DISTANCE=-8 VELOCITY=10 {% endif %} {% set POSITION_X = printer.configfile.settings['stepper_x'].position_max/2 %} {% set POSITION_Y = printer.configfile.settings['stepper_y'].position_max/2 %} G91 {% set x_park = POSITION_X - printer.toolhead.position.x|int %} {% set y_park = POSITION_Y - printer.toolhead.position.y|int %} {action_respond_info("x_park = %s \n" % (x_park))} {action_respond_info("y_park = %s \n" % (y_park))} G1 x{x_park} y{y_park} F3600 G90 G28 Z SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=1 [homing_override] axes = xyz gcode = M220 S100 {% set x_axes = printer.toolhead.homed_axes %} {% if x_axes is defined and x_axes[0] is defined %} {action_respond_info( "x_axes: %s \n" % (x_axes))} {% else %} SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=0 SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=0 SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=0 SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=0 SET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=0 {action_respond_info( "x_axes is NULL\n")} {% endif %} {% if x_axes is not defined or x_axes[2] is not defined %} BED_MESH_CLEAR {% endif %} {% if x_axes is defined and x_axes[0] is defined and x_axes[1] is defined %} {action_respond_info("x_axes: %s \n"% (x_axes))} {% set position_y = printer.toolhead.position.y|int %} {% set max_y_position = printer["gcode_macro PRINTER_PARAM"].max_y_position|int %} {% if position_y >= max_y_position %} G91 G0 Y-10 F3600 G90 {% endif %} {% endif %} {% set home_all = 'X' not in params and 'Y' not in params %} {% if 'Z' in params and 'X' not in params and 'Y' not in params %} {% if x_axes[0] is defined and x_axes[1] is defined %} {% set home_all = 0 %} {% endif %} {% endif %} {% if home_all or 'X' in params %} _HOME_X {% endif %} {% if home_all or 'Y' in params %} _HOME_Y {% endif %} {% if home_all or 'X' in params %} _HOME_X {% endif %} {% if home_all or 'Y' in params %} _HOME_Y {% endif %} {% if home_all or 'Z' in params %} _HOME_Z {% endif %} BED_MESH_PROFILE LOAD="default" G4 P500 [gcode_macro PRINTER_PARAM] variable_z_safe_pause = 0.0 variable_z_safe_g28 = 3.0 variable_max_x_position = 300.0 variable_max_y_position = 300.0 variable_max_z_position = 300.0 variable_fans = 3 variable_auto_g29 = 0 variable_fan0_min = 25 variable_fan1_min = 50 variable_fan2_min = 180 variable_fan2_speed = 0 variable_hotend_temp = 0 variable_e_min_current = 0.27 gcode = [gcode_macro AUTOTUNE_SHAPERS] gcode = [gcode_macro LOAD_MATERIAL_CLOSE_FAN2] variable_fan2_value = 0 gcode = SAVE_GCODE_STATE NAME=myMoveState {% if printer['output_pin fan2'].value > 0.0 %} SET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value} M107 P2 {% endif %} RESTORE_E_CURRENT [gcode_macro LOAD_MATERIAL_RESTORE_FAN2] gcode = {% set fan2_value = printer['gcode_macro LOAD_MATERIAL_CLOSE_FAN2'].fan2_value|float %} RESTORE_GCODE_STATE NAME=myMoveState {% if fan2_value > 0.0 %} {% set s_value = (fan2_value * 255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) * 255 / (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) %} M106 P2 S{s_value} SET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE=0 {% endif %} SET_E_MIN_CURRENT [gcode_macro SET_E_MIN_CURRENT] gcode = {% set e_current = printer['gcode_macro PRINTER_PARAM'].e_min_current %} M400 SET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current} G4 P2000 [gcode_macro RESTORE_E_CURRENT] gcode = {% set e_current = printer.configfile.settings['tmc2209 extruder'].run_current %} M400 SET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current} G4 P2000 [gcode_macro LOAD_MATERIAL] gcode = LOAD_MATERIAL_CLOSE_FAN2 M109 S{printer.custom_macro.default_extruder_temp} G91 G1 E80 F180 LOAD_MATERIAL_RESTORE_FAN2 [gcode_macro QUIT_MATERIAL] gcode = SAVE_GCODE_STATE NAME=myMoveState RESTORE_E_CURRENT M109 S{printer.custom_macro.default_extruder_temp} M83 G1 E10 F300 G1 E-15 F3000 G1 E-22.4700 F2400 G1 E-6.4200 F1200 G1 E-3.2100 F720 G1 E5.0000 F356 G1 E-5.0000 F384 G1 E5.0000 F412 G1 E-5.0000 F440 G1 E5.0000 F467 G1 E-5.0000 F495 G1 E5.0000 F523 G1 E-5.0000 F3000 G1 E-15 F3000 SET_E_MIN_CURRENT RESTORE_GCODE_STATE NAME=myMoveState [gcode_macro Qmode] variable_flag = 0 variable_accel = 0 variable_accel_to_decel = 0 variable_velocity = 0 variable_square_corner_velocity = 0 variable_pressure_advance = 0.0 variable_fan0_value = 0.00 variable_fan1_value = 0.00 variable_fan2_value = 0.00 variable_speed_factor = 0 variable_max_accel = 2500 variable_max_accel_to_decel = 2500 gcode = {% set printer_state = printer.print_stats.state %} {% if printer['gcode_macro Qmode'].flag|int == 0 %} {% if printer_state == "printing" or printer_state == "paused" %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel VALUE={printer.toolhead.max_accel} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel_to_decel VALUE={printer.toolhead.max_accel_to_decel} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=velocity VALUE={printer.toolhead.max_velocity} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=square_corner_velocity VALUE={printer.toolhead.square_corner_velocity} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=pressure_advance VALUE={printer.extruder.pressure_advance} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=speed_factor VALUE={printer.gcode_move.speed_factor} SET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=0 SET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=0 SET_TMC_CURRENT STEPPER=stepper_x CURRENT=1.0 SET_TMC_CURRENT STEPPER=stepper_y CURRENT=1.0 G4 P1000 SET_VELOCITY_LIMIT ACCEL=2500 SET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500 SET_VELOCITY_LIMIT VELOCITY=150 SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5 SET_PRESSURE_ADVANCE ADVANCE=0.05 M220 S50 {% set tmp = printer['output_pin fan0'].value * 255 %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={tmp} {% if tmp - printer['gcode_macro PRINTER_PARAM'].fan0_min > (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} {% set tmp = printer['gcode_macro PRINTER_PARAM'].fan0_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} SET_PIN PIN=fan0 VALUE={tmp} {% endif %} {% set tmp = printer['output_pin fan1'].value * 255 %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer['output_pin fan1'].value * 255} {% if tmp - printer['gcode_macro PRINTER_PARAM'].fan1_min > (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} {% set tmp = printer['gcode_macro PRINTER_PARAM'].fan1_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} SET_PIN PIN=fan1 VALUE={tmp} {% endif %} {% set tmp = printer['output_pin fan2'].value * 255 %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value * 255} {% if tmp - printer['gcode_macro PRINTER_PARAM'].fan2_min > (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} {% set tmp = printer['gcode_macro PRINTER_PARAM'].fan2_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} SET_PIN PIN=fan2 VALUE={tmp} {% endif %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=1 SET_QMODE_FLAG FLAG=1 {% endif %} {% endif %} [gcode_macro Qmode_exit] gcode = {% set printer_state = printer.print_stats.state %} {% if printer['gcode_macro Qmode'].flag|int == 1 %} {% if printer_state == "printing" or printer_state == "paused" %} SET_VELOCITY_LIMIT ACCEL={printer['gcode_macro Qmode'].accel} SET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer['gcode_macro Qmode'].accel_to_decel} SET_VELOCITY_LIMIT VELOCITY={printer['gcode_macro Qmode'].velocity} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={printer['gcode_macro Qmode'].square_corner_velocity} SET_PRESSURE_ADVANCE ADVANCE={printer['gcode_macro Qmode'].pressure_advance} M220 S{printer['gcode_macro Qmode'].speed_factor * 100} {% set X_RUN_CUR = printer.configfile.settings['tmc2209 stepper_x'].run_current %} {% set Y_RUN_CUR = printer.configfile.settings['tmc2209 stepper_y'].run_current %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={X_RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={Y_RUN_CUR} SET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=1 SET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=1 G4 P1000 {% if printer['output_pin fan0'].value != 0 %} {action_respond_info("fan0_value = %s" % printer['gcode_macro Qmode'].fan0_value)} SET_PIN PIN=fan0 VALUE={printer['gcode_macro Qmode'].fan0_value} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE=0 {% endif %} {% if printer['output_pin fan1'].value != 0 %} {action_respond_info("fan1_value = %s" % printer['gcode_macro Qmode'].fan1_value)} SET_PIN PIN=fan1 VALUE={printer['gcode_macro Qmode'].fan1_value} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE=0 {% endif %} {% if printer['output_pin fan2'].value != 0 %} {action_respond_info("fan2_value = %s" % printer['gcode_macro Qmode'].fan2_value)} SET_PIN PIN=fan2 VALUE={printer['gcode_macro Qmode'].fan2_value} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE=0 {% endif %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=0 SET_QMODE_FLAG FLAG=0 {% endif %} {% endif %} [gcode_macro M204] rename_existing = M204.1 gcode = {% set get_params = "" %} {% set qmode_max_accel = printer['gcode_macro Qmode'].max_accel|string %} {% if 'S' in params|upper %} {% if printer['gcode_macro Qmode'].flag|int == 1 and params.S|float > qmode_max_accel|float %} {% set get_params = (get_params + ' ' + 'S' + qmode_max_accel) %} {% else %} {% set get_params = (get_params + ' ' + 'S' + params.S) %} {% endif %} {% endif %} {% if 'P' in params|upper %} {% if printer['gcode_macro Qmode'].flag|int == 1 and params.P|float > qmode_max_accel|float %} {% set get_params = (get_params + ' ' + 'P' + qmode_max_accel) %} {% else %} {% set get_params = (get_params + ' ' + 'P' + params.P) %} {% endif %} {% endif %} {% if 'T' in params|upper %} {% if printer['gcode_macro Qmode'].flag|int == 1 and params.T|float > qmode_max_accel|float %} {% set get_params = (get_params + ' ' + 'T' + qmode_max_accel) %} {% else %} {% set get_params = (get_params + ' ' + 'T' + params.T) %} {% endif %} {% endif %} M204.1 {get_params} [gcode_macro M205] gcode = {% if 'X' in params %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.X} {% elif 'Y' in params %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.Y} {% endif %} [gcode_macro M107] gcode = {% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %} {% if params.P is defined %} {% if params.P|int < fans %} SET_PIN PIN=fan{params.P|int} VALUE=0 {% else %} SET_PIN PIN=fan0 VALUE=0 {% endif %} {% else %} SET_PIN PIN=fan0 VALUE=0 SET_PIN PIN=fan2 VALUE=0 {% endif %} [gcode_macro M900] gcode = {% if 'K' in params %} {% if 'E' in params %} SET_PRESSURE_ADVANCE EXTRUDER={params.E} ADVANCE={params.K} {% else %} SET_PRESSURE_ADVANCE ADVANCE={params.K} {% endif %} {% endif %} [delayed_gcode wait_temp] gcode = {% set cur_temp = printer.extruder.temperature %} {% if cur_temp|int < 40 %} WAIT_TEMP_END {% else %} UPDATE_DELAYED_GCODE ID=wait_temp DURATION=5 {% endif %} [gcode_macro WAIT_TEMP_START] gcode = {action_respond_info("wait temp start\n")} UPDATE_DELAYED_GCODE ID=wait_temp DURATION=1 M106 P0 S255 [gcode_macro WAIT_TEMP_END] gcode = {action_respond_info("wait temp end\n")} UPDATE_DELAYED_GCODE ID=wait_temp DURATION=0 M106 P0 S0 [gcode_macro PRINT_CALIBRATION] gcode = CX_PRINT_LEVELING_CALIBRATION [gcode_macro FIRST_FLOOR_PAUSE_POSITION] gcode = {% set extruder_temp = printer.custom_macro.g28_ext_temp %} M104 S{extruder_temp} {% set y_park = printer.toolhead.axis_maximum.y/2 %} {% set x_park = printer['gcode_macro PRINTER_PARAM'].max_x_position|float + 1 %} G90 G1 Z2 F600 G1 X{x_park} Y{y_park} F6000 G1 Z0.2 F600 [gcode_macro ACCURATE_G28] gcode = ACCURATE_HOME_Z [gcode_macro PRINT_PREPARED] gcode = SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=1 {action_respond_info("print prepared")} [gcode_macro PRINT_PREPARE_CLEAR] gcode = SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=0 [gcode_macro END_PRINT_POINT_WITHOUT_LIFTING] gcode = {% if "xyz" in printer.toolhead.homed_axes %} {% set E = printer["gcode_macro PAUSE"].extrude|float %} G91 {% if printer.extruder.can_extrude|lower == 'true' %} G1 E-1.0 F180 G1 E-{E} F4000 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} G1 Z2.0 F600 G90 {% 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} F30000 {% else %} {action_respond_info("end print xyz_axes is NULL\n")} {% endif %} [gcode_macro END_PRINT_POINT] gcode = {% if "xyz" in printer.toolhead.homed_axes %} {% set E = printer["gcode_macro PAUSE"].extrude|float %} {% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %} {% set act_z = printer.toolhead.position.z|float %} {% set z_safe = 0.0 %} {% if act_z < (max_z / 2) %} {% set z_safe = (max_z / 2) - act_z %} {% elif act_z < max_z %} {% set z_safe = 2.0 %} {% endif %} G91 {% if printer.extruder.can_extrude|lower == 'true' %} G1 E-1.0 F180 G1 E-{E} F4000 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} G1 Z2.0 F600 G90 {% 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} F30000 {% if z_safe > 2.0 %} G91 {% set z_safe = z_safe - 2.0 %} G1 Z{z_safe} F600 G90 {% endif %} {% else %} {action_respond_info("end print xyz_axes is NULL\n")} {% endif %} [gcode_macro END_PRINT] gcode = Qmode_exit EXCLUDE_OBJECT_RESET PRINT_PREPARE_CLEAR M220 S100 SET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=2500 TURN_OFF_HEATERS M107 P1 M107 P2 END_PRINT_POINT WAIT_TEMP_START M84 [gcode_macro FIRST_FLOOR_PAUSE] description = Pause the first floor print variable_extrude = 2.0 gcode = {% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float %} {% set y_park = printer.toolhead.axis_maximum.y/2 %} {% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %} {% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %} {% set act_z = printer.toolhead.position.z|float %} {% set z_safe = 0.0 %} {% if act_z < (max_z - 2.0) %} {% set z_safe = 2.0 %} {% elif act_z < max_z %} {% set z_safe = max_z - act_z %} {% endif %} SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float} PAUSE_BASE G91 {% if "xyz" in printer.toolhead.homed_axes %} {% if printer.extruder.can_extrude|lower == 'true' %} G1 E-1.0 F180 G1 E-{E} F4000 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} G1 Z{z_safe} F600 G90 G1 X{x_park} Y{y_park} F30000 {% else %} {action_respond_info("Printer not homed")} {% endif %} SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer['output_pin fan2'].value} {% set fspeed = printer['gcode_macro PRINTER_PARAM'].fan2_speed %} {action_respond_info("fan2_value = %s \n" % (fspeed))} M106 P2 S0 SET_E_MIN_CURRENT [gcode_macro FIRST_FLOOR_RESUME] description = Resume the first floor print gcode = RESTORE_E_CURRENT {% if printer['gcode_macro PRINTER_PARAM'].fan2_speed > 0 %} {% set s_value = (printer['gcode_macro PRINTER_PARAM'].fan2_speed * 255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) * 255 / (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min)|float %} M106 P2 S{s_value} {% endif %} {% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float + 1.0 %} {% if 'VELOCITY' in params|upper %} {% set get_params = ('VELOCITY=' + params.VELOCITY) %} {%else %} {% set get_params = "" %} {% endif %} {% if printer.extruder.can_extrude|lower == 'true' %} G91 G1 E{E} F2100 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} M400 RESUME_BASE {get_params} [gcode_macro PAUSE] description = Pause the actual running print rename_existing = PAUSE_BASE variable_extrude = 2.0 gcode = {% set E = printer["gcode_macro PAUSE"].extrude|float %} {% set y_park = printer.toolhead.axis_maximum.y/2 %} {% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %} {% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %} {% set act_z = printer.toolhead.position.z|float %} {% set z_safe = 0.0 %} {% if act_z < 48.0 %} {% set z_safe = 50.0 - act_z %} {% elif act_z < (max_z - 2.0) %} {% set z_safe = 2.0 %} {% elif act_z < max_z %} {% set z_safe = max_z - act_z %} {% endif %} {action_respond_info("z_safe = %s"% (z_safe))} SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float} PAUSE_BASE G91 SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE={printer.extruder.target} M104 S140 {% if "xyz" in printer.toolhead.homed_axes %} {% if printer.extruder.can_extrude|lower == 'true' %} G1 E-1.0 F180 G1 E-{E} F4000 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} G1 Z{z_safe} F600 M400 G90 G1 X{x_park} Y{y_park} F30000 {% else %} {action_respond_info("Printer not homed")} {% endif %} SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer['output_pin fan2'].value} {% set fspeed = printer['gcode_macro PRINTER_PARAM'].fan2_speed %} {action_respond_info("fan2_value = %s \n" % (fspeed))} M106 P2 S0 SET_E_MIN_CURRENT [gcode_macro INPUTSHAPER] gcode = SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0 G90 G28 {% set POSITION_X = printer.configfile.settings['stepper_x'].position_max/2 %} {% set POSITION_Y = printer.configfile.settings['stepper_y'].position_max/2 %} G1 X{POSITION_X} Y{POSITION_Y} F6000 G1 Z10 F600 SHAPER_CALIBRATE CXSAVE_CONFIG SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1 [gcode_macro BEDPID] gcode = PID_CALIBRATE HEATER=heater_bed TARGET=100 SAVE_CONFIG [gcode_macro TUNOFFINPUTSHAPER] gcode = SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0 [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE gcode = RESTORE_E_CURRENT {% if printer['gcode_macro PRINTER_PARAM'].hotend_temp|int != 0 %} {% if printer['gcode_macro PRINTER_PARAM'].hotend_temp|int > printer.extruder.temperature %} M109 S{printer['gcode_macro PRINTER_PARAM'].hotend_temp|int} {% else %} M104 S{printer['gcode_macro PRINTER_PARAM'].hotend_temp|int} {% endif %} SET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE=0 {% endif %} {% if printer['gcode_macro PRINTER_PARAM'].fan2_speed > 0 %} {% set s_value = (printer['gcode_macro PRINTER_PARAM'].fan2_speed * 255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) * 255 / (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min)|float %} M106 P2 S{s_value} {% endif %} {% set z_resume_move = printer['gcode_macro PRINTER_PARAM'].z_safe_pause|int %} {% if z_resume_move > 2 %} {% set z_resume_move = z_resume_move - 2 %} G91 G1 Z-{z_resume_move} F600 M400 {% endif %} {action_respond_info("z_resume_move = %s"% (z_resume_move))} {% set E = printer["gcode_macro PAUSE"].extrude|float + 1.0 %} {% if 'VELOCITY' in params|upper %} {% set get_params = ('VELOCITY=' + params.VELOCITY) %} {%else %} {% set get_params = "" %} {% endif %} {% if printer.extruder.can_extrude|lower == 'true' %} G91 G1 E{E} F2100 G90 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} M400 RESUME_BASE {get_params} [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = END_PRINT CANCEL_PRINT_BASE [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 [fan_feedback] fan0_pin = nozzle_mcu:PB4 fan1_pin = PC6 print_delay_time = 5 current_delay_time = 2 [custom_macro] default_bed_temp = 50 default_extruder_temp = 240 g28_ext_temp = 140 [gcode_macro GET_TIMELAPSE_SETUP] description = Print the Timelapse setup gcode = {% set tl = printer['gcode_macro TIMELAPSE_TAKE_FRAME'] %} {% set output_txt = ["Timelapse Setup:"] %} {% set _dummy = output_txt.append("enable: %s" % tl.enable) %} {% set _dummy = output_txt.append("park: %s" % tl.park.enable) %} {% if tl.park.enable %} {% set _dummy = output_txt.append("park position: %s time: %s s" % (tl.park.pos, tl.park.time)) %} {% set _dummy = output_txt.append("park cord x:%s y:%s dz:%s" % (tl.park.coord.x, tl.park.coord.y, tl.park.coord.dz)) %} {% set _dummy = output_txt.append("travel speed: %s mm/s" % tl.speed.travel) %} {% endif %} {% set _dummy = output_txt.append("fw_retract: %s" % tl.extruder.fw_retract) %} {% if not tl.extruder.fw_retract %} {% set _dummy = output_txt.append("retract: %s mm speed: %s mm/s" % (tl.extruder.retract, tl.speed.retract)) %} {% set _dummy = output_txt.append("extrude: %s mm speed: %s mm/s" % (tl.extruder.extrude, tl.speed.extrude)) %} {% endif %} {% set _dummy = output_txt.append("verbose: %s" % tl.verbose) %} {action_respond_info(output_txt|join("\n"))} [gcode_macro _SET_TIMELAPSE_SETUP] description = Set user parameters for timelapse gcode = {% set tl = printer['gcode_macro TIMELAPSE_TAKE_FRAME'] %} {% set min = printer.toolhead.axis_minimum %} {% set max = printer.toolhead.axis_maximum %} {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch'] else False %} {% set park = {'min' : {'x': (min.x / 1.42)|round(3) if round_bed else min.x|round(3), 'y': (min.y / 1.42)|round(3) if round_bed else min.y|round(3)}, 'max' : {'x': (max.x / 1.42)|round(3) if round_bed else max.x|round(3), 'y': (max.y / 1.42)|round(3) if round_bed else max.y|round(3)}, 'center': {'x': (max.x-(max.x-min.x)/2)|round(3), 'y': (max.y-(max.y-min.y)/2)|round(3)}} %} {% if params.ENABLE %} {% if params.ENABLE|lower is in ['true', 'false'] %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=enable VALUE={True if params.ENABLE|lower == 'true' else False} {% else %} {action_raise_error("ENABLE=%s not supported. Allowed values are [True, False]" % params.ENABLE|capitalize)} {% endif %} {% endif %} {% if params.VERBOSE %} {% if params.VERBOSE|lower is in ['true', 'false'] %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=verbose VALUE={True if params.VERBOSE|lower == 'true' else False} {% else %} {action_raise_error("VERBOSE=%s not supported. Allowed values are [True, False]" % params.VERBOSE|capitalize)} {% endif %} {% endif %} {% if params.CUSTOM_POS_X %} {% if params.CUSTOM_POS_X|float >= min.x and params.CUSTOM_POS_X|float <= max.x %} {% set _dummy = tl.park.custom.update({'x':params.CUSTOM_POS_X|float|round(3)}) %} {% else %} {action_raise_error("CUSTOM_POS_X=%s must be within [%s - %s]" % (params.CUSTOM_POS_X, min.x, max.x))} {% endif %} {% endif %} {% if params.CUSTOM_POS_Y %} {% if params.CUSTOM_POS_Y|float >= min.y and params.CUSTOM_POS_Y|float <= max.y %} {% set _dummy = tl.park.custom.update({'y':params.CUSTOM_POS_Y|float|round(3)}) %} {% else %} {action_raise_error("CUSTOM_POS_Y=%s must be within [%s - %s]" % (params.CUSTOM_POS_Y, min.y, max.y))} {% endif %} {% endif %} {% if params.CUSTOM_POS_DZ %} {% if params.CUSTOM_POS_DZ|float >= min.z and params.CUSTOM_POS_DZ|float <= max.z %} {% set _dummy = tl.park.custom.update({'dz':params.CUSTOM_POS_DZ|float|round(3)}) %} {% else %} {action_raise_error("CUSTOM_POS_DZ=%s must be within [%s - %s]" % (params.CUSTOM_POS_DZ, min.z, max.z))} {% endif %} {% endif %} {% if params.PARK_ENABLE %} {% if params.PARK_ENABLE|lower is in ['true', 'false'] %} {% set _dummy = tl.park.update({'enable':True if params.PARK_ENABLE|lower == 'true' else False}) %} {% else %} {action_raise_error("PARK_ENABLE=%s not supported. Allowed values are [True, False]" % params.PARK_ENABLE|capitalize)} {% endif %} {% endif %} {% if params.PARK_POS %} {% if params.PARK_POS|lower is in ['center','front_left','front_right','back_left','back_right','custom','x_only','y_only'] %} {% set dic = {'center' : {'x': park.center.x , 'y': park.center.y , 'dz': 1 }, 'front_left' : {'x': park.min.x , 'y': park.min.y , 'dz': 0 }, 'front_right' : {'x': park.max.x , 'y': park.min.y , 'dz': 0 }, 'back_left' : {'x': park.min.x , 'y': park.max.y , 'dz': 0 }, 'back_right' : {'x': park.max.x , 'y': park.max.y , 'dz': 0 }, 'custom' : {'x': tl.park.custom.x, 'y': tl.park.custom.y, 'dz': tl.park.custom.dz}, 'x_only' : {'x': tl.park.custom.x, 'y': 'none' , 'dz': tl.park.custom.dz}, 'y_only' : {'x': 'none' , 'y': tl.park.custom.y, 'dz': tl.park.custom.dz}} %} {% set _dummy = tl.park.update({'pos':params.PARK_POS|lower}) %} {% set _dummy = tl.park.update({'coord':dic[tl.park.pos]}) %} {% else %} {action_raise_error("PARK_POS=%s not supported. Allowed values are [CENTER, FRONT_LEFT, FRONT_RIGHT, BACK_LEFT, BACK_RIGHT, CUSTOM, X_ONLY, Y_ONLY]" % params.PARK_POS|upper)} {% endif %} {% endif %} {% if params.PARK_TIME %} {% if params.PARK_TIME|float >= 0.0 %} {% set _dummy = tl.park.update({'time':params.PARK_TIME|float|round(3)}) %} {% else %} {action_raise_error("PARK_TIME=%s must be a positive number" % params.PARK_TIME)} {% endif %} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=park VALUE="{tl.park}" {% if params.TRAVEL_SPEED %} {% if params.TRAVEL_SPEED|float > 0.0 %} {% set _dummy = tl.speed.update({'travel':params.TRAVEL_SPEED|float|round(3)}) %} {% else %} {action_raise_error("TRAVEL_SPEED=%s must be larger than 0" % params.TRAVEL_SPEED)} {% endif %} {% endif %} {% if params.RETRACT_SPEED %} {% if params.RETRACT_SPEED|float > 0.0 %} {% set _dummy = tl.speed.update({'retract':params.RETRACT_SPEED|float|round(3)}) %} {% else %} {action_raise_error("RETRACT_SPEED=%s must be larger than 0" % params.RETRACT_SPEED)} {% endif %} {% endif %} {% if params.EXTRUDE_SPEED %} {% if params.EXTRUDE_SPEED|float > 0.0 %} {% set _dummy = tl.speed.update({'extrude':params.EXTRUDE_SPEED|float|round(3)}) %} {% else %} {action_raise_error("EXTRUDE_SPEED=%s must be larger than 0" % params.EXTRUDE_SPEED)} {% endif %} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=speed VALUE="{tl.speed}" {% if params.EXTRUDE_DISTANCE %} {% if params.EXTRUDE_DISTANCE|float >= 0.0 %} {% set _dummy = tl.extruder.update({'extrude':params.EXTRUDE_DISTANCE|float|round(3)}) %} {% else %} {action_raise_error("EXTRUDE_DISTANCE=%s must be specified as positiv number" % params.EXTRUDE_DISTANCE)} {% endif %} {% endif %} {% if params.RETRACT_DISTANCE %} {% if params.RETRACT_DISTANCE|float >= 0.0 %} {% set _dummy = tl.extruder.update({'retract':params.RETRACT_DISTANCE|float|round(3)}) %} {% else %} {action_raise_error("RETRACT_DISTANCE=%s must be specified as positiv number" % params.RETRACT_DISTANCE)} {% endif %} {% endif %} {% if params.FW_RETRACT %} {% if params.FW_RETRACT|lower is in ['true', 'false'] %} {% if 'firmware_retraction' in printer.configfile.settings %} {% set _dummy = tl.extruder.update({'fw_retract': True if params.FW_RETRACT|lower == 'true' else False}) %} {% else %} {% set _dummy = tl.extruder.update({'fw_retract':False}) %} {% if params.FW_RETRACT|capitalize == 'True' %} {action_raise_error("[firmware_retraction] not defined in printer.cfg. Can not enable fw_retract")} {% endif %} {% endif %} {% else %} {action_raise_error("FW_RETRACT=%s not supported. Allowed values are [True, False]" % params.FW_RETRACT|capitalize)} {% endif %} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=extruder VALUE="{tl.extruder}" {% if printer.configfile.settings['gcode_macro pause'] is defined %} {% set _dummy = tl.macro.update({'pause': printer.configfile.settings['gcode_macro pause'].rename_existing}) %} {% endif %} {% if printer.configfile.settings['gcode_macro resume'] is defined %} {% set _dummy = tl.macro.update({'resume': printer.configfile.settings['gcode_macro resume'].rename_existing}) %} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=macro VALUE="{tl.macro}" [gcode_macro TIMELAPSE_TAKE_FRAME] description = Take Timelapse shoot variable_enable = False variable_takingframe = False variable_park = {'enable': False, 'pos' : 'center', 'time' : 0.1, 'custom': {'x': 0, 'y': 0, 'dz': 0}, 'coord' : {'x': 0, 'y': 0, 'dz': 0}} variable_extruder = {'fw_retract': False, 'retract': 1.0, 'extrude': 1.0} variable_speed = {'travel': 100, 'retract': 15, 'extrude': 15} variable_verbose = True variable_check_time = 0.5 variable_restore = {'absolute': {'coordinates': True, 'extrude': True}, 'speed': 1500, 'e':0, 'factor': {'speed': 1.0, 'extrude': 1.0}} variable_macro = {'pause': 'PAUSE', 'resume': 'RESUME'} variable_is_paused = False gcode = {% set hyperlapse = True if params.HYPERLAPSE and params.HYPERLAPSE|lower =='true' else False %} {% if enable %} {% if (hyperlapse and printer['gcode_macro HYPERLAPSE'].run) or (not hyperlapse and not printer['gcode_macro HYPERLAPSE'].run) %} {% if park.enable %} {% set pos = {'x': 'X' + park.coord.x|string if park.pos != 'y_only' else '', 'y': 'Y' + park.coord.y|string if park.pos != 'x_only' else '', 'z': 'Z'+ [printer.gcode_move.gcode_position.z + park.coord.dz, printer.toolhead.axis_maximum.z]|min|string} %} {% set restore = {'absolute': {'coordinates': printer.gcode_move.absolute_coordinates, 'extrude' : printer.gcode_move.absolute_extrude}, 'speed' : printer.gcode_move.speed, 'e' : printer.gcode_move.gcode_position.e, 'factor' : {'speed' : printer.gcode_move.speed_factor, 'extrude': printer.gcode_move.extrude_factor}} %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=restore VALUE="{restore}" {% if not printer[printer.toolhead.extruder].can_extrude %} {% if verbose %}{action_respond_info("Timelapse: Warning, minimum extruder temperature not reached!")}{% endif %} {% else %} {% if extruder.fw_retract %} G10 {% else %} M83 G0 E-{extruder.retract} F{speed.retract * 60} {% endif %} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=True {macro.pause} SET_GCODE_OFFSET X=0 Y=0 G90 {% if "xyz" not in printer.toolhead.homed_axes %} {% if verbose %}{action_respond_info("Timelapse: Warning, axis not homed yet!")}{% endif %} {% else %} G0 {pos.x} {pos.y} {pos.z} F{speed.travel * 60} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=takingframe VALUE=True UPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={check_time} M400 {% endif %} _TIMELAPSE_NEW_FRAME HYPERLAPSE={hyperlapse} {% endif %} {% else %} {% if verbose %}{action_respond_info("Timelapse: disabled, take frame ignored")}{% endif %} {% endif %} [gcode_macro _TIMELAPSE_NEW_FRAME] description = action call for timelapse shoot. must be a seperate macro gcode = {action_call_remote_method("timelapse_newframe", macropark=printer['gcode_macro TIMELAPSE_TAKE_FRAME'].park, hyperlapse=params.HYPERLAPSE)} [delayed_gcode _WAIT_TIMELAPSE_TAKE_FRAME] gcode = {% set tl = printer['gcode_macro TIMELAPSE_TAKE_FRAME'] %} {% set factor = {'speed': printer.gcode_move.speed_factor, 'extrude': printer.gcode_move.extrude_factor} %} {% if tl.takingframe %} UPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={tl.check_time} {% else %} {tl.macro.resume} VELOCITY={tl.speed.travel} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=False {% if not printer[printer.toolhead.extruder].can_extrude %} {action_respond_info("Timelapse: Warning minimum extruder temperature not reached!")} {% else %} {% if tl.extruder.fw_retract %} G11 {% else %} G0 E{tl.extruder.extrude} F{tl.speed.extrude * 60} G0 F{tl.restore.speed} {% if tl.restore.absolute.extrude %} M82 G92 E{tl.restore.e} {% endif %} {% endif %} {% endif %} {% if tl.restore.factor.speed != factor.speed %} M220 S{(factor.speed*100)|round(0)} {% endif %} {% if tl.restore.factor.extrude != factor.extrude %} M221 S{(factor.extrude*100)|round(0)} {% endif %} {% if not tl.restore.absolute.coordinates %} G91 {% endif %} {% endif %} [gcode_macro HYPERLAPSE] description = Start/Stop a hyperlapse recording variable_cycle = 0 variable_run = False gcode = {% set cycle = params.CYCLE|default(30)|int %} {% if params.ACTION and params.ACTION|lower == 'start' %} {action_respond_info("Hyperlapse: frames started (Cycle %d sec)" % cycle)} SET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=True SET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=cycle VALUE={cycle} UPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={cycle} TIMELAPSE_TAKE_FRAME HYPERLAPSE=True {% elif params.ACTION and params.ACTION|lower == 'stop' %} {% if run %}{action_respond_info("Hyperlapse: frames stopped")}{% endif %} SET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=False UPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION=0 {% else %} {action_raise_error("Hyperlapse: No valid input parameter Use: - HYPERLAPSE ACTION=START [CYCLE=time] - HYPERLAPSE ACTION=STOP")} {% endif %} [delayed_gcode _HYPERLAPSE_LOOP] gcode = UPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={printer["gcode_macro HYPERLAPSE"].cycle} TIMELAPSE_TAKE_FRAME HYPERLAPSE=True [gcode_macro TIMELAPSE_RENDER] description = Render Timelapse video and wait for the result variable_render = False variable_run_identifier = 0 gcode = {action_respond_info("Timelapse: Rendering started")} {action_call_remote_method("timelapse_render", byrendermacro="True")} SET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=render VALUE=True {printer.configfile.settings['gcode_macro pause'].rename_existing} UPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5 [delayed_gcode _WAIT_TIMELAPSE_RENDER] gcode = {% set ri = printer['gcode_macro TIMELAPSE_RENDER'].run_identifier % 4 %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=run_identifier VALUE={ri + 1} {% if printer['gcode_macro TIMELAPSE_RENDER'].render %} M117 Rendering {['-','\\','|','/'][ri]} UPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5 {% else %} {action_respond_info("Timelapse: Rendering finished")} M117 {printer.configfile.settings['gcode_macro resume'].rename_existing} {% endif %} [gcode_macro TEST_STREAM_DELAY] description = Helper macro to find stream and park delay gcode = {% set min = printer.toolhead.axis_minimum %} {% set max = printer.toolhead.axis_maximum %} {% set act = printer.toolhead.position %} {% set tl = printer['gcode_macro TIMELAPSE_TAKE_FRAME'] %} {% if act.z > 5.0 %} G0 X{min.x + 5.0} F{tl.speed.travel|int * 60} G0 X{(max.x-min.x)/2} G4 P{tl.park.time|float * 1000} _TIMELAPSE_NEW_FRAME HYPERLAPSE=FALSE G0 X{max.x - 5.0} {% else %} {action_raise_error("Toolhead z %.3f to low. Please place head above z = 5.0" % act.z)} {% endif %} [save_variables] filename = /usr/data/printer_data/config/Helper-Script/variables.cfg [respond] [gcode_macro SET_GCODE_OFFSET] description = Saving Z-Offset rename_existing = _SET_GCODE_OFFSET gcode = {% if printer.save_variables.variables.zoffset %} {% set zoffset = printer.save_variables.variables.zoffset %} {% else %} {% set zoffset = {'z': None} %} {% endif %} {% set ns = namespace(zoffset={'z': zoffset.z}) %} _SET_GCODE_OFFSET {% for p in params %}{'%s=%s '% (p, params[p])}{% endfor %} {%if 'Z' in params %}{% set null = ns.zoffset.update({'z': params.Z}) %}{% endif %} {%if 'Z_ADJUST' in params %} {%if ns.zoffset.z == None %}{% set null = ns.zoffset.update({'z': 0}) %}{% endif %} {% set null = ns.zoffset.update({'z': (ns.zoffset.z | float) + (params.Z_ADJUST | float)}) %} {% endif %} SAVE_VARIABLE VARIABLE=zoffset VALUE="{ns.zoffset}" [delayed_gcode LOAD_GCODE_OFFSETS] initial_duration = 2 gcode = {% if printer.save_variables.variables.zoffset %} {% set zoffset = printer.save_variables.variables.zoffset %} _SET_GCODE_OFFSET {% for axis, offset in zoffset.items() if zoffset[axis] %}{ "%s=%s " % (axis, offset) }{% endfor %} RESPOND TYPE=command MSG="Loaded Z-Offset from variables.cfg: {zoffset.z}mm" {% endif %} [calibrate_shaper_config] [gcode_shell_command resonance_graph] command = /usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/calibrate_shaper.py timeout = 600.0 verbose = False [gcode_shell_command belts_graph] command = /usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/graph_belts.py timeout = 600.0 verbose = False [gcode_shell_command delete_graph] command = sh /usr/data/helper-script/files/improved-shapers/delete_graph.sh timeout = 600.0 verbose = False [gcode_shell_command delete_csv] command = sh /usr/data/helper-script/files/improved-shapers/delete_csv.sh timeout = 600.0 verbose = False [gcode_macro INPUT_SHAPER_CALIBRATION] description = Measure X and Y Axis Resonances and Save values gcode = {% if printer["configfile"].config["temperature_fan mcu_fan"] %} SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30 {% endif %} {% if printer.toolhead.homed_axes != "xyz" %} RESPOND TYPE=command MSG="Homing..." G28 {% endif %} RESPOND TYPE=command MSG="Measuring X and Y Resonances..." SHAPER_CALIBRATE M400 {% if printer["configfile"].config["temperature_fan mcu_fan"] %} SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50 {% endif %} RUN_SHELL_COMMAND CMD=delete_csv RESPOND TYPE=command MSG="Input Shaper Calibration complete!" SAVE_CONFIG [gcode_macro TEST_RESONANCES_GRAPHS] description = Test X and Y Axis Resonances and Generate Graphs gcode = RUN_SHELL_COMMAND CMD=delete_graph {% set x_png = params.X_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_x.png") %} {% set y_png = params.Y_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_y.png") %} {% if printer["configfile"].config["temperature_fan mcu_fan"] %} SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30 {% endif %} {% if printer.toolhead.homed_axes != "xyz" %} RESPOND TYPE=command MSG="Homing..." G28 {% endif %} RESPOND TYPE=command MSG="Testing X Resonances..." TEST_RESONANCES AXIS=X NAME=x M400 RESPOND TYPE=command MSG="Generating X Graph... This may take some time." RUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_x_x.csv -o {x_png}" RESPOND TYPE=command MSG="X Graph (resonances_x.png) is now available in /Helper-Script/improved-shapers folder." RESPOND TYPE=command MSG="Testing Y Resonances..." TEST_RESONANCES AXIS=Y NAME=y M400 RESPOND TYPE=command MSG="Generating Y Graph... This may take some time." RUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_y_y.csv -o {y_png}" RESPOND TYPE=command MSG="Y Graph (resonances_y.png) is now available in /Helper-Script/improved-shapers folder." {% if printer["configfile"].config["temperature_fan mcu_fan"] %} SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50 {% endif %} RUN_SHELL_COMMAND CMD=delete_csv RESPOND TYPE=command MSG="Resonances Test complete!" [gcode_macro BELTS_SHAPER_CALIBRATION] description = Perform a custom half-axis test to analyze and compare the frequency profiles of individual belts on CoreXY printers gcode = RUN_SHELL_COMMAND CMD=delete_graph {% set min_freq = params.FREQ_START|default(5)|float %} {% set max_freq = params.FREQ_END|default(133.33)|float %} {% set hz_per_sec = params.HZ_PER_SEC|default(1)|float %} {% set png_width = params.PNG_WIDTH|default(8)|float %} {% set png_height = params.PNG_HEIGHT|default(4.8)|float %} {% set png_out_path = params.PNG_OUT_PATH|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/belts_calibration.png") %} {% if printer["configfile"].config["temperature_fan mcu_fan"] %} SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30 {% endif %} {% if printer.toolhead.homed_axes != "xyz" %} RESPOND TYPE=command MSG="Homing..." G28 {% endif %} TEST_RESONANCES AXIS=1,1 OUTPUT=raw_data NAME=b FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec} M400 TEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data NAME=a FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec} M400 RESPOND TYPE=command MSG="Generating Belts Frequency Profiles Graph... This may take some time." RUN_SHELL_COMMAND CMD=belts_graph PARAMS="-w {png_width} -l {png_height} -n -o {png_out_path} -k /usr/share/klipper /tmp/raw_data_axis=1.000,-1.000_a.csv /tmp/raw_data_axis=1.000,1.000_b.csv" RESPOND TYPE=command MSG="Graph (belts_calibration.png) is now available in /Helper-Script/improved-shapers folder." {% if printer["configfile"].config["temperature_fan mcu_fan"] %} SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50 {% endif %} RUN_SHELL_COMMAND CMD=delete_csv RESPOND TYPE=command MSG="Belts Shaper Calibration complete!" [gcode_macro EXCITATE_AXIS_AT_FREQ] description = Maintain a specified excitation frequency for a period of time to diagnose and locate a vibration source gcode = {% set frequency = params.FREQUENCY|default(25)|int %} {% set time = params.TIME|default(10)|int %} {% set axis = params.AXIS|default("x")|string|lower %} {% if axis not in ["x", "y", "a", "b"] %} { action_raise_error("AXIS selection is invalid. Should be either x, y, a or b!") } {% endif %} {% if axis == "a" %} {% set axis = "1,-1" %} {% elif axis == "b" %} {% set axis = "1,1" %} {% endif %} {% if printer.toolhead.homed_axes != "xyz" %} RESPOND TYPE=command MSG="Homing..." G28 {% endif %} TEST_RESONANCES OUTPUT=raw_data AXIS={axis} FREQ_START={frequency-1} FREQ_END={frequency+1} HZ_PER_SEC={1/(time/3)} M400 [duplicate_pin_override] pins = PC0, PC5, PB2, ADC_TEMPERATURE [temperature_fan chamber_fan] pin = PC0 cycle_time = 0.0100 hardware_pwm = false max_power = 1 shutdown_speed = 0 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC5 min_temp = 0 max_temp = 70 control = watermark max_delta = 2 target_temp = 35.0 max_speed = 1.0 min_speed = 0.0 [temperature_fan mcu_fan] pin = PB2 cycle_time = 0.0100 hardware_pwm = false max_power = 1 shutdown_speed = 0 sensor_type = temperature_mcu min_temp = 0 max_temp = 100 control = watermark max_delta = 2 target_temp = 50.0 max_speed = 1.0 min_speed = 0.0 [output_pin mcu_fan] pin = PB2 pwm = True cycle_time = 0.0100 hardware_pwm = false value = 0.00 scale = 255 shutdown_value = 0.0 [gcode_macro M141] description = Set Chamber Temperature with slicers gcode = {% set s = params.S|float %} SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=chamber_fan TARGET={s} RESPOND TYPE=command MSG="Chamber target temperature: {s}°C" [gcode_macro M191] description = Wait for Chamber Temperature to heat up gcode = {% set s = params.S|float %} {% set chamber_temp = printer["temperature_sensor chamber_temp"].temperature|float %} {% if s > 0 %} M141 S{s} {% endif %} {% if s > chamber_temp and s <= 90 %} M140 S100 RESPOND TYPE=command MSG="Waiting for the bed to heat up the chamber..." TEMPERATURE_WAIT SENSOR="temperature_fan chamber_fan" MINIMUM={s-1} RESPOND TYPE=command MSG="Chamber target temperature reached: {s}°C" M140 S{s} {% endif %} [gcode_macro M106] gcode = {% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %} {% set fan = 0 %} {% set value = 0 %} {% if params.P is defined %} {% set tmp = params.P|int %} {% if tmp < fans %} {% set fan = tmp %} {% endif %} {% endif %} {% if params.S is defined %} {% set tmp = params.S|float %} {% else %} {% set tmp = 255 %} {% endif %} {% if tmp > 0 %} {% if fan == 0 %} {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %} {% if printer['gcode_macro Qmode'].flag | int == 1 %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan0_min + value} {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan0_min) / 2 %} {% else %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %} {% endif %} {% else %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %} {% endif %} {% endif %} {% if fan == 1 %} {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan1_min) / 255 * tmp %} {% if printer['gcode_macro Qmode'].flag | int == 1 %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan1_min + value} {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan1_min) / 2 %} {% else %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %} {% endif %} {% else %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %} {% endif %} {% endif %} {% if fan == 2 %} {% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) / 255 * tmp %} {% if printer['gcode_macro Qmode'].flag | int == 1 %} SET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan2_min + value} {% if value > (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + (255 - printer['gcode_macro PRINTER_PARAM'].fan2_min) / 2 %} {% else %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %} {% endif %} {% else %} {% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %} {% endif %} {% endif %} {% endif %} {% if value >= 255 %} {% set value = 255 %} {% endif %} {% if params.P is defined and params.P|int == 3 %} {% set fan = 1 %} {% endif %} SET_PIN PIN=fan{fan} VALUE={value} [prtouch_v2_fan] max_speed = 0.5 [output_pin KAMP] pin = virtual_pin:KAMP_pin value = 1 [output_pin BED_LEVELING] pin = virtual_pin:BED_LEVELING_pin value = 1 [gcode_macro START_PRINT] variable_prepare = 0 gcode = WAIT_TEMP_END CLEAR_PAUSE {% set g28_extruder_temp = printer.custom_macro.g28_ext_temp %} {% set bed_temp = printer.custom_macro.default_bed_temp %} {% set extruder_temp = printer.custom_macro.default_extruder_temp %} {% if 'BED_TEMP' in params|upper and (params.BED_TEMP|float) %} {% set bed_temp = params.BED_TEMP %} {% endif %} {% if 'EXTRUDER_TEMP' in params|upper and (params.EXTRUDER_TEMP|float) %} {% set extruder_temp = params.EXTRUDER_TEMP %} {% endif %} {% if printer['gcode_macro START_PRINT'].prepare|int == 0 %} PRINT_PREPARE_CLEAR CX_ROUGH_G28 EXTRUDER_TEMP={extruder_temp} BED_TEMP={bed_temp} CX_NOZZLE_CLEAR ACCURATE_G28 {% if printer['output_pin KAMP'].value == 1 %} RESPOND TYPE=command MSG="Starting KAMP Bed Mesh..." BED_MESH_CLEAR BED_MESH_CALIBRATE BED_MESH_PROFILE SAVE=kamp BED_MESH_PROFILE LOAD=kamp {% else %} {% if printer['output_pin BED_LEVELING'].value == 1 %} RESPOND TYPE=command MSG="Starting Full Bed Mesh..." CX_PRINT_LEVELING_CALIBRATION {% endif %} BED_MESH_PROFILE LOAD=default {% endif %} {% else %} PRINT_PREPARE_CLEAR {% endif %} {% if printer['output_pin KAMP'].value == 1 %} _SMART_PARK M109 S{extruder_temp} M190 S{bed_temp} RESPOND TYPE=command MSG="Starting KAMP line purge..." _LINE_PURGE {% else %} RESPOND TYPE=command MSG="Starting classic line purge..." CX_PRINT_DRAW_ONE_LINE {% endif %} SET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel} [gcode_macro BED_MESH_CALIBRATE] rename_existing = _BED_MESH_CALIBRATE gcode = {% set all_points = printer.exclude_object.objects | map(attribute='polygon') | sum(start=[]) %} {% set bed_mesh_min = printer.configfile.settings.bed_mesh.mesh_min %} {% set bed_mesh_max = printer.configfile.settings.bed_mesh.mesh_max %} {% set probe_count = printer.configfile.settings.bed_mesh.probe_count %} {% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %} {% set verbose_enable = kamp_settings.verbose_enable | abs %} {% set mesh_margin = kamp_settings.mesh_margin | float %} {% set fuzz_amount = kamp_settings.fuzz_amount | float %} {% set probe_count = probe_count if probe_count|length > 1 else probe_count * 2 %} {% set max_probe_point_distance_x = ( bed_mesh_max[0] - bed_mesh_min[0] ) / (probe_count[0] - 1) %} {% set max_probe_point_distance_y = ( bed_mesh_max[1] - bed_mesh_min[1] ) / (probe_count[1] - 1) %} {% set x_min = all_points | map(attribute=0) | min | default(bed_mesh_min[0]) %} {% set y_min = all_points | map(attribute=1) | min | default(bed_mesh_min[1]) %} {% set x_max = all_points | map(attribute=0) | max | default(bed_mesh_max[0]) %} {% set y_max = all_points | map(attribute=1) | max | default(bed_mesh_max[1]) %} {% set fuzz_range = range((0) | int, (fuzz_amount * 100) | int + 1) %} {% set adapted_x_min = x_min - mesh_margin - (fuzz_range | random / 100.0) %} {% set adapted_y_min = y_min - mesh_margin - (fuzz_range | random / 100.0) %} {% set adapted_x_max = x_max + mesh_margin + (fuzz_range | random / 100.0) %} {% set adapted_y_max = y_max + mesh_margin + (fuzz_range | random / 100.0) %} {% set adapted_x_min = [adapted_x_min , bed_mesh_min[0]] | max %} {% set adapted_y_min = [adapted_y_min , bed_mesh_min[1]] | max %} {% set adapted_x_max = [adapted_x_max , bed_mesh_max[0]] | min %} {% set adapted_y_max = [adapted_y_max , bed_mesh_max[1]] | min %} {% set points_x = (((adapted_x_max - adapted_x_min) / max_probe_point_distance_x) | round(method='ceil') | int) + 1 %} {% set points_y = (((adapted_y_max - adapted_y_min) / max_probe_point_distance_y) | round(method='ceil') | int) + 1 %} {% if (points_x > points_y) %} {% set points_y = points_x %} {% endif %} {% if (points_x < points_y) %} {% set points_x = points_y %} {% endif %} {% if (([points_x, points_y]|max) > 6) %} {% set algorithm = "bicubic" %} {% set min_points = 4 %} {% else %} {% set algorithm = "lagrange" %} {% set min_points = 3 %} {% endif %} {% set points_x = [points_x , min_points]|max %} {% set points_y = [points_y , min_points]|max %} {% set points_x = [points_x , probe_count[0]]|min %} {% set points_y = [points_y , probe_count[1]]|min %} {% if verbose_enable == True %} {% if printer.exclude_object.objects != [] %} RESPOND TYPE=command MSG="Algorithm: {algorithm}" RESPOND TYPE=command MSG="Default probe count: {probe_count[0]},{probe_count[1]}" RESPOND TYPE=command MSG="Adapted probe count: {points_x},{points_y}" RESPOND TYPE=command MSG="Default mesh bounds: {bed_mesh_min[0]},{bed_mesh_min[1]}, {bed_mesh_max[0]},{bed_mesh_max[1]}" {% if mesh_margin > 0 %} RESPOND TYPE=command MSG="Mesh margin is {mesh_margin}, mesh bounds extended by {mesh_margin}mm." {% else %} RESPOND TYPE=command MSG="Mesh margin is 0, margin not increased." {% endif %} {% if fuzz_amount > 0 %} RESPOND TYPE=command MSG="Mesh point fuzzing enabled, points fuzzed up to {fuzz_amount}mm" {% else %} RESPOND TYPE=command MSG="Fuzz amount is 0, mesh points not fuzzed." {% endif %} RESPOND TYPE=command MSG="Adapted mesh bounds: {adapted_x_min},{adapted_y_min}, {adapted_x_max},{adapted_y_max}" RESPOND TYPE=command MSG="KAMP adjustments successful. Happy KAMPing!" {% else %} RESPOND TYPE=command MSG="No object detected! Make sure you have enabled Exclude Objets setting in your slicer. Using Full Bed Mesh." G4 P5000 {% endif %} {% endif %} _BED_MESH_CALIBRATE mesh_min={adapted_x_min},{adapted_y_min} mesh_max={adapted_x_max},{adapted_y_max} ALGORITHM={algorithm} PROBE_COUNT={points_x},{points_y} [gcode_macro _LINE_PURGE] description = A purge macro that adapts to be near your actual printed objects gcode = {% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %} {% set cross_section = printer.configfile.settings.extruder.max_extrude_cross_section | float %} {% if printer.firmware_retraction is defined %} {% set RETRACT = G10 | string %} {% set UNRETRACT = G11 | string %} {% else %} {% set RETRACT = 'G1 E-0.5 F2400' | string %} {% set UNRETRACT = 'G1 E0.5 F2400' | string %} {% endif %} {% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %} {% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %} {% set verbose_enable = printer["gcode_macro _KAMP_Settings"].verbose_enable | abs %} {% set purge_height = printer["gcode_macro _KAMP_Settings"].purge_height | float %} {% set tip_distance = printer["gcode_macro _KAMP_Settings"].tip_distance | float %} {% set purge_margin = printer["gcode_macro _KAMP_Settings"].purge_margin | float %} {% set purge_amount = printer["gcode_macro _KAMP_Settings"].purge_amount | float %} {% set flow_rate = printer["gcode_macro _KAMP_Settings"].flow_rate | float %} {% set rapid_move = 10 %} {% set all_points = printer.exclude_object.objects | map(attribute='polygon') | sum(start=[]) %} {% set purge_x_min = (all_points | map(attribute=0) | min | default(0)) %} {% set purge_x_max = (all_points | map(attribute=0) | max | default(0)) %} {% set purge_y_min = (all_points | map(attribute=1) | min | default(0)) %} {% set purge_y_max = (all_points | map(attribute=1) | max | default(0)) %} {% set detect_object = purge_x_min + purge_x_max + purge_y_min + purge_y_max %} {% set purge_x_center = ([((purge_x_max + purge_x_min) / 2) - (purge_amount / 2), 0] | max) %} {% set purge_y_center = ([((purge_y_max + purge_y_min) / 2) - (purge_amount / 2), 0] | max) %} {% if (purge_x_center + purge_amount + rapid_move) > bed_x_max %} {% set purge_x_center = (bed_x_max - (purge_amount + rapid_move)) %} {% endif %} {% if (purge_y_center + purge_amount + rapid_move) > bed_y_max %} {% set purge_y_center = (bed_y_max - (purge_amount + rapid_move)) %} {% endif %} {% set purge_x_origin_low = (purge_x_min - purge_margin) %} {% set purge_x_origin_high = (purge_x_max + purge_margin) %} {% set purge_y_origin_low = (purge_y_min - purge_margin) %} {% set purge_y_origin_high = (purge_y_max + purge_margin) %} {% set purge_move_speed = (flow_rate / 5.0) * 60 | float %} {% if cross_section < 5 %} RESPOND TYPE=command MSG="[Extruder] max_extrude_cross_section is insufficient for line purge, please set it to 5 or greater. Purge skipped." {% else %} {% if verbose_enable == True %} RESPOND TYPE=command MSG="Moving filament tip {tip_distance}mm" {% endif %} {% if detect_object == 0 %} RESPOND TYPE=command MSG="No object detected! Using classic purge line." {% elif purge_y_origin_low > 0 %} RESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_low} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s." {% elif purge_x_origin_low > 0 %} RESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_low}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s." {% elif purge_y_origin_high < bed_y_max %} RESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_high} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s." {% elif purge_x_origin_high < bed_x_max %} RESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_high}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s." {% else %} RESPOND TYPE=command MSG="No space for purge line! Using classic purge line." {% endif %} SAVE_GCODE_STATE NAME=Prepurge_State {% if detect_object == 0 %} G92 E0 G1 Z0.1 F600 M83 {RETRACT} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5 M204 S12000 SET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000 M220 S100 M221 S100 G1 Z2.0 F1200 G1 X0.1 Y20 Z0.3 F6000.0 G1 X0.1 Y180.0 Z0.3 F3000.0 E10.0 G1 X0.4 Y180.0 Z0.3 F3000.0 G1 X0.4 Y20.0 Z0.3 F3000.0 E10.0 G1 Y10.0 F3000.0 G1 Z2.0 F3000.0 G92 E0 M82 G1 F12000 G21 {% elif purge_y_origin_low > 0 %} G92 E0 G0 F{travel_speed} G90 G0 X{purge_x_center} Y{purge_y_origin_low} G0 Z{purge_height} M83 G1 E{tip_distance} F{purge_move_speed} G1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed} {RETRACT} G0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed} G92 E0 M82 G0 Z{purge_height * 2} F{travel_speed} {% elif purge_x_origin_low > 0 %} G92 E0 G0 F{travel_speed} G90 G0 X{purge_x_origin_low} Y{purge_y_center} G0 Z{purge_height} M83 G1 E{tip_distance} F{purge_move_speed} G1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed} {RETRACT} G0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed} G92 E0 M82 G0 Z{purge_height * 2} F{travel_speed} {% elif purge_y_origin_high < bed_y_max %} G92 E0 G0 F{travel_speed} G90 G0 X{purge_x_center} Y{purge_y_origin_high} G0 Z{purge_height} M83 G1 E{tip_distance} F{purge_move_speed} G1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed} {RETRACT} G0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed} G92 E0 M82 G0 Z{purge_height * 2} F{travel_speed} {% elif purge_x_origin_high < bed_x_max %} G92 E0 G0 F{travel_speed} G90 G0 X{purge_x_origin_high} Y{purge_y_center} G0 Z{purge_height} M83 G1 E{tip_distance} F{purge_move_speed} G1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed} {RETRACT} G0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed} G92 E0 M82 G0 Z{purge_height * 2} F{travel_speed} {% else %} G92 E0 G1 Z0.1 F600 M83 {RETRACT} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5 M204 S12000 SET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000 M220 S100 M221 S100 G1 Z2.0 F1200 G1 X0.1 Y20 Z0.3 F6000.0 G1 X0.1 Y180.0 Z0.3 F3000.0 E10.0 G1 X0.4 Y180.0 Z0.3 F3000.0 G1 X0.4 Y20.0 Z0.3 F3000.0 E10.0 G1 Y10.0 F3000.0 G1 Z2.0 F3000.0 G92 E0 M82 G1 F12000 G21 {% endif %} RESTORE_GCODE_STATE NAME=Prepurge_State {% endif %} [gcode_macro _SMART_PARK] description = Parks your printhead near the print area for pre-print hotend heating. gcode = {% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %} {% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %} {% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %} {% set z_height = kamp_settings.smart_park_height | float %} {% set purge_margin = kamp_settings.purge_margin | float %} {% set purge_amount = kamp_settings.purge_amount | float %} {% set verbose_enable = kamp_settings.verbose_enable | abs %} {% set center_x = bed_x_max / 2 %} {% set center_y = bed_y_max / 2 %} {% set axis_minimum_x = printer.toolhead.axis_minimum.x | float %} {% set axis_minimum_y = printer.toolhead.axis_minimum.y | float %} {% set all_points = printer.exclude_object.objects | map(attribute='polygon') | sum(start=[]) %} {% set x_min = (all_points | map(attribute=0) | min | default(0)) %} {% set x_max = (all_points | map(attribute=0) | max | default(0)) %} {% set y_min = (all_points | map(attribute=1) | min | default(0)) %} {% set y_max = (all_points | map(attribute=1) | max | default(0)) %} {% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %} {% set rapid_move = 10 %} {% set park_x_center = ([((x_max + x_min) / 2) - (purge_amount / 2), 0] | max) %} {% set park_y_center = ([((y_max + y_min) / 2) - (purge_amount / 2), 0] | max) %} {% if (park_x_center + purge_amount + rapid_move) > bed_x_max %} {% set park_x_center = (bed_x_max - (purge_amount + rapid_move)) %} {% endif %} {% if (park_y_center + purge_amount + rapid_move) > bed_y_max %} {% set park_y_center = (bed_y_max - (purge_amount + rapid_move)) %} {% endif %} {% set park_x_origin_low = (x_min - purge_margin) %} {% set park_x_origin_high = (x_max + purge_margin) %} {% set park_y_origin_low = (y_min - purge_margin) %} {% set park_y_origin_high = (y_max + purge_margin) %} {% set detect_object = (x_min + x_max + y_min + y_max) %} {% if detect_object == 0 %} {% set x_min = 10 %} {% set y_min = 10 %} {% set z_height = 2 %} {% elif park_y_origin_low > 0 %} {% set x_min = park_x_center %} {% set y_min = park_y_origin_low %} {% elif park_x_origin_low > 0 %} {% set x_min = park_x_origin_low %} {% set y_min = park_y_center %} {% elif park_y_origin_high < bed_y_max %} {% set x_min = park_x_center %} {% set y_min = park_y_origin_high %} {% elif park_x_origin_high < bed_x_max %} {% set x_min = park_x_origin_high %} {% set y_min = park_y_center %} {% else %} {% set x_min = 10 %} {% set y_min = 10 %} {% set z_height = 2 %} {% endif %} {% if verbose_enable == True %} RESPOND TYPE=command MSG="Smart Park location: {x_min},{y_min}" {% endif %} SAVE_GCODE_STATE NAME=Presmartpark_State G90 {% if printer.toolhead.position.z < z_height %} G0 Z{z_height} {% endif %} G0 X{x_min} Y{y_min} F{travel_speed} G0 Z{z_height} RESTORE_GCODE_STATE NAME=Presmartpark_State [gcode_macro DEFINE_OBJECT] gcode = EXCLUDE_OBJECT_DEFINE {rawparams} [gcode_macro START_CURRENT_OBJECT] gcode = EXCLUDE_OBJECT_START NAME={params.NAME} [gcode_macro END_CURRENT_OBJECT] gcode = EXCLUDE_OBJECT_END {% if params.NAME %}NAME={params.NAME}{% endif %} [gcode_macro LIST_OBJECTS] gcode = EXCLUDE_OBJECT_DEFINE [gcode_macro LIST_EXCLUDED_OBJECTS] gcode = EXCLUDE_OBJECT [gcode_macro REMOVE_ALL_EXCLUDED] gcode = EXCLUDE_OBJECT RESET=1 [gcode_macro _KAMP_Settings] description = This macro contains all adjustable settings for KAMP variable_verbose_enable = True variable_mesh_margin = 0 variable_fuzz_amount = 0 variable_purge_height = 0.8 variable_tip_distance = 0 variable_purge_margin = 10 variable_purge_amount = 50 variable_flow_rate = 12 variable_smart_park_height = 10 gcode = RESPOND TYPE=command MSG="Running the KAMP_Settings macro does nothing, it's only used for storing KAMP settings." [mcu] serial = /dev/ttyS7 baud = 230400 restart_method = command [mcu nozzle_mcu] serial = /dev/ttyS1 baud = 230400 restart_method = command [mcu leveling_mcu] serial = /dev/ttyS9 baud = 230400 restart_method = command [verify_heater extruder] [verify_heater heater_bed] check_gain_time = 120 heating_gain = 1.0 hysteresis = 10 [mcu rpi] serial = /tmp/klipper_host_mcu [bl24c16f] i2c_mcu = rpi i2c_bus = i2c.2 i2c_speed = 400000 [idle_timeout] timeout = 99999999 [virtual_sdcard] path = /usr/data/printer_data/gcodes [gcode_arcs] resolution = 1.0 [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 100 [temperature_sensor chamber_temp] sensor_type = EPCOS 100K B57560G104F sensor_pin = PC5 min_temp = 0 max_temp = 125 [stepper_x] step_pin = PC2 dir_pin = !PB9 enable_pin = !PC3 microsteps = 32 rotation_distance = 72 endstop_pin = tmc2209_stepper_x:virtual_endstop position_endstop = 306.5 position_min = -2 position_max = 306.5 homing_speed = 36 homing_retract_dist = 0 [tmc2209 stepper_x] uart_pin = PA9 interpolate = True run_current = 1.5 hold_current = 1.0 sense_resistor = 0.100 stealthchop_threshold = 0 uart_address = 3 diag_pin = ^PB12 driver_sgthrs = 65 [stepper_y] step_pin = PB8 dir_pin = !PB7 enable_pin = !PC3 microsteps = 32 rotation_distance = 72 endstop_pin = tmc2209_stepper_y:virtual_endstop position_endstop = -2 position_min = -2 position_max = 306 homing_speed = 36 homing_retract_dist = 0 [tmc2209 stepper_y] uart_pin = PA10 interpolate = True run_current = 1.5 hold_current = 1.0 sense_resistor = 0.100 stealthchop_threshold = 0 uart_address = 3 diag_pin = ^PB13 driver_sgthrs = 65 [stepper_z] step_pin = PB6 dir_pin = !PB5 enable_pin = !PC3 microsteps = 16 rotation_distance = 8 gear_ratio = 64:20 endstop_pin = tmc2209_stepper_z:virtual_endstop position_endstop = 0 position_max = 305 position_min = -10 homing_speed = 10 second_homing_speed = 1 homing_retract_dist = 2.0 [tmc2209 stepper_z] uart_pin = PA11 uart_address = 3 run_current = 0.8 diag_pin = ^PB14 stealthchop_threshold = 0 sense_resistor = 0.100 driver_sgthrs = 0 [extruder] max_extrude_only_distance = 1000.0 max_extrude_cross_section = 80 step_pin = nozzle_mcu:PB1 dir_pin = nozzle_mcu:PB0 enable_pin = !nozzle_mcu:PB2 microsteps = 16 rotation_distance = 6.9 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = nozzle_mcu:PB7 sensor_type = EPCOS 100K B57560G104F sensor_pin = nozzle_mcu:PA0 pressure_advance = 0.04 pressure_advance_smooth_time = 0.040 control = pid pid_kp = 25.013 pid_ki = 2.566 pid_kd = 60.966 min_temp = 0 max_temp = 320 [tmc2209 extruder] uart_pin = nozzle_mcu:PB11 tx_pin = nozzle_mcu:PB10 uart_address = 3 run_current = 0.55 sense_resistor = 0.150 stealthchop_threshold = 0 [heater_bed] heater_pin = PC8 sensor_type = NTC 100K beta 3950 sensor_pin = PC4 min_temp = 0 max_temp = 125 control = pid pid_kp = 52.075 pid_ki = 1.036 pid_kd = 654.186 [filament_switch_sensor filament_sensor] pause_on_runout = true switch_pin = !PC15 runout_gcode = {% if printer.extruder.can_extrude|lower == 'true' %} G91 G0 E30 F600 G90 {% endif %} [filament_switch_sensor filament_sensor_2] pause_on_runout = true switch_pin = !nozzle_mcu:PA10 [multi_pin heater_fans] pins = nozzle_mcu:PB5,PB2 [heater_fan hotend_fan] pin = multi_pin:heater_fans heater = extruder heater_temp = 40 [static_digital_output my_fan_output_pins] pins = nozzle_mcu: PB6 [output_pin fan0] pin = !nozzle_mcu: PB8 pwm = True cycle_time = 0.0100 hardware_pwm = false value = 0.00 scale = 255 shutdown_value = 0.0 [output_pin fan1] pin = PC0 pwm = True cycle_time = 0.0100 hardware_pwm = false value = 0.00 scale = 255 shutdown_value = 0.0 [output_pin fan2] pin = PB1 pwm = True cycle_time = 0.0100 hardware_pwm = false value = 0.00 scale = 255 shutdown_value = 0.0 [output_pin LED] pin = PB0 pwm = True cycle_time = 0.010 value = 1 [output_pin power] pin = PC9 [adxl345] cs_pin = nozzle_mcu:PA4 spi_speed = 5000000 axes_map = x,-z,y spi_software_sclk_pin = nozzle_mcu:PA5 spi_software_mosi_pin = nozzle_mcu:PA7 spi_software_miso_pin = nozzle_mcu:PA6 [resonance_tester] accel_chip = adxl345 accel_per_hz = 75 probe_points = 150,150,10 [prtouch_v2] pr_version = 2 step_base = 2 z_offset = 0 noz_ex_com = 0.09 tilt_corr_dis = 0.05 tri_min_hold = 6000,10000 tri_max_hold = 13000,60000 pres_cnt = 4 pres0_clk_pins = leveling_mcu:PA7 pres0_sdo_pins = leveling_mcu:PA4 pres1_clk_pins = leveling_mcu:PA6 pres1_sdo_pins = leveling_mcu:PA3 pres2_clk_pins = leveling_mcu:PA2 pres2_sdo_pins = leveling_mcu:PA0 pres3_clk_pins = leveling_mcu:PA5 pres3_sdo_pins = leveling_mcu:PA1 show_msg = False step_swap_pin = PC10 pres_swap_pin = leveling_mcu:PB1 g28_wait_cool_down = true pa_clr_down_mm = -0.15 clr_noz_start_x = 130 clr_noz_start_y = 303 clr_noz_len_x = 40 clr_noz_len_y = 2 speeds = 2.5,1.0 tri_hftr_cut = 2,1 tri_lftr_k1 = 0.50,0.15 tri_min_hold_1 = 6000,10000 tri_min_hold_2 = 6000,10000 tri_min_hold_3 = 6000,10000 tri_min_hold_4 = 6000,10000 tri_min_hold_5 = 6000,10000 tri_min_hold_6 = 6000,10000 tri_min_hold_7 = 6000,10000 tri_min_hold_8 = 6000,10000 tri_min_hold_9 = 6000,10000 tri_min_hold_10 = 6000,10000 tri_min_hold_11 = 6000,10000 tri_min_hold_12 = 6000,10000 tri_min_hold_13 = 6000,10000 tri_min_hold_14 = 6000,10000 tri_min_hold_15 = 6000,10000 tri_min_hold_16 = 6000,10000 tri_min_hold_17 = 6000,10000 tri_min_hold_18 = 6000,10000 tri_min_hold_19 = 6000,10000 tri_min_hold_20 = 6000,10000 tri_min_hold_21 = 6000,10000 tri_min_hold_22 = 6000,10000 tri_min_hold_23 = 6000,10000 tri_min_hold_24 = 6000,10000 tri_min_hold_25 = 6000,10000 tri_min_hold_26 = 6000,10000 tri_min_hold_27 = 6000,10000 tri_min_hold_28 = 6000,10000 tri_min_hold_29 = 6000,10000 tri_min_hold_30 = 6000,10000 tri_min_hold_31 = 6000,10000 tri_min_hold_32 = 6000,10000 tri_min_hold_33 = 6000,10000 tri_min_hold_34 = 6000,10000 tri_min_hold_35 = 6000,10000 tri_min_hold_36 = 6000,10000 tri_max_hold_1 = 13000,60000 tri_max_hold_2 = 13000,60000 tri_max_hold_3 = 13000,60000 tri_max_hold_4 = 13000,60000 tri_max_hold_5 = 13000,60000 tri_max_hold_6 = 13000,60000 tri_max_hold_7 = 13000,60000 tri_max_hold_8 = 13000,60000 tri_max_hold_9 = 13000,60000 tri_max_hold_10 = 13000,60000 tri_max_hold_11 = 13000,60000 tri_max_hold_12 = 13000,60000 tri_max_hold_13 = 13000,60000 tri_max_hold_14 = 13000,60000 tri_max_hold_15 = 13000,60000 tri_max_hold_16 = 13000,60000 tri_max_hold_17 = 13000,60000 tri_max_hold_18 = 13000,60000 tri_max_hold_19 = 13000,60000 tri_max_hold_20 = 13000,60000 tri_max_hold_21 = 13000,60000 tri_max_hold_22 = 13000,60000 tri_max_hold_23 = 13000,60000 tri_max_hold_24 = 13000,60000 tri_max_hold_25 = 13000,60000 tri_max_hold_26 = 13000,60000 tri_max_hold_27 = 13000,60000 tri_max_hold_28 = 13000,60000 tri_max_hold_29 = 13000,60000 tri_max_hold_30 = 13000,60000 tri_max_hold_31 = 13000,60000 tri_max_hold_32 = 13000,60000 tri_max_hold_33 = 13000,60000 tri_max_hold_34 = 13000,60000 tri_max_hold_35 = 13000,60000 tri_max_hold_36 = 13000,60000 [bed_mesh] speed = 150 mesh_min = 5,5 mesh_max = 295,295 probe_count = 6,6 fade_start = 5.0 fade_end = 50.0 [display_status] [printer] kinematics = corexy max_velocity = 800 max_accel = 20000 max_accel_to_decel = 20000 max_z_velocity = 20 square_corner_velocity = 5.0 square_corner_max_velocity = 200.0 max_z_accel = 300 [pause_resume] [exclude_object] [input_shaper] shaper_type_x = 2hump_ei shaper_freq_x = 39.0 shaper_type_y = zv shaper_freq_y = 48.0 ======================= [INFO] 2024-04-13 07:07:27,065 [root] [extruder:__init__:181] Extruder max_extrude_ratio=33.260135 [INFO] 2024-04-13 07:07:27,148 [root] [serialhdl:connect_uart:184] mcu 'mcu': Starting serial connect [INFO] 2024-04-13 07:07:27,152 [root] [reactor:_dispatch_loop:340] _dispatch_loop current nice = -20 [INFO] 2024-04-13 07:07:27,153 [root] [reactor:_dispatch_loop:342] _dispatch_loop new nice = -20 [INFO] 2024-04-13 07:07:27,156 [root] [webhooks:set_client_info:202] webhooks client 1980490464: New connection [INFO] 2024-04-13 07:07:27,158 [root] [webhooks:set_client_info:202] webhooks client 1980491928: New connection [INFO] 2024-04-13 07:07:27,161 [root] [webhooks:set_client_info:202] webhooks client 1980490464: Client info {'program': 'Moonraker', 'version': 'v0.8.0-325-g99b97af'} [INFO] 2024-04-13 07:07:27,310 [root] [serialhdl:_bg_thread:40] mcu 'mcu': current nice = -20 [INFO] 2024-04-13 07:07:27,315 [root] [reactor:_dispatch_loop:340] _dispatch_loop current nice = -20 [INFO] 2024-04-13 07:07:27,317 [root] [reactor:_dispatch_loop:342] _dispatch_loop new nice = -20 [INFO] 2024-04-13 07:07:27,325 [root] [reactor:_dispatch_loop:340] _dispatch_loop current nice = -20 [INFO] 2024-04-13 07:07:27,327 [root] [reactor:_dispatch_loop:342] _dispatch_loop new nice = -20 [WARNING] 2024-04-13 07:07:27,817 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 21, 'next_clock': 2322115712, 'value': 28892, '#name': 'analog_in_state', '#sent_time': 1031.0372435826666, '#receive_time': 1031.0392377913333} [WARNING] 2024-04-13 07:07:28,057 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 15, 'next_clock': 2350915712, 'value': 31509, '#name': 'analog_in_state', '#sent_time': 1031.2550292496667, '#receive_time': 1031.2786509573332} [WARNING] 2024-04-13 07:07:28,076 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 17, 'next_clock': 2353315712, 'value': 14022, '#name': 'analog_in_state', '#sent_time': 1031.2550292496667, '#receive_time': 1031.2985736243334} [WARNING] 2024-04-13 07:07:28,096 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 19, 'next_clock': 2355715712, 'value': 13791, '#name': 'analog_in_state', '#sent_time': 1031.3081704156666, '#receive_time': 1031.3185866243332} [WARNING] 2024-04-13 07:07:28,107 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 20, 'next_clock': 2356915712, 'value': 31505, '#name': 'analog_in_state', '#sent_time': 1031.3081704156666, '#receive_time': 1031.3288041243331} [WARNING] 2024-04-13 07:07:28,118 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 21, 'next_clock': 2358115712, 'value': 28892, '#name': 'analog_in_state', '#sent_time': 1031.3081704156666, '#receive_time': 1031.3401689573332} [INFO] 2024-04-13 07:07:28,252 [root] [mcu:_mcu_identify:828] Loaded MCU 'mcu' 116 commands (1.3.0.40-5-g6977eaff-dirty-20230711_100121-ubuntu / gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34) MCU 'mcu' config: ADC_MAX=4095 CLOCK_FREQ=120000000 INITIAL_PINS=PC7,PB0 MCU=gd32f303xe RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA2,PA3 SERIAL_BAUD=230400 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 build_machine_uid=Jul 11 202310:01:16 [INFO] 2024-04-13 07:07:28,254 [root] [serialhdl:connect_uart:184] mcu 'nozzle_mcu': Starting serial connect [WARNING] 2024-04-13 07:07:28,356 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 15, 'next_clock': 2386915712, 'value': 31507, '#name': 'analog_in_state', '#sent_time': 1031.4823274156665, '#receive_time': 1031.5785901243332} [WARNING] 2024-04-13 07:07:28,377 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 17, 'next_clock': 2389315712, 'value': 14025, '#name': 'analog_in_state', '#sent_time': 1031.4823274156665, '#receive_time': 1031.5986684573334} [WARNING] 2024-04-13 07:07:28,396 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 19, 'next_clock': 2391715712, 'value': 13791, '#name': 'analog_in_state', '#sent_time': 1031.4823274156665, '#receive_time': 1031.6186331243332} [WARNING] 2024-04-13 07:07:28,406 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 20, 'next_clock': 2392915712, 'value': 31508, '#name': 'analog_in_state', '#sent_time': 1031.4823274156665, '#receive_time': 1031.6285834573332} [INFO] 2024-04-13 07:07:28,412 [root] [serialhdl:_bg_thread:40] mcu 'nozzle_mcu': current nice = -20 [WARNING] 2024-04-13 07:07:28,416 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 21, 'next_clock': 2394115712, 'value': 28898, '#name': 'analog_in_state', '#sent_time': 1031.4823274156665, '#receive_time': 1031.6385812913334} [WARNING] 2024-04-13 07:07:28,658 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 15, 'next_clock': 2422915712, 'value': 31507, '#name': 'analog_in_state', '#sent_time': 1031.4823274156665, '#receive_time': 1031.8790542913332} [WARNING] 2024-04-13 07:07:28,676 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 17, 'next_clock': 2425315712, 'value': 14021, '#name': 'analog_in_state', '#sent_time': 1031.4823274156665, '#receive_time': 1031.8985826243334} [WARNING] 2024-04-13 07:07:28,696 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 19, 'next_clock': 2427715712, 'value': 13792, '#name': 'analog_in_state', '#sent_time': 1031.4823274156665, '#receive_time': 1031.9185696243333} [WARNING] 2024-04-13 07:07:28,707 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 20, 'next_clock': 2428915712, 'value': 31507, '#name': 'analog_in_state', '#sent_time': 1031.4823274156665, '#receive_time': 1031.9287242913333} [WARNING] 2024-04-13 07:07:28,717 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 21, 'next_clock': 2430115712, 'value': 28902, '#name': 'analog_in_state', '#sent_time': 1031.4823274156665, '#receive_time': 1031.9385914573334} [WARNING] 2024-04-13 07:07:28,875 [root] [serialhdl:handle_default:311] mcu 'nozzle_mcu': got {'oid': 8, 'next_clock': 2382254100, 'value': 31191, '#name': 'analog_in_state', '#sent_time': 1032.053458833, '#receive_time': 1032.093479666} [WARNING] 2024-04-13 07:07:28,956 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 15, 'next_clock': 2458915712, 'value': 31506, '#name': 'analog_in_state', '#sent_time': 1031.4823274156665, '#receive_time': 1032.1786087913333} [WARNING] 2024-04-13 07:07:28,977 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 17, 'next_clock': 2461315712, 'value': 14022, '#name': 'analog_in_state', '#sent_time': 1031.4823274156665, '#receive_time': 1032.1986927913333} [WARNING] 2024-04-13 07:07:28,996 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 19, 'next_clock': 2463715712, 'value': 13790, '#name': 'analog_in_state', '#sent_time': 1031.4823274156665, '#receive_time': 1032.2186252913332} [WARNING] 2024-04-13 07:07:29,006 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 20, 'next_clock': 2464915712, 'value': 31507, '#name': 'analog_in_state', '#sent_time': 1031.4823274156665, '#receive_time': 1032.2286031243332} [WARNING] 2024-04-13 07:07:29,017 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 21, 'next_clock': 2466115712, 'value': 28901, '#name': 'analog_in_state', '#sent_time': 1031.4823274156665, '#receive_time': 1032.2390331243332} [WARNING] 2024-04-13 07:07:29,170 [root] [serialhdl:handle_default:311] mcu 'nozzle_mcu': got {'oid': 8, 'next_clock': 2418254100, 'value': 31190, '#name': 'analog_in_state', '#sent_time': 1032.3796535826666, '#receive_time': 1032.3927996243333} [WARNING] 2024-04-13 07:07:29,258 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 15, 'next_clock': 2494915712, 'value': 31506, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1032.4790852913331} [WARNING] 2024-04-13 07:07:29,277 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 17, 'next_clock': 2497315712, 'value': 14023, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1032.4986421243332} [WARNING] 2024-04-13 07:07:29,296 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 19, 'next_clock': 2499715712, 'value': 13788, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1032.5186404573333} [WARNING] 2024-04-13 07:07:29,308 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 20, 'next_clock': 2500915712, 'value': 31507, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1032.5298947913332} [WARNING] 2024-04-13 07:07:29,318 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 21, 'next_clock': 2502115712, 'value': 28904, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1032.5395176243333} [INFO] 2024-04-13 07:07:29,327 [root] [mcu:_mcu_identify:828] Loaded MCU 'nozzle_mcu' 116 commands (1.3.0.40-5-g6977eaff-dirty-20230711_100254-ubuntu / gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34) MCU 'nozzle_mcu' config: ADC_MAX=4095 CLOCK_FREQ=120000000 INITIAL_PINS=!PB5,!PB6,!PB7 MCU=gd32f303xb RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA2,PA3 SERIAL_BAUD=230400 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 build_machine_uid=Jul 11 202310:02:50 [INFO] 2024-04-13 07:07:29,330 [root] [serialhdl:connect_uart:184] mcu 'leveling_mcu': Starting serial connect [WARNING] 2024-04-13 07:07:29,471 [root] [serialhdl:handle_default:311] mcu 'nozzle_mcu': got {'oid': 8, 'next_clock': 2454254100, 'value': 31194, '#name': 'analog_in_state', '#sent_time': 1032.5590195826667, '#receive_time': 1032.6928364573332} [INFO] 2024-04-13 07:07:29,488 [root] [serialhdl:_bg_thread:40] mcu 'leveling_mcu': current nice = -20 [WARNING] 2024-04-13 07:07:29,556 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 15, 'next_clock': 2530915712, 'value': 31509, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1032.7785936243333} [WARNING] 2024-04-13 07:07:29,577 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 17, 'next_clock': 2533315712, 'value': 14022, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1032.7986376243332} [WARNING] 2024-04-13 07:07:29,597 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 19, 'next_clock': 2535715712, 'value': 13791, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1032.8188812913334} [WARNING] 2024-04-13 07:07:29,607 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 20, 'next_clock': 2536915712, 'value': 31505, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1032.8288594573332} [WARNING] 2024-04-13 07:07:29,616 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 21, 'next_clock': 2538115712, 'value': 28909, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1032.8386009573333} [WARNING] 2024-04-13 07:07:29,770 [root] [serialhdl:handle_default:311] mcu 'nozzle_mcu': got {'oid': 8, 'next_clock': 2490254100, 'value': 31190, '#name': 'analog_in_state', '#sent_time': 1032.5590195826667, '#receive_time': 1032.9928194573333} [WARNING] 2024-04-13 07:07:29,857 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 15, 'next_clock': 2566915712, 'value': 31506, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1033.0787184573333} [WARNING] 2024-04-13 07:07:29,876 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 17, 'next_clock': 2569315712, 'value': 14020, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1033.0986221243334} [WARNING] 2024-04-13 07:07:29,896 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 19, 'next_clock': 2571715712, 'value': 13791, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1033.1186042913332} [WARNING] 2024-04-13 07:07:29,907 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 20, 'next_clock': 2572915712, 'value': 31507, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1033.1286392913332} [WARNING] 2024-04-13 07:07:29,921 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 21, 'next_clock': 2574115712, 'value': 28910, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1033.1387442913333} [WARNING] 2024-04-13 07:07:30,071 [root] [serialhdl:handle_default:311] mcu 'nozzle_mcu': got {'oid': 8, 'next_clock': 2526254100, 'value': 31191, '#name': 'analog_in_state', '#sent_time': 1032.5590195826667, '#receive_time': 1033.2928321243332} [WARNING] 2024-04-13 07:07:30,156 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 15, 'next_clock': 2602915712, 'value': 31508, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1033.3786222913332} [WARNING] 2024-04-13 07:07:30,177 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 17, 'next_clock': 2605315712, 'value': 14024, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1033.3987899573333} [WARNING] 2024-04-13 07:07:30,197 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 19, 'next_clock': 2607715712, 'value': 13790, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1033.4188102913333} [WARNING] 2024-04-13 07:07:30,206 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 20, 'next_clock': 2608915712, 'value': 31503, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1033.4286341243333} [WARNING] 2024-04-13 07:07:30,216 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 21, 'next_clock': 2610115712, 'value': 28912, '#name': 'analog_in_state', '#sent_time': 1032.4678767496666, '#receive_time': 1033.4386392913332} [WARNING] 2024-04-13 07:07:30,371 [root] [serialhdl:handle_default:311] mcu 'nozzle_mcu': got {'oid': 8, 'next_clock': 2562254100, 'value': 31191, '#name': 'analog_in_state', '#sent_time': 1033.5430749156667, '#receive_time': 1033.5928476243332} [INFO] 2024-04-13 07:07:30,410 [root] [mcu:_mcu_identify:828] Loaded MCU 'leveling_mcu' 116 commands (1.3.0.40-5-g6977eaff-dirty-20230711_095416-ubuntu / gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34) MCU 'leveling_mcu' config: ADC_MAX=4095 CLOCK_FREQ=72000000 MCU=gd32e230x8 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA9,PA10 SERIAL_BAUD=230400 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 build_machine_uid=Jul 11 202309:54:12 [INFO] 2024-04-13 07:07:30,411 [root] [serialhdl:connect_pipe:167] mcu 'rpi': Starting connect [INFO] 2024-04-13 07:07:30,414 [root] [serialhdl:_bg_thread:40] mcu 'rpi': current nice = -20 [WARNING] 2024-04-13 07:07:30,457 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 15, 'next_clock': 2638915712, 'value': 31508, '#name': 'analog_in_state', '#sent_time': 1033.4517985826667, '#receive_time': 1033.6786409573333} [WARNING] 2024-04-13 07:07:30,477 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 17, 'next_clock': 2641315712, 'value': 14020, '#name': 'analog_in_state', '#sent_time': 1033.4517985826667, '#receive_time': 1033.6986347913332} [WARNING] 2024-04-13 07:07:30,497 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 19, 'next_clock': 2643715712, 'value': 13789, '#name': 'analog_in_state', '#sent_time': 1033.4517985826667, '#receive_time': 1033.7187092913332} [WARNING] 2024-04-13 07:07:30,508 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 20, 'next_clock': 2644915712, 'value': 31504, '#name': 'analog_in_state', '#sent_time': 1033.4517985826667, '#receive_time': 1033.7287759573333} [WARNING] 2024-04-13 07:07:30,520 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 21, 'next_clock': 2646115712, 'value': 28915, '#name': 'analog_in_state', '#sent_time': 1033.4517985826667, '#receive_time': 1033.7387866243332} [WARNING] 2024-04-13 07:07:30,676 [root] [serialhdl:handle_default:311] mcu 'nozzle_mcu': got {'oid': 8, 'next_clock': 2598254100, 'value': 31189, '#name': 'analog_in_state', '#sent_time': 1033.5430749156667, '#receive_time': 1033.8928604573332} [WARNING] 2024-04-13 07:07:30,756 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 15, 'next_clock': 2674915712, 'value': 31506, '#name': 'analog_in_state', '#sent_time': 1033.4517985826667, '#receive_time': 1033.9786454573332} [WARNING] 2024-04-13 07:07:30,777 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 17, 'next_clock': 2677315712, 'value': 14021, '#name': 'analog_in_state', '#sent_time': 1033.4517985826667, '#receive_time': 1033.9989231243333} [WARNING] 2024-04-13 07:07:30,796 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 19, 'next_clock': 2679715712, 'value': 13789, '#name': 'analog_in_state', '#sent_time': 1033.4517985826667, '#receive_time': 1034.0186624573332} [WARNING] 2024-04-13 07:07:30,806 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 20, 'next_clock': 2680915712, 'value': 31505, '#name': 'analog_in_state', '#sent_time': 1033.4517985826667, '#receive_time': 1034.0286454573334} [WARNING] 2024-04-13 07:07:30,816 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 21, 'next_clock': 2682115712, 'value': 28920, '#name': 'analog_in_state', '#sent_time': 1033.4517985826667, '#receive_time': 1034.0386474573334} [WARNING] 2024-04-13 07:07:30,971 [root] [serialhdl:handle_default:311] mcu 'nozzle_mcu': got {'oid': 8, 'next_clock': 2634254100, 'value': 31187, '#name': 'analog_in_state', '#sent_time': 1033.5430749156667, '#receive_time': 1034.1928456243334} [WARNING] 2024-04-13 07:07:31,057 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 15, 'next_clock': 2710915712, 'value': 31508, '#name': 'analog_in_state', '#sent_time': 1033.4517985826667, '#receive_time': 1034.2787136243332} [WARNING] 2024-04-13 07:07:31,076 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 17, 'next_clock': 2713315712, 'value': 14023, '#name': 'analog_in_state', '#sent_time': 1033.4517985826667, '#receive_time': 1034.2986612913332} [WARNING] 2024-04-13 07:07:31,096 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 19, 'next_clock': 2715715712, 'value': 13790, '#name': 'analog_in_state', '#sent_time': 1033.4517985826667, '#receive_time': 1034.3186497913332} [WARNING] 2024-04-13 07:07:31,107 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 20, 'next_clock': 2716915712, 'value': 31506, '#name': 'analog_in_state', '#sent_time': 1033.4517985826667, '#receive_time': 1034.3287764573333} [WARNING] 2024-04-13 07:07:31,119 [root] [serialhdl:handle_default:311] mcu 'mcu': got {'oid': 21, 'next_clock': 2718115712, 'value': 28923, '#name': 'analog_in_state', '#sent_time': 1033.4517985826667, '#receive_time': 1034.3387392913332} [INFO] 2024-04-13 07:07:31,170 [root] [mcu:_mcu_identify:828] Loaded MCU 'rpi' 104 commands (v0.11.0-372-gb9ad7605 / gcc: (Ingenic Linux-Release5.1.0-Default(xburst2(fp64)+glibc2.29) 2021.12-22 10:52:10) 7.2.0 binutils: (Ingenic Linux-Release5.1.0.-Default(xburst2(fp64)+glibc2.29) 2021.12-22 08:55:37) 2.27) MCU 'rpi' config: ADC_MAX=4095 CLOCK_FREQ=50000000 MCU=linux PCA9685_MAX=4096 PWM_MAX=32768 STATS_SUMSQ_BASE=256 build_machine_uid=May 18 202311:46:31 [INFO] 2024-04-13 07:07:31,171 [root] [temperature_mcu:_mcu_identify:85] mcu_temperature 'mcu' nominal base=378.658537 slope=-804.878049 [INFO] 2024-04-13 07:07:31,172 [root] [temperature_mcu:_mcu_identify:85] mcu_temperature 'mcu' nominal base=378.658537 slope=-804.878049 [INFO] 2024-04-13 07:07:31,215 [root] [mcu:_connect:801] Configured MCU 'mcu' (3780 moves) [WARNING] 2024-04-13 07:07:31,227 [root] [serialhdl:handle_default:311] mcu 'nozzle_mcu': got {'oid': 3, 'clock': 2629768611, 'query_ticks': 2323, 'next_sequence': 0, 'buffered': 0, 'fifo': 0, 'limit_count': 0, '#name': 'adxl345_status', '#sent_time': 1034.4480267909998, '#receive_time': 1034.4483297489999} [INFO] 2024-04-13 07:07:31,229 [root] [mcu:_connect:801] Configured MCU 'nozzle_mcu' (1790 moves) [INFO] 2024-04-13 07:07:31,236 [root] [mcu:_connect:801] Configured MCU 'leveling_mcu' (1193 moves) [INFO] 2024-04-13 07:07:31,251 [root] [mcu:_connect:801] Configured MCU 'rpi' (4086 moves) [INFO] 2024-04-13 07:07:31,259 [root] [verify_heater:handle_connect:40] Starting heater checks for extruder [INFO] 2024-04-13 07:07:31,261 [root] [verify_heater:handle_connect:40] Starting heater checks for heater_bed [INFO] 2024-04-13 07:07:31,262 [root] [bl24c16f:_init_bl24c16f:228] bl24c16f init... [INFO] 2024-04-13 07:07:31,263 [root] [tmc:_handle_connect:384] Enabling TMC virtual enable for 'stepper_x' [INFO] 2024-04-13 07:07:31,377 [root] [tmc:_handle_connect:384] Enabling TMC virtual enable for 'stepper_y' [INFO] 2024-04-13 07:07:31,488 [root] [tmc:_handle_connect:384] Enabling TMC virtual enable for 'stepper_z' [INFO] 2024-04-13 07:07:31,730 [root] [bed_mesh:print_generated_points:430] bed_mesh: generated points Index | Tool Adjusted | Probe [INFO] 2024-04-13 07:07:31,731 [root] [bed_mesh:print_generated_points:435] 0 | (5.0, 5.0) | (5.0, 5.0) [INFO] 2024-04-13 07:07:31,732 [root] [bed_mesh:print_generated_points:435] 1 | (63.0, 5.0) | (63.0, 5.0) [INFO] 2024-04-13 07:07:31,732 [root] [bed_mesh:print_generated_points:435] 2 | (121.0, 5.0) | (121.0, 5.0) [INFO] 2024-04-13 07:07:31,733 [root] [bed_mesh:print_generated_points:435] 3 | (179.0, 5.0) | (179.0, 5.0) [INFO] 2024-04-13 07:07:31,735 [root] [bed_mesh:print_generated_points:435] 4 | (237.0, 5.0) | (237.0, 5.0) [INFO] 2024-04-13 07:07:31,735 [root] [bed_mesh:print_generated_points:435] 5 | (295.0, 5.0) | (295.0, 5.0) [INFO] 2024-04-13 07:07:31,736 [root] [bed_mesh:print_generated_points:435] 6 | (295.0, 63.0) | (295.0, 63.0) [INFO] 2024-04-13 07:07:31,736 [root] [bed_mesh:print_generated_points:435] 7 | (237.0, 63.0) | (237.0, 63.0) [INFO] 2024-04-13 07:07:31,737 [root] [bed_mesh:print_generated_points:435] 8 | (179.0, 63.0) | (179.0, 63.0) [INFO] 2024-04-13 07:07:31,737 [root] [bed_mesh:print_generated_points:435] 9 | (121.0, 63.0) | (121.0, 63.0) [INFO] 2024-04-13 07:07:31,738 [root] [bed_mesh:print_generated_points:435] 10 | (63.0, 63.0) | (63.0, 63.0) [INFO] 2024-04-13 07:07:31,739 [root] [bed_mesh:print_generated_points:435] 11 | (5.0, 63.0) | (5.0, 63.0) [INFO] 2024-04-13 07:07:31,740 [root] [bed_mesh:print_generated_points:435] 12 | (5.0, 121.0) | (5.0, 121.0) [INFO] 2024-04-13 07:07:31,740 [root] [bed_mesh:print_generated_points:435] 13 | (63.0, 121.0) | (63.0, 121.0) [INFO] 2024-04-13 07:07:31,741 [root] [bed_mesh:print_generated_points:435] 14 | (121.0, 121.0) | (121.0, 121.0) [INFO] 2024-04-13 07:07:31,742 [root] [bed_mesh:print_generated_points:435] 15 | (179.0, 121.0) | (179.0, 121.0) [INFO] 2024-04-13 07:07:31,742 [root] [bed_mesh:print_generated_points:435] 16 | (237.0, 121.0) | (237.0, 121.0) [INFO] 2024-04-13 07:07:31,743 [root] [bed_mesh:print_generated_points:435] 17 | (295.0, 121.0) | (295.0, 121.0) [INFO] 2024-04-13 07:07:31,743 [root] [bed_mesh:print_generated_points:435] 18 | (295.0, 179.0) | (295.0, 179.0) [INFO] 2024-04-13 07:07:31,744 [root] [bed_mesh:print_generated_points:435] 19 | (237.0, 179.0) | (237.0, 179.0) [INFO] 2024-04-13 07:07:31,744 [root] [bed_mesh:print_generated_points:435] 20 | (179.0, 179.0) | (179.0, 179.0) [INFO] 2024-04-13 07:07:31,745 [root] [bed_mesh:print_generated_points:435] 21 | (121.0, 179.0) | (121.0, 179.0) [INFO] 2024-04-13 07:07:31,746 [root] [bed_mesh:print_generated_points:435] 22 | (63.0, 179.0) | (63.0, 179.0) [INFO] 2024-04-13 07:07:31,746 [root] [bed_mesh:print_generated_points:435] 23 | (5.0, 179.0) | (5.0, 179.0) [INFO] 2024-04-13 07:07:31,747 [root] [bed_mesh:print_generated_points:435] 24 | (5.0, 237.0) | (5.0, 237.0) [INFO] 2024-04-13 07:07:31,748 [root] [bed_mesh:print_generated_points:435] 25 | (63.0, 237.0) | (63.0, 237.0) [INFO] 2024-04-13 07:07:31,749 [root] [bed_mesh:print_generated_points:435] 26 | (121.0, 237.0) | (121.0, 237.0) [INFO] 2024-04-13 07:07:31,749 [root] [bed_mesh:print_generated_points:435] 27 | (179.0, 237.0) | (179.0, 237.0) [INFO] 2024-04-13 07:07:31,750 [root] [bed_mesh:print_generated_points:435] 28 | (237.0, 237.0) | (237.0, 237.0) [INFO] 2024-04-13 07:07:31,751 [root] [bed_mesh:print_generated_points:435] 29 | (295.0, 237.0) | (295.0, 237.0) [INFO] 2024-04-13 07:07:31,752 [root] [bed_mesh:print_generated_points:435] 30 | (295.0, 295.0) | (295.0, 295.0) [INFO] 2024-04-13 07:07:31,752 [root] [bed_mesh:print_generated_points:435] 31 | (237.0, 295.0) | (237.0, 295.0) [INFO] 2024-04-13 07:07:31,753 [root] [bed_mesh:print_generated_points:435] 32 | (179.0, 295.0) | (179.0, 295.0) [INFO] 2024-04-13 07:07:31,753 [root] [bed_mesh:print_generated_points:435] 33 | (121.0, 295.0) | (121.0, 295.0) [INFO] 2024-04-13 07:07:31,755 [root] [bed_mesh:print_generated_points:435] 34 | (63.0, 295.0) | (63.0, 295.0) [INFO] 2024-04-13 07:07:31,756 [root] [bed_mesh:print_generated_points:435] 35 | (5.0, 295.0) | (5.0, 295.0) [INFO] 2024-04-13 07:07:32,070 [root] [webhooks:_handle_query:530] _handle_query objects/subscribe:{'webhooks': None} [INFO] 2024-04-13 07:07:32,071 [root] [webhooks:_handle_query:552] _handle_query before complete.wait [INFO] 2024-04-13 07:07:32,072 [root] [webhooks:_handle_query:554] _handle_query after complete.wait:{'eventtime': 1035.294673833, 'status': {'webhooks': {'state': 'ready', 'state_message': 'Printer is ready'}}} [INFO] 2024-04-13 07:07:32,114 [root] [webhooks:_handle_query:530] _handle_query objects/subscribe:{'webhooks': None, 'print_stats': None} [INFO] 2024-04-13 07:07:32,117 [root] [webhooks:_handle_query:552] _handle_query before complete.wait [INFO] 2024-04-13 07:07:32,258 [root] [webhooks:set_client_info:202] webhooks client 1980491928: Client info {'program': 'c440x', 'version': '1.3.3.8'} [INFO] 2024-04-13 07:07:32,323 [root] [webhooks:_handle_query:554] _handle_query after complete.wait:{'eventtime': 1035.545622833, 'status': {'webhooks': {'state': 'ready', 'state_message': 'Printer is ready'}, 'print_stats': {'filename': '', 'total_duration': 0.0, 'print_duration': 0.0, 'filament_used': 0.0, 'state': 'standby', 'message': '', 'info': {'total_layer': None, 'current_layer': None}, 'power_loss': 0, 'z_pos': 6.0}}} [INFO] 2024-04-13 07:07:32,462 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'shutdown_machine' for connection id: 1980491928 [INFO] 2024-04-13 07:07:32,563 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'reboot_machine' for connection id: 1980491928 [INFO] 2024-04-13 07:07:32,619 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'shutdown_machine' for connection id: 1980490464 [INFO] 2024-04-13 07:07:32,627 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'reboot_machine' for connection id: 1980490464 [INFO] 2024-04-13 07:07:32,635 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'pause_job_queue' for connection id: 1980490464 [INFO] 2024-04-13 07:07:32,657 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'start_job_queue' for connection id: 1980490464 [INFO] 2024-04-13 07:07:32,665 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'pause_job_queue' for connection id: 1980491928 [INFO] 2024-04-13 07:07:32,671 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'timelapse_newframe' for connection id: 1980490464 [INFO] 2024-04-13 07:07:32,682 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'timelapse_saveFrames' for connection id: 1980490464 [INFO] 2024-04-13 07:07:32,688 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'timelapse_render' for connection id: 1980490464 [INFO] 2024-04-13 07:07:32,849 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'start_job_queue' for connection id: 1980491928 [INFO] 2024-04-13 07:07:32,855 [root] [webhooks:_handle_query:530] _handle_query objects/subscribe:{'webhooks': None, 'print_stats': None, 'temperature_fan chamber_fan': None, 'temperature_fan mcu_fan': None, 'temperature_sensor mcu_temp': None, 'temperature_sensor chamber_temp': None, 'heater_bed': None, 'extruder': None} [INFO] 2024-04-13 07:07:32,857 [root] [webhooks:_handle_query:552] _handle_query before complete.wait [INFO] 2024-04-13 07:07:32,869 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'timelapse_newframe' for connection id: 1980491928 [INFO] 2024-04-13 07:07:32,971 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'timelapse_saveFrames' for connection id: 1980491928 [INFO] 2024-04-13 07:07:33,074 [root] [webhooks:_handle_rpc_registration:384] webhooks: registering remote method 'timelapse_render' for connection id: 1980491928 [INFO] 2024-04-13 07:07:33,082 [root] [webhooks:_handle_query:554] _handle_query after complete.wait:{'eventtime': 1036.303392833, 'status': {'webhooks': {'state': 'ready', 'state_message': 'Printer is ready'}, 'print_stats': {'filename': '', 'total_duration': 0.0, 'print_duration': 0.0, 'filament_used': 0.0, 'state': 'standby', 'message': '', 'info': {'total_layer': None, 'current_layer': None}, 'power_loss': 0, 'z_pos': 6.0}, 'temperature_fan chamber_fan': {'speed': 0.0, 'rpm': None, 'temperature': 21.27, 'target': 35.0}, 'temperature_fan mcu_fan': {'speed': 0.0, 'rpm': None, 'temperature': 34.15, 'target': 50.0}, 'temperature_sensor mcu_temp': {'temperature': 39.83, 'measured_min_temp': 39.83, 'measured_max_temp': 39.83}, 'temperature_sensor chamber_temp': {'temperature': 21.29, 'measured_min_temp': 21.29, 'measured_max_temp': 21.29}, 'heater_bed': {'temperature': 50.22, 'target': 0.0, 'power': 0.0}, 'extruder': {'temperature': 26.57, 'target': 0.0, 'power': 0.0, 'can_extrude': False, 'pressure_advance': 0.04, 'smooth_time': 0.04}}} [INFO] 2024-04-13 07:07:33,091 [root] [webhooks:_handle_query:530] _handle_query objects/subscribe:{'webhooks': None, 'print_stats': None, 'temperature_fan chamber_fan': None, 'temperature_fan mcu_fan': None, 'temperature_sensor mcu_temp': None, 'temperature_sensor chamber_temp': None, 'heater_bed': None, 'extruder': None} [INFO] 2024-04-13 07:07:33,092 [root] [webhooks:_handle_query:552] _handle_query before complete.wait [ERROR] 2024-04-13 07:07:33,279 [root] [bed_mesh:_get_mesh:145] 'NoneType' object has no attribute 'get_probed_matrix' [INFO] 2024-04-13 07:07:33,333 [root] [webhooks:_handle_query:554] _handle_query after complete.wait:{'eventtime': 1036.554590833, 'status': {'webhooks': {'state': 'ready', 'state_message': 'Printer is ready'}, 'print_stats': {'filename': '', 'total_duration': 0.0, 'print_duration': 0.0, 'filament_used': 0.0, 'state': 'standby', 'message': '', 'info': {'total_layer': None, 'current_layer': None}, 'power_loss': 0, 'z_pos': 6.0}, 'temperature_fan chamber_fan': {'speed': 0.0, 'rpm': None, 'temperature': 21.27, 'target': 35.0}, 'temperature_fan mcu_fan': {'speed': 0.0, 'rpm': None, 'temperature': 34.15, 'target': 50.0}, 'temperature_sensor mcu_temp': {'temperature': 39.85, 'measured_min_temp': 39.83, 'measured_max_temp': 39.85}, 'temperature_sensor chamber_temp': {'temperature': 21.31, 'measured_min_temp': 21.29, 'measured_max_temp': 21.31}, 'heater_bed': {'temperature': 50.22, 'target': 0.0, 'power': 0.0}, 'extruder': {'temperature': 26.58, 'target': 0.0, 'power': 0.0, 'can_extrude': False, 'pressure_advance': 0.04, 'smooth_time': 0.04}}} [INFO] 2024-04-13 07:07:33,342 [root] [webhooks:_handle_query:530] _handle_query objects/subscribe:{'webhooks': None, 'configfile': None, 'mcu': None, 'mcu nozzle_mcu': None, 'mcu leveling_mcu': None, 'mcu rpi': None, 'virtual_pins': None, 'gcode_macro xyz_ready': None, 'gcode_macro _IF_HOME_Z': None, 'gcode_macro _IF_MOVE_XY': None, 'gcode_macro _HOME_X': None, 'gcode_macro _HOME_Y': None, 'gcode_macro _HOME_Z': None, 'gcode_macro PRINTER_PARAM': None, 'gcode_macro AUTOTUNE_SHAPERS': None, 'gcode_macro LOAD_MATERIAL_CLOSE_FAN2': None, 'gcode_macro LOAD_MATERIAL_RESTORE_FAN2': None, 'gcode_macro SET_E_MIN_CURRENT': None, 'gcode_macro RESTORE_E_CURRENT': None, 'gcode_macro LOAD_MATERIAL': None, 'gcode_macro QUIT_MATERIAL': None, 'gcode_macro Qmode': None, 'gcode_macro Qmode_exit': None, 'gcode_macro M204': None, 'gcode_macro M205': None, 'gcode_macro M107': None, 'gcode_macro M900': None, 'gcode_macro WAIT_TEMP_START': None, 'gcode_macro WAIT_TEMP_END': None, 'gcode_macro PRINT_CALIBRATION': None, 'gcode_macro FIRST_FLOOR_PAUSE_POSITION': None, 'gcode_macro ACCURATE_G28': None, 'gcode_macro PRINT_PREPARED': None, 'gcode_macro PRINT_PREPARE_CLEAR': None, 'gcode_macro END_PRINT_POINT_WITHOUT_LIFTING': None, 'gcode_macro END_PRINT_POINT': None, 'gcode_macro END_PRINT': None, 'gcode_macro FIRST_FLOOR_PAUSE': None, 'gcode_macro FIRST_FLOOR_RESUME': None, 'gcode_macro PAUSE': None, 'gcode_macro INPUTSHAPER': None, 'gcode_macro BEDPID': None, 'gcode_macro TUNOFFINPUTSHAPER': None, 'gcode_macro RESUME': None, 'gcode_macro CANCEL_PRINT': None, 'gcode_macro G29': None, 'gcode_move': None, 'print_stats': None, 'fan_feedback': None, 'custom_macro': None, 'gcode_macro GET_TIMELAPSE_SETUP': None, 'gcode_macro _SET_TIMELAPSE_SETUP': None, 'gcode_macro TIMELAPSE_TAKE_FRAME': None, 'gcode_macro _TIMELAPSE_NEW_FRAME': None, 'gcode_macro HYPERLAPSE': None, 'gcode_macro TIMELAPSE_RENDER': None, 'gcode_macro TEST_STREAM_DELAY': None, 'save_variables': None, 'gcode_macro SET_GCODE_OFFSET': None, 'calibrate_shaper_config': None, 'gcode_macro INPUT_SHAPER_CALIBRATION': None, 'gcode_macro TEST_RESONANCES_GRAPHS': None, 'gcode_macro BELTS_SHAPER_CALIBRATION': None, 'gcode_macro EXCITATE_AXIS_AT_FREQ': None, 'heaters': None, 'temperature_fan chamber_fan': None, 'temperature_fan mcu_fan': None, 'output_pin mcu_fan': None, 'gcode_macro M141': None, 'gcode_macro M191': None, 'gcode_macro M106': None, 'output_pin KAMP': None, 'output_pin BED_LEVELING': None, 'gcode_macro START_PRINT': None, 'gcode_macro BED_MESH_CALIBRATE': None, 'gcode_macro _LINE_PURGE': None, 'gcode_macro _SMART_PARK': None, 'gcode_macro DEFINE_OBJECT': None, 'gcode_macro START_CURRENT_OBJECT': None, 'gcode_macro END_CURRENT_OBJECT': None, 'gcode_macro LIST_OBJECTS': None, 'gcode_macro LIST_EXCLUDED_OBJECTS': None, 'gcode_macro REMOVE_ALL_EXCLUDED': None, 'gcode_macro _KAMP_Settings': None, 'idle_timeout': None, 'virtual_sdcard': None, 'temperature_sensor mcu_temp': None, 'temperature_sensor chamber_temp': None, 'tmc2209 stepper_x': None, 'tmc2209 stepper_y': None, 'tmc2209 stepper_z': None, 'tmc2209 extruder': None, 'heater_bed': None, 'pause_resume': None, 'filament_switch_sensor filament_sensor': None, 'filament_switch_sensor filament_sensor_2': None, 'heater_fan hotend_fan': None, 'output_pin fan0': None, 'output_pin fan1': None, 'output_pin fan2': None, 'output_pin LED': None, 'output_pin power': None, 'probe': None, 'bed_mesh': None, 'display_status': None, 'exclude_object': None, 'motion_report': None, 'query_endstops': None, 'system_stats': None, 'manual_probe': None, 'toolhead': None, 'extruder': None} [INFO] 2024-04-13 07:07:33,343 [root] [webhooks:_handle_query:552] _handle_query before complete.wait [INFO] 2024-04-13 07:07:33,382 [root] [webhooks:_handle_query:530] _handle_query objects/subscribe:{'webhooks': None, 'configfile': None, 'mcu': None, 'mcu nozzle_mcu': None, 'mcu leveling_mcu': None, 'mcu rpi': None, 'virtual_pins': None, 'gcode_macro xyz_ready': None, 'gcode_macro _IF_HOME_Z': None, 'gcode_macro _IF_MOVE_XY': None, 'gcode_macro _HOME_X': None, 'gcode_macro _HOME_Y': None, 'gcode_macro _HOME_Z': None, 'gcode_macro PRINTER_PARAM': None, 'gcode_macro AUTOTUNE_SHAPERS': None, 'gcode_macro LOAD_MATERIAL_CLOSE_FAN2': None, 'gcode_macro LOAD_MATERIAL_RESTORE_FAN2': None, 'gcode_macro SET_E_MIN_CURRENT': None, 'gcode_macro RESTORE_E_CURRENT': None, 'gcode_macro LOAD_MATERIAL': None, 'gcode_macro QUIT_MATERIAL': None, 'gcode_macro Qmode': None, 'gcode_macro Qmode_exit': None, 'gcode_macro M204': None, 'gcode_macro M205': None, 'gcode_macro M107': None, 'gcode_macro M900': None, 'gcode_macro WAIT_TEMP_START': None, 'gcode_macro WAIT_TEMP_END': None, 'gcode_macro PRINT_CALIBRATION': None, 'gcode_macro FIRST_FLOOR_PAUSE_POSITION': None, 'gcode_macro ACCURATE_G28': None, 'gcode_macro PRINT_PREPARED': None, 'gcode_macro PRINT_PREPARE_CLEAR': None, 'gcode_macro END_PRINT_POINT_WITHOUT_LIFTING': None, 'gcode_macro END_PRINT_POINT': None, 'gcode_macro END_PRINT': None, 'gcode_macro FIRST_FLOOR_PAUSE': None, 'gcode_macro FIRST_FLOOR_RESUME': None, 'gcode_macro PAUSE': None, 'gcode_macro INPUTSHAPER': None, 'gcode_macro BEDPID': None, 'gcode_macro TUNOFFINPUTSHAPER': None, 'gcode_macro RESUME': None, 'gcode_macro CANCEL_PRINT': None, 'gcode_macro G29': None, 'gcode_move': None, 'print_stats': None, 'fan_feedback': None, 'custom_macro': None, 'gcode_macro GET_TIMELAPSE_SETUP': None, 'gcode_macro _SET_TIMELAPSE_SETUP': None, 'gcode_macro TIMELAPSE_TAKE_FRAME': None, 'gcode_macro _TIMELAPSE_NEW_FRAME': None, 'gcode_macro HYPERLAPSE': None, 'gcode_macro TIMELAPSE_RENDER': None, 'gcode_macro TEST_STREAM_DELAY': None, 'save_variables': None, 'gcode_macro SET_GCODE_OFFSET': None, 'calibrate_shaper_config': None, 'gcode_macro INPUT_SHAPER_CALIBRATION': None, 'gcode_macro TEST_RESONANCES_GRAPHS': None, 'gcode_macro BELTS_SHAPER_CALIBRATION': None, 'gcode_macro EXCITATE_AXIS_AT_FREQ': None, 'heaters': None, 'temperature_fan chamber_fan': None, 'temperature_fan mcu_fan': None, 'output_pin mcu_fan': None, 'gcode_macro M141': None, 'gcode_macro M191': None, 'gcode_macro M106': None, 'output_pin KAMP': None, 'output_pin BED_LEVELING': None, 'gcode_macro START_PRINT': None, 'gcode_macro BED_MESH_CALIBRATE': None, 'gcode_macro _LINE_PURGE': None, 'gcode_macro _SMART_PARK': None, 'gcode_macro DEFINE_OBJECT': None, 'gcode_macro START_CURRENT_OBJECT': None, 'gcode_macro END_CURRENT_OBJECT': None, 'gcode_macro LIST_OBJECTS': None, 'gcode_macro LIST_EXCLUDED_OBJECTS': None, 'gcode_macro REMOVE_ALL_EXCLUDED': None, 'gcode_macro _KAMP_Settings': None, 'idle_timeout': None, 'virtual_sdcard': None, 'temperature_sensor mcu_temp': None, 'temperature_sensor chamber_temp': None, 'tmc2209 stepper_x': None, 'tmc2209 stepper_y': None, 'tmc2209 stepper_z': None, 'tmc2209 extruder': None, 'heater_bed': None, 'pause_resume': None, 'filament_switch_sensor filament_sensor': None, 'filament_switch_sensor filament_sensor_2': None, 'heater_fan hotend_fan': None, 'output_pin fan0': None, 'output_pin fan1': None, 'output_pin fan2': None, 'output_pin LED': None, 'output_pin power': None, 'probe': None, 'bed_mesh': None, 'display_status': None, 'exclude_object': None, 'motion_report': None, 'query_endstops': None, 'system_stats': None, 'manual_probe': None, 'toolhead': None, 'extruder': None} [INFO] 2024-04-13 07:07:33,384 [root] [webhooks:_handle_query:552] _handle_query before complete.wait [INFO] 2024-04-13 07:07:33,613 [root] [webhooks:_handle_query:554] _handle_query after complete.wait:{'eventtime': 1036.807363833, 'status': {'webhooks': {'state': 'ready', 'state_message': 'Printer is ready'}, 'configfile': {'config': {'virtual_pins': {}, 'force_move': {'enable_force_move': 'true'}, 'gcode_macro xyz_ready': {'variable_x_ready': '0', 'variable_y_ready': '0', 'variable_z_ready': '0', 'variable_xy_moved': '0', 'variable_z_moved': '0', 'variable_safe_z': '3', 'gcode': ''}, 'gcode_macro _IF_HOME_Z': {'gcode': '\n{% if printer[\'gcode_macro xyz_ready\'].z_ready|int == 1 %}\n{% if printer.toolhead.position.z|int < 5 %}\n{% set z_park = 5.0 - printer.toolhead.position.z|int %}\nG91\nG1 z{z_park} F600\nG90\n{% endif %}\n{% else %}\n{% if printer[\'gcode_macro xyz_ready\'].z_moved|int == 0 %}\n{% if printer.print_stats.z_pos|float <= 20.0 or printer.print_stats.power_loss == 1 %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE={printer["gcode_macro PRINTER_PARAM"].z_safe_g28} VELOCITY=10\n{% else %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE=0.1 VELOCITY=10\n{% endif %}\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=1\n{% endif %}\n{% endif %}'}, 'gcode_macro _IF_MOVE_XY': {'gcode': '\n_IF_HOME_Z\n{% if printer[\'gcode_macro xyz_ready\'].xy_moved|int == 0 %}\n{action_respond_info("move xy\\n")}\n\nFORCE_MOVE STEPPER=stepper_y DISTANCE=-14 VELOCITY=50\nFORCE_MOVE STEPPER=stepper_y DISTANCE=7 VELOCITY=50\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=1\nG4 P1000\n{% endif %}'}, 'gcode_macro _HOME_X': {'gcode': "\n_IF_MOVE_XY\n\n{% if printer['gcode_macro xyz_ready'].x_ready|int == 1 %}\n{% if (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x)|round < 10 %}\n{% set x_park = (10 - (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x))|round %}\n{% if x_park > 0 %}\nG91\nG1 x-{x_park} F3600\nG90\nG4 P1000\n{% endif %}\n{% endif %}\n{% endif %}\n\n\n\n\nG28 X\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=1\n\nG91\nG1 x-10 F3600\nG90\n\nG4 P2000"}, 'gcode_macro _HOME_Y': {'gcode': "\n_IF_MOVE_XY\n\n{% if printer['gcode_macro xyz_ready'].y_ready|int == 1 %}\n{% if printer.toolhead.position.y|round < 8 %}\n{% set y_park = 8 - printer.toolhead.position.y|round %}\n{% if y_park > 0 %}\nG91\nG1 y{y_park} F3600\nG90\nG4 P1000\n{% endif %}\n{% endif %}\n{% endif %}\n\n\n\n\nG28 Y\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=1\n\nG91\nG1 y10 F3600\nG90\n\nG4 P2000"}, 'gcode_macro _HOME_Z': {'gcode': '\n{% if printer[\'gcode_macro xyz_ready\'].y_ready|int == 1 %}\n{% if printer[\'gcode_macro xyz_ready\'].x_ready|int == 1 %}\n_IF_HOME_Z\n{% endif %}\n{% endif %}\n{% if printer.print_stats.z_pos|float >= 260.0 %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE=-8 VELOCITY=10\n{% endif %}\n\n{% set POSITION_X = printer.configfile.settings[\'stepper_x\'].position_max/2 %}\n{% set POSITION_Y = printer.configfile.settings[\'stepper_y\'].position_max/2 %}\n\nG91\n{% set x_park = POSITION_X - printer.toolhead.position.x|int %}\n{% set y_park = POSITION_Y - printer.toolhead.position.y|int %}\n{action_respond_info("x_park = %s \\n" % (x_park))}\n{action_respond_info("y_park = %s \\n" % (y_park))}\nG1 x{x_park} y{y_park} F3600\nG90\n\n\nG28 Z\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=1'}, 'homing_override': {'axes': 'xyz', 'gcode': '\nM220 S100\n\n\n\n{% set x_axes = printer.toolhead.homed_axes %}\n{% if x_axes is defined and x_axes[0] is defined %}\n{action_respond_info(\n"x_axes: %s \\n"\n% (x_axes))}\n{% else %}\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=0\n{action_respond_info(\n"x_axes is NULL\\n")}\n{% endif %}\n\n{% if x_axes is not defined or x_axes[2] is not defined %}\nBED_MESH_CLEAR\n{% endif %}\n\n{% if x_axes is defined and x_axes[0] is defined and x_axes[1] is defined %}\n{action_respond_info("x_axes: %s \\n"% (x_axes))}\n{% set position_y = printer.toolhead.position.y|int %}\n{% set max_y_position = printer["gcode_macro PRINTER_PARAM"].max_y_position|int %}\n{% if position_y >= max_y_position %}\nG91\nG0 Y-10 F3600\nG90\n{% endif %}\n{% endif %}\n\n{% set home_all = \'X\' not in params and \'Y\' not in params %}\n{% if \'Z\' in params and \'X\' not in params and \'Y\' not in params %}\n{% if x_axes[0] is defined and x_axes[1] is defined %}\n{% set home_all = 0 %}\n{% endif %}\n{% endif %}\n\n{% if home_all or \'X\' in params %}\n_HOME_X\n{% endif %}\n\n{% if home_all or \'Y\' in params %}\n_HOME_Y\n{% endif %}\n\n{% if home_all or \'X\' in params %}\n_HOME_X\n{% endif %}\n\n{% if home_all or \'Y\' in params %}\n_HOME_Y\n{% endif %}\n\n{% if home_all or \'Z\' in params %}\n_HOME_Z\n{% endif %}\nBED_MESH_PROFILE LOAD="default"\n\n\n\n\nG4 P500'}, 'gcode_macro PRINTER_PARAM': {'variable_z_safe_pause': '0.0', 'variable_z_safe_g28': '3.0', 'variable_max_x_position': '300.0', 'variable_max_y_position': '300.0', 'variable_max_z_position': '300.0', 'variable_fans': '3', 'variable_auto_g29': '0', 'variable_fan0_min': '25', 'variable_fan1_min': '50', 'variable_fan2_min': '180', 'variable_fan2_speed': '0', 'variable_hotend_temp': '0', 'variable_e_min_current': '0.27', 'gcode': ''}, 'gcode_macro AUTOTUNE_SHAPERS': {'gcode': ''}, 'gcode_macro LOAD_MATERIAL_CLOSE_FAN2': {'variable_fan2_value': '0', 'gcode': "\nSAVE_GCODE_STATE NAME=myMoveState\n{% if printer['output_pin fan2'].value > 0.0 %}\nSET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value}\nM107 P2\n{% endif %}\nRESTORE_E_CURRENT"}, 'gcode_macro LOAD_MATERIAL_RESTORE_FAN2': {'gcode': '\n{% set fan2_value = printer[\'gcode_macro LOAD_MATERIAL_CLOSE_FAN2\'].fan2_value|float %}\nRESTORE_GCODE_STATE NAME=myMoveState\n{% if fan2_value > 0.0 %}\n{% set s_value = (fan2_value * 255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) * 255 / (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) %}\nM106 P2 S{s_value}\nSET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE=0\n{% endif %}\nSET_E_MIN_CURRENT'}, 'gcode_macro SET_E_MIN_CURRENT': {'gcode': "\n{% set e_current = printer['gcode_macro PRINTER_PARAM'].e_min_current %}\nM400\nSET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current}\nG4 P2000"}, 'gcode_macro RESTORE_E_CURRENT': {'gcode': "\n{% set e_current = printer.configfile.settings['tmc2209 extruder'].run_current %}\nM400\nSET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current}\nG4 P2000"}, 'gcode_macro LOAD_MATERIAL': {'gcode': '\nLOAD_MATERIAL_CLOSE_FAN2\nM109 S{printer.custom_macro.default_extruder_temp}\nG91\nG1 E80 F180\nLOAD_MATERIAL_RESTORE_FAN2'}, 'gcode_macro QUIT_MATERIAL': {'gcode': '\nSAVE_GCODE_STATE NAME=myMoveState\nRESTORE_E_CURRENT\nM109 S{printer.custom_macro.default_extruder_temp}\nM83\nG1 E10 F300\nG1 E-15 F3000\nG1 E-22.4700 F2400\nG1 E-6.4200 F1200\nG1 E-3.2100 F720\nG1 E5.0000 F356\nG1 E-5.0000 F384\nG1 E5.0000 F412\nG1 E-5.0000 F440\nG1 E5.0000 F467\nG1 E-5.0000 F495\nG1 E5.0000 F523\nG1 E-5.0000 F3000\nG1 E-15 F3000\nSET_E_MIN_CURRENT\nRESTORE_GCODE_STATE NAME=myMoveState'}, 'gcode_macro Qmode': {'variable_flag': '0', 'variable_accel': '0', 'variable_accel_to_decel': '0', 'variable_velocity': '0', 'variable_square_corner_velocity': '0', 'variable_pressure_advance': '0.0', 'variable_fan0_value': '0.00', 'variable_fan1_value': '0.00', 'variable_fan2_value': '0.00', 'variable_speed_factor': '0', 'variable_max_accel': '2500', 'variable_max_accel_to_decel': '2500', 'gcode': '\n{% set printer_state = printer.print_stats.state %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 0 %}\n{% if printer_state == "printing" or printer_state == "paused" %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel VALUE={printer.toolhead.max_accel}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel_to_decel VALUE={printer.toolhead.max_accel_to_decel}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=velocity VALUE={printer.toolhead.max_velocity}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=square_corner_velocity VALUE={printer.toolhead.square_corner_velocity}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=pressure_advance VALUE={printer.extruder.pressure_advance}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=speed_factor VALUE={printer.gcode_move.speed_factor}\nSET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=0\nSET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=0\nSET_TMC_CURRENT STEPPER=stepper_x CURRENT=1.0\nSET_TMC_CURRENT STEPPER=stepper_y CURRENT=1.0\nG4 P1000\n\n\nSET_VELOCITY_LIMIT ACCEL=2500\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500\nSET_VELOCITY_LIMIT VELOCITY=150\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nSET_PRESSURE_ADVANCE ADVANCE=0.05\nM220 S50\n\n{% set tmp = printer[\'output_pin fan0\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={tmp}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan0_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\nSET_PIN PIN=fan0 VALUE={tmp}\n{% endif %}\n\n{% set tmp = printer[\'output_pin fan1\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer[\'output_pin fan1\'].value * 255}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan1_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\nSET_PIN PIN=fan1 VALUE={tmp}\n{% endif %}\n\n{% set tmp = printer[\'output_pin fan2\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer[\'output_pin fan2\'].value * 255}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan2_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\nSET_PIN PIN=fan2 VALUE={tmp}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=1\nSET_QMODE_FLAG FLAG=1\n{% endif %}\n{% endif %}'}, 'gcode_macro Qmode_exit': {'gcode': '\n{% set printer_state = printer.print_stats.state %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 %}\n{% if printer_state == "printing" or printer_state == "paused" %}\nSET_VELOCITY_LIMIT ACCEL={printer[\'gcode_macro Qmode\'].accel}\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer[\'gcode_macro Qmode\'].accel_to_decel}\nSET_VELOCITY_LIMIT VELOCITY={printer[\'gcode_macro Qmode\'].velocity}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={printer[\'gcode_macro Qmode\'].square_corner_velocity}\nSET_PRESSURE_ADVANCE ADVANCE={printer[\'gcode_macro Qmode\'].pressure_advance}\nM220 S{printer[\'gcode_macro Qmode\'].speed_factor * 100}\n\n{% set X_RUN_CUR = printer.configfile.settings[\'tmc2209 stepper_x\'].run_current %}\n{% set Y_RUN_CUR = printer.configfile.settings[\'tmc2209 stepper_y\'].run_current %}\nSET_TMC_CURRENT STEPPER=stepper_x CURRENT={X_RUN_CUR}\nSET_TMC_CURRENT STEPPER=stepper_y CURRENT={Y_RUN_CUR}\nSET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=1\nSET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=1\nG4 P1000\n\n{% if printer[\'output_pin fan0\'].value != 0 %}\n{action_respond_info("fan0_value = %s" % printer[\'gcode_macro Qmode\'].fan0_value)}\nSET_PIN PIN=fan0 VALUE={printer[\'gcode_macro Qmode\'].fan0_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE=0\n{% endif %}\n{% if printer[\'output_pin fan1\'].value != 0 %}\n{action_respond_info("fan1_value = %s" % printer[\'gcode_macro Qmode\'].fan1_value)}\nSET_PIN PIN=fan1 VALUE={printer[\'gcode_macro Qmode\'].fan1_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE=0\n{% endif %}\n{% if printer[\'output_pin fan2\'].value != 0 %}\n{action_respond_info("fan2_value = %s" % printer[\'gcode_macro Qmode\'].fan2_value)}\nSET_PIN PIN=fan2 VALUE={printer[\'gcode_macro Qmode\'].fan2_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE=0\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=0\nSET_QMODE_FLAG FLAG=0\n{% endif %}\n{% endif %}'}, 'gcode_macro M204': {'rename_existing': 'M204.1', 'gcode': '\n\n{% set get_params = "" %}\n{% set qmode_max_accel = printer[\'gcode_macro Qmode\'].max_accel|string %}\n{% if \'S\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.S|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'S\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'S\' + params.S) %}\n{% endif %}\n{% endif %}\n{% if \'P\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.P|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'P\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'P\' + params.P) %}\n{% endif %}\n{% endif %}\n{% if \'T\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.T|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'T\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'T\' + params.T) %}\n{% endif %}\n{% endif %}\nM204.1 {get_params}'}, 'gcode_macro M205': {'gcode': "\n{% if 'X' in params %}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.X}\n{% elif 'Y' in params %}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.Y}\n{% endif %}"}, 'gcode_macro M107': {'gcode': '\n{% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}\n{% if params.P is defined %}\n{% if params.P|int < fans %}\nSET_PIN PIN=fan{params.P|int} VALUE=0\n{% else %}\nSET_PIN PIN=fan0 VALUE=0\n{% endif %}\n{% else %}\nSET_PIN PIN=fan0 VALUE=0\nSET_PIN PIN=fan2 VALUE=0\n{% endif %}'}, 'gcode_macro M900': {'gcode': "\n{% if 'K' in params %}\n{% if 'E' in params %}\nSET_PRESSURE_ADVANCE EXTRUDER={params.E} ADVANCE={params.K}\n{% else %}\nSET_PRESSURE_ADVANCE ADVANCE={params.K}\n{% endif %}\n{% endif %}"}, 'delayed_gcode wait_temp': {'gcode': '\n{% set cur_temp = printer.extruder.temperature %}\n{% if cur_temp|int < 40 %}\nWAIT_TEMP_END\n{% else %}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=5\n{% endif %}'}, 'gcode_macro WAIT_TEMP_START': {'gcode': '\n{action_respond_info("wait temp start\\n")}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=1\nM106 P0 S255'}, 'gcode_macro WAIT_TEMP_END': {'gcode': '\n{action_respond_info("wait temp end\\n")}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=0\nM106 P0 S0'}, 'gcode_macro PRINT_CALIBRATION': {'gcode': '\nCX_PRINT_LEVELING_CALIBRATION'}, 'gcode_macro FIRST_FLOOR_PAUSE_POSITION': {'gcode': "\n{% set extruder_temp = printer.custom_macro.g28_ext_temp %}\nM104 S{extruder_temp}\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer['gcode_macro PRINTER_PARAM'].max_x_position|float + 1 %}\nG90\nG1 Z2 F600\nG1 X{x_park} Y{y_park} F6000\nG1 Z0.2 F600"}, 'gcode_macro ACCURATE_G28': {'gcode': '\nACCURATE_HOME_Z'}, 'gcode_macro PRINT_PREPARED': {'gcode': '\nSET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=1\n{action_respond_info("print prepared")}'}, 'gcode_macro PRINT_PREPARE_CLEAR': {'gcode': '\nSET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=0'}, 'gcode_macro END_PRINT_POINT_WITHOUT_LIFTING': {'gcode': '\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\nG91\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z2.0 F600\nG90\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("end print xyz_axes is NULL\\n")}\n{% endif %}'}, 'gcode_macro END_PRINT_POINT': {'gcode': '\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < (max_z / 2) %}\n{% set z_safe = (max_z / 2) - act_z %}\n{% elif act_z < max_z %}\n{% set z_safe = 2.0 %}\n{% endif %}\nG91\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z2.0 F600\nG90\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F30000\n{% if z_safe > 2.0 %}\nG91\n{% set z_safe = z_safe - 2.0 %}\nG1 Z{z_safe} F600\nG90\n{% endif %}\n{% else %}\n{action_respond_info("end print xyz_axes is NULL\\n")}\n{% endif %}'}, 'gcode_macro END_PRINT': {'gcode': '\nQmode_exit\nEXCLUDE_OBJECT_RESET\nPRINT_PREPARE_CLEAR\nM220 S100\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=2500\nTURN_OFF_HEATERS\nM107 P1\nM107 P2\nEND_PRINT_POINT\nWAIT_TEMP_START\nM84'}, 'gcode_macro FIRST_FLOOR_PAUSE': {'description': 'Pause the first floor print', 'variable_extrude': '2.0', 'gcode': '\n\n{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float %}\n\n\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\n\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < (max_z - 2.0) %}\n{% set z_safe = 2.0 %}\n{% elif act_z < max_z %}\n{% set z_safe = max_z - act_z %}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}\nPAUSE_BASE\nG91\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z{z_safe} F600\nG90\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("Printer not homed")}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer[\'output_pin fan2\'].value}\n{% set fspeed = printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed %}\n{action_respond_info("fan2_value = %s \\n" % (fspeed))}\n\nM106 P2 S0\nSET_E_MIN_CURRENT'}, 'gcode_macro FIRST_FLOOR_RESUME': {'description': 'Resume the first floor print', 'gcode': '\nRESTORE_E_CURRENT\n{% if printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed > 0 %}\n\n\n\n{% set s_value = (printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed * 255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) * 255 / (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min)|float %}\nM106 P2 S{s_value}\n{% endif %}\n\n{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float + 1.0 %}\n\n{% if \'VELOCITY\' in params|upper %}\n{% set get_params = (\'VELOCITY=\' + params.VELOCITY) %}\n{%else %}\n{% set get_params = "" %}\n{% endif %}\n\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG91\nG1 E{E} F2100\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nM400\nRESUME_BASE {get_params}'}, 'gcode_macro PAUSE': {'description': 'Pause the actual running print', 'rename_existing': 'PAUSE_BASE', 'variable_extrude': '2.0', 'gcode': '\n\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\n\n\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\n\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < 48.0 %}\n{% set z_safe = 50.0 - act_z %}\n{% elif act_z < (max_z - 2.0) %}\n{% set z_safe = 2.0 %}\n{% elif act_z < max_z %}\n{% set z_safe = max_z - act_z %}\n{% endif %}\n{action_respond_info("z_safe = %s"% (z_safe))}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}\nPAUSE_BASE\nG91\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE={printer.extruder.target}\nM104 S140\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z{z_safe} F600\nM400\nG90\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("Printer not homed")}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer[\'output_pin fan2\'].value}\n{% set fspeed = printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed %}\n{action_respond_info("fan2_value = %s \\n" % (fspeed))}\n\nM106 P2 S0\nSET_E_MIN_CURRENT'}, 'gcode_macro INPUTSHAPER': {'gcode': "\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0\nG90\nG28\n{% set POSITION_X = printer.configfile.settings['stepper_x'].position_max/2 %}\n{% set POSITION_Y = printer.configfile.settings['stepper_y'].position_max/2 %}\nG1 X{POSITION_X} Y{POSITION_Y} F6000\nG1 Z10 F600\nSHAPER_CALIBRATE\nCXSAVE_CONFIG\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1"}, 'gcode_macro BEDPID': {'gcode': '\nPID_CALIBRATE HEATER=heater_bed TARGET=100\nSAVE_CONFIG'}, 'gcode_macro TUNOFFINPUTSHAPER': {'gcode': '\nSET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0'}, 'gcode_macro RESUME': {'description': 'Resume the actual running print', 'rename_existing': 'RESUME_BASE', 'gcode': '\nRESTORE_E_CURRENT\n{% if printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int != 0 %}\n{% if printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int > printer.extruder.temperature %}\nM109 S{printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int}\n{% else %}\nM104 S{printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE=0\n{% endif %}\n{% if printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed > 0 %}\n\n\n\n{% set s_value = (printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed * 255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) * 255 / (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min)|float %}\nM106 P2 S{s_value}\n{% endif %}\n{% set z_resume_move = printer[\'gcode_macro PRINTER_PARAM\'].z_safe_pause|int %}\n{% if z_resume_move > 2 %}\n{% set z_resume_move = z_resume_move - 2 %}\nG91\nG1 Z-{z_resume_move} F600\nM400\n{% endif %}\n{action_respond_info("z_resume_move = %s"% (z_resume_move))}\n\n{% set E = printer["gcode_macro PAUSE"].extrude|float + 1.0 %}\n\n{% if \'VELOCITY\' in params|upper %}\n{% set get_params = (\'VELOCITY=\' + params.VELOCITY) %}\n{%else %}\n{% set get_params = "" %}\n{% endif %}\n\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG91\nG1 E{E} F2100\nG90\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nM400\nRESUME_BASE {get_params}'}, 'gcode_macro CANCEL_PRINT': {'description': 'Cancel the actual running print', 'rename_existing': 'CANCEL_PRINT_BASE', 'gcode': '\nEND_PRINT\nCANCEL_PRINT_BASE'}, 'gcode_macro G29': {'gcode': '\n{% if \'PROBE_COUNT\' in params|upper %}\n{% set get_count = (\'PROBE_COUNT\' + params.PROBE_COUNT) %}\n{%else %}\n{% set get_count = "" %}\n{% endif %}\n\n{% set bed_temp = printer.custom_macro.default_bed_temp %}\n{% set extruder_temp = printer.custom_macro.g28_ext_temp %}\n{% set nozzle_clear_temp = printer.custom_macro.default_extruder_temp %}\n\n{% if \'BED_TEMP\' in params|upper %}\n{% set bed_temp = params.BED_TEMP %}\n{% endif %}\n\n{% if \'EXTRUDER_TEMP\' in params|upper %}\n{% set nozzle_clear_temp = params.EXTRUDER_TEMP %}\n{% endif %}\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0\n\nG28\nBED_MESH_CLEAR\nNOZZLE_CLEAR HOT_MIN_TEMP={extruder_temp} HOT_MAX_TEMP={nozzle_clear_temp} BED_MAX_TEMP={bed_temp}\nACCURATE_G28\nM204 S5000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=5000\nBED_MESH_CALIBRATE {get_count}\nBED_MESH_OUTPUT\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F2000\nCXSAVE_CONFIG\nTURN_OFF_HEATERS\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1'}, 'fan_feedback': {'fan0_pin': 'nozzle_mcu:PB4', 'fan1_pin': 'PC6', 'print_delay_time': '5', 'current_delay_time': '2'}, 'custom_macro': {'default_bed_temp': '50', 'default_extruder_temp': '240', 'g28_ext_temp': '140'}, 'gcode_macro GET_TIMELAPSE_SETUP': {'description': 'Print the Timelapse setup', 'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% set output_txt = ["Timelapse Setup:"] %}\n{% set _dummy = output_txt.append("enable: %s" % tl.enable) %}\n{% set _dummy = output_txt.append("park: %s" % tl.park.enable) %}\n{% if tl.park.enable %}\n{% set _dummy = output_txt.append("park position: %s time: %s s" % (tl.park.pos, tl.park.time)) %}\n{% set _dummy = output_txt.append("park cord x:%s y:%s dz:%s" % (tl.park.coord.x, tl.park.coord.y, tl.park.coord.dz)) %}\n{% set _dummy = output_txt.append("travel speed: %s mm/s" % tl.speed.travel) %}\n{% endif %}\n{% set _dummy = output_txt.append("fw_retract: %s" % tl.extruder.fw_retract) %}\n{% if not tl.extruder.fw_retract %}\n{% set _dummy = output_txt.append("retract: %s mm speed: %s mm/s" % (tl.extruder.retract, tl.speed.retract)) %}\n{% set _dummy = output_txt.append("extrude: %s mm speed: %s mm/s" % (tl.extruder.extrude, tl.speed.extrude)) %}\n{% endif %}\n{% set _dummy = output_txt.append("verbose: %s" % tl.verbose) %}\n{action_respond_info(output_txt|join("\\n"))}'}, 'gcode_macro _SET_TIMELAPSE_SETUP': {'description': 'Set user parameters for timelapse', 'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n\n{% set min = printer.toolhead.axis_minimum %}\n{% set max = printer.toolhead.axis_maximum %}\n{% set round_bed = True if printer.configfile.settings.printer.kinematics is in [\'delta\',\'polar\',\'rotary_delta\',\'winch\']\nelse False %}\n{% set park = {\'min\' : {\'x\': (min.x / 1.42)|round(3) if round_bed else min.x|round(3),\n\'y\': (min.y / 1.42)|round(3) if round_bed else min.y|round(3)},\n\'max\' : {\'x\': (max.x / 1.42)|round(3) if round_bed else max.x|round(3),\n\'y\': (max.y / 1.42)|round(3) if round_bed else max.y|round(3)},\n\'center\': {\'x\': (max.x-(max.x-min.x)/2)|round(3),\n\'y\': (max.y-(max.y-min.y)/2)|round(3)}} %}\n\n{% if params.ENABLE %}\n{% if params.ENABLE|lower is in [\'true\', \'false\'] %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=enable VALUE={True if params.ENABLE|lower == \'true\' else False}\n{% else %}\n{action_raise_error("ENABLE=%s not supported. Allowed values are [True, False]" % params.ENABLE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.VERBOSE %}\n{% if params.VERBOSE|lower is in [\'true\', \'false\'] %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=verbose VALUE={True if params.VERBOSE|lower == \'true\' else False}\n{% else %}\n{action_raise_error("VERBOSE=%s not supported. Allowed values are [True, False]" % params.VERBOSE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_X %}\n{% if params.CUSTOM_POS_X|float >= min.x and params.CUSTOM_POS_X|float <= max.x %}\n{% set _dummy = tl.park.custom.update({\'x\':params.CUSTOM_POS_X|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_X=%s must be within [%s - %s]" % (params.CUSTOM_POS_X, min.x, max.x))}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_Y %}\n{% if params.CUSTOM_POS_Y|float >= min.y and params.CUSTOM_POS_Y|float <= max.y %}\n{% set _dummy = tl.park.custom.update({\'y\':params.CUSTOM_POS_Y|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_Y=%s must be within [%s - %s]" % (params.CUSTOM_POS_Y, min.y, max.y))}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_DZ %}\n{% if params.CUSTOM_POS_DZ|float >= min.z and params.CUSTOM_POS_DZ|float <= max.z %}\n{% set _dummy = tl.park.custom.update({\'dz\':params.CUSTOM_POS_DZ|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_DZ=%s must be within [%s - %s]" % (params.CUSTOM_POS_DZ, min.z, max.z))}\n{% endif %}\n{% endif %}\n{% if params.PARK_ENABLE %}\n{% if params.PARK_ENABLE|lower is in [\'true\', \'false\'] %}\n{% set _dummy = tl.park.update({\'enable\':True if params.PARK_ENABLE|lower == \'true\' else False}) %}\n{% else %}\n{action_raise_error("PARK_ENABLE=%s not supported. Allowed values are [True, False]" % params.PARK_ENABLE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.PARK_POS %}\n{% if params.PARK_POS|lower is in [\'center\',\'front_left\',\'front_right\',\'back_left\',\'back_right\',\'custom\',\'x_only\',\'y_only\'] %}\n{% set dic = {\'center\' : {\'x\': park.center.x , \'y\': park.center.y , \'dz\': 1 },\n\'front_left\' : {\'x\': park.min.x , \'y\': park.min.y , \'dz\': 0 },\n\'front_right\' : {\'x\': park.max.x , \'y\': park.min.y , \'dz\': 0 },\n\'back_left\' : {\'x\': park.min.x , \'y\': park.max.y , \'dz\': 0 },\n\'back_right\' : {\'x\': park.max.x , \'y\': park.max.y , \'dz\': 0 },\n\'custom\' : {\'x\': tl.park.custom.x, \'y\': tl.park.custom.y, \'dz\': tl.park.custom.dz},\n\'x_only\' : {\'x\': tl.park.custom.x, \'y\': \'none\' , \'dz\': tl.park.custom.dz},\n\'y_only\' : {\'x\': \'none\' , \'y\': tl.park.custom.y, \'dz\': tl.park.custom.dz}} %}\n{% set _dummy = tl.park.update({\'pos\':params.PARK_POS|lower}) %}\n{% set _dummy = tl.park.update({\'coord\':dic[tl.park.pos]}) %}\n{% else %}\n{action_raise_error("PARK_POS=%s not supported. Allowed values are [CENTER, FRONT_LEFT, FRONT_RIGHT, BACK_LEFT, BACK_RIGHT, CUSTOM, X_ONLY, Y_ONLY]"\n% params.PARK_POS|upper)}\n{% endif %}\n{% endif %}\n{% if params.PARK_TIME %}\n{% if params.PARK_TIME|float >= 0.0 %}\n{% set _dummy = tl.park.update({\'time\':params.PARK_TIME|float|round(3)}) %}\n{% else %}\n{action_raise_error("PARK_TIME=%s must be a positive number" % params.PARK_TIME)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=park VALUE="{tl.park}"\n{% if params.TRAVEL_SPEED %}\n{% if params.TRAVEL_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'travel\':params.TRAVEL_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("TRAVEL_SPEED=%s must be larger than 0" % params.TRAVEL_SPEED)}\n{% endif %}\n{% endif %}\n{% if params.RETRACT_SPEED %}\n{% if params.RETRACT_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'retract\':params.RETRACT_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("RETRACT_SPEED=%s must be larger than 0" % params.RETRACT_SPEED)}\n{% endif %}\n{% endif %}\n{% if params.EXTRUDE_SPEED %}\n{% if params.EXTRUDE_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'extrude\':params.EXTRUDE_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("EXTRUDE_SPEED=%s must be larger than 0" % params.EXTRUDE_SPEED)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=speed VALUE="{tl.speed}"\n{% if params.EXTRUDE_DISTANCE %}\n{% if params.EXTRUDE_DISTANCE|float >= 0.0 %}\n{% set _dummy = tl.extruder.update({\'extrude\':params.EXTRUDE_DISTANCE|float|round(3)}) %}\n{% else %}\n{action_raise_error("EXTRUDE_DISTANCE=%s must be specified as positiv number" % params.EXTRUDE_DISTANCE)}\n{% endif %}\n{% endif %}\n{% if params.RETRACT_DISTANCE %}\n{% if params.RETRACT_DISTANCE|float >= 0.0 %}\n{% set _dummy = tl.extruder.update({\'retract\':params.RETRACT_DISTANCE|float|round(3)}) %}\n{% else %}\n{action_raise_error("RETRACT_DISTANCE=%s must be specified as positiv number" % params.RETRACT_DISTANCE)}\n{% endif %}\n{% endif %}\n{% if params.FW_RETRACT %}\n{% if params.FW_RETRACT|lower is in [\'true\', \'false\'] %}\n{% if \'firmware_retraction\' in printer.configfile.settings %}\n{% set _dummy = tl.extruder.update({\'fw_retract\': True if params.FW_RETRACT|lower == \'true\' else False}) %}\n{% else %}\n{% set _dummy = tl.extruder.update({\'fw_retract\':False}) %}\n{% if params.FW_RETRACT|capitalize == \'True\' %}\n{action_raise_error("[firmware_retraction] not defined in printer.cfg. Can not enable fw_retract")}\n{% endif %}\n{% endif %}\n{% else %}\n{action_raise_error("FW_RETRACT=%s not supported. Allowed values are [True, False]" % params.FW_RETRACT|capitalize)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=extruder VALUE="{tl.extruder}"\n{% if printer.configfile.settings[\'gcode_macro pause\'] is defined %}\n{% set _dummy = tl.macro.update({\'pause\': printer.configfile.settings[\'gcode_macro pause\'].rename_existing}) %}\n{% endif %}\n{% if printer.configfile.settings[\'gcode_macro resume\'] is defined %}\n{% set _dummy = tl.macro.update({\'resume\': printer.configfile.settings[\'gcode_macro resume\'].rename_existing}) %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=macro VALUE="{tl.macro}"'}, 'gcode_macro TIMELAPSE_TAKE_FRAME': {'description': 'Take Timelapse shoot', 'variable_enable': 'False', 'variable_takingframe': 'False', 'variable_park': "{'enable': False,\n'pos' : 'center',\n'time' : 0.1,\n'custom': {'x': 0, 'y': 0, 'dz': 0},\n'coord' : {'x': 0, 'y': 0, 'dz': 0}}", 'variable_extruder': "{'fw_retract': False,\n'retract': 1.0,\n'extrude': 1.0}", 'variable_speed': "{'travel': 100,\n'retract': 15,\n'extrude': 15}", 'variable_verbose': 'True', 'variable_check_time': '0.5', 'variable_restore': "{'absolute': {'coordinates': True, 'extrude': True}, 'speed': 1500, 'e':0, 'factor': {'speed': 1.0, 'extrude': 1.0}}", 'variable_macro': "{'pause': 'PAUSE', 'resume': 'RESUME'}", 'variable_is_paused': 'False', 'gcode': '\n{% set hyperlapse = True if params.HYPERLAPSE and params.HYPERLAPSE|lower ==\'true\' else False %}\n{% if enable %}\n{% if (hyperlapse and printer[\'gcode_macro HYPERLAPSE\'].run) or\n(not hyperlapse and not printer[\'gcode_macro HYPERLAPSE\'].run) %}\n{% if park.enable %}\n{% set pos = {\'x\': \'X\' + park.coord.x|string if park.pos != \'y_only\' else \'\',\n\'y\': \'Y\' + park.coord.y|string if park.pos != \'x_only\' else \'\',\n\'z\': \'Z\'+ [printer.gcode_move.gcode_position.z + park.coord.dz, printer.toolhead.axis_maximum.z]|min|string} %}\n{% set restore = {\'absolute\': {\'coordinates\': printer.gcode_move.absolute_coordinates,\n\'extrude\' : printer.gcode_move.absolute_extrude},\n\'speed\' : printer.gcode_move.speed,\n\'e\' : printer.gcode_move.gcode_position.e,\n\'factor\' : {\'speed\' : printer.gcode_move.speed_factor,\n\'extrude\': printer.gcode_move.extrude_factor}} %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=restore VALUE="{restore}"\n{% if not printer[printer.toolhead.extruder].can_extrude %}\n{% if verbose %}{action_respond_info("Timelapse: Warning, minimum extruder temperature not reached!")}{% endif %}\n{% else %}\n{% if extruder.fw_retract %}\nG10\n{% else %}\nM83\nG0 E-{extruder.retract} F{speed.retract * 60}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=True\n{macro.pause}\nSET_GCODE_OFFSET X=0 Y=0\nG90\n{% if "xyz" not in printer.toolhead.homed_axes %}\n{% if verbose %}{action_respond_info("Timelapse: Warning, axis not homed yet!")}{% endif %}\n{% else %}\nG0 {pos.x} {pos.y} {pos.z} F{speed.travel * 60}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=takingframe VALUE=True\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={check_time}\nM400\n{% endif %}\n_TIMELAPSE_NEW_FRAME HYPERLAPSE={hyperlapse}\n{% endif %}\n{% else %}\n{% if verbose %}{action_respond_info("Timelapse: disabled, take frame ignored")}{% endif %}\n{% endif %}'}, 'gcode_macro _TIMELAPSE_NEW_FRAME': {'description': 'action call for timelapse shoot. must be a seperate macro', 'gcode': '\n{action_call_remote_method("timelapse_newframe",\nmacropark=printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'].park,\nhyperlapse=params.HYPERLAPSE)}'}, 'delayed_gcode _WAIT_TIMELAPSE_TAKE_FRAME': {'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% set factor = {\'speed\': printer.gcode_move.speed_factor, \'extrude\': printer.gcode_move.extrude_factor} %}\n{% if tl.takingframe %}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={tl.check_time}\n{% else %}\n{tl.macro.resume} VELOCITY={tl.speed.travel}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=False\n{% if not printer[printer.toolhead.extruder].can_extrude %}\n{action_respond_info("Timelapse: Warning minimum extruder temperature not reached!")}\n{% else %}\n{% if tl.extruder.fw_retract %}\nG11\n{% else %}\nG0 E{tl.extruder.extrude} F{tl.speed.extrude * 60}\nG0 F{tl.restore.speed}\n{% if tl.restore.absolute.extrude %}\nM82\nG92 E{tl.restore.e}\n{% endif %}\n{% endif %}\n{% endif %}\n{% if tl.restore.factor.speed != factor.speed %} M220 S{(factor.speed*100)|round(0)} {% endif %}\n{% if tl.restore.factor.extrude != factor.extrude %} M221 S{(factor.extrude*100)|round(0)} {% endif %}\n{% if not tl.restore.absolute.coordinates %} G91 {% endif %}\n{% endif %}'}, 'gcode_macro HYPERLAPSE': {'description': 'Start/Stop a hyperlapse recording', 'variable_cycle': '0', 'variable_run': 'False', 'gcode': '\n{% set cycle = params.CYCLE|default(30)|int %}\n{% if params.ACTION and params.ACTION|lower == \'start\' %}\n{action_respond_info("Hyperlapse: frames started (Cycle %d sec)" % cycle)}\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=True\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=cycle VALUE={cycle}\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={cycle}\nTIMELAPSE_TAKE_FRAME HYPERLAPSE=True\n{% elif params.ACTION and params.ACTION|lower == \'stop\' %}\n{% if run %}{action_respond_info("Hyperlapse: frames stopped")}{% endif %}\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=False\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION=0\n{% else %}\n{action_raise_error("Hyperlapse: No valid input parameter\nUse:\n- HYPERLAPSE ACTION=START [CYCLE=time]\n- HYPERLAPSE ACTION=STOP")}\n{% endif %}'}, 'delayed_gcode _HYPERLAPSE_LOOP': {'gcode': '\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={printer["gcode_macro HYPERLAPSE"].cycle}\nTIMELAPSE_TAKE_FRAME HYPERLAPSE=True'}, 'gcode_macro TIMELAPSE_RENDER': {'description': 'Render Timelapse video and wait for the result', 'variable_render': 'False', 'variable_run_identifier': '0', 'gcode': '\n{action_respond_info("Timelapse: Rendering started")}\n{action_call_remote_method("timelapse_render", byrendermacro="True")}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=render VALUE=True\n{printer.configfile.settings[\'gcode_macro pause\'].rename_existing}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5'}, 'delayed_gcode _WAIT_TIMELAPSE_RENDER': {'gcode': '\n{% set ri = printer[\'gcode_macro TIMELAPSE_RENDER\'].run_identifier % 4 %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=run_identifier VALUE={ri + 1}\n{% if printer[\'gcode_macro TIMELAPSE_RENDER\'].render %}\nM117 Rendering {[\'-\',\'\\\\\',\'|\',\'/\'][ri]}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5\n{% else %}\n{action_respond_info("Timelapse: Rendering finished")}\nM117\n{printer.configfile.settings[\'gcode_macro resume\'].rename_existing}\n{% endif %}'}, 'gcode_macro TEST_STREAM_DELAY': {'description': 'Helper macro to find stream and park delay', 'gcode': '\n{% set min = printer.toolhead.axis_minimum %}\n{% set max = printer.toolhead.axis_maximum %}\n{% set act = printer.toolhead.position %}\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% if act.z > 5.0 %}\nG0 X{min.x + 5.0} F{tl.speed.travel|int * 60}\nG0 X{(max.x-min.x)/2}\nG4 P{tl.park.time|float * 1000}\n_TIMELAPSE_NEW_FRAME HYPERLAPSE=FALSE\nG0 X{max.x - 5.0}\n{% else %}\n{action_raise_error("Toolhead z %.3f to low. Please place head above z = 5.0" % act.z)}\n{% endif %}'}, 'save_variables': {'filename': '/usr/data/printer_data/config/Helper-Script/variables.cfg'}, 'respond': {}, 'gcode_macro SET_GCODE_OFFSET': {'description': 'Saving Z-Offset', 'rename_existing': '_SET_GCODE_OFFSET', 'gcode': '\n{% if printer.save_variables.variables.zoffset %}\n{% set zoffset = printer.save_variables.variables.zoffset %}\n{% else %}\n{% set zoffset = {\'z\': None} %}\n{% endif %}\n{% set ns = namespace(zoffset={\'z\': zoffset.z}) %}\n_SET_GCODE_OFFSET {% for p in params %}{\'%s=%s \'% (p, params[p])}{% endfor %}\n{%if \'Z\' in params %}{% set null = ns.zoffset.update({\'z\': params.Z}) %}{% endif %}\n{%if \'Z_ADJUST\' in params %}\n{%if ns.zoffset.z == None %}{% set null = ns.zoffset.update({\'z\': 0}) %}{% endif %}\n{% set null = ns.zoffset.update({\'z\': (ns.zoffset.z | float) + (params.Z_ADJUST | float)}) %}\n{% endif %}\nSAVE_VARIABLE VARIABLE=zoffset VALUE="{ns.zoffset}"'}, 'delayed_gcode LOAD_GCODE_OFFSETS': {'initial_duration': '2', 'gcode': '\n{% if printer.save_variables.variables.zoffset %}\n{% set zoffset = printer.save_variables.variables.zoffset %}\n_SET_GCODE_OFFSET {% for axis, offset in zoffset.items() if zoffset[axis] %}{ "%s=%s " % (axis, offset) }{% endfor %}\nRESPOND TYPE=command MSG="Loaded Z-Offset from variables.cfg: {zoffset.z}mm"\n{% endif %}'}, 'calibrate_shaper_config': {}, 'gcode_shell_command resonance_graph': {'command': '/usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/calibrate_shaper.py', 'timeout': '600.0', 'verbose': 'False'}, 'gcode_shell_command belts_graph': {'command': '/usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/graph_belts.py', 'timeout': '600.0', 'verbose': 'False'}, 'gcode_shell_command delete_graph': {'command': 'sh /usr/data/helper-script/files/improved-shapers/delete_graph.sh', 'timeout': '600.0', 'verbose': 'False'}, 'gcode_shell_command delete_csv': {'command': 'sh /usr/data/helper-script/files/improved-shapers/delete_csv.sh', 'timeout': '600.0', 'verbose': 'False'}, 'gcode_macro INPUT_SHAPER_CALIBRATION': {'description': 'Measure X and Y Axis Resonances and Save values', 'gcode': '\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nRESPOND TYPE=command MSG="Measuring X and Y Resonances..."\nSHAPER_CALIBRATE\nM400\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Input Shaper Calibration complete!"\nSAVE_CONFIG'}, 'gcode_macro TEST_RESONANCES_GRAPHS': {'description': 'Test X and Y Axis Resonances and Generate Graphs', 'gcode': '\nRUN_SHELL_COMMAND CMD=delete_graph\n{% set x_png = params.X_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_x.png") %}\n{% set y_png = params.Y_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_y.png") %}\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nRESPOND TYPE=command MSG="Testing X Resonances..."\nTEST_RESONANCES AXIS=X NAME=x\nM400\nRESPOND TYPE=command MSG="Generating X Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_x_x.csv -o {x_png}"\nRESPOND TYPE=command MSG="X Graph (resonances_x.png) is now available in /Helper-Script/improved-shapers folder."\nRESPOND TYPE=command MSG="Testing Y Resonances..."\nTEST_RESONANCES AXIS=Y NAME=y\nM400\nRESPOND TYPE=command MSG="Generating Y Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_y_y.csv -o {y_png}"\nRESPOND TYPE=command MSG="Y Graph (resonances_y.png) is now available in /Helper-Script/improved-shapers folder."\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Resonances Test complete!"'}, 'gcode_macro BELTS_SHAPER_CALIBRATION': {'description': 'Perform a custom half-axis test to analyze and compare the frequency profiles of individual belts on CoreXY printers', 'gcode': '\nRUN_SHELL_COMMAND CMD=delete_graph\n{% set min_freq = params.FREQ_START|default(5)|float %}\n{% set max_freq = params.FREQ_END|default(133.33)|float %}\n{% set hz_per_sec = params.HZ_PER_SEC|default(1)|float %}\n{% set png_width = params.PNG_WIDTH|default(8)|float %}\n{% set png_height = params.PNG_HEIGHT|default(4.8)|float %}\n{% set png_out_path = params.PNG_OUT_PATH|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/belts_calibration.png") %}\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nTEST_RESONANCES AXIS=1,1 OUTPUT=raw_data NAME=b FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}\nM400\nTEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data NAME=a FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}\nM400\nRESPOND TYPE=command MSG="Generating Belts Frequency Profiles Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=belts_graph PARAMS="-w {png_width} -l {png_height} -n -o {png_out_path} -k /usr/share/klipper /tmp/raw_data_axis=1.000,-1.000_a.csv /tmp/raw_data_axis=1.000,1.000_b.csv"\nRESPOND TYPE=command MSG="Graph (belts_calibration.png) is now available in /Helper-Script/improved-shapers folder."\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Belts Shaper Calibration complete!"'}, 'gcode_macro EXCITATE_AXIS_AT_FREQ': {'description': 'Maintain a specified excitation frequency for a period of time to diagnose and locate a vibration source', 'gcode': '\n{% set frequency = params.FREQUENCY|default(25)|int %}\n{% set time = params.TIME|default(10)|int %}\n{% set axis = params.AXIS|default("x")|string|lower %}\n{% if axis not in ["x", "y", "a", "b"] %}\n{ action_raise_error("AXIS selection is invalid. Should be either x, y, a or b!") }\n{% endif %}\n{% if axis == "a" %}\n{% set axis = "1,-1" %}\n{% elif axis == "b" %}\n{% set axis = "1,1" %}\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nTEST_RESONANCES OUTPUT=raw_data AXIS={axis} FREQ_START={frequency-1} FREQ_END={frequency+1} HZ_PER_SEC={1/(time/3)}\nM400'}, 'duplicate_pin_override': {'pins': 'PC0, PC5, PB2, ADC_TEMPERATURE'}, 'temperature_fan chamber_fan': {'pin': 'PC0', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'max_power': '1', 'shutdown_speed': '0', 'sensor_type': 'EPCOS 100K B57560G104F', 'sensor_pin': 'PC5', 'min_temp': '0', 'max_temp': '70', 'control': 'watermark', 'max_delta': '2', 'target_temp': '35.0', 'max_speed': '1.0', 'min_speed': '0.0'}, 'temperature_fan mcu_fan': {'pin': 'PB2', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'max_power': '1', 'shutdown_speed': '0', 'sensor_type': 'temperature_mcu', 'min_temp': '0', 'max_temp': '100', 'control': 'watermark', 'max_delta': '2', 'target_temp': '50.0', 'max_speed': '1.0', 'min_speed': '0.0'}, 'output_pin mcu_fan': {'pin': 'PB2', 'pwm': 'True', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'value': '0.00', 'scale': '255', 'shutdown_value': '0.0'}, 'gcode_macro M141': {'description': 'Set Chamber Temperature with slicers', 'gcode': '\n{% set s = params.S|float %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=chamber_fan TARGET={s}\nRESPOND TYPE=command MSG="Chamber target temperature: {s}°C"'}, 'gcode_macro M191': {'description': 'Wait for Chamber Temperature to heat up', 'gcode': '\n{% set s = params.S|float %}\n{% set chamber_temp = printer["temperature_sensor chamber_temp"].temperature|float %}\n{% if s > 0 %}\nM141 S{s}\n{% endif %}\n{% if s > chamber_temp and s <= 90 %}\nM140 S100\nRESPOND TYPE=command MSG="Waiting for the bed to heat up the chamber..."\nTEMPERATURE_WAIT SENSOR="temperature_fan chamber_fan" MINIMUM={s-1}\nRESPOND TYPE=command MSG="Chamber target temperature reached: {s}°C"\nM140 S{s}\n{% endif %}'}, 'gcode_macro M106': {'gcode': '\n{% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}\n{% set fan = 0 %}\n{% set value = 0 %}\n{% if params.P is defined %}\n{% set tmp = params.P|int %}\n{% if tmp < fans %}\n{% set fan = tmp %}\n{% endif %}\n{% endif %}\n{% if params.S is defined %}\n{% set tmp = params.S|float %}\n{% else %}\n{% set tmp = 255 %}\n{% endif %}\n{% if tmp > 0 %}\n{% if fan == 0 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan0_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}\n{% endif %}\n{% endif %}\n{% if fan == 1 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan1_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan1_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}\n{% endif %}\n{% endif %}\n{% if fan == 2 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan2_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}\n{% endif %}\n{% endif %}\n{% endif %}\n{% if value >= 255 %}\n{% set value = 255 %}\n{% endif %}\n{% if params.P is defined and params.P|int == 3 %}\n{% set fan = 1 %}\n{% endif %}\nSET_PIN PIN=fan{fan} VALUE={value}'}, 'prtouch_v2_fan': {'max_speed': '0.5'}, 'output_pin KAMP': {'pin': 'virtual_pin:KAMP_pin', 'value': '1'}, 'output_pin BED_LEVELING': {'pin': 'virtual_pin:BED_LEVELING_pin', 'value': '1'}, 'gcode_macro START_PRINT': {'variable_prepare': '0', 'gcode': '\nWAIT_TEMP_END\nCLEAR_PAUSE\n{% set g28_extruder_temp = printer.custom_macro.g28_ext_temp %}\n{% set bed_temp = printer.custom_macro.default_bed_temp %}\n{% set extruder_temp = printer.custom_macro.default_extruder_temp %}\n{% if \'BED_TEMP\' in params|upper and (params.BED_TEMP|float) %}\n{% set bed_temp = params.BED_TEMP %}\n{% endif %}\n{% if \'EXTRUDER_TEMP\' in params|upper and (params.EXTRUDER_TEMP|float) %}\n{% set extruder_temp = params.EXTRUDER_TEMP %}\n{% endif %}\n{% if printer[\'gcode_macro START_PRINT\'].prepare|int == 0 %}\nPRINT_PREPARE_CLEAR\nCX_ROUGH_G28 EXTRUDER_TEMP={extruder_temp} BED_TEMP={bed_temp}\nCX_NOZZLE_CLEAR\nACCURATE_G28\n{% if printer[\'output_pin KAMP\'].value == 1 %}\nRESPOND TYPE=command MSG="Starting KAMP Bed Mesh..."\nBED_MESH_CLEAR\nBED_MESH_CALIBRATE\nBED_MESH_PROFILE SAVE=kamp\nBED_MESH_PROFILE LOAD=kamp\n{% else %}\n{% if printer[\'output_pin BED_LEVELING\'].value == 1 %}\nRESPOND TYPE=command MSG="Starting Full Bed Mesh..."\nCX_PRINT_LEVELING_CALIBRATION\n{% endif %}\nBED_MESH_PROFILE LOAD=default\n{% endif %}\n{% else %}\nPRINT_PREPARE_CLEAR\n{% endif %}\n{% if printer[\'output_pin KAMP\'].value == 1 %}\n_SMART_PARK\nM109 S{extruder_temp}\nM190 S{bed_temp}\nRESPOND TYPE=command MSG="Starting KAMP line purge..."\n_LINE_PURGE\n{% else %}\nRESPOND TYPE=command MSG="Starting classic line purge..."\nCX_PRINT_DRAW_ONE_LINE\n{% endif %}\nSET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel}'}, 'gcode_macro BED_MESH_CALIBRATE': {'rename_existing': '_BED_MESH_CALIBRATE', 'gcode': '\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set bed_mesh_min = printer.configfile.settings.bed_mesh.mesh_min %}\n{% set bed_mesh_max = printer.configfile.settings.bed_mesh.mesh_max %}\n{% set probe_count = printer.configfile.settings.bed_mesh.probe_count %}\n{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}\n{% set verbose_enable = kamp_settings.verbose_enable | abs %}\n{% set mesh_margin = kamp_settings.mesh_margin | float %}\n{% set fuzz_amount = kamp_settings.fuzz_amount | float %}\n{% set probe_count = probe_count if probe_count|length > 1 else probe_count * 2 %}\n{% set max_probe_point_distance_x = ( bed_mesh_max[0] - bed_mesh_min[0] ) / (probe_count[0] - 1) %}\n{% set max_probe_point_distance_y = ( bed_mesh_max[1] - bed_mesh_min[1] ) / (probe_count[1] - 1) %}\n{% set x_min = all_points | map(attribute=0) | min | default(bed_mesh_min[0]) %}\n{% set y_min = all_points | map(attribute=1) | min | default(bed_mesh_min[1]) %}\n{% set x_max = all_points | map(attribute=0) | max | default(bed_mesh_max[0]) %}\n{% set y_max = all_points | map(attribute=1) | max | default(bed_mesh_max[1]) %}\n{% set fuzz_range = range((0) | int, (fuzz_amount * 100) | int + 1) %}\n{% set adapted_x_min = x_min - mesh_margin - (fuzz_range | random / 100.0) %}\n{% set adapted_y_min = y_min - mesh_margin - (fuzz_range | random / 100.0) %}\n{% set adapted_x_max = x_max + mesh_margin + (fuzz_range | random / 100.0) %}\n{% set adapted_y_max = y_max + mesh_margin + (fuzz_range | random / 100.0) %}\n{% set adapted_x_min = [adapted_x_min , bed_mesh_min[0]] | max %}\n{% set adapted_y_min = [adapted_y_min , bed_mesh_min[1]] | max %}\n{% set adapted_x_max = [adapted_x_max , bed_mesh_max[0]] | min %}\n{% set adapted_y_max = [adapted_y_max , bed_mesh_max[1]] | min %}\n{% set points_x = (((adapted_x_max - adapted_x_min) / max_probe_point_distance_x) | round(method=\'ceil\') | int) + 1 %}\n{% set points_y = (((adapted_y_max - adapted_y_min) / max_probe_point_distance_y) | round(method=\'ceil\') | int) + 1 %}\n{% if (points_x > points_y) %}\n{% set points_y = points_x %}\n{% endif %}\n{% if (points_x < points_y) %}\n{% set points_x = points_y %}\n{% endif %}\n{% if (([points_x, points_y]|max) > 6) %}\n{% set algorithm = "bicubic" %}\n{% set min_points = 4 %}\n{% else %}\n{% set algorithm = "lagrange" %}\n{% set min_points = 3 %}\n{% endif %}\n{% set points_x = [points_x , min_points]|max %}\n{% set points_y = [points_y , min_points]|max %}\n{% set points_x = [points_x , probe_count[0]]|min %}\n{% set points_y = [points_y , probe_count[1]]|min %}\n\n{% if verbose_enable == True %}\n\n{% if printer.exclude_object.objects != [] %}\n\nRESPOND TYPE=command MSG="Algorithm: {algorithm}"\nRESPOND TYPE=command MSG="Default probe count: {probe_count[0]},{probe_count[1]}"\nRESPOND TYPE=command MSG="Adapted probe count: {points_x},{points_y}"\nRESPOND TYPE=command MSG="Default mesh bounds: {bed_mesh_min[0]},{bed_mesh_min[1]}, {bed_mesh_max[0]},{bed_mesh_max[1]}"\n\n{% if mesh_margin > 0 %}\n\nRESPOND TYPE=command MSG="Mesh margin is {mesh_margin}, mesh bounds extended by {mesh_margin}mm."\n\n{% else %}\n\nRESPOND TYPE=command MSG="Mesh margin is 0, margin not increased."\n\n{% endif %}\n\n{% if fuzz_amount > 0 %}\n\nRESPOND TYPE=command MSG="Mesh point fuzzing enabled, points fuzzed up to {fuzz_amount}mm"\n\n{% else %}\n\nRESPOND TYPE=command MSG="Fuzz amount is 0, mesh points not fuzzed."\n\n{% endif %}\n\nRESPOND TYPE=command MSG="Adapted mesh bounds: {adapted_x_min},{adapted_y_min}, {adapted_x_max},{adapted_y_max}"\nRESPOND TYPE=command MSG="KAMP adjustments successful. Happy KAMPing!"\n\n{% else %}\n\nRESPOND TYPE=command MSG="No object detected! Make sure you have enabled Exclude Objets setting in your slicer. Using Full Bed Mesh."\nG4 P5000\n\n{% endif %}\n\n{% endif %}\n\n_BED_MESH_CALIBRATE mesh_min={adapted_x_min},{adapted_y_min} mesh_max={adapted_x_max},{adapted_y_max} ALGORITHM={algorithm} PROBE_COUNT={points_x},{points_y}'}, 'gcode_macro _LINE_PURGE': {'description': 'A purge macro that adapts to be near your actual printed objects', 'gcode': '\n{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}\n{% set cross_section = printer.configfile.settings.extruder.max_extrude_cross_section | float %}\n{% if printer.firmware_retraction is defined %}\n{% set RETRACT = G10 | string %}\n{% set UNRETRACT = G11 | string %}\n{% else %}\n{% set RETRACT = \'G1 E-0.5 F2400\' | string %}\n{% set UNRETRACT = \'G1 E0.5 F2400\' | string %}\n{% endif %}\n{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}\n{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}\n{% set verbose_enable = printer["gcode_macro _KAMP_Settings"].verbose_enable | abs %}\n{% set purge_height = printer["gcode_macro _KAMP_Settings"].purge_height | float %}\n{% set tip_distance = printer["gcode_macro _KAMP_Settings"].tip_distance | float %}\n{% set purge_margin = printer["gcode_macro _KAMP_Settings"].purge_margin | float %}\n{% set purge_amount = printer["gcode_macro _KAMP_Settings"].purge_amount | float %}\n{% set flow_rate = printer["gcode_macro _KAMP_Settings"].flow_rate | float %}\n{% set rapid_move = 10 %}\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set purge_x_min = (all_points | map(attribute=0) | min | default(0)) %}\n{% set purge_x_max = (all_points | map(attribute=0) | max | default(0)) %}\n{% set purge_y_min = (all_points | map(attribute=1) | min | default(0)) %}\n{% set purge_y_max = (all_points | map(attribute=1) | max | default(0)) %}\n{% set detect_object = purge_x_min + purge_x_max + purge_y_min + purge_y_max %}\n{% set purge_x_center = ([((purge_x_max + purge_x_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% set purge_y_center = ([((purge_y_max + purge_y_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% if (purge_x_center + purge_amount + rapid_move) > bed_x_max %}\n{% set purge_x_center = (bed_x_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% if (purge_y_center + purge_amount + rapid_move) > bed_y_max %}\n{% set purge_y_center = (bed_y_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% set purge_x_origin_low = (purge_x_min - purge_margin) %}\n{% set purge_x_origin_high = (purge_x_max + purge_margin) %}\n{% set purge_y_origin_low = (purge_y_min - purge_margin) %}\n{% set purge_y_origin_high = (purge_y_max + purge_margin) %}\n{% set purge_move_speed = (flow_rate / 5.0) * 60 | float %}\n\n{% if cross_section < 5 %}\n\nRESPOND TYPE=command MSG="[Extruder] max_extrude_cross_section is insufficient for line purge, please set it to 5 or greater. Purge skipped."\n\n{% else %}\n\n{% if verbose_enable == True %}\n\nRESPOND TYPE=command MSG="Moving filament tip {tip_distance}mm"\n\n{% endif %}\n\n{% if detect_object == 0 %}\n\nRESPOND TYPE=command MSG="No object detected! Using classic purge line."\n\n{% elif purge_y_origin_low > 0 %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_low} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_x_origin_low > 0 %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_low}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_y_origin_high < bed_y_max %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_high} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_x_origin_high < bed_x_max %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_high}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% else %}\n\nRESPOND TYPE=command MSG="No space for purge line! Using classic purge line."\n\n{% endif %}\n\nSAVE_GCODE_STATE NAME=Prepurge_State\n\n{% if detect_object == 0 %}\n\nG92 E0\nG1 Z0.1 F600\nM83\n{RETRACT}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nM204 S12000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000\nM220 S100\nM221 S100\nG1 Z2.0 F1200\nG1 X0.1 Y20 Z0.3 F6000.0\nG1 X0.1 Y180.0 Z0.3 F3000.0 E10.0\nG1 X0.4 Y180.0 Z0.3 F3000.0\nG1 X0.4 Y20.0 Z0.3 F3000.0 E10.0\nG1 Y10.0 F3000.0\nG1 Z2.0 F3000.0\nG92 E0\nM82\nG1 F12000\nG21\n\n{% elif purge_y_origin_low > 0 %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_center} Y{purge_y_origin_low}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_x_origin_low > 0 %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_origin_low} Y{purge_y_center}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_y_origin_high < bed_y_max %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_center} Y{purge_y_origin_high}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_x_origin_high < bed_x_max %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_origin_high} Y{purge_y_center}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% else %}\n\nG92 E0\nG1 Z0.1 F600\nM83\n{RETRACT}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nM204 S12000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000\nM220 S100\nM221 S100\nG1 Z2.0 F1200\nG1 X0.1 Y20 Z0.3 F6000.0\nG1 X0.1 Y180.0 Z0.3 F3000.0 E10.0\nG1 X0.4 Y180.0 Z0.3 F3000.0\nG1 X0.4 Y20.0 Z0.3 F3000.0 E10.0\nG1 Y10.0 F3000.0\nG1 Z2.0 F3000.0\nG92 E0\nM82\nG1 F12000\nG21\n\n{% endif %}\n\nRESTORE_GCODE_STATE NAME=Prepurge_State\n\n{% endif %}'}, 'gcode_macro _SMART_PARK': {'description': 'Parks your printhead near the print area for pre-print hotend heating.', 'gcode': '\n{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}\n{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}\n{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}\n{% set z_height = kamp_settings.smart_park_height | float %}\n{% set purge_margin = kamp_settings.purge_margin | float %}\n{% set purge_amount = kamp_settings.purge_amount | float %}\n{% set verbose_enable = kamp_settings.verbose_enable | abs %}\n{% set center_x = bed_x_max / 2 %}\n{% set center_y = bed_y_max / 2 %}\n{% set axis_minimum_x = printer.toolhead.axis_minimum.x | float %}\n{% set axis_minimum_y = printer.toolhead.axis_minimum.y | float %}\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set x_min = (all_points | map(attribute=0) | min | default(0)) %}\n{% set x_max = (all_points | map(attribute=0) | max | default(0)) %}\n{% set y_min = (all_points | map(attribute=1) | min | default(0)) %}\n{% set y_max = (all_points | map(attribute=1) | max | default(0)) %}\n{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}\n{% set rapid_move = 10 %}\n{% set park_x_center = ([((x_max + x_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% set park_y_center = ([((y_max + y_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% if (park_x_center + purge_amount + rapid_move) > bed_x_max %}\n{% set park_x_center = (bed_x_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% if (park_y_center + purge_amount + rapid_move) > bed_y_max %}\n{% set park_y_center = (bed_y_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% set park_x_origin_low = (x_min - purge_margin) %}\n{% set park_x_origin_high = (x_max + purge_margin) %}\n{% set park_y_origin_low = (y_min - purge_margin) %}\n{% set park_y_origin_high = (y_max + purge_margin) %}\n{% set detect_object = (x_min + x_max + y_min + y_max) %}\n{% if detect_object == 0 %}\n{% set x_min = 10 %}\n{% set y_min = 10 %}\n{% set z_height = 2 %}\n{% elif park_y_origin_low > 0 %}\n{% set x_min = park_x_center %}\n{% set y_min = park_y_origin_low %}\n{% elif park_x_origin_low > 0 %}\n{% set x_min = park_x_origin_low %}\n{% set y_min = park_y_center %}\n{% elif park_y_origin_high < bed_y_max %}\n{% set x_min = park_x_center %}\n{% set y_min = park_y_origin_high %}\n{% elif park_x_origin_high < bed_x_max %}\n{% set x_min = park_x_origin_high %}\n{% set y_min = park_y_center %}\n{% else %}\n{% set x_min = 10 %}\n{% set y_min = 10 %}\n{% set z_height = 2 %}\n{% endif %}\n\n{% if verbose_enable == True %}\n\nRESPOND TYPE=command MSG="Smart Park location: {x_min},{y_min}"\n\n{% endif %}\n\nSAVE_GCODE_STATE NAME=Presmartpark_State\n\nG90\n{% if printer.toolhead.position.z < z_height %}\n\nG0 Z{z_height}\n\n{% endif %}\n\nG0 X{x_min} Y{y_min} F{travel_speed}\nG0 Z{z_height}\n\nRESTORE_GCODE_STATE NAME=Presmartpark_State'}, 'gcode_macro DEFINE_OBJECT': {'gcode': '\nEXCLUDE_OBJECT_DEFINE {rawparams}'}, 'gcode_macro START_CURRENT_OBJECT': {'gcode': '\nEXCLUDE_OBJECT_START NAME={params.NAME}'}, 'gcode_macro END_CURRENT_OBJECT': {'gcode': '\nEXCLUDE_OBJECT_END {% if params.NAME %}NAME={params.NAME}{% endif %}'}, 'gcode_macro LIST_OBJECTS': {'gcode': '\nEXCLUDE_OBJECT_DEFINE'}, 'gcode_macro LIST_EXCLUDED_OBJECTS': {'gcode': '\nEXCLUDE_OBJECT'}, 'gcode_macro REMOVE_ALL_EXCLUDED': {'gcode': '\nEXCLUDE_OBJECT RESET=1'}, 'gcode_macro _KAMP_Settings': {'description': 'This macro contains all adjustable settings for KAMP', 'variable_verbose_enable': 'True', 'variable_mesh_margin': '0', 'variable_fuzz_amount': '0', 'variable_purge_height': '0.8', 'variable_tip_distance': '0', 'variable_purge_margin': '10', 'variable_purge_amount': '50', 'variable_flow_rate': '12', 'variable_smart_park_height': '10', 'gcode': '\nRESPOND TYPE=command MSG="Running the KAMP_Settings macro does nothing, it\'s only used for storing KAMP settings."'}, 'mcu': {'serial': '/dev/ttyS7', 'baud': '230400', 'restart_method': 'command'}, 'mcu nozzle_mcu': {'serial': '/dev/ttyS1', 'baud': '230400', 'restart_method': 'command'}, 'mcu leveling_mcu': {'serial': '/dev/ttyS9', 'baud': '230400', 'restart_method': 'command'}, 'verify_heater extruder': {}, 'verify_heater heater_bed': {'check_gain_time': '120', 'heating_gain': '1.0', 'hysteresis': '10'}, 'mcu rpi': {'serial': '/tmp/klipper_host_mcu'}, 'bl24c16f': {'i2c_mcu': 'rpi', 'i2c_bus': 'i2c.2', 'i2c_speed': '400000'}, 'idle_timeout': {'timeout': '99999999'}, 'virtual_sdcard': {'path': '/usr/data/printer_data/gcodes'}, 'gcode_arcs': {'resolution': '1.0'}, 'temperature_sensor mcu_temp': {'sensor_type': 'temperature_mcu', 'min_temp': '0', 'max_temp': '100'}, 'temperature_sensor chamber_temp': {'sensor_type': 'EPCOS 100K B57560G104F', 'sensor_pin': 'PC5', 'min_temp': '0', 'max_temp': '125'}, 'stepper_x': {'step_pin': 'PC2', 'dir_pin': '!PB9', 'enable_pin': '!PC3', 'microsteps': '32', 'rotation_distance': '72', 'endstop_pin': 'tmc2209_stepper_x:virtual_endstop', 'position_endstop': '306.5', 'position_min': '-2', 'position_max': '306.5', 'homing_speed': '36', 'homing_retract_dist': '0'}, 'tmc2209 stepper_x': {'uart_pin': 'PA9', 'interpolate': 'True', 'run_current': '1.5', 'hold_current': '1.0', 'sense_resistor': '0.100', 'stealthchop_threshold': '0', 'uart_address': '3', 'diag_pin': '^PB12', 'driver_sgthrs': '65'}, 'stepper_y': {'step_pin': 'PB8', 'dir_pin': '!PB7', 'enable_pin': '!PC3', 'microsteps': '32', 'rotation_distance': '72', 'endstop_pin': 'tmc2209_stepper_y:virtual_endstop', 'position_endstop': '-2', 'position_min': '-2', 'position_max': '306', 'homing_speed': '36', 'homing_retract_dist': '0'}, 'tmc2209 stepper_y': {'uart_pin': 'PA10', 'interpolate': 'True', 'run_current': '1.5', 'hold_current': '1.0', 'sense_resistor': '0.100', 'stealthchop_threshold': '0', 'uart_address': '3', 'diag_pin': '^PB13', 'driver_sgthrs': '65'}, 'stepper_z': {'step_pin': 'PB6', 'dir_pin': '!PB5', 'enable_pin': '!PC3', 'microsteps': '16', 'rotation_distance': '8', 'gear_ratio': '64:20', 'endstop_pin': 'tmc2209_stepper_z:virtual_endstop', 'position_endstop': '0', 'position_max': '305', 'position_min': '-10', 'homing_speed': '10', 'second_homing_speed': '1', 'homing_retract_dist': '2.0'}, 'tmc2209 stepper_z': {'uart_pin': 'PA11', 'uart_address': '3', 'run_current': '0.8', 'diag_pin': '^PB14', 'stealthchop_threshold': '0', 'sense_resistor': '0.100', 'driver_sgthrs': '0'}, 'extruder': {'max_extrude_only_distance': '1000.0', 'max_extrude_cross_section': '80', 'step_pin': 'nozzle_mcu:PB1', 'dir_pin': 'nozzle_mcu:PB0', 'enable_pin': '!nozzle_mcu:PB2', 'microsteps': '16', 'rotation_distance': '6.9', 'nozzle_diameter': '0.400', 'filament_diameter': '1.750', 'heater_pin': 'nozzle_mcu:PB7', 'sensor_type': 'EPCOS 100K B57560G104F', 'sensor_pin': 'nozzle_mcu:PA0', 'pressure_advance': '0.04', 'pressure_advance_smooth_time': '0.040', 'control': 'pid', 'pid_kp': '25.013', 'pid_ki': '2.566', 'pid_kd': '60.966', 'min_temp': '0', 'max_temp': '320'}, 'tmc2209 extruder': {'uart_pin': 'nozzle_mcu:PB11', 'tx_pin': 'nozzle_mcu:PB10', 'uart_address': '3', 'run_current': '0.55', 'sense_resistor': '0.150', 'stealthchop_threshold': '0'}, 'heater_bed': {'heater_pin': 'PC8', 'sensor_type': 'NTC 100K beta 3950', 'sensor_pin': 'PC4', 'min_temp': '0', 'max_temp': '125', 'control': 'pid', 'pid_kp': '52.075', 'pid_ki': '1.036', 'pid_kd': '654.186'}, 'filament_switch_sensor filament_sensor': {'pause_on_runout': 'true', 'switch_pin': '!PC15', 'runout_gcode': "\n{% if printer.extruder.can_extrude|lower == 'true' %}\nG91\nG0 E30 F600\nG90\n{% endif %}"}, 'filament_switch_sensor filament_sensor_2': {'pause_on_runout': 'true', 'switch_pin': '!nozzle_mcu:PA10'}, 'multi_pin heater_fans': {'pins': 'nozzle_mcu:PB5,PB2'}, 'heater_fan hotend_fan': {'pin': 'multi_pin:heater_fans', 'heater': 'extruder', 'heater_temp': '40'}, 'static_digital_output my_fan_output_pins': {'pins': 'nozzle_mcu: PB6'}, 'output_pin fan0': {'pin': '!nozzle_mcu: PB8', 'pwm': 'True', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'value': '0.00', 'scale': '255', 'shutdown_value': '0.0'}, 'output_pin fan1': {'pin': 'PC0', 'pwm': 'True', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'value': '0.00', 'scale': '255', 'shutdown_value': '0.0'}, 'output_pin fan2': {'pin': 'PB1', 'pwm': 'True', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'value': '0.00', 'scale': '255', 'shutdown_value': '0.0'}, 'output_pin LED': {'pin': 'PB0', 'pwm': 'True', 'cycle_time': '0.010', 'value': '1'}, 'output_pin power': {'pin': 'PC9'}, 'adxl345': {'cs_pin': 'nozzle_mcu:PA4', 'spi_speed': '5000000', 'axes_map': 'x,-z,y', 'spi_software_sclk_pin': 'nozzle_mcu:PA5', 'spi_software_mosi_pin': 'nozzle_mcu:PA7', 'spi_software_miso_pin': 'nozzle_mcu:PA6'}, 'resonance_tester': {'accel_chip': 'adxl345', 'accel_per_hz': '75', 'probe_points': '\n150,150,10'}, 'prtouch_v2': {'pr_version': '2', 'step_base': '2', 'z_offset': '0', 'noz_ex_com': '0.09', 'tilt_corr_dis': '0.05', 'tri_min_hold': '6000,10000', 'tri_max_hold': '13000,60000', 'pres_cnt': '4', 'pres0_clk_pins': 'leveling_mcu:PA7', 'pres0_sdo_pins': 'leveling_mcu:PA4', 'pres1_clk_pins': 'leveling_mcu:PA6', 'pres1_sdo_pins': 'leveling_mcu:PA3', 'pres2_clk_pins': 'leveling_mcu:PA2', 'pres2_sdo_pins': 'leveling_mcu:PA0', 'pres3_clk_pins': 'leveling_mcu:PA5', 'pres3_sdo_pins': 'leveling_mcu:PA1', 'show_msg': 'False', 'step_swap_pin': 'PC10', 'pres_swap_pin': 'leveling_mcu:PB1', 'g28_wait_cool_down': 'true', 'pa_clr_down_mm': '-0.15', 'clr_noz_start_x': '130', 'clr_noz_start_y': '303', 'clr_noz_len_x': '40', 'clr_noz_len_y': '2', 'speeds': '2.5,1.0', 'tri_hftr_cut': '2,1', 'tri_lftr_k1': '0.50,0.15', 'tri_min_hold_1': '6000,10000', 'tri_min_hold_2': '6000,10000', 'tri_min_hold_3': '6000,10000', 'tri_min_hold_4': '6000,10000', 'tri_min_hold_5': '6000,10000', 'tri_min_hold_6': '6000,10000', 'tri_min_hold_7': '6000,10000', 'tri_min_hold_8': '6000,10000', 'tri_min_hold_9': '6000,10000', 'tri_min_hold_10': '6000,10000', 'tri_min_hold_11': '6000,10000', 'tri_min_hold_12': '6000,10000', 'tri_min_hold_13': '6000,10000', 'tri_min_hold_14': '6000,10000', 'tri_min_hold_15': '6000,10000', 'tri_min_hold_16': '6000,10000', 'tri_min_hold_17': '6000,10000', 'tri_min_hold_18': '6000,10000', 'tri_min_hold_19': '6000,10000', 'tri_min_hold_20': '6000,10000', 'tri_min_hold_21': '6000,10000', 'tri_min_hold_22': '6000,10000', 'tri_min_hold_23': '6000,10000', 'tri_min_hold_24': '6000,10000', 'tri_min_hold_25': '6000,10000', 'tri_min_hold_26': '6000,10000', 'tri_min_hold_27': '6000,10000', 'tri_min_hold_28': '6000,10000', 'tri_min_hold_29': '6000,10000', 'tri_min_hold_30': '6000,10000', 'tri_min_hold_31': '6000,10000', 'tri_min_hold_32': '6000,10000', 'tri_min_hold_33': '6000,10000', 'tri_min_hold_34': '6000,10000', 'tri_min_hold_35': '6000,10000', 'tri_min_hold_36': '6000,10000', 'tri_max_hold_1': '13000,60000', 'tri_max_hold_2': '13000,60000', 'tri_max_hold_3': '13000,60000', 'tri_max_hold_4': '13000,60000', 'tri_max_hold_5': '13000,60000', 'tri_max_hold_6': '13000,60000', 'tri_max_hold_7': '13000,60000', 'tri_max_hold_8': '13000,60000', 'tri_max_hold_9': '13000,60000', 'tri_max_hold_10': '13000,60000', 'tri_max_hold_11': '13000,60000', 'tri_max_hold_12': '13000,60000', 'tri_max_hold_13': '13000,60000', 'tri_max_hold_14': '13000,60000', 'tri_max_hold_15': '13000,60000', 'tri_max_hold_16': '13000,60000', 'tri_max_hold_17': '13000,60000', 'tri_max_hold_18': '13000,60000', 'tri_max_hold_19': '13000,60000', 'tri_max_hold_20': '13000,60000', 'tri_max_hold_21': '13000,60000', 'tri_max_hold_22': '13000,60000', 'tri_max_hold_23': '13000,60000', 'tri_max_hold_24': '13000,60000', 'tri_max_hold_25': '13000,60000', 'tri_max_hold_26': '13000,60000', 'tri_max_hold_27': '13000,60000', 'tri_max_hold_28': '13000,60000', 'tri_max_hold_29': '13000,60000', 'tri_max_hold_30': '13000,60000', 'tri_max_hold_31': '13000,60000', 'tri_max_hold_32': '13000,60000', 'tri_max_hold_33': '13000,60000', 'tri_max_hold_34': '13000,60000', 'tri_max_hold_35': '13000,60000', 'tri_max_hold_36': '13000,60000'}, 'bed_mesh': {'speed': '150', 'mesh_min': '5,5', 'mesh_max': '295,295', 'probe_count': '6,6', 'fade_start': '5.0', 'fade_end': '50.0'}, 'display_status': {}, 'printer': {'kinematics': 'corexy', 'max_velocity': '800', 'max_accel': '20000', 'max_accel_to_decel': '20000', 'max_z_velocity': '20', 'square_corner_velocity': '5.0', 'square_corner_max_velocity': '200.0', 'max_z_accel': '300'}, 'pause_resume': {}, 'exclude_object': {}, 'input_shaper': {'shaper_type_x': '2hump_ei', 'shaper_freq_x': '39.0', 'shaper_type_y': 'zv', 'shaper_freq_y': '48.0'}}, 'settings': {'mcu': {'serial': '/dev/ttyS7', 'baud': 230400, 'restart_method': 'command', 'max_stepper_error': 2.5e-05}, 'mcu nozzle_mcu': {'serial': '/dev/ttyS1', 'baud': 230400, 'restart_method': 'command', 'max_stepper_error': 2.5e-05}, 'mcu leveling_mcu': {'serial': '/dev/ttyS9', 'baud': 230400, 'restart_method': 'command', 'max_stepper_error': 2.5e-05}, 'mcu rpi': {'serial': '/tmp/klipper_host_mcu', 'max_stepper_error': 2.5e-05}, 'force_move': {'enable_force_move': True}, 'gcode_macro xyz_ready': {'gcode': '', 'description': 'G-Code macro', 'variable_x_ready': '0', 'variable_y_ready': '0', 'variable_z_ready': '0', 'variable_xy_moved': '0', 'variable_z_moved': '0', 'variable_safe_z': '3'}, 'gcode_macro _if_home_z': {'gcode': '\n{% if printer[\'gcode_macro xyz_ready\'].z_ready|int == 1 %}\n{% if printer.toolhead.position.z|int < 5 %}\n{% set z_park = 5.0 - printer.toolhead.position.z|int %}\nG91\nG1 z{z_park} F600\nG90\n{% endif %}\n{% else %}\n{% if printer[\'gcode_macro xyz_ready\'].z_moved|int == 0 %}\n{% if printer.print_stats.z_pos|float <= 20.0 or printer.print_stats.power_loss == 1 %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE={printer["gcode_macro PRINTER_PARAM"].z_safe_g28} VELOCITY=10\n{% else %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE=0.1 VELOCITY=10\n{% endif %}\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=1\n{% endif %}\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro _if_move_xy': {'gcode': '\n_IF_HOME_Z\n{% if printer[\'gcode_macro xyz_ready\'].xy_moved|int == 0 %}\n{action_respond_info("move xy\\n")}\n\nFORCE_MOVE STEPPER=stepper_y DISTANCE=-14 VELOCITY=50\nFORCE_MOVE STEPPER=stepper_y DISTANCE=7 VELOCITY=50\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=1\nG4 P1000\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro _home_x': {'gcode': "\n_IF_MOVE_XY\n\n{% if printer['gcode_macro xyz_ready'].x_ready|int == 1 %}\n{% if (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x)|round < 10 %}\n{% set x_park = (10 - (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x))|round %}\n{% if x_park > 0 %}\nG91\nG1 x-{x_park} F3600\nG90\nG4 P1000\n{% endif %}\n{% endif %}\n{% endif %}\n\n\n\n\nG28 X\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=1\n\nG91\nG1 x-10 F3600\nG90\n\nG4 P2000", 'description': 'G-Code macro'}, 'gcode_macro _home_y': {'gcode': "\n_IF_MOVE_XY\n\n{% if printer['gcode_macro xyz_ready'].y_ready|int == 1 %}\n{% if printer.toolhead.position.y|round < 8 %}\n{% set y_park = 8 - printer.toolhead.position.y|round %}\n{% if y_park > 0 %}\nG91\nG1 y{y_park} F3600\nG90\nG4 P1000\n{% endif %}\n{% endif %}\n{% endif %}\n\n\n\n\nG28 Y\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=1\n\nG91\nG1 y10 F3600\nG90\n\nG4 P2000", 'description': 'G-Code macro'}, 'gcode_macro _home_z': {'gcode': '\n{% if printer[\'gcode_macro xyz_ready\'].y_ready|int == 1 %}\n{% if printer[\'gcode_macro xyz_ready\'].x_ready|int == 1 %}\n_IF_HOME_Z\n{% endif %}\n{% endif %}\n{% if printer.print_stats.z_pos|float >= 260.0 %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE=-8 VELOCITY=10\n{% endif %}\n\n{% set POSITION_X = printer.configfile.settings[\'stepper_x\'].position_max/2 %}\n{% set POSITION_Y = printer.configfile.settings[\'stepper_y\'].position_max/2 %}\n\nG91\n{% set x_park = POSITION_X - printer.toolhead.position.x|int %}\n{% set y_park = POSITION_Y - printer.toolhead.position.y|int %}\n{action_respond_info("x_park = %s \\n" % (x_park))}\n{action_respond_info("y_park = %s \\n" % (y_park))}\nG1 x{x_park} y{y_park} F3600\nG90\n\n\nG28 Z\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=1', 'description': 'G-Code macro'}, 'homing_override': {'axes': 'xyz', 'gcode': '\nM220 S100\n\n\n\n{% set x_axes = printer.toolhead.homed_axes %}\n{% if x_axes is defined and x_axes[0] is defined %}\n{action_respond_info(\n"x_axes: %s \\n"\n% (x_axes))}\n{% else %}\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=0\n{action_respond_info(\n"x_axes is NULL\\n")}\n{% endif %}\n\n{% if x_axes is not defined or x_axes[2] is not defined %}\nBED_MESH_CLEAR\n{% endif %}\n\n{% if x_axes is defined and x_axes[0] is defined and x_axes[1] is defined %}\n{action_respond_info("x_axes: %s \\n"% (x_axes))}\n{% set position_y = printer.toolhead.position.y|int %}\n{% set max_y_position = printer["gcode_macro PRINTER_PARAM"].max_y_position|int %}\n{% if position_y >= max_y_position %}\nG91\nG0 Y-10 F3600\nG90\n{% endif %}\n{% endif %}\n\n{% set home_all = \'X\' not in params and \'Y\' not in params %}\n{% if \'Z\' in params and \'X\' not in params and \'Y\' not in params %}\n{% if x_axes[0] is defined and x_axes[1] is defined %}\n{% set home_all = 0 %}\n{% endif %}\n{% endif %}\n\n{% if home_all or \'X\' in params %}\n_HOME_X\n{% endif %}\n\n{% if home_all or \'Y\' in params %}\n_HOME_Y\n{% endif %}\n\n{% if home_all or \'X\' in params %}\n_HOME_X\n{% endif %}\n\n{% if home_all or \'Y\' in params %}\n_HOME_Y\n{% endif %}\n\n{% if home_all or \'Z\' in params %}\n_HOME_Z\n{% endif %}\nBED_MESH_PROFILE LOAD="default"\n\n\n\n\nG4 P500'}, 'gcode_macro printer_param': {'gcode': '', 'description': 'G-Code macro', 'variable_z_safe_pause': '0.0', 'variable_z_safe_g28': 3.0, 'variable_max_x_position': '300.0', 'variable_max_y_position': '300.0', 'variable_max_z_position': '300.0', 'variable_fans': '3', 'variable_auto_g29': '0', 'variable_fan0_min': '25', 'variable_fan1_min': '50', 'variable_fan2_min': '180', 'variable_fan2_speed': '0', 'variable_hotend_temp': '0', 'variable_e_min_current': '0.27'}, 'gcode_macro autotune_shapers': {'gcode': '', 'description': 'G-Code macro'}, 'gcode_macro load_material_close_fan2': {'gcode': "\nSAVE_GCODE_STATE NAME=myMoveState\n{% if printer['output_pin fan2'].value > 0.0 %}\nSET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value}\nM107 P2\n{% endif %}\nRESTORE_E_CURRENT", 'description': 'G-Code macro', 'variable_fan2_value': '0'}, 'gcode_macro load_material_restore_fan2': {'gcode': '\n{% set fan2_value = printer[\'gcode_macro LOAD_MATERIAL_CLOSE_FAN2\'].fan2_value|float %}\nRESTORE_GCODE_STATE NAME=myMoveState\n{% if fan2_value > 0.0 %}\n{% set s_value = (fan2_value * 255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) * 255 / (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) %}\nM106 P2 S{s_value}\nSET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE=0\n{% endif %}\nSET_E_MIN_CURRENT', 'description': 'G-Code macro'}, 'gcode_macro set_e_min_current': {'gcode': "\n{% set e_current = printer['gcode_macro PRINTER_PARAM'].e_min_current %}\nM400\nSET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current}\nG4 P2000", 'description': 'G-Code macro'}, 'gcode_macro restore_e_current': {'gcode': "\n{% set e_current = printer.configfile.settings['tmc2209 extruder'].run_current %}\nM400\nSET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current}\nG4 P2000", 'description': 'G-Code macro'}, 'gcode_macro load_material': {'gcode': '\nLOAD_MATERIAL_CLOSE_FAN2\nM109 S{printer.custom_macro.default_extruder_temp}\nG91\nG1 E80 F180\nLOAD_MATERIAL_RESTORE_FAN2', 'description': 'G-Code macro'}, 'gcode_macro quit_material': {'gcode': '\nSAVE_GCODE_STATE NAME=myMoveState\nRESTORE_E_CURRENT\nM109 S{printer.custom_macro.default_extruder_temp}\nM83\nG1 E10 F300\nG1 E-15 F3000\nG1 E-22.4700 F2400\nG1 E-6.4200 F1200\nG1 E-3.2100 F720\nG1 E5.0000 F356\nG1 E-5.0000 F384\nG1 E5.0000 F412\nG1 E-5.0000 F440\nG1 E5.0000 F467\nG1 E-5.0000 F495\nG1 E5.0000 F523\nG1 E-5.0000 F3000\nG1 E-15 F3000\nSET_E_MIN_CURRENT\nRESTORE_GCODE_STATE NAME=myMoveState', 'description': 'G-Code macro'}, 'gcode_macro qmode': {'gcode': '\n{% set printer_state = printer.print_stats.state %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 0 %}\n{% if printer_state == "printing" or printer_state == "paused" %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel VALUE={printer.toolhead.max_accel}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel_to_decel VALUE={printer.toolhead.max_accel_to_decel}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=velocity VALUE={printer.toolhead.max_velocity}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=square_corner_velocity VALUE={printer.toolhead.square_corner_velocity}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=pressure_advance VALUE={printer.extruder.pressure_advance}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=speed_factor VALUE={printer.gcode_move.speed_factor}\nSET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=0\nSET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=0\nSET_TMC_CURRENT STEPPER=stepper_x CURRENT=1.0\nSET_TMC_CURRENT STEPPER=stepper_y CURRENT=1.0\nG4 P1000\n\n\nSET_VELOCITY_LIMIT ACCEL=2500\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500\nSET_VELOCITY_LIMIT VELOCITY=150\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nSET_PRESSURE_ADVANCE ADVANCE=0.05\nM220 S50\n\n{% set tmp = printer[\'output_pin fan0\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={tmp}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan0_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\nSET_PIN PIN=fan0 VALUE={tmp}\n{% endif %}\n\n{% set tmp = printer[\'output_pin fan1\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer[\'output_pin fan1\'].value * 255}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan1_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\nSET_PIN PIN=fan1 VALUE={tmp}\n{% endif %}\n\n{% set tmp = printer[\'output_pin fan2\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer[\'output_pin fan2\'].value * 255}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan2_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\nSET_PIN PIN=fan2 VALUE={tmp}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=1\nSET_QMODE_FLAG FLAG=1\n{% endif %}\n{% endif %}', 'description': 'G-Code macro', 'variable_flag': '0', 'variable_accel': '0', 'variable_accel_to_decel': '0', 'variable_velocity': '0', 'variable_square_corner_velocity': '0', 'variable_pressure_advance': '0.0', 'variable_fan0_value': '0.00', 'variable_fan1_value': '0.00', 'variable_fan2_value': '0.00', 'variable_speed_factor': '0', 'variable_max_accel': '2500', 'variable_max_accel_to_decel': '2500'}, 'gcode_macro qmode_exit': {'gcode': '\n{% set printer_state = printer.print_stats.state %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 %}\n{% if printer_state == "printing" or printer_state == "paused" %}\nSET_VELOCITY_LIMIT ACCEL={printer[\'gcode_macro Qmode\'].accel}\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer[\'gcode_macro Qmode\'].accel_to_decel}\nSET_VELOCITY_LIMIT VELOCITY={printer[\'gcode_macro Qmode\'].velocity}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={printer[\'gcode_macro Qmode\'].square_corner_velocity}\nSET_PRESSURE_ADVANCE ADVANCE={printer[\'gcode_macro Qmode\'].pressure_advance}\nM220 S{printer[\'gcode_macro Qmode\'].speed_factor * 100}\n\n{% set X_RUN_CUR = printer.configfile.settings[\'tmc2209 stepper_x\'].run_current %}\n{% set Y_RUN_CUR = printer.configfile.settings[\'tmc2209 stepper_y\'].run_current %}\nSET_TMC_CURRENT STEPPER=stepper_x CURRENT={X_RUN_CUR}\nSET_TMC_CURRENT STEPPER=stepper_y CURRENT={Y_RUN_CUR}\nSET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=1\nSET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=1\nG4 P1000\n\n{% if printer[\'output_pin fan0\'].value != 0 %}\n{action_respond_info("fan0_value = %s" % printer[\'gcode_macro Qmode\'].fan0_value)}\nSET_PIN PIN=fan0 VALUE={printer[\'gcode_macro Qmode\'].fan0_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE=0\n{% endif %}\n{% if printer[\'output_pin fan1\'].value != 0 %}\n{action_respond_info("fan1_value = %s" % printer[\'gcode_macro Qmode\'].fan1_value)}\nSET_PIN PIN=fan1 VALUE={printer[\'gcode_macro Qmode\'].fan1_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE=0\n{% endif %}\n{% if printer[\'output_pin fan2\'].value != 0 %}\n{action_respond_info("fan2_value = %s" % printer[\'gcode_macro Qmode\'].fan2_value)}\nSET_PIN PIN=fan2 VALUE={printer[\'gcode_macro Qmode\'].fan2_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE=0\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=0\nSET_QMODE_FLAG FLAG=0\n{% endif %}\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro m204': {'gcode': '\n\n{% set get_params = "" %}\n{% set qmode_max_accel = printer[\'gcode_macro Qmode\'].max_accel|string %}\n{% if \'S\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.S|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'S\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'S\' + params.S) %}\n{% endif %}\n{% endif %}\n{% if \'P\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.P|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'P\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'P\' + params.P) %}\n{% endif %}\n{% endif %}\n{% if \'T\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.T|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'T\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'T\' + params.T) %}\n{% endif %}\n{% endif %}\nM204.1 {get_params}', 'rename_existing': 'M204.1', 'description': 'G-Code macro'}, 'gcode_macro m205': {'gcode': "\n{% if 'X' in params %}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.X}\n{% elif 'Y' in params %}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.Y}\n{% endif %}", 'description': 'G-Code macro'}, 'gcode_macro m107': {'gcode': '\n{% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}\n{% if params.P is defined %}\n{% if params.P|int < fans %}\nSET_PIN PIN=fan{params.P|int} VALUE=0\n{% else %}\nSET_PIN PIN=fan0 VALUE=0\n{% endif %}\n{% else %}\nSET_PIN PIN=fan0 VALUE=0\nSET_PIN PIN=fan2 VALUE=0\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro m900': {'gcode': "\n{% if 'K' in params %}\n{% if 'E' in params %}\nSET_PRESSURE_ADVANCE EXTRUDER={params.E} ADVANCE={params.K}\n{% else %}\nSET_PRESSURE_ADVANCE ADVANCE={params.K}\n{% endif %}\n{% endif %}", 'description': 'G-Code macro'}, 'delayed_gcode wait_temp': {'gcode': '\n{% set cur_temp = printer.extruder.temperature %}\n{% if cur_temp|int < 40 %}\nWAIT_TEMP_END\n{% else %}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=5\n{% endif %}', 'initial_duration': 0.0}, 'gcode_macro wait_temp_start': {'gcode': '\n{action_respond_info("wait temp start\\n")}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=1\nM106 P0 S255', 'description': 'G-Code macro'}, 'gcode_macro wait_temp_end': {'gcode': '\n{action_respond_info("wait temp end\\n")}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=0\nM106 P0 S0', 'description': 'G-Code macro'}, 'gcode_macro print_calibration': {'gcode': '\nCX_PRINT_LEVELING_CALIBRATION', 'description': 'G-Code macro'}, 'gcode_macro first_floor_pause_position': {'gcode': "\n{% set extruder_temp = printer.custom_macro.g28_ext_temp %}\nM104 S{extruder_temp}\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer['gcode_macro PRINTER_PARAM'].max_x_position|float + 1 %}\nG90\nG1 Z2 F600\nG1 X{x_park} Y{y_park} F6000\nG1 Z0.2 F600", 'description': 'G-Code macro'}, 'gcode_macro accurate_g28': {'gcode': '\nACCURATE_HOME_Z', 'description': 'G-Code macro'}, 'gcode_macro print_prepared': {'gcode': '\nSET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=1\n{action_respond_info("print prepared")}', 'description': 'G-Code macro'}, 'gcode_macro print_prepare_clear': {'gcode': '\nSET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=0', 'description': 'G-Code macro'}, 'gcode_macro end_print_point_without_lifting': {'gcode': '\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\nG91\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z2.0 F600\nG90\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("end print xyz_axes is NULL\\n")}\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro end_print_point': {'gcode': '\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < (max_z / 2) %}\n{% set z_safe = (max_z / 2) - act_z %}\n{% elif act_z < max_z %}\n{% set z_safe = 2.0 %}\n{% endif %}\nG91\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z2.0 F600\nG90\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F30000\n{% if z_safe > 2.0 %}\nG91\n{% set z_safe = z_safe - 2.0 %}\nG1 Z{z_safe} F600\nG90\n{% endif %}\n{% else %}\n{action_respond_info("end print xyz_axes is NULL\\n")}\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro end_print': {'gcode': '\nQmode_exit\nEXCLUDE_OBJECT_RESET\nPRINT_PREPARE_CLEAR\nM220 S100\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=2500\nTURN_OFF_HEATERS\nM107 P1\nM107 P2\nEND_PRINT_POINT\nWAIT_TEMP_START\nM84', 'description': 'G-Code macro'}, 'gcode_macro first_floor_pause': {'gcode': '\n\n{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float %}\n\n\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\n\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < (max_z - 2.0) %}\n{% set z_safe = 2.0 %}\n{% elif act_z < max_z %}\n{% set z_safe = max_z - act_z %}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}\nPAUSE_BASE\nG91\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z{z_safe} F600\nG90\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("Printer not homed")}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer[\'output_pin fan2\'].value}\n{% set fspeed = printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed %}\n{action_respond_info("fan2_value = %s \\n" % (fspeed))}\n\nM106 P2 S0\nSET_E_MIN_CURRENT', 'description': 'Pause the first floor print', 'variable_extrude': '2.0'}, 'gcode_macro first_floor_resume': {'gcode': '\nRESTORE_E_CURRENT\n{% if printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed > 0 %}\n\n\n\n{% set s_value = (printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed * 255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) * 255 / (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min)|float %}\nM106 P2 S{s_value}\n{% endif %}\n\n{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float + 1.0 %}\n\n{% if \'VELOCITY\' in params|upper %}\n{% set get_params = (\'VELOCITY=\' + params.VELOCITY) %}\n{%else %}\n{% set get_params = "" %}\n{% endif %}\n\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG91\nG1 E{E} F2100\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nM400\nRESUME_BASE {get_params}', 'description': 'Resume the first floor print'}, 'gcode_macro pause': {'gcode': '\n\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\n\n\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\n\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < 48.0 %}\n{% set z_safe = 50.0 - act_z %}\n{% elif act_z < (max_z - 2.0) %}\n{% set z_safe = 2.0 %}\n{% elif act_z < max_z %}\n{% set z_safe = max_z - act_z %}\n{% endif %}\n{action_respond_info("z_safe = %s"% (z_safe))}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}\nPAUSE_BASE\nG91\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE={printer.extruder.target}\nM104 S140\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z{z_safe} F600\nM400\nG90\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("Printer not homed")}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer[\'output_pin fan2\'].value}\n{% set fspeed = printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed %}\n{action_respond_info("fan2_value = %s \\n" % (fspeed))}\n\nM106 P2 S0\nSET_E_MIN_CURRENT', 'rename_existing': 'PAUSE_BASE', 'description': 'Pause the actual running print', 'variable_extrude': '2.0'}, 'gcode_macro inputshaper': {'gcode': "\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0\nG90\nG28\n{% set POSITION_X = printer.configfile.settings['stepper_x'].position_max/2 %}\n{% set POSITION_Y = printer.configfile.settings['stepper_y'].position_max/2 %}\nG1 X{POSITION_X} Y{POSITION_Y} F6000\nG1 Z10 F600\nSHAPER_CALIBRATE\nCXSAVE_CONFIG\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1", 'description': 'G-Code macro'}, 'gcode_macro bedpid': {'gcode': '\nPID_CALIBRATE HEATER=heater_bed TARGET=100\nSAVE_CONFIG', 'description': 'G-Code macro'}, 'gcode_macro tunoffinputshaper': {'gcode': '\nSET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0', 'description': 'G-Code macro'}, 'gcode_macro resume': {'gcode': '\nRESTORE_E_CURRENT\n{% if printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int != 0 %}\n{% if printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int > printer.extruder.temperature %}\nM109 S{printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int}\n{% else %}\nM104 S{printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE=0\n{% endif %}\n{% if printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed > 0 %}\n\n\n\n{% set s_value = (printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed * 255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) * 255 / (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min)|float %}\nM106 P2 S{s_value}\n{% endif %}\n{% set z_resume_move = printer[\'gcode_macro PRINTER_PARAM\'].z_safe_pause|int %}\n{% if z_resume_move > 2 %}\n{% set z_resume_move = z_resume_move - 2 %}\nG91\nG1 Z-{z_resume_move} F600\nM400\n{% endif %}\n{action_respond_info("z_resume_move = %s"% (z_resume_move))}\n\n{% set E = printer["gcode_macro PAUSE"].extrude|float + 1.0 %}\n\n{% if \'VELOCITY\' in params|upper %}\n{% set get_params = (\'VELOCITY=\' + params.VELOCITY) %}\n{%else %}\n{% set get_params = "" %}\n{% endif %}\n\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG91\nG1 E{E} F2100\nG90\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nM400\nRESUME_BASE {get_params}', 'rename_existing': 'RESUME_BASE', 'description': 'Resume the actual running print'}, 'gcode_macro cancel_print': {'gcode': '\nEND_PRINT\nCANCEL_PRINT_BASE', 'rename_existing': 'CANCEL_PRINT_BASE', 'description': 'Cancel the actual running print'}, 'gcode_macro g29': {'gcode': '\n{% if \'PROBE_COUNT\' in params|upper %}\n{% set get_count = (\'PROBE_COUNT\' + params.PROBE_COUNT) %}\n{%else %}\n{% set get_count = "" %}\n{% endif %}\n\n{% set bed_temp = printer.custom_macro.default_bed_temp %}\n{% set extruder_temp = printer.custom_macro.g28_ext_temp %}\n{% set nozzle_clear_temp = printer.custom_macro.default_extruder_temp %}\n\n{% if \'BED_TEMP\' in params|upper %}\n{% set bed_temp = params.BED_TEMP %}\n{% endif %}\n\n{% if \'EXTRUDER_TEMP\' in params|upper %}\n{% set nozzle_clear_temp = params.EXTRUDER_TEMP %}\n{% endif %}\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0\n\nG28\nBED_MESH_CLEAR\nNOZZLE_CLEAR HOT_MIN_TEMP={extruder_temp} HOT_MAX_TEMP={nozzle_clear_temp} BED_MAX_TEMP={bed_temp}\nACCURATE_G28\nM204 S5000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=5000\nBED_MESH_CALIBRATE {get_count}\nBED_MESH_OUTPUT\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F2000\nCXSAVE_CONFIG\nTURN_OFF_HEATERS\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1', 'description': 'G-Code macro'}, 'fan_feedback': {'print_delay_time': 5.0, 'current_delay_time': 2.0, 'fan0_pin': 'nozzle_mcu:PB4', 'fan1_pin': 'PC6'}, 'custom_macro': {'default_extruder_temp': 240.0, 'default_bed_temp': 50.0, 'g28_ext_temp': 140.0, 'nozzle_clear': True, 'calibration': 0}, 'gcode_macro get_timelapse_setup': {'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% set output_txt = ["Timelapse Setup:"] %}\n{% set _dummy = output_txt.append("enable: %s" % tl.enable) %}\n{% set _dummy = output_txt.append("park: %s" % tl.park.enable) %}\n{% if tl.park.enable %}\n{% set _dummy = output_txt.append("park position: %s time: %s s" % (tl.park.pos, tl.park.time)) %}\n{% set _dummy = output_txt.append("park cord x:%s y:%s dz:%s" % (tl.park.coord.x, tl.park.coord.y, tl.park.coord.dz)) %}\n{% set _dummy = output_txt.append("travel speed: %s mm/s" % tl.speed.travel) %}\n{% endif %}\n{% set _dummy = output_txt.append("fw_retract: %s" % tl.extruder.fw_retract) %}\n{% if not tl.extruder.fw_retract %}\n{% set _dummy = output_txt.append("retract: %s mm speed: %s mm/s" % (tl.extruder.retract, tl.speed.retract)) %}\n{% set _dummy = output_txt.append("extrude: %s mm speed: %s mm/s" % (tl.extruder.extrude, tl.speed.extrude)) %}\n{% endif %}\n{% set _dummy = output_txt.append("verbose: %s" % tl.verbose) %}\n{action_respond_info(output_txt|join("\\n"))}', 'description': 'Print the Timelapse setup'}, 'gcode_macro _set_timelapse_setup': {'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n\n{% set min = printer.toolhead.axis_minimum %}\n{% set max = printer.toolhead.axis_maximum %}\n{% set round_bed = True if printer.configfile.settings.printer.kinematics is in [\'delta\',\'polar\',\'rotary_delta\',\'winch\']\nelse False %}\n{% set park = {\'min\' : {\'x\': (min.x / 1.42)|round(3) if round_bed else min.x|round(3),\n\'y\': (min.y / 1.42)|round(3) if round_bed else min.y|round(3)},\n\'max\' : {\'x\': (max.x / 1.42)|round(3) if round_bed else max.x|round(3),\n\'y\': (max.y / 1.42)|round(3) if round_bed else max.y|round(3)},\n\'center\': {\'x\': (max.x-(max.x-min.x)/2)|round(3),\n\'y\': (max.y-(max.y-min.y)/2)|round(3)}} %}\n\n{% if params.ENABLE %}\n{% if params.ENABLE|lower is in [\'true\', \'false\'] %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=enable VALUE={True if params.ENABLE|lower == \'true\' else False}\n{% else %}\n{action_raise_error("ENABLE=%s not supported. Allowed values are [True, False]" % params.ENABLE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.VERBOSE %}\n{% if params.VERBOSE|lower is in [\'true\', \'false\'] %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=verbose VALUE={True if params.VERBOSE|lower == \'true\' else False}\n{% else %}\n{action_raise_error("VERBOSE=%s not supported. Allowed values are [True, False]" % params.VERBOSE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_X %}\n{% if params.CUSTOM_POS_X|float >= min.x and params.CUSTOM_POS_X|float <= max.x %}\n{% set _dummy = tl.park.custom.update({\'x\':params.CUSTOM_POS_X|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_X=%s must be within [%s - %s]" % (params.CUSTOM_POS_X, min.x, max.x))}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_Y %}\n{% if params.CUSTOM_POS_Y|float >= min.y and params.CUSTOM_POS_Y|float <= max.y %}\n{% set _dummy = tl.park.custom.update({\'y\':params.CUSTOM_POS_Y|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_Y=%s must be within [%s - %s]" % (params.CUSTOM_POS_Y, min.y, max.y))}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_DZ %}\n{% if params.CUSTOM_POS_DZ|float >= min.z and params.CUSTOM_POS_DZ|float <= max.z %}\n{% set _dummy = tl.park.custom.update({\'dz\':params.CUSTOM_POS_DZ|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_DZ=%s must be within [%s - %s]" % (params.CUSTOM_POS_DZ, min.z, max.z))}\n{% endif %}\n{% endif %}\n{% if params.PARK_ENABLE %}\n{% if params.PARK_ENABLE|lower is in [\'true\', \'false\'] %}\n{% set _dummy = tl.park.update({\'enable\':True if params.PARK_ENABLE|lower == \'true\' else False}) %}\n{% else %}\n{action_raise_error("PARK_ENABLE=%s not supported. Allowed values are [True, False]" % params.PARK_ENABLE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.PARK_POS %}\n{% if params.PARK_POS|lower is in [\'center\',\'front_left\',\'front_right\',\'back_left\',\'back_right\',\'custom\',\'x_only\',\'y_only\'] %}\n{% set dic = {\'center\' : {\'x\': park.center.x , \'y\': park.center.y , \'dz\': 1 },\n\'front_left\' : {\'x\': park.min.x , \'y\': park.min.y , \'dz\': 0 },\n\'front_right\' : {\'x\': park.max.x , \'y\': park.min.y , \'dz\': 0 },\n\'back_left\' : {\'x\': park.min.x , \'y\': park.max.y , \'dz\': 0 },\n\'back_right\' : {\'x\': park.max.x , \'y\': park.max.y , \'dz\': 0 },\n\'custom\' : {\'x\': tl.park.custom.x, \'y\': tl.park.custom.y, \'dz\': tl.park.custom.dz},\n\'x_only\' : {\'x\': tl.park.custom.x, \'y\': \'none\' , \'dz\': tl.park.custom.dz},\n\'y_only\' : {\'x\': \'none\' , \'y\': tl.park.custom.y, \'dz\': tl.park.custom.dz}} %}\n{% set _dummy = tl.park.update({\'pos\':params.PARK_POS|lower}) %}\n{% set _dummy = tl.park.update({\'coord\':dic[tl.park.pos]}) %}\n{% else %}\n{action_raise_error("PARK_POS=%s not supported. Allowed values are [CENTER, FRONT_LEFT, FRONT_RIGHT, BACK_LEFT, BACK_RIGHT, CUSTOM, X_ONLY, Y_ONLY]"\n% params.PARK_POS|upper)}\n{% endif %}\n{% endif %}\n{% if params.PARK_TIME %}\n{% if params.PARK_TIME|float >= 0.0 %}\n{% set _dummy = tl.park.update({\'time\':params.PARK_TIME|float|round(3)}) %}\n{% else %}\n{action_raise_error("PARK_TIME=%s must be a positive number" % params.PARK_TIME)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=park VALUE="{tl.park}"\n{% if params.TRAVEL_SPEED %}\n{% if params.TRAVEL_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'travel\':params.TRAVEL_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("TRAVEL_SPEED=%s must be larger than 0" % params.TRAVEL_SPEED)}\n{% endif %}\n{% endif %}\n{% if params.RETRACT_SPEED %}\n{% if params.RETRACT_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'retract\':params.RETRACT_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("RETRACT_SPEED=%s must be larger than 0" % params.RETRACT_SPEED)}\n{% endif %}\n{% endif %}\n{% if params.EXTRUDE_SPEED %}\n{% if params.EXTRUDE_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'extrude\':params.EXTRUDE_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("EXTRUDE_SPEED=%s must be larger than 0" % params.EXTRUDE_SPEED)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=speed VALUE="{tl.speed}"\n{% if params.EXTRUDE_DISTANCE %}\n{% if params.EXTRUDE_DISTANCE|float >= 0.0 %}\n{% set _dummy = tl.extruder.update({\'extrude\':params.EXTRUDE_DISTANCE|float|round(3)}) %}\n{% else %}\n{action_raise_error("EXTRUDE_DISTANCE=%s must be specified as positiv number" % params.EXTRUDE_DISTANCE)}\n{% endif %}\n{% endif %}\n{% if params.RETRACT_DISTANCE %}\n{% if params.RETRACT_DISTANCE|float >= 0.0 %}\n{% set _dummy = tl.extruder.update({\'retract\':params.RETRACT_DISTANCE|float|round(3)}) %}\n{% else %}\n{action_raise_error("RETRACT_DISTANCE=%s must be specified as positiv number" % params.RETRACT_DISTANCE)}\n{% endif %}\n{% endif %}\n{% if params.FW_RETRACT %}\n{% if params.FW_RETRACT|lower is in [\'true\', \'false\'] %}\n{% if \'firmware_retraction\' in printer.configfile.settings %}\n{% set _dummy = tl.extruder.update({\'fw_retract\': True if params.FW_RETRACT|lower == \'true\' else False}) %}\n{% else %}\n{% set _dummy = tl.extruder.update({\'fw_retract\':False}) %}\n{% if params.FW_RETRACT|capitalize == \'True\' %}\n{action_raise_error("[firmware_retraction] not defined in printer.cfg. Can not enable fw_retract")}\n{% endif %}\n{% endif %}\n{% else %}\n{action_raise_error("FW_RETRACT=%s not supported. Allowed values are [True, False]" % params.FW_RETRACT|capitalize)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=extruder VALUE="{tl.extruder}"\n{% if printer.configfile.settings[\'gcode_macro pause\'] is defined %}\n{% set _dummy = tl.macro.update({\'pause\': printer.configfile.settings[\'gcode_macro pause\'].rename_existing}) %}\n{% endif %}\n{% if printer.configfile.settings[\'gcode_macro resume\'] is defined %}\n{% set _dummy = tl.macro.update({\'resume\': printer.configfile.settings[\'gcode_macro resume\'].rename_existing}) %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=macro VALUE="{tl.macro}"', 'description': 'Set user parameters for timelapse'}, 'gcode_macro timelapse_take_frame': {'gcode': '\n{% set hyperlapse = True if params.HYPERLAPSE and params.HYPERLAPSE|lower ==\'true\' else False %}\n{% if enable %}\n{% if (hyperlapse and printer[\'gcode_macro HYPERLAPSE\'].run) or\n(not hyperlapse and not printer[\'gcode_macro HYPERLAPSE\'].run) %}\n{% if park.enable %}\n{% set pos = {\'x\': \'X\' + park.coord.x|string if park.pos != \'y_only\' else \'\',\n\'y\': \'Y\' + park.coord.y|string if park.pos != \'x_only\' else \'\',\n\'z\': \'Z\'+ [printer.gcode_move.gcode_position.z + park.coord.dz, printer.toolhead.axis_maximum.z]|min|string} %}\n{% set restore = {\'absolute\': {\'coordinates\': printer.gcode_move.absolute_coordinates,\n\'extrude\' : printer.gcode_move.absolute_extrude},\n\'speed\' : printer.gcode_move.speed,\n\'e\' : printer.gcode_move.gcode_position.e,\n\'factor\' : {\'speed\' : printer.gcode_move.speed_factor,\n\'extrude\': printer.gcode_move.extrude_factor}} %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=restore VALUE="{restore}"\n{% if not printer[printer.toolhead.extruder].can_extrude %}\n{% if verbose %}{action_respond_info("Timelapse: Warning, minimum extruder temperature not reached!")}{% endif %}\n{% else %}\n{% if extruder.fw_retract %}\nG10\n{% else %}\nM83\nG0 E-{extruder.retract} F{speed.retract * 60}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=True\n{macro.pause}\nSET_GCODE_OFFSET X=0 Y=0\nG90\n{% if "xyz" not in printer.toolhead.homed_axes %}\n{% if verbose %}{action_respond_info("Timelapse: Warning, axis not homed yet!")}{% endif %}\n{% else %}\nG0 {pos.x} {pos.y} {pos.z} F{speed.travel * 60}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=takingframe VALUE=True\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={check_time}\nM400\n{% endif %}\n_TIMELAPSE_NEW_FRAME HYPERLAPSE={hyperlapse}\n{% endif %}\n{% else %}\n{% if verbose %}{action_respond_info("Timelapse: disabled, take frame ignored")}{% endif %}\n{% endif %}', 'description': 'Take Timelapse shoot', 'variable_enable': 'False', 'variable_takingframe': 'False', 'variable_park': "{'enable': False,\n'pos' : 'center',\n'time' : 0.1,\n'custom': {'x': 0, 'y': 0, 'dz': 0},\n'coord' : {'x': 0, 'y': 0, 'dz': 0}}", 'variable_extruder': "{'fw_retract': False,\n'retract': 1.0,\n'extrude': 1.0}", 'variable_speed': "{'travel': 100,\n'retract': 15,\n'extrude': 15}", 'variable_verbose': 'True', 'variable_check_time': '0.5', 'variable_restore': "{'absolute': {'coordinates': True, 'extrude': True}, 'speed': 1500, 'e':0, 'factor': {'speed': 1.0, 'extrude': 1.0}}", 'variable_macro': "{'pause': 'PAUSE', 'resume': 'RESUME'}", 'variable_is_paused': 'False'}, 'gcode_macro _timelapse_new_frame': {'gcode': '\n{action_call_remote_method("timelapse_newframe",\nmacropark=printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'].park,\nhyperlapse=params.HYPERLAPSE)}', 'description': 'action call for timelapse shoot. must be a seperate macro'}, 'delayed_gcode _wait_timelapse_take_frame': {'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% set factor = {\'speed\': printer.gcode_move.speed_factor, \'extrude\': printer.gcode_move.extrude_factor} %}\n{% if tl.takingframe %}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={tl.check_time}\n{% else %}\n{tl.macro.resume} VELOCITY={tl.speed.travel}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=False\n{% if not printer[printer.toolhead.extruder].can_extrude %}\n{action_respond_info("Timelapse: Warning minimum extruder temperature not reached!")}\n{% else %}\n{% if tl.extruder.fw_retract %}\nG11\n{% else %}\nG0 E{tl.extruder.extrude} F{tl.speed.extrude * 60}\nG0 F{tl.restore.speed}\n{% if tl.restore.absolute.extrude %}\nM82\nG92 E{tl.restore.e}\n{% endif %}\n{% endif %}\n{% endif %}\n{% if tl.restore.factor.speed != factor.speed %} M220 S{(factor.speed*100)|round(0)} {% endif %}\n{% if tl.restore.factor.extrude != factor.extrude %} M221 S{(factor.extrude*100)|round(0)} {% endif %}\n{% if not tl.restore.absolute.coordinates %} G91 {% endif %}\n{% endif %}', 'initial_duration': 0.0}, 'gcode_macro hyperlapse': {'gcode': '\n{% set cycle = params.CYCLE|default(30)|int %}\n{% if params.ACTION and params.ACTION|lower == \'start\' %}\n{action_respond_info("Hyperlapse: frames started (Cycle %d sec)" % cycle)}\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=True\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=cycle VALUE={cycle}\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={cycle}\nTIMELAPSE_TAKE_FRAME HYPERLAPSE=True\n{% elif params.ACTION and params.ACTION|lower == \'stop\' %}\n{% if run %}{action_respond_info("Hyperlapse: frames stopped")}{% endif %}\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=False\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION=0\n{% else %}\n{action_raise_error("Hyperlapse: No valid input parameter\nUse:\n- HYPERLAPSE ACTION=START [CYCLE=time]\n- HYPERLAPSE ACTION=STOP")}\n{% endif %}', 'description': 'Start/Stop a hyperlapse recording', 'variable_cycle': '0', 'variable_run': 'False'}, 'delayed_gcode _hyperlapse_loop': {'gcode': '\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={printer["gcode_macro HYPERLAPSE"].cycle}\nTIMELAPSE_TAKE_FRAME HYPERLAPSE=True', 'initial_duration': 0.0}, 'gcode_macro timelapse_render': {'gcode': '\n{action_respond_info("Timelapse: Rendering started")}\n{action_call_remote_method("timelapse_render", byrendermacro="True")}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=render VALUE=True\n{printer.configfile.settings[\'gcode_macro pause\'].rename_existing}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5', 'description': 'Render Timelapse video and wait for the result', 'variable_render': 'False', 'variable_run_identifier': '0'}, 'delayed_gcode _wait_timelapse_render': {'gcode': '\n{% set ri = printer[\'gcode_macro TIMELAPSE_RENDER\'].run_identifier % 4 %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=run_identifier VALUE={ri + 1}\n{% if printer[\'gcode_macro TIMELAPSE_RENDER\'].render %}\nM117 Rendering {[\'-\',\'\\\\\',\'|\',\'/\'][ri]}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5\n{% else %}\n{action_respond_info("Timelapse: Rendering finished")}\nM117\n{printer.configfile.settings[\'gcode_macro resume\'].rename_existing}\n{% endif %}', 'initial_duration': 0.0}, 'gcode_macro test_stream_delay': {'gcode': '\n{% set min = printer.toolhead.axis_minimum %}\n{% set max = printer.toolhead.axis_maximum %}\n{% set act = printer.toolhead.position %}\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% if act.z > 5.0 %}\nG0 X{min.x + 5.0} F{tl.speed.travel|int * 60}\nG0 X{(max.x-min.x)/2}\nG4 P{tl.park.time|float * 1000}\n_TIMELAPSE_NEW_FRAME HYPERLAPSE=FALSE\nG0 X{max.x - 5.0}\n{% else %}\n{action_raise_error("Toolhead z %.3f to low. Please place head above z = 5.0" % act.z)}\n{% endif %}', 'description': 'Helper macro to find stream and park delay'}, 'save_variables': {'filename': '/usr/data/printer_data/config/Helper-Script/variables.cfg'}, 'respond': {'default_type': 'echo', 'default_prefix': 'echo:'}, 'gcode_macro set_gcode_offset': {'gcode': '\n{% if printer.save_variables.variables.zoffset %}\n{% set zoffset = printer.save_variables.variables.zoffset %}\n{% else %}\n{% set zoffset = {\'z\': None} %}\n{% endif %}\n{% set ns = namespace(zoffset={\'z\': zoffset.z}) %}\n_SET_GCODE_OFFSET {% for p in params %}{\'%s=%s \'% (p, params[p])}{% endfor %}\n{%if \'Z\' in params %}{% set null = ns.zoffset.update({\'z\': params.Z}) %}{% endif %}\n{%if \'Z_ADJUST\' in params %}\n{%if ns.zoffset.z == None %}{% set null = ns.zoffset.update({\'z\': 0}) %}{% endif %}\n{% set null = ns.zoffset.update({\'z\': (ns.zoffset.z | float) + (params.Z_ADJUST | float)}) %}\n{% endif %}\nSAVE_VARIABLE VARIABLE=zoffset VALUE="{ns.zoffset}"', 'rename_existing': '_SET_GCODE_OFFSET', 'description': 'Saving Z-Offset'}, 'delayed_gcode load_gcode_offsets': {'gcode': '\n{% if printer.save_variables.variables.zoffset %}\n{% set zoffset = printer.save_variables.variables.zoffset %}\n_SET_GCODE_OFFSET {% for axis, offset in zoffset.items() if zoffset[axis] %}{ "%s=%s " % (axis, offset) }{% endfor %}\nRESPOND TYPE=command MSG="Loaded Z-Offset from variables.cfg: {zoffset.z}mm"\n{% endif %}', 'initial_duration': 2.0}, 'calibrate_shaper_config': {'shaper_type': 'mzv', 'shaper_type_x': 'mzv', 'shaper_freq_x': 0.0, 'shaper_type_y': 'mzv', 'shaper_freq_y': 0.0}, 'gcode_shell_command resonance_graph': {'command': '/usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/calibrate_shaper.py', 'timeout': 600.0, 'verbose': False}, 'gcode_shell_command belts_graph': {'command': '/usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/graph_belts.py', 'timeout': 600.0, 'verbose': False}, 'gcode_shell_command delete_graph': {'command': 'sh /usr/data/helper-script/files/improved-shapers/delete_graph.sh', 'timeout': 600.0, 'verbose': False}, 'gcode_shell_command delete_csv': {'command': 'sh /usr/data/helper-script/files/improved-shapers/delete_csv.sh', 'timeout': 600.0, 'verbose': False}, 'gcode_macro input_shaper_calibration': {'gcode': '\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nRESPOND TYPE=command MSG="Measuring X and Y Resonances..."\nSHAPER_CALIBRATE\nM400\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Input Shaper Calibration complete!"\nSAVE_CONFIG', 'description': 'Measure X and Y Axis Resonances and Save values'}, 'gcode_macro test_resonances_graphs': {'gcode': '\nRUN_SHELL_COMMAND CMD=delete_graph\n{% set x_png = params.X_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_x.png") %}\n{% set y_png = params.Y_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_y.png") %}\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nRESPOND TYPE=command MSG="Testing X Resonances..."\nTEST_RESONANCES AXIS=X NAME=x\nM400\nRESPOND TYPE=command MSG="Generating X Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_x_x.csv -o {x_png}"\nRESPOND TYPE=command MSG="X Graph (resonances_x.png) is now available in /Helper-Script/improved-shapers folder."\nRESPOND TYPE=command MSG="Testing Y Resonances..."\nTEST_RESONANCES AXIS=Y NAME=y\nM400\nRESPOND TYPE=command MSG="Generating Y Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_y_y.csv -o {y_png}"\nRESPOND TYPE=command MSG="Y Graph (resonances_y.png) is now available in /Helper-Script/improved-shapers folder."\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Resonances Test complete!"', 'description': 'Test X and Y Axis Resonances and Generate Graphs'}, 'gcode_macro belts_shaper_calibration': {'gcode': '\nRUN_SHELL_COMMAND CMD=delete_graph\n{% set min_freq = params.FREQ_START|default(5)|float %}\n{% set max_freq = params.FREQ_END|default(133.33)|float %}\n{% set hz_per_sec = params.HZ_PER_SEC|default(1)|float %}\n{% set png_width = params.PNG_WIDTH|default(8)|float %}\n{% set png_height = params.PNG_HEIGHT|default(4.8)|float %}\n{% set png_out_path = params.PNG_OUT_PATH|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/belts_calibration.png") %}\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nTEST_RESONANCES AXIS=1,1 OUTPUT=raw_data NAME=b FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}\nM400\nTEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data NAME=a FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}\nM400\nRESPOND TYPE=command MSG="Generating Belts Frequency Profiles Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=belts_graph PARAMS="-w {png_width} -l {png_height} -n -o {png_out_path} -k /usr/share/klipper /tmp/raw_data_axis=1.000,-1.000_a.csv /tmp/raw_data_axis=1.000,1.000_b.csv"\nRESPOND TYPE=command MSG="Graph (belts_calibration.png) is now available in /Helper-Script/improved-shapers folder."\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Belts Shaper Calibration complete!"', 'description': 'Perform a custom half-axis test to analyze and compare the frequency profiles of individual belts on CoreXY printers'}, 'gcode_macro excitate_axis_at_freq': {'gcode': '\n{% set frequency = params.FREQUENCY|default(25)|int %}\n{% set time = params.TIME|default(10)|int %}\n{% set axis = params.AXIS|default("x")|string|lower %}\n{% if axis not in ["x", "y", "a", "b"] %}\n{ action_raise_error("AXIS selection is invalid. Should be either x, y, a or b!") }\n{% endif %}\n{% if axis == "a" %}\n{% set axis = "1,-1" %}\n{% elif axis == "b" %}\n{% set axis = "1,1" %}\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nTEST_RESONANCES OUTPUT=raw_data AXIS={axis} FREQ_START={frequency-1} FREQ_END={frequency+1} HZ_PER_SEC={1/(time/3)}\nM400', 'description': 'Maintain a specified excitation frequency for a period of time to diagnose and locate a vibration source'}, 'duplicate_pin_override': {'pins': ('PC0', 'PC5', 'PB2', 'ADC_TEMPERATURE')}, 'temperature_fan chamber_fan': {'max_power': 1.0, 'kick_start_time': 0.1, 'off_below': 0.0, 'cycle_time': 0.01, 'hardware_pwm': False, 'shutdown_speed': 0.0, 'pin': 'PC0', 'min_temp': 0.0, 'max_temp': 70.0, 'sensor_type': 'EPCOS 100K B57560G104F', 'pullup_resistor': 4700.0, 'inline_resistor': 0.0, 'sensor_pin': 'PC5', 'max_speed': 1.0, 'min_speed': 0.0, 'target_temp': 35.0, 'control': 'watermark', 'max_delta': 2.0}, 'temperature_fan mcu_fan': {'max_power': 1.0, 'kick_start_time': 0.1, 'off_below': 0.0, 'cycle_time': 0.01, 'hardware_pwm': False, 'shutdown_speed': 0.0, 'pin': 'PB2', 'min_temp': 0.0, 'max_temp': 100.0, 'sensor_type': 'temperature_mcu', 'sensor_mcu': 'mcu', 'max_speed': 1.0, 'min_speed': 0.0, 'target_temp': 50.0, 'control': 'watermark', 'max_delta': 2.0}, 'output_pin mcu_fan': {'pwm': True, 'pin': 'PB2', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 255.0, 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'gcode_macro m141': {'gcode': '\n{% set s = params.S|float %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=chamber_fan TARGET={s}\nRESPOND TYPE=command MSG="Chamber target temperature: {s}°C"', 'description': 'Set Chamber Temperature with slicers'}, 'gcode_macro m191': {'gcode': '\n{% set s = params.S|float %}\n{% set chamber_temp = printer["temperature_sensor chamber_temp"].temperature|float %}\n{% if s > 0 %}\nM141 S{s}\n{% endif %}\n{% if s > chamber_temp and s <= 90 %}\nM140 S100\nRESPOND TYPE=command MSG="Waiting for the bed to heat up the chamber..."\nTEMPERATURE_WAIT SENSOR="temperature_fan chamber_fan" MINIMUM={s-1}\nRESPOND TYPE=command MSG="Chamber target temperature reached: {s}°C"\nM140 S{s}\n{% endif %}', 'description': 'Wait for Chamber Temperature to heat up'}, 'gcode_macro m106': {'gcode': '\n{% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}\n{% set fan = 0 %}\n{% set value = 0 %}\n{% if params.P is defined %}\n{% set tmp = params.P|int %}\n{% if tmp < fans %}\n{% set fan = tmp %}\n{% endif %}\n{% endif %}\n{% if params.S is defined %}\n{% set tmp = params.S|float %}\n{% else %}\n{% set tmp = 255 %}\n{% endif %}\n{% if tmp > 0 %}\n{% if fan == 0 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan0_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}\n{% endif %}\n{% endif %}\n{% if fan == 1 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan1_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan1_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}\n{% endif %}\n{% endif %}\n{% if fan == 2 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan2_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}\n{% endif %}\n{% endif %}\n{% endif %}\n{% if value >= 255 %}\n{% set value = 255 %}\n{% endif %}\n{% if params.P is defined and params.P|int == 3 %}\n{% set fan = 1 %}\n{% endif %}\nSET_PIN PIN=fan{fan} VALUE={value}', 'description': 'G-Code macro'}, 'prtouch_v2_fan': {'max_speed': 0.5}, 'output_pin kamp': {'pwm': False, 'pin': 'virtual_pin:KAMP_pin', 'maximum_mcu_duration': 0.0, 'value': 1.0, 'shutdown_value': 0.0}, 'output_pin bed_leveling': {'pwm': False, 'pin': 'virtual_pin:BED_LEVELING_pin', 'maximum_mcu_duration': 0.0, 'value': 1.0, 'shutdown_value': 0.0}, 'gcode_macro start_print': {'gcode': '\nWAIT_TEMP_END\nCLEAR_PAUSE\n{% set g28_extruder_temp = printer.custom_macro.g28_ext_temp %}\n{% set bed_temp = printer.custom_macro.default_bed_temp %}\n{% set extruder_temp = printer.custom_macro.default_extruder_temp %}\n{% if \'BED_TEMP\' in params|upper and (params.BED_TEMP|float) %}\n{% set bed_temp = params.BED_TEMP %}\n{% endif %}\n{% if \'EXTRUDER_TEMP\' in params|upper and (params.EXTRUDER_TEMP|float) %}\n{% set extruder_temp = params.EXTRUDER_TEMP %}\n{% endif %}\n{% if printer[\'gcode_macro START_PRINT\'].prepare|int == 0 %}\nPRINT_PREPARE_CLEAR\nCX_ROUGH_G28 EXTRUDER_TEMP={extruder_temp} BED_TEMP={bed_temp}\nCX_NOZZLE_CLEAR\nACCURATE_G28\n{% if printer[\'output_pin KAMP\'].value == 1 %}\nRESPOND TYPE=command MSG="Starting KAMP Bed Mesh..."\nBED_MESH_CLEAR\nBED_MESH_CALIBRATE\nBED_MESH_PROFILE SAVE=kamp\nBED_MESH_PROFILE LOAD=kamp\n{% else %}\n{% if printer[\'output_pin BED_LEVELING\'].value == 1 %}\nRESPOND TYPE=command MSG="Starting Full Bed Mesh..."\nCX_PRINT_LEVELING_CALIBRATION\n{% endif %}\nBED_MESH_PROFILE LOAD=default\n{% endif %}\n{% else %}\nPRINT_PREPARE_CLEAR\n{% endif %}\n{% if printer[\'output_pin KAMP\'].value == 1 %}\n_SMART_PARK\nM109 S{extruder_temp}\nM190 S{bed_temp}\nRESPOND TYPE=command MSG="Starting KAMP line purge..."\n_LINE_PURGE\n{% else %}\nRESPOND TYPE=command MSG="Starting classic line purge..."\nCX_PRINT_DRAW_ONE_LINE\n{% endif %}\nSET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel}', 'description': 'G-Code macro', 'variable_prepare': '0'}, 'gcode_macro bed_mesh_calibrate': {'gcode': '\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set bed_mesh_min = printer.configfile.settings.bed_mesh.mesh_min %}\n{% set bed_mesh_max = printer.configfile.settings.bed_mesh.mesh_max %}\n{% set probe_count = printer.configfile.settings.bed_mesh.probe_count %}\n{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}\n{% set verbose_enable = kamp_settings.verbose_enable | abs %}\n{% set mesh_margin = kamp_settings.mesh_margin | float %}\n{% set fuzz_amount = kamp_settings.fuzz_amount | float %}\n{% set probe_count = probe_count if probe_count|length > 1 else probe_count * 2 %}\n{% set max_probe_point_distance_x = ( bed_mesh_max[0] - bed_mesh_min[0] ) / (probe_count[0] - 1) %}\n{% set max_probe_point_distance_y = ( bed_mesh_max[1] - bed_mesh_min[1] ) / (probe_count[1] - 1) %}\n{% set x_min = all_points | map(attribute=0) | min | default(bed_mesh_min[0]) %}\n{% set y_min = all_points | map(attribute=1) | min | default(bed_mesh_min[1]) %}\n{% set x_max = all_points | map(attribute=0) | max | default(bed_mesh_max[0]) %}\n{% set y_max = all_points | map(attribute=1) | max | default(bed_mesh_max[1]) %}\n{% set fuzz_range = range((0) | int, (fuzz_amount * 100) | int + 1) %}\n{% set adapted_x_min = x_min - mesh_margin - (fuzz_range | random / 100.0) %}\n{% set adapted_y_min = y_min - mesh_margin - (fuzz_range | random / 100.0) %}\n{% set adapted_x_max = x_max + mesh_margin + (fuzz_range | random / 100.0) %}\n{% set adapted_y_max = y_max + mesh_margin + (fuzz_range | random / 100.0) %}\n{% set adapted_x_min = [adapted_x_min , bed_mesh_min[0]] | max %}\n{% set adapted_y_min = [adapted_y_min , bed_mesh_min[1]] | max %}\n{% set adapted_x_max = [adapted_x_max , bed_mesh_max[0]] | min %}\n{% set adapted_y_max = [adapted_y_max , bed_mesh_max[1]] | min %}\n{% set points_x = (((adapted_x_max - adapted_x_min) / max_probe_point_distance_x) | round(method=\'ceil\') | int) + 1 %}\n{% set points_y = (((adapted_y_max - adapted_y_min) / max_probe_point_distance_y) | round(method=\'ceil\') | int) + 1 %}\n{% if (points_x > points_y) %}\n{% set points_y = points_x %}\n{% endif %}\n{% if (points_x < points_y) %}\n{% set points_x = points_y %}\n{% endif %}\n{% if (([points_x, points_y]|max) > 6) %}\n{% set algorithm = "bicubic" %}\n{% set min_points = 4 %}\n{% else %}\n{% set algorithm = "lagrange" %}\n{% set min_points = 3 %}\n{% endif %}\n{% set points_x = [points_x , min_points]|max %}\n{% set points_y = [points_y , min_points]|max %}\n{% set points_x = [points_x , probe_count[0]]|min %}\n{% set points_y = [points_y , probe_count[1]]|min %}\n\n{% if verbose_enable == True %}\n\n{% if printer.exclude_object.objects != [] %}\n\nRESPOND TYPE=command MSG="Algorithm: {algorithm}"\nRESPOND TYPE=command MSG="Default probe count: {probe_count[0]},{probe_count[1]}"\nRESPOND TYPE=command MSG="Adapted probe count: {points_x},{points_y}"\nRESPOND TYPE=command MSG="Default mesh bounds: {bed_mesh_min[0]},{bed_mesh_min[1]}, {bed_mesh_max[0]},{bed_mesh_max[1]}"\n\n{% if mesh_margin > 0 %}\n\nRESPOND TYPE=command MSG="Mesh margin is {mesh_margin}, mesh bounds extended by {mesh_margin}mm."\n\n{% else %}\n\nRESPOND TYPE=command MSG="Mesh margin is 0, margin not increased."\n\n{% endif %}\n\n{% if fuzz_amount > 0 %}\n\nRESPOND TYPE=command MSG="Mesh point fuzzing enabled, points fuzzed up to {fuzz_amount}mm"\n\n{% else %}\n\nRESPOND TYPE=command MSG="Fuzz amount is 0, mesh points not fuzzed."\n\n{% endif %}\n\nRESPOND TYPE=command MSG="Adapted mesh bounds: {adapted_x_min},{adapted_y_min}, {adapted_x_max},{adapted_y_max}"\nRESPOND TYPE=command MSG="KAMP adjustments successful. Happy KAMPing!"\n\n{% else %}\n\nRESPOND TYPE=command MSG="No object detected! Make sure you have enabled Exclude Objets setting in your slicer. Using Full Bed Mesh."\nG4 P5000\n\n{% endif %}\n\n{% endif %}\n\n_BED_MESH_CALIBRATE mesh_min={adapted_x_min},{adapted_y_min} mesh_max={adapted_x_max},{adapted_y_max} ALGORITHM={algorithm} PROBE_COUNT={points_x},{points_y}', 'rename_existing': '_BED_MESH_CALIBRATE', 'description': 'G-Code macro'}, 'gcode_macro _line_purge': {'gcode': '\n{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}\n{% set cross_section = printer.configfile.settings.extruder.max_extrude_cross_section | float %}\n{% if printer.firmware_retraction is defined %}\n{% set RETRACT = G10 | string %}\n{% set UNRETRACT = G11 | string %}\n{% else %}\n{% set RETRACT = \'G1 E-0.5 F2400\' | string %}\n{% set UNRETRACT = \'G1 E0.5 F2400\' | string %}\n{% endif %}\n{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}\n{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}\n{% set verbose_enable = printer["gcode_macro _KAMP_Settings"].verbose_enable | abs %}\n{% set purge_height = printer["gcode_macro _KAMP_Settings"].purge_height | float %}\n{% set tip_distance = printer["gcode_macro _KAMP_Settings"].tip_distance | float %}\n{% set purge_margin = printer["gcode_macro _KAMP_Settings"].purge_margin | float %}\n{% set purge_amount = printer["gcode_macro _KAMP_Settings"].purge_amount | float %}\n{% set flow_rate = printer["gcode_macro _KAMP_Settings"].flow_rate | float %}\n{% set rapid_move = 10 %}\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set purge_x_min = (all_points | map(attribute=0) | min | default(0)) %}\n{% set purge_x_max = (all_points | map(attribute=0) | max | default(0)) %}\n{% set purge_y_min = (all_points | map(attribute=1) | min | default(0)) %}\n{% set purge_y_max = (all_points | map(attribute=1) | max | default(0)) %}\n{% set detect_object = purge_x_min + purge_x_max + purge_y_min + purge_y_max %}\n{% set purge_x_center = ([((purge_x_max + purge_x_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% set purge_y_center = ([((purge_y_max + purge_y_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% if (purge_x_center + purge_amount + rapid_move) > bed_x_max %}\n{% set purge_x_center = (bed_x_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% if (purge_y_center + purge_amount + rapid_move) > bed_y_max %}\n{% set purge_y_center = (bed_y_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% set purge_x_origin_low = (purge_x_min - purge_margin) %}\n{% set purge_x_origin_high = (purge_x_max + purge_margin) %}\n{% set purge_y_origin_low = (purge_y_min - purge_margin) %}\n{% set purge_y_origin_high = (purge_y_max + purge_margin) %}\n{% set purge_move_speed = (flow_rate / 5.0) * 60 | float %}\n\n{% if cross_section < 5 %}\n\nRESPOND TYPE=command MSG="[Extruder] max_extrude_cross_section is insufficient for line purge, please set it to 5 or greater. Purge skipped."\n\n{% else %}\n\n{% if verbose_enable == True %}\n\nRESPOND TYPE=command MSG="Moving filament tip {tip_distance}mm"\n\n{% endif %}\n\n{% if detect_object == 0 %}\n\nRESPOND TYPE=command MSG="No object detected! Using classic purge line."\n\n{% elif purge_y_origin_low > 0 %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_low} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_x_origin_low > 0 %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_low}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_y_origin_high < bed_y_max %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_high} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_x_origin_high < bed_x_max %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_high}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% else %}\n\nRESPOND TYPE=command MSG="No space for purge line! Using classic purge line."\n\n{% endif %}\n\nSAVE_GCODE_STATE NAME=Prepurge_State\n\n{% if detect_object == 0 %}\n\nG92 E0\nG1 Z0.1 F600\nM83\n{RETRACT}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nM204 S12000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000\nM220 S100\nM221 S100\nG1 Z2.0 F1200\nG1 X0.1 Y20 Z0.3 F6000.0\nG1 X0.1 Y180.0 Z0.3 F3000.0 E10.0\nG1 X0.4 Y180.0 Z0.3 F3000.0\nG1 X0.4 Y20.0 Z0.3 F3000.0 E10.0\nG1 Y10.0 F3000.0\nG1 Z2.0 F3000.0\nG92 E0\nM82\nG1 F12000\nG21\n\n{% elif purge_y_origin_low > 0 %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_center} Y{purge_y_origin_low}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_x_origin_low > 0 %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_origin_low} Y{purge_y_center}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_y_origin_high < bed_y_max %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_center} Y{purge_y_origin_high}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_x_origin_high < bed_x_max %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_origin_high} Y{purge_y_center}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% else %}\n\nG92 E0\nG1 Z0.1 F600\nM83\n{RETRACT}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nM204 S12000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000\nM220 S100\nM221 S100\nG1 Z2.0 F1200\nG1 X0.1 Y20 Z0.3 F6000.0\nG1 X0.1 Y180.0 Z0.3 F3000.0 E10.0\nG1 X0.4 Y180.0 Z0.3 F3000.0\nG1 X0.4 Y20.0 Z0.3 F3000.0 E10.0\nG1 Y10.0 F3000.0\nG1 Z2.0 F3000.0\nG92 E0\nM82\nG1 F12000\nG21\n\n{% endif %}\n\nRESTORE_GCODE_STATE NAME=Prepurge_State\n\n{% endif %}', 'description': 'A purge macro that adapts to be near your actual printed objects'}, 'gcode_macro _smart_park': {'gcode': '\n{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}\n{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}\n{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}\n{% set z_height = kamp_settings.smart_park_height | float %}\n{% set purge_margin = kamp_settings.purge_margin | float %}\n{% set purge_amount = kamp_settings.purge_amount | float %}\n{% set verbose_enable = kamp_settings.verbose_enable | abs %}\n{% set center_x = bed_x_max / 2 %}\n{% set center_y = bed_y_max / 2 %}\n{% set axis_minimum_x = printer.toolhead.axis_minimum.x | float %}\n{% set axis_minimum_y = printer.toolhead.axis_minimum.y | float %}\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set x_min = (all_points | map(attribute=0) | min | default(0)) %}\n{% set x_max = (all_points | map(attribute=0) | max | default(0)) %}\n{% set y_min = (all_points | map(attribute=1) | min | default(0)) %}\n{% set y_max = (all_points | map(attribute=1) | max | default(0)) %}\n{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}\n{% set rapid_move = 10 %}\n{% set park_x_center = ([((x_max + x_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% set park_y_center = ([((y_max + y_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% if (park_x_center + purge_amount + rapid_move) > bed_x_max %}\n{% set park_x_center = (bed_x_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% if (park_y_center + purge_amount + rapid_move) > bed_y_max %}\n{% set park_y_center = (bed_y_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% set park_x_origin_low = (x_min - purge_margin) %}\n{% set park_x_origin_high = (x_max + purge_margin) %}\n{% set park_y_origin_low = (y_min - purge_margin) %}\n{% set park_y_origin_high = (y_max + purge_margin) %}\n{% set detect_object = (x_min + x_max + y_min + y_max) %}\n{% if detect_object == 0 %}\n{% set x_min = 10 %}\n{% set y_min = 10 %}\n{% set z_height = 2 %}\n{% elif park_y_origin_low > 0 %}\n{% set x_min = park_x_center %}\n{% set y_min = park_y_origin_low %}\n{% elif park_x_origin_low > 0 %}\n{% set x_min = park_x_origin_low %}\n{% set y_min = park_y_center %}\n{% elif park_y_origin_high < bed_y_max %}\n{% set x_min = park_x_center %}\n{% set y_min = park_y_origin_high %}\n{% elif park_x_origin_high < bed_x_max %}\n{% set x_min = park_x_origin_high %}\n{% set y_min = park_y_center %}\n{% else %}\n{% set x_min = 10 %}\n{% set y_min = 10 %}\n{% set z_height = 2 %}\n{% endif %}\n\n{% if verbose_enable == True %}\n\nRESPOND TYPE=command MSG="Smart Park location: {x_min},{y_min}"\n\n{% endif %}\n\nSAVE_GCODE_STATE NAME=Presmartpark_State\n\nG90\n{% if printer.toolhead.position.z < z_height %}\n\nG0 Z{z_height}\n\n{% endif %}\n\nG0 X{x_min} Y{y_min} F{travel_speed}\nG0 Z{z_height}\n\nRESTORE_GCODE_STATE NAME=Presmartpark_State', 'description': 'Parks your printhead near the print area for pre-print hotend heating.'}, 'gcode_macro define_object': {'gcode': '\nEXCLUDE_OBJECT_DEFINE {rawparams}', 'description': 'G-Code macro'}, 'gcode_macro start_current_object': {'gcode': '\nEXCLUDE_OBJECT_START NAME={params.NAME}', 'description': 'G-Code macro'}, 'gcode_macro end_current_object': {'gcode': '\nEXCLUDE_OBJECT_END {% if params.NAME %}NAME={params.NAME}{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro list_objects': {'gcode': '\nEXCLUDE_OBJECT_DEFINE', 'description': 'G-Code macro'}, 'gcode_macro list_excluded_objects': {'gcode': '\nEXCLUDE_OBJECT', 'description': 'G-Code macro'}, 'gcode_macro remove_all_excluded': {'gcode': '\nEXCLUDE_OBJECT RESET=1', 'description': 'G-Code macro'}, 'gcode_macro _kamp_settings': {'gcode': '\nRESPOND TYPE=command MSG="Running the KAMP_Settings macro does nothing, it\'s only used for storing KAMP settings."', 'description': 'This macro contains all adjustable settings for KAMP', 'variable_verbose_enable': 'True', 'variable_mesh_margin': '0', 'variable_fuzz_amount': '0', 'variable_purge_height': '0.8', 'variable_tip_distance': '0', 'variable_purge_margin': '10', 'variable_purge_amount': '50', 'variable_flow_rate': '12', 'variable_smart_park_height': '10'}, 'verify_heater extruder': {'hysteresis': 5.0, 'max_error': 120.0, 'heating_gain': 2.0, 'check_gain_time': 20.0}, 'verify_heater heater_bed': {'hysteresis': 10.0, 'max_error': 120.0, 'heating_gain': 1.0, 'check_gain_time': 120.0}, 'bl24c16f': {'i2c_mcu': 'rpi', 'i2c_speed': 400000, 'i2c_bus': 'i2c.2', 'i2c_address': 87}, 'idle_timeout': {'timeout': 99999999.0, 'gcode': "\n{% if 'heaters' in printer %}\n TURN_OFF_HEATERS\n{% endif %}\nM84\n"}, 'virtual_sdcard': {'path': '/usr/data/printer_data/gcodes', 'on_error_gcode': ''}, 'gcode_arcs': {'resolution': 1.0}, 'temperature_sensor mcu_temp': {'sensor_type': 'temperature_mcu', 'sensor_mcu': 'mcu', 'min_temp': 0.0, 'max_temp': 100.0}, 'temperature_sensor chamber_temp': {'sensor_type': 'EPCOS 100K B57560G104F', 'pullup_resistor': 4700.0, 'inline_resistor': 0.0, 'sensor_pin': 'PC5', 'min_temp': 0.0, 'max_temp': 125.0}, 'tmc2209 stepper_x': {'uart_pin': 'PA9', 'uart_address': 3, 'diag_pin': '^PB12', 'run_current': 1.5, 'hold_current': 1.0, 'sense_resistor': 0.1, 'interpolate': True, 'stealthchop_threshold': 0.0, 'driver_toff': 3, 'driver_hstrt': 5, 'driver_hend': 0, 'driver_tbl': 2, 'driver_iholddelay': 8, 'driver_tpowerdown': 20, 'driver_pwm_ofs': 36, 'driver_pwm_grad': 14, 'driver_pwm_freq': 1, 'driver_pwm_autoscale': True, 'driver_pwm_autograd': True, 'driver_pwm_reg': 8, 'driver_pwm_lim': 12, 'driver_sgthrs': 65}, 'stepper_x': {'microsteps': 32, 'step_pin': 'PC2', 'dir_pin': '!PB9', 'rotation_distance': 72.0, 'full_steps_per_rotation': 200, 'gear_ratio': (), 'enable_pin': '!PC3', 'endstop_pin': 'tmc2209_stepper_x:virtual_endstop', 'position_endstop': 306.5, 'position_min': -2.0, 'position_max': 306.5, 'homing_speed': 36.0, 'second_homing_speed': 18.0, 'homing_retract_speed': 36.0, 'homing_retract_dist': 0.0, 'homing_positive_dir': True}, 'tmc2209 stepper_y': {'uart_pin': 'PA10', 'uart_address': 3, 'diag_pin': '^PB13', 'run_current': 1.5, 'hold_current': 1.0, 'sense_resistor': 0.1, 'interpolate': True, 'stealthchop_threshold': 0.0, 'driver_toff': 3, 'driver_hstrt': 5, 'driver_hend': 0, 'driver_tbl': 2, 'driver_iholddelay': 8, 'driver_tpowerdown': 20, 'driver_pwm_ofs': 36, 'driver_pwm_grad': 14, 'driver_pwm_freq': 1, 'driver_pwm_autoscale': True, 'driver_pwm_autograd': True, 'driver_pwm_reg': 8, 'driver_pwm_lim': 12, 'driver_sgthrs': 65}, 'stepper_y': {'microsteps': 32, 'step_pin': 'PB8', 'dir_pin': '!PB7', 'rotation_distance': 72.0, 'full_steps_per_rotation': 200, 'gear_ratio': (), 'enable_pin': '!PC3', 'endstop_pin': 'tmc2209_stepper_y:virtual_endstop', 'position_endstop': -2.0, 'position_min': -2.0, 'position_max': 306.0, 'homing_speed': 36.0, 'second_homing_speed': 18.0, 'homing_retract_speed': 36.0, 'homing_retract_dist': 0.0, 'homing_positive_dir': False}, 'tmc2209 stepper_z': {'uart_pin': 'PA11', 'uart_address': 3, 'diag_pin': '^PB14', 'run_current': 0.8, 'hold_current': 2.0, 'sense_resistor': 0.1, 'interpolate': True, 'stealthchop_threshold': 0.0, 'driver_toff': 3, 'driver_hstrt': 5, 'driver_hend': 0, 'driver_tbl': 2, 'driver_iholddelay': 8, 'driver_tpowerdown': 20, 'driver_pwm_ofs': 36, 'driver_pwm_grad': 14, 'driver_pwm_freq': 1, 'driver_pwm_autoscale': True, 'driver_pwm_autograd': True, 'driver_pwm_reg': 8, 'driver_pwm_lim': 12, 'driver_sgthrs': 0}, 'stepper_z': {'microsteps': 16, 'position_max': 305.0, 'position_min': -10.0, 'step_pin': 'PB6', 'dir_pin': '!PB5', 'rotation_distance': 8.0, 'full_steps_per_rotation': 200, 'gear_ratio': ((64.0, 20.0),), 'enable_pin': '!PC3', 'endstop_pin': 'tmc2209_stepper_z:virtual_endstop', 'position_endstop': 0.0, 'homing_speed': 10.0, 'second_homing_speed': 1.0, 'homing_retract_speed': 10.0, 'homing_retract_dist': 2.0, 'homing_positive_dir': False}, 'tmc2209 extruder': {'uart_pin': 'nozzle_mcu:PB11', 'tx_pin': 'nozzle_mcu:PB10', 'uart_address': 3, 'run_current': 0.55, 'hold_current': 2.0, 'sense_resistor': 0.15, 'interpolate': True, 'stealthchop_threshold': 0.0, 'driver_toff': 3, 'driver_hstrt': 5, 'driver_hend': 0, 'driver_tbl': 2, 'driver_iholddelay': 8, 'driver_tpowerdown': 20, 'driver_pwm_ofs': 36, 'driver_pwm_grad': 14, 'driver_pwm_freq': 1, 'driver_pwm_autoscale': True, 'driver_pwm_autograd': True, 'driver_pwm_reg': 8, 'driver_pwm_lim': 12, 'driver_sgthrs': 0}, 'extruder': {'microsteps': 16, 'sensor_type': 'EPCOS 100K B57560G104F', 'pullup_resistor': 4700.0, 'inline_resistor': 0.0, 'sensor_pin': 'nozzle_mcu:PA0', 'min_temp': 0.0, 'max_temp': 320.0, 'min_extrude_temp': 170.0, 'max_power': 1.0, 'smooth_time': 1.0, 'control': 'pid', 'pid_kp': 25.013, 'pid_ki': 2.566, 'pid_kd': 60.966, 'heater_pin': 'nozzle_mcu:PB7', 'pwm_cycle_time': 0.1, 'nozzle_diameter': 0.4, 'filament_diameter': 1.75, 'max_extrude_cross_section': 80.0, 'max_extrude_only_velocity': 212.86486429531544, 'max_extrude_only_accel': 5321.6216073828855, 'max_extrude_only_distance': 1000.0, 'instantaneous_corner_velocity': 1.0, 'step_pin': 'nozzle_mcu:PB1', 'pressure_advance': 0.04, 'pressure_advance_smooth_time': 0.04, 'dir_pin': 'nozzle_mcu:PB0', 'rotation_distance': 6.9, 'full_steps_per_rotation': 200, 'gear_ratio': (), 'enable_pin': '!nozzle_mcu:PB2'}, 'heater_bed': {'sensor_type': 'NTC 100K beta 3950', 'pullup_resistor': 4700.0, 'inline_resistor': 0.0, 'sensor_pin': 'PC4', 'min_temp': 0.0, 'max_temp': 125.0, 'min_extrude_temp': 170.0, 'max_power': 1.0, 'smooth_time': 1.0, 'control': 'pid', 'pid_kp': 52.075, 'pid_ki': 1.036, 'pid_kd': 654.186, 'heater_pin': 'PC8', 'pwm_cycle_time': 0.1}, 'filament_switch_sensor filament_sensor': {'switch_pin': '!PC15', 'pause_on_runout': True, 'runout_gcode': "\n{% if printer.extruder.can_extrude|lower == 'true' %}\nG91\nG0 E30 F600\nG90\n{% endif %}", 'pause_delay': 0.5, 'event_delay': 3.0}, 'pause_resume': {'recover_velocity': 50.0}, 'filament_switch_sensor filament_sensor_2': {'switch_pin': '!nozzle_mcu:PA10', 'pause_on_runout': True, 'runout_gcode': '', 'pause_delay': 0.5, 'event_delay': 3.0}, 'multi_pin heater_fans': {'pins': ('nozzle_mcu:PB5', 'PB2')}, 'heater_fan hotend_fan': {'heater': ('extruder',), 'heater_temp': 40.0, 'max_power': 1.0, 'kick_start_time': 0.1, 'off_below': 0.0, 'cycle_time': 0.01, 'hardware_pwm': False, 'shutdown_speed': 1.0, 'pin': 'multi_pin:heater_fans', 'fan_speed': 1.0}, 'static_digital_output my_fan_output_pins': {'pins': ('nozzle_mcu: PB6',)}, 'output_pin fan0': {'pwm': True, 'pin': '!nozzle_mcu: PB8', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 255.0, 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'output_pin fan1': {'pwm': True, 'pin': 'PC0', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 255.0, 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'output_pin fan2': {'pwm': True, 'pin': 'PB1', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 255.0, 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'output_pin led': {'pwm': True, 'pin': 'PB0', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 1.0, 'maximum_mcu_duration': 0.0, 'value': 1.0, 'shutdown_value': 0.0}, 'output_pin power': {'pwm': False, 'pin': 'PC9', 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'adxl345': {'axes_map': ('x', '-z', 'y'), 'rate': 3200, 'cs_pin': 'nozzle_mcu:PA4', 'spi_speed': 5000000, 'spi_software_sclk_pin': 'nozzle_mcu:PA5', 'spi_software_miso_pin': 'nozzle_mcu:PA6', 'spi_software_mosi_pin': 'nozzle_mcu:PA7'}, 'resonance_tester': {'move_speed': 50.0, 'min_freq': 5.0, 'max_freq': 133.33333333333334, 'accel_per_hz': 75.0, 'hz_per_sec': 1.0, 'probe_points': ((150.0, 150.0, 10.0),), 'low_mem': True, 'accel_chip': 'adxl345'}, 'prtouch_v2': {'pr_version': 2, 'tri_min_hold_1': (6000, 10000), 'tri_max_hold_1': (13000, 60000), 'tri_min_hold_2': (6000, 10000), 'tri_max_hold_2': (13000, 60000), 'tri_min_hold_3': (6000, 10000), 'tri_max_hold_3': (13000, 60000), 'tri_min_hold_4': (6000, 10000), 'tri_max_hold_4': (13000, 60000), 'tri_min_hold_5': (6000, 10000), 'tri_max_hold_5': (13000, 60000), 'tri_min_hold_6': (6000, 10000), 'tri_max_hold_6': (13000, 60000), 'tri_min_hold_7': (6000, 10000), 'tri_max_hold_7': (13000, 60000), 'tri_min_hold_8': (6000, 10000), 'tri_max_hold_8': (13000, 60000), 'tri_min_hold_9': (6000, 10000), 'tri_max_hold_9': (13000, 60000), 'tri_min_hold_10': (6000, 10000), 'tri_max_hold_10': (13000, 60000), 'tri_min_hold_11': (6000, 10000), 'tri_max_hold_11': (13000, 60000), 'tri_min_hold_12': (6000, 10000), 'tri_max_hold_12': (13000, 60000), 'tri_min_hold_13': (6000, 10000), 'tri_max_hold_13': (13000, 60000), 'tri_min_hold_14': (6000, 10000), 'tri_max_hold_14': (13000, 60000), 'tri_min_hold_15': (6000, 10000), 'tri_max_hold_15': (13000, 60000), 'tri_min_hold_16': (6000, 10000), 'tri_max_hold_16': (13000, 60000), 'tri_min_hold_17': (6000, 10000), 'tri_max_hold_17': (13000, 60000), 'tri_min_hold_18': (6000, 10000), 'tri_max_hold_18': (13000, 60000), 'tri_min_hold_19': (6000, 10000), 'tri_max_hold_19': (13000, 60000), 'tri_min_hold_20': (6000, 10000), 'tri_max_hold_20': (13000, 60000), 'tri_min_hold_21': (6000, 10000), 'tri_max_hold_21': (13000, 60000), 'tri_min_hold_22': (6000, 10000), 'tri_max_hold_22': (13000, 60000), 'tri_min_hold_23': (6000, 10000), 'tri_max_hold_23': (13000, 60000), 'tri_min_hold_24': (6000, 10000), 'tri_max_hold_24': (13000, 60000), 'tri_min_hold_25': (6000, 10000), 'tri_max_hold_25': (13000, 60000), 'tri_min_hold_26': (6000, 10000), 'tri_max_hold_26': (13000, 60000), 'tri_min_hold_27': (6000, 10000), 'tri_max_hold_27': (13000, 60000), 'tri_min_hold_28': (6000, 10000), 'tri_max_hold_28': (13000, 60000), 'tri_min_hold_29': (6000, 10000), 'tri_max_hold_29': (13000, 60000), 'tri_min_hold_30': (6000, 10000), 'tri_max_hold_30': (13000, 60000), 'tri_min_hold_31': (6000, 10000), 'tri_max_hold_31': (13000, 60000), 'tri_min_hold_32': (6000, 10000), 'tri_max_hold_32': (13000, 60000), 'tri_min_hold_33': (6000, 10000), 'tri_max_hold_33': (13000, 60000), 'tri_min_hold_34': (6000, 10000), 'tri_max_hold_34': (13000, 60000), 'tri_min_hold_35': (6000, 10000), 'tri_max_hold_35': (13000, 60000), 'tri_min_hold_36': (6000, 10000), 'tri_max_hold_36': (13000, 60000), 'use_adc': False, 'tri_acq_ms': 12, 'tri_send_ms': 10, 'tri_need_cnt': 1, 'tri_try_max_times': 10, 'cal_hftr_cut': 10, 'cal_lftr_k1': 0.85, 'tri_min_hold': (6000, 10000), 'tri_max_hold': (13000, 60000), 'tri_hftr_cut': (2.0, 1.0), 'tri_lftr_k1': (0.5, 0.15), 'correct_tri_hold': 0, 'correct_step_mm': 0.04, 'show_msg': False, 'shake_cnt': 8, 'shake_range': 0.5, 'hot_min_temp': 140, 'hot_max_temp': 200, 'bed_max_temp': 60, 'pa_clr_dis_mm': 30, 'pa_clr_down_mm': -0.15, 'clr_noz_start_x': 130.0, 'clr_noz_start_y': 303.0, 'clr_noz_len_x': 40.0, 'clr_noz_len_y': 2.0, 'clr_xy_spd': 2.0, 'speeds': (2.5, 1.0), 'lift_speed': 5.0, 'rdy_xy_spd': 200, 'rdy_z_spd': 5.0, 'acc_ctl_mm': 0.25, 'low_spd_nul': 5, 'send_step_duty': 16, 'run_max_velocity': 500, 'run_max_accel': 500, 'run_max_z_velocity': 20, 'run_max_z_accel': 200, 'check_bed_mesh_max_err': 0.2, 'need_self_check': True, 'bed_max_err': 5, 'g29_down_min_z': 25, 'probe_min_3err': 0.1, 'step_base': 2, 'g28_wait_cool_down': True, 'best_above_z': 3, 'safe_z_dead_dis': 2, 'fan_heat_min_spd': 0.3, 'fan_heat_max_spd': 1.0, 'lost_step_dis': 0.5, 'tilt_corr_dis': 0.05, 'bed_mesh_top_mid_com': 0.0, 'bed_mesh_bottom_mid_com': 0.0, 'bed_mesh_left_mid_com': 0.0, 'bed_mesh_right_mid_com': 0.0, 'noz_ex_com': 0.09, 'sys_time_duty': 0.001, 'shake_sample_num': 100, 'shake_z_velocity': 100, 'shake_z_accel': 500, 'shake_num': 20, 'check_std_max': 6000, 'check_std_mim': 250, 'step_swap_pin': 'PC10', 'pres_swap_pin': 'leveling_mcu:PB1', 'pres_cnt': 4, 'pres0_clk_pins': 'leveling_mcu:PA7', 'pres0_sdo_pins': 'leveling_mcu:PA4', 'pres1_clk_pins': 'leveling_mcu:PA6', 'pres1_sdo_pins': 'leveling_mcu:PA3', 'pres2_clk_pins': 'leveling_mcu:PA2', 'pres2_sdo_pins': 'leveling_mcu:PA0', 'pres3_clk_pins': 'leveling_mcu:PA5', 'pres3_sdo_pins': 'leveling_mcu:PA1', 'speed': 5.0, 'x_offset': 0.0, 'y_offset': 0.0, 'z_offset': 0.0, 'samples': 1, 'sample_retract_dist': 2.0, 'samples_result': 'average', 'samples_tolerance': 0.1, 'samples_tolerance_retries': 0}, 'printer': {'kinematics': 'corexy', 'max_velocity': 800.0, 'max_accel': 20000.0, 'max_accel_to_decel': 20000.0, 'square_corner_velocity': 5.0, 'square_corner_max_velocity': 200.0, 'buffer_time_low': 1.0, 'buffer_time_high': 2.0, 'buffer_time_start': 0.25, 'move_flush_time': 0.05, 'max_z_velocity': 20.0, 'max_z_accel': 300.0}, 'bed_mesh': {'probe_count': (6, 6), 'mesh_min': (5.0, 5.0), 'mesh_max': (295.0, 295.0), 'mesh_pps': (2, 2), 'algorithm': 'lagrange', 'bicubic_tension': 0.2, 'horizontal_move_z': 5.0, 'speed': 150.0, 'fade_start': 5.0, 'fade_end': 50.0, 'split_delta_z': 0.025, 'move_check_distance': 5.0}, 'input_shaper': {'shaper_type': 'mzv', 'shaper_type_x': '2hump_ei', 'damping_ratio_x': 0.1, 'shaper_freq_x': 39.0, 'shaper_type_y': 'zv', 'damping_ratio_y': 0.1, 'shaper_freq_y': 48.0}}, 'warnings': [{'type': 'deprecated_value', 'value': 'NTC 100K beta 3950', 'message': "Value 'NTC 100K beta 3950' in option 'sensor_type' in section 'heater_bed' is deprecated.", 'section': 'heater_bed', 'option': 'sensor_type'}], 'save_config_pending': False, 'save_config_pending_items': {}}, 'mcu': {'mcu_version': '1.3.0.40-5-g6977eaff-dirty-20230711_100121-ubuntu', 'mcu_build_versions': 'gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34', 'mcu_constants': {'ADC_MAX': 4095, 'CLOCK_FREQ': 120000000, 'INITIAL_PINS': 'PC7,PB0', 'MCU': 'gd32f303xe', 'RECEIVE_WINDOW': 192, 'RESERVE_PINS_serial': 'PA2,PA3', 'SERIAL_BAUD': 230400, 'STATS_SUMSQ_BASE': 256, 'STEPPER_BOTH_EDGE': 1, 'build_machine_uid': 'Jul 11 202310:01:16'}, 'last_stats': {'mcu_awake': 0.003, 'mcu_task_avg': 1.1e-05, 'mcu_task_stddev': 5e-06, 'bytes_write': 1928, 'bytes_read': 6346, 'bytes_retransmit': 9, 'bytes_invalid': 0, 'send_seq': 174, 'receive_seq': 174, 'retransmit_seq': 2, 'srtt': 0.001, 'rttvar': 0.0, 'rto': 0.025, 'ready_bytes': 0, 'stalled_bytes': 0, 'freq': 119998069}}, 'mcu nozzle_mcu': {'mcu_version': '1.3.0.40-5-g6977eaff-dirty-20230711_100254-ubuntu', 'mcu_build_versions': 'gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34', 'mcu_constants': {'ADC_MAX': 4095, 'CLOCK_FREQ': 120000000, 'INITIAL_PINS': '!PB5,!PB6,!PB7', 'MCU': 'gd32f303xb', 'RECEIVE_WINDOW': 192, 'RESERVE_PINS_serial': 'PA2,PA3', 'SERIAL_BAUD': 230400, 'STATS_SUMSQ_BASE': 256, 'STEPPER_BOTH_EDGE': 1, 'build_machine_uid': 'Jul 11 202310:02:50'}, 'last_stats': {'mcu_awake': 0.0, 'mcu_task_avg': 0.0, 'mcu_task_stddev': 0.0, 'bytes_write': 1153, 'bytes_read': 4815, 'bytes_retransmit': 9, 'bytes_invalid': 0, 'send_seq': 117, 'receive_seq': 117, 'retransmit_seq': 2, 'srtt': 0.001, 'rttvar': 0.0, 'rto': 0.025, 'ready_bytes': 0, 'stalled_bytes': 0, 'freq': 119999442, 'adj': 119984287}}, 'mcu leveling_mcu': {'mcu_version': '1.3.0.40-5-g6977eaff-dirty-20230711_095416-ubuntu', 'mcu_build_versions': 'gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34', 'mcu_constants': {'ADC_MAX': 4095, 'CLOCK_FREQ': 72000000, 'MCU': 'gd32e230x8', 'RECEIVE_WINDOW': 192, 'RESERVE_PINS_serial': 'PA9,PA10', 'SERIAL_BAUD': 230400, 'STATS_SUMSQ_BASE': 256, 'STEPPER_BOTH_EDGE': 1, 'build_machine_uid': 'Jul 11 202309:54:12'}, 'last_stats': {'mcu_awake': 0.004, 'mcu_task_avg': 2.7e-05, 'mcu_task_stddev': 7.6e-05, 'bytes_write': 761, 'bytes_read': 4267, 'bytes_retransmit': 9, 'bytes_invalid': 0, 'send_seq': 91, 'receive_seq': 91, 'retransmit_seq': 2, 'srtt': 0.001, 'rttvar': 0.001, 'rto': 0.025, 'ready_bytes': 0, 'stalled_bytes': 0, 'freq': 71826418, 'adj': 71738610}}, 'mcu rpi': {'mcu_version': 'v0.11.0-372-gb9ad7605', 'mcu_build_versions': 'gcc: (Ingenic Linux-Release5.1.0-Default(xburst2(fp64)+glibc2.29) 2021.12-22 10:52:10) 7.2.0 binutils: (Ingenic Linux-Release5.1.0.-Default(xburst2(fp64)+glibc2.29) 2021.12-22 08:55:37) 2.27', 'mcu_constants': {'ADC_MAX': 4095, 'CLOCK_FREQ': 50000000, 'MCU': 'linux', 'PCA9685_MAX': 4096, 'PWM_MAX': 32768, 'STATS_SUMSQ_BASE': 256, 'build_machine_uid': 'May 18 202311:46:31'}, 'last_stats': {'mcu_awake': 0.0, 'mcu_task_avg': 0.0, 'mcu_task_stddev': 0.0, 'bytes_write': 774, 'bytes_read': 4425, 'bytes_retransmit': 0, 'bytes_invalid': 0, 'send_seq': 99, 'receive_seq': 99, 'retransmit_seq': 0, 'srtt': 0.0, 'rttvar': 0.0, 'rto': 0.025, 'ready_bytes': 0, 'stalled_bytes': 0, 'freq': 50048671, 'adj': 50009675}}, 'virtual_pins': {'pins': {'KAMP_pin': {'value': 1.0, 'type': 'digital_out'}, 'BED_LEVELING_pin': {'value': 1.0, 'type': 'digital_out'}}}, 'gcode_macro xyz_ready': {'x_ready': 0, 'y_ready': 0, 'z_ready': 0, 'xy_moved': 0, 'z_moved': 0, 'safe_z': 3}, 'gcode_macro _IF_HOME_Z': {}, 'gcode_macro _IF_MOVE_XY': {}, 'gcode_macro _HOME_X': {}, 'gcode_macro _HOME_Y': {}, 'gcode_macro _HOME_Z': {}, 'gcode_macro PRINTER_PARAM': {'z_safe_pause': 0.0, 'z_safe_g28': 3.0, 'max_x_position': 300.0, 'max_y_position': 300.0, 'max_z_position': 300.0, 'fans': 3, 'auto_g29': 0, 'fan0_min': 25, 'fan1_min': 50, 'fan2_min': 180, 'fan2_speed': 0, 'hotend_temp': 0, 'e_min_current': 0.27}, 'gcode_macro AUTOTUNE_SHAPERS': {}, 'gcode_macro LOAD_MATERIAL_CLOSE_FAN2': {'fan2_value': 0}, 'gcode_macro LOAD_MATERIAL_RESTORE_FAN2': {}, 'gcode_macro SET_E_MIN_CURRENT': {}, 'gcode_macro RESTORE_E_CURRENT': {}, 'gcode_macro LOAD_MATERIAL': {}, 'gcode_macro QUIT_MATERIAL': {}, 'gcode_macro Qmode': {'flag': 0, 'accel': 0, 'accel_to_decel': 0, 'velocity': 0, 'square_corner_velocity': 0, 'pressure_advance': 0.0, 'fan0_value': 0.0, 'fan1_value': 0.0, 'fan2_value': 0.0, 'speed_factor': 0, 'max_accel': 2500, 'max_accel_to_decel': 2500}, 'gcode_macro Qmode_exit': {}, 'gcode_macro M204': {}, 'gcode_macro M205': {}, 'gcode_macro M107': {}, 'gcode_macro M900': {}, 'gcode_macro WAIT_TEMP_START': {}, 'gcode_macro WAIT_TEMP_END': {}, 'gcode_macro PRINT_CALIBRATION': {}, 'gcode_macro FIRST_FLOOR_PAUSE_POSITION': {}, 'gcode_macro ACCURATE_G28': {}, 'gcode_macro PRINT_PREPARED': {}, 'gcode_macro PRINT_PREPARE_CLEAR': {}, 'gcode_macro END_PRINT_POINT_WITHOUT_LIFTING': {}, 'gcode_macro END_PRINT_POINT': {}, 'gcode_macro END_PRINT': {}, 'gcode_macro FIRST_FLOOR_PAUSE': {'extrude': 2.0}, 'gcode_macro FIRST_FLOOR_RESUME': {}, 'gcode_macro PAUSE': {'extrude': 2.0}, 'gcode_macro INPUTSHAPER': {}, 'gcode_macro BEDPID': {}, 'gcode_macro TUNOFFINPUTSHAPER': {}, 'gcode_macro RESUME': {}, 'gcode_macro CANCEL_PRINT': {}, 'gcode_macro G29': {}, 'gcode_move': {'speed_factor': 1.0, 'speed': 1500.0, 'extrude_factor': 1.0, 'absolute_coordinates': True, 'absolute_extrude': True, 'homing_origin': Coord(x=0.0, y=0.0, z=0.0, e=0.0), 'position': Coord(x=0.0, y=0.0, z=0.0, e=0.0), 'gcode_position': Coord(x=0.0, y=0.0, z=0.0, e=0.0)}, 'print_stats': {'filename': '', 'total_duration': 0.0, 'print_duration': 0.0, 'filament_used': 0.0, 'state': 'standby', 'message': '', 'info': {'total_layer': None, 'current_layer': None}, 'power_loss': 0, 'z_pos': 6.0}, 'fan_feedback': {'fan0_speed': 0, 'fan1_speed': 0, 'fan2_speed': 0, 'fan3_speed': 0, 'fan4_speed': 0}, 'custom_macro': {'leveling_calibration': 0, 'default_extruder_temp': 240.0, 'default_bed_temp': 50.0, 'g28_ext_temp': 140.0, 'qmode_flag': 0}, 'gcode_macro GET_TIMELAPSE_SETUP': {}, 'gcode_macro _SET_TIMELAPSE_SETUP': {}, 'gcode_macro TIMELAPSE_TAKE_FRAME': {'enable': True, 'takingframe': False, 'park': {'enable': False, 'pos': 'back_right', 'time': 0.1, 'custom': {'x': 10.0, 'y': 10.0, 'dz': 0.0}, 'coord': {'x': 306.5, 'y': 306.0, 'dz': 0}}, 'extruder': {'fw_retract': False, 'retract': 0.5, 'extrude': 0.5}, 'speed': {'travel': 400.0, 'retract': 40.0, 'extrude': 40.0}, 'verbose': False, 'check_time': 0.5, 'restore': {'absolute': {'coordinates': True, 'extrude': True}, 'speed': 1500, 'e': 0, 'factor': {'speed': 1.0, 'extrude': 1.0}}, 'macro': {'pause': 'PAUSE_BASE', 'resume': 'RESUME_BASE'}, 'is_paused': False}, 'gcode_macro _TIMELAPSE_NEW_FRAME': {}, 'gcode_macro HYPERLAPSE': {'cycle': 0, 'run': False}, 'gcode_macro TIMELAPSE_RENDER': {'render': False, 'run_identifier': 0}, 'gcode_macro TEST_STREAM_DELAY': {}, 'save_variables': {'variables': {}}, 'gcode_macro SET_GCODE_OFFSET': {}, 'calibrate_shaper_config': {}, 'gcode_macro INPUT_SHAPER_CALIBRATION': {}, 'gcode_macro TEST_RESONANCES_GRAPHS': {}, 'gcode_macro BELTS_SHAPER_CALIBRATION': {}, 'gcode_macro EXCITATE_AXIS_AT_FREQ': {}, 'heaters': {'available_heaters': ['heater_bed', 'extruder'], 'available_sensors': ['temperature_fan chamber_fan', 'temperature_fan mcu_fan', 'temperature_sensor mcu_temp', 'temperature_sensor chamber_temp', 'heater_bed', 'extruder'], 'extruder_temperature_wait': False, 'bed_temperature_wait': False}, 'temperature_fan chamber_fan': {'speed': 0.0, 'rpm': None, 'temperature': 21.33, 'target': 35.0}, 'temperature_fan mcu_fan': {'speed': 0.0, 'rpm': None, 'temperature': 34.15, 'target': 50.0}, 'output_pin mcu_fan': {'value': 0.0}, 'gcode_macro M141': {}, 'gcode_macro M191': {}, 'gcode_macro M106': {}, 'output_pin KAMP': {'value': 1.0}, 'output_pin BED_LEVELING': {'value': 1.0}, 'gcode_macro START_PRINT': {'prepare': 0}, 'gcode_macro BED_MESH_CALIBRATE': {}, 'gcode_macro _LINE_PURGE': {}, 'gcode_macro _SMART_PARK': {}, 'gcode_macro DEFINE_OBJECT': {}, 'gcode_macro START_CURRENT_OBJECT': {}, 'gcode_macro END_CURRENT_OBJECT': {}, 'gcode_macro LIST_OBJECTS': {}, 'gcode_macro LIST_EXCLUDED_OBJECTS': {}, 'gcode_macro REMOVE_ALL_EXCLUDED': {}, 'gcode_macro _KAMP_Settings': {'verbose_enable': True, 'mesh_margin': 0, 'fuzz_amount': 0, 'purge_height': 0.8, 'tip_distance': 0, 'purge_margin': 10, 'purge_amount': 50, 'flow_rate': 12, 'smart_park_height': 10}, 'idle_timeout': {'state': 'Idle', 'printing_time': 0.0}, 'virtual_sdcard': {'file_path': None, 'progress': 0.0, 'is_active': False, 'file_position': 0, 'file_size': 0, 'first_layer_stop': False, 'layer': 0, 'layer_count': 0, 'run_dis': 0.0}, 'temperature_sensor mcu_temp': {'temperature': 39.88, 'measured_min_temp': 39.83, 'measured_max_temp': 39.88}, 'temperature_sensor chamber_temp': {'temperature': 21.35, 'measured_min_temp': 21.29, 'measured_max_temp': 21.35}, 'tmc2209 stepper_x': {'mcu_phase_offset': 1, 'phase_offset_position': 0.01125, 'run_current': 1.4731391274719736, 'hold_current': 1.0017346066809423, 'drv_status': None}, 'tmc2209 stepper_y': {'mcu_phase_offset': 1, 'phase_offset_position': 0.01125, 'run_current': 1.4731391274719736, 'hold_current': 1.0017346066809423, 'drv_status': None}, 'tmc2209 stepper_z': {'mcu_phase_offset': 1, 'phase_offset_position': 0.00078125, 'run_current': 0.7954951288348658, 'hold_current': 0.7954951288348658, 'drv_status': None}, 'tmc2209 extruder': {'mcu_phase_offset': 62, 'phase_offset_position': 0.13368750000000001, 'run_current': 0.5615259732951996, 'hold_current': 0.5615259732951996, 'drv_status': None}, 'heater_bed': {'temperature': 50.22, 'target': 0.0, 'power': 0.0}, 'pause_resume': {'is_paused': False}, 'filament_switch_sensor filament_sensor': {'filament_detected': True, 'enabled': True}, 'filament_switch_sensor filament_sensor_2': {'filament_detected': True, 'enabled': True}, 'heater_fan hotend_fan': {'speed': 0.0, 'rpm': None}, 'output_pin fan0': {'value': 0.0}, 'output_pin fan1': {'value': 0.0}, 'output_pin fan2': {'value': 0.0}, 'output_pin LED': {'value': 1.0}, 'output_pin power': {'value': 0.0}, 'probe': {'last_query': False, 'last_z_result': 0.0, 'z_offset': 0.0}, 'bed_mesh': {'profile_name': '', 'mesh_min': (0.0, 0.0), 'mesh_max': (0.0, 0.0), 'probed_matrix': [[]], 'mesh_matrix': [[]], 'profiles': {}}, 'display_status': {'progress': 0.0, 'message': None}, 'exclude_object': {'objects': [], 'excluded_objects': [], 'current_object': None}, 'motion_report': {'live_position': Coord(x=0.0, y=0.0, z=0.0, e=0.0), 'live_velocity': 0.0, 'live_extruder_velocity': 0.0, 'steppers': ['extruder', 'stepper_x', 'stepper_y', 'stepper_z'], 'trapq': ['extruder', 'toolhead']}, 'query_endstops': {'last_query': {}}, 'system_stats': {'sysload': 1.54, 'cputime': 101.330754975, 'memavail': 127972}, 'manual_probe': {'is_active': False, 'z_position': None, 'z_position_lower': None, 'z_position_upper': None}, 'toolhead': {'homed_axes': '', 'axis_minimum': Coord(x=-2.0, y=-2.0, z=-10.0, e=0.0), 'axis_maximum': Coord(x=306.5, y=306.0, z=305.0, e=0.0), 'print_time': 0.022897957999829348, 'stalls': 0, 'estimated_print_time': 1026.98592365, 'extruder': 'extruder', 'position': Coord(x=0.0, y=0.0, z=0.0, e=0.0), 'max_velocity': 800.0, 'max_accel': 20000.0, 'max_accel_to_decel': 20000.0, 'square_corner_velocity': 5.0}, 'extruder': {'temperature': 26.57, 'target': 0.0, 'power': 0.0, 'can_extrude': False, 'pressure_advance': 0.04, 'smooth_time': 0.04}}} [INFO] 2024-04-13 07:07:33,665 [root] [webhooks:_handle_query:554] _handle_query after complete.wait:{'eventtime': 1036.807363833, 'status': {'webhooks': {'state': 'ready', 'state_message': 'Printer is ready'}, 'configfile': {'config': {'virtual_pins': {}, 'force_move': {'enable_force_move': 'true'}, 'gcode_macro xyz_ready': {'variable_x_ready': '0', 'variable_y_ready': '0', 'variable_z_ready': '0', 'variable_xy_moved': '0', 'variable_z_moved': '0', 'variable_safe_z': '3', 'gcode': ''}, 'gcode_macro _IF_HOME_Z': {'gcode': '\n{% if printer[\'gcode_macro xyz_ready\'].z_ready|int == 1 %}\n{% if printer.toolhead.position.z|int < 5 %}\n{% set z_park = 5.0 - printer.toolhead.position.z|int %}\nG91\nG1 z{z_park} F600\nG90\n{% endif %}\n{% else %}\n{% if printer[\'gcode_macro xyz_ready\'].z_moved|int == 0 %}\n{% if printer.print_stats.z_pos|float <= 20.0 or printer.print_stats.power_loss == 1 %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE={printer["gcode_macro PRINTER_PARAM"].z_safe_g28} VELOCITY=10\n{% else %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE=0.1 VELOCITY=10\n{% endif %}\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=1\n{% endif %}\n{% endif %}'}, 'gcode_macro _IF_MOVE_XY': {'gcode': '\n_IF_HOME_Z\n{% if printer[\'gcode_macro xyz_ready\'].xy_moved|int == 0 %}\n{action_respond_info("move xy\\n")}\n\nFORCE_MOVE STEPPER=stepper_y DISTANCE=-14 VELOCITY=50\nFORCE_MOVE STEPPER=stepper_y DISTANCE=7 VELOCITY=50\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=1\nG4 P1000\n{% endif %}'}, 'gcode_macro _HOME_X': {'gcode': "\n_IF_MOVE_XY\n\n{% if printer['gcode_macro xyz_ready'].x_ready|int == 1 %}\n{% if (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x)|round < 10 %}\n{% set x_park = (10 - (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x))|round %}\n{% if x_park > 0 %}\nG91\nG1 x-{x_park} F3600\nG90\nG4 P1000\n{% endif %}\n{% endif %}\n{% endif %}\n\n\n\n\nG28 X\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=1\n\nG91\nG1 x-10 F3600\nG90\n\nG4 P2000"}, 'gcode_macro _HOME_Y': {'gcode': "\n_IF_MOVE_XY\n\n{% if printer['gcode_macro xyz_ready'].y_ready|int == 1 %}\n{% if printer.toolhead.position.y|round < 8 %}\n{% set y_park = 8 - printer.toolhead.position.y|round %}\n{% if y_park > 0 %}\nG91\nG1 y{y_park} F3600\nG90\nG4 P1000\n{% endif %}\n{% endif %}\n{% endif %}\n\n\n\n\nG28 Y\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=1\n\nG91\nG1 y10 F3600\nG90\n\nG4 P2000"}, 'gcode_macro _HOME_Z': {'gcode': '\n{% if printer[\'gcode_macro xyz_ready\'].y_ready|int == 1 %}\n{% if printer[\'gcode_macro xyz_ready\'].x_ready|int == 1 %}\n_IF_HOME_Z\n{% endif %}\n{% endif %}\n{% if printer.print_stats.z_pos|float >= 260.0 %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE=-8 VELOCITY=10\n{% endif %}\n\n{% set POSITION_X = printer.configfile.settings[\'stepper_x\'].position_max/2 %}\n{% set POSITION_Y = printer.configfile.settings[\'stepper_y\'].position_max/2 %}\n\nG91\n{% set x_park = POSITION_X - printer.toolhead.position.x|int %}\n{% set y_park = POSITION_Y - printer.toolhead.position.y|int %}\n{action_respond_info("x_park = %s \\n" % (x_park))}\n{action_respond_info("y_park = %s \\n" % (y_park))}\nG1 x{x_park} y{y_park} F3600\nG90\n\n\nG28 Z\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=1'}, 'homing_override': {'axes': 'xyz', 'gcode': '\nM220 S100\n\n\n\n{% set x_axes = printer.toolhead.homed_axes %}\n{% if x_axes is defined and x_axes[0] is defined %}\n{action_respond_info(\n"x_axes: %s \\n"\n% (x_axes))}\n{% else %}\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=0\n{action_respond_info(\n"x_axes is NULL\\n")}\n{% endif %}\n\n{% if x_axes is not defined or x_axes[2] is not defined %}\nBED_MESH_CLEAR\n{% endif %}\n\n{% if x_axes is defined and x_axes[0] is defined and x_axes[1] is defined %}\n{action_respond_info("x_axes: %s \\n"% (x_axes))}\n{% set position_y = printer.toolhead.position.y|int %}\n{% set max_y_position = printer["gcode_macro PRINTER_PARAM"].max_y_position|int %}\n{% if position_y >= max_y_position %}\nG91\nG0 Y-10 F3600\nG90\n{% endif %}\n{% endif %}\n\n{% set home_all = \'X\' not in params and \'Y\' not in params %}\n{% if \'Z\' in params and \'X\' not in params and \'Y\' not in params %}\n{% if x_axes[0] is defined and x_axes[1] is defined %}\n{% set home_all = 0 %}\n{% endif %}\n{% endif %}\n\n{% if home_all or \'X\' in params %}\n_HOME_X\n{% endif %}\n\n{% if home_all or \'Y\' in params %}\n_HOME_Y\n{% endif %}\n\n{% if home_all or \'X\' in params %}\n_HOME_X\n{% endif %}\n\n{% if home_all or \'Y\' in params %}\n_HOME_Y\n{% endif %}\n\n{% if home_all or \'Z\' in params %}\n_HOME_Z\n{% endif %}\nBED_MESH_PROFILE LOAD="default"\n\n\n\n\nG4 P500'}, 'gcode_macro PRINTER_PARAM': {'variable_z_safe_pause': '0.0', 'variable_z_safe_g28': '3.0', 'variable_max_x_position': '300.0', 'variable_max_y_position': '300.0', 'variable_max_z_position': '300.0', 'variable_fans': '3', 'variable_auto_g29': '0', 'variable_fan0_min': '25', 'variable_fan1_min': '50', 'variable_fan2_min': '180', 'variable_fan2_speed': '0', 'variable_hotend_temp': '0', 'variable_e_min_current': '0.27', 'gcode': ''}, 'gcode_macro AUTOTUNE_SHAPERS': {'gcode': ''}, 'gcode_macro LOAD_MATERIAL_CLOSE_FAN2': {'variable_fan2_value': '0', 'gcode': "\nSAVE_GCODE_STATE NAME=myMoveState\n{% if printer['output_pin fan2'].value > 0.0 %}\nSET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value}\nM107 P2\n{% endif %}\nRESTORE_E_CURRENT"}, 'gcode_macro LOAD_MATERIAL_RESTORE_FAN2': {'gcode': '\n{% set fan2_value = printer[\'gcode_macro LOAD_MATERIAL_CLOSE_FAN2\'].fan2_value|float %}\nRESTORE_GCODE_STATE NAME=myMoveState\n{% if fan2_value > 0.0 %}\n{% set s_value = (fan2_value * 255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) * 255 / (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) %}\nM106 P2 S{s_value}\nSET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE=0\n{% endif %}\nSET_E_MIN_CURRENT'}, 'gcode_macro SET_E_MIN_CURRENT': {'gcode': "\n{% set e_current = printer['gcode_macro PRINTER_PARAM'].e_min_current %}\nM400\nSET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current}\nG4 P2000"}, 'gcode_macro RESTORE_E_CURRENT': {'gcode': "\n{% set e_current = printer.configfile.settings['tmc2209 extruder'].run_current %}\nM400\nSET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current}\nG4 P2000"}, 'gcode_macro LOAD_MATERIAL': {'gcode': '\nLOAD_MATERIAL_CLOSE_FAN2\nM109 S{printer.custom_macro.default_extruder_temp}\nG91\nG1 E80 F180\nLOAD_MATERIAL_RESTORE_FAN2'}, 'gcode_macro QUIT_MATERIAL': {'gcode': '\nSAVE_GCODE_STATE NAME=myMoveState\nRESTORE_E_CURRENT\nM109 S{printer.custom_macro.default_extruder_temp}\nM83\nG1 E10 F300\nG1 E-15 F3000\nG1 E-22.4700 F2400\nG1 E-6.4200 F1200\nG1 E-3.2100 F720\nG1 E5.0000 F356\nG1 E-5.0000 F384\nG1 E5.0000 F412\nG1 E-5.0000 F440\nG1 E5.0000 F467\nG1 E-5.0000 F495\nG1 E5.0000 F523\nG1 E-5.0000 F3000\nG1 E-15 F3000\nSET_E_MIN_CURRENT\nRESTORE_GCODE_STATE NAME=myMoveState'}, 'gcode_macro Qmode': {'variable_flag': '0', 'variable_accel': '0', 'variable_accel_to_decel': '0', 'variable_velocity': '0', 'variable_square_corner_velocity': '0', 'variable_pressure_advance': '0.0', 'variable_fan0_value': '0.00', 'variable_fan1_value': '0.00', 'variable_fan2_value': '0.00', 'variable_speed_factor': '0', 'variable_max_accel': '2500', 'variable_max_accel_to_decel': '2500', 'gcode': '\n{% set printer_state = printer.print_stats.state %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 0 %}\n{% if printer_state == "printing" or printer_state == "paused" %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel VALUE={printer.toolhead.max_accel}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel_to_decel VALUE={printer.toolhead.max_accel_to_decel}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=velocity VALUE={printer.toolhead.max_velocity}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=square_corner_velocity VALUE={printer.toolhead.square_corner_velocity}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=pressure_advance VALUE={printer.extruder.pressure_advance}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=speed_factor VALUE={printer.gcode_move.speed_factor}\nSET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=0\nSET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=0\nSET_TMC_CURRENT STEPPER=stepper_x CURRENT=1.0\nSET_TMC_CURRENT STEPPER=stepper_y CURRENT=1.0\nG4 P1000\n\n\nSET_VELOCITY_LIMIT ACCEL=2500\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500\nSET_VELOCITY_LIMIT VELOCITY=150\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nSET_PRESSURE_ADVANCE ADVANCE=0.05\nM220 S50\n\n{% set tmp = printer[\'output_pin fan0\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={tmp}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan0_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\nSET_PIN PIN=fan0 VALUE={tmp}\n{% endif %}\n\n{% set tmp = printer[\'output_pin fan1\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer[\'output_pin fan1\'].value * 255}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan1_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\nSET_PIN PIN=fan1 VALUE={tmp}\n{% endif %}\n\n{% set tmp = printer[\'output_pin fan2\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer[\'output_pin fan2\'].value * 255}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan2_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\nSET_PIN PIN=fan2 VALUE={tmp}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=1\nSET_QMODE_FLAG FLAG=1\n{% endif %}\n{% endif %}'}, 'gcode_macro Qmode_exit': {'gcode': '\n{% set printer_state = printer.print_stats.state %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 %}\n{% if printer_state == "printing" or printer_state == "paused" %}\nSET_VELOCITY_LIMIT ACCEL={printer[\'gcode_macro Qmode\'].accel}\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer[\'gcode_macro Qmode\'].accel_to_decel}\nSET_VELOCITY_LIMIT VELOCITY={printer[\'gcode_macro Qmode\'].velocity}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={printer[\'gcode_macro Qmode\'].square_corner_velocity}\nSET_PRESSURE_ADVANCE ADVANCE={printer[\'gcode_macro Qmode\'].pressure_advance}\nM220 S{printer[\'gcode_macro Qmode\'].speed_factor * 100}\n\n{% set X_RUN_CUR = printer.configfile.settings[\'tmc2209 stepper_x\'].run_current %}\n{% set Y_RUN_CUR = printer.configfile.settings[\'tmc2209 stepper_y\'].run_current %}\nSET_TMC_CURRENT STEPPER=stepper_x CURRENT={X_RUN_CUR}\nSET_TMC_CURRENT STEPPER=stepper_y CURRENT={Y_RUN_CUR}\nSET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=1\nSET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=1\nG4 P1000\n\n{% if printer[\'output_pin fan0\'].value != 0 %}\n{action_respond_info("fan0_value = %s" % printer[\'gcode_macro Qmode\'].fan0_value)}\nSET_PIN PIN=fan0 VALUE={printer[\'gcode_macro Qmode\'].fan0_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE=0\n{% endif %}\n{% if printer[\'output_pin fan1\'].value != 0 %}\n{action_respond_info("fan1_value = %s" % printer[\'gcode_macro Qmode\'].fan1_value)}\nSET_PIN PIN=fan1 VALUE={printer[\'gcode_macro Qmode\'].fan1_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE=0\n{% endif %}\n{% if printer[\'output_pin fan2\'].value != 0 %}\n{action_respond_info("fan2_value = %s" % printer[\'gcode_macro Qmode\'].fan2_value)}\nSET_PIN PIN=fan2 VALUE={printer[\'gcode_macro Qmode\'].fan2_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE=0\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=0\nSET_QMODE_FLAG FLAG=0\n{% endif %}\n{% endif %}'}, 'gcode_macro M204': {'rename_existing': 'M204.1', 'gcode': '\n\n{% set get_params = "" %}\n{% set qmode_max_accel = printer[\'gcode_macro Qmode\'].max_accel|string %}\n{% if \'S\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.S|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'S\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'S\' + params.S) %}\n{% endif %}\n{% endif %}\n{% if \'P\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.P|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'P\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'P\' + params.P) %}\n{% endif %}\n{% endif %}\n{% if \'T\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.T|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'T\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'T\' + params.T) %}\n{% endif %}\n{% endif %}\nM204.1 {get_params}'}, 'gcode_macro M205': {'gcode': "\n{% if 'X' in params %}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.X}\n{% elif 'Y' in params %}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.Y}\n{% endif %}"}, 'gcode_macro M107': {'gcode': '\n{% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}\n{% if params.P is defined %}\n{% if params.P|int < fans %}\nSET_PIN PIN=fan{params.P|int} VALUE=0\n{% else %}\nSET_PIN PIN=fan0 VALUE=0\n{% endif %}\n{% else %}\nSET_PIN PIN=fan0 VALUE=0\nSET_PIN PIN=fan2 VALUE=0\n{% endif %}'}, 'gcode_macro M900': {'gcode': "\n{% if 'K' in params %}\n{% if 'E' in params %}\nSET_PRESSURE_ADVANCE EXTRUDER={params.E} ADVANCE={params.K}\n{% else %}\nSET_PRESSURE_ADVANCE ADVANCE={params.K}\n{% endif %}\n{% endif %}"}, 'delayed_gcode wait_temp': {'gcode': '\n{% set cur_temp = printer.extruder.temperature %}\n{% if cur_temp|int < 40 %}\nWAIT_TEMP_END\n{% else %}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=5\n{% endif %}'}, 'gcode_macro WAIT_TEMP_START': {'gcode': '\n{action_respond_info("wait temp start\\n")}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=1\nM106 P0 S255'}, 'gcode_macro WAIT_TEMP_END': {'gcode': '\n{action_respond_info("wait temp end\\n")}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=0\nM106 P0 S0'}, 'gcode_macro PRINT_CALIBRATION': {'gcode': '\nCX_PRINT_LEVELING_CALIBRATION'}, 'gcode_macro FIRST_FLOOR_PAUSE_POSITION': {'gcode': "\n{% set extruder_temp = printer.custom_macro.g28_ext_temp %}\nM104 S{extruder_temp}\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer['gcode_macro PRINTER_PARAM'].max_x_position|float + 1 %}\nG90\nG1 Z2 F600\nG1 X{x_park} Y{y_park} F6000\nG1 Z0.2 F600"}, 'gcode_macro ACCURATE_G28': {'gcode': '\nACCURATE_HOME_Z'}, 'gcode_macro PRINT_PREPARED': {'gcode': '\nSET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=1\n{action_respond_info("print prepared")}'}, 'gcode_macro PRINT_PREPARE_CLEAR': {'gcode': '\nSET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=0'}, 'gcode_macro END_PRINT_POINT_WITHOUT_LIFTING': {'gcode': '\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\nG91\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z2.0 F600\nG90\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("end print xyz_axes is NULL\\n")}\n{% endif %}'}, 'gcode_macro END_PRINT_POINT': {'gcode': '\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < (max_z / 2) %}\n{% set z_safe = (max_z / 2) - act_z %}\n{% elif act_z < max_z %}\n{% set z_safe = 2.0 %}\n{% endif %}\nG91\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z2.0 F600\nG90\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F30000\n{% if z_safe > 2.0 %}\nG91\n{% set z_safe = z_safe - 2.0 %}\nG1 Z{z_safe} F600\nG90\n{% endif %}\n{% else %}\n{action_respond_info("end print xyz_axes is NULL\\n")}\n{% endif %}'}, 'gcode_macro END_PRINT': {'gcode': '\nQmode_exit\nEXCLUDE_OBJECT_RESET\nPRINT_PREPARE_CLEAR\nM220 S100\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=2500\nTURN_OFF_HEATERS\nM107 P1\nM107 P2\nEND_PRINT_POINT\nWAIT_TEMP_START\nM84'}, 'gcode_macro FIRST_FLOOR_PAUSE': {'description': 'Pause the first floor print', 'variable_extrude': '2.0', 'gcode': '\n\n{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float %}\n\n\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\n\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < (max_z - 2.0) %}\n{% set z_safe = 2.0 %}\n{% elif act_z < max_z %}\n{% set z_safe = max_z - act_z %}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}\nPAUSE_BASE\nG91\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z{z_safe} F600\nG90\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("Printer not homed")}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer[\'output_pin fan2\'].value}\n{% set fspeed = printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed %}\n{action_respond_info("fan2_value = %s \\n" % (fspeed))}\n\nM106 P2 S0\nSET_E_MIN_CURRENT'}, 'gcode_macro FIRST_FLOOR_RESUME': {'description': 'Resume the first floor print', 'gcode': '\nRESTORE_E_CURRENT\n{% if printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed > 0 %}\n\n\n\n{% set s_value = (printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed * 255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) * 255 / (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min)|float %}\nM106 P2 S{s_value}\n{% endif %}\n\n{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float + 1.0 %}\n\n{% if \'VELOCITY\' in params|upper %}\n{% set get_params = (\'VELOCITY=\' + params.VELOCITY) %}\n{%else %}\n{% set get_params = "" %}\n{% endif %}\n\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG91\nG1 E{E} F2100\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nM400\nRESUME_BASE {get_params}'}, 'gcode_macro PAUSE': {'description': 'Pause the actual running print', 'rename_existing': 'PAUSE_BASE', 'variable_extrude': '2.0', 'gcode': '\n\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\n\n\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\n\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < 48.0 %}\n{% set z_safe = 50.0 - act_z %}\n{% elif act_z < (max_z - 2.0) %}\n{% set z_safe = 2.0 %}\n{% elif act_z < max_z %}\n{% set z_safe = max_z - act_z %}\n{% endif %}\n{action_respond_info("z_safe = %s"% (z_safe))}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}\nPAUSE_BASE\nG91\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE={printer.extruder.target}\nM104 S140\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z{z_safe} F600\nM400\nG90\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("Printer not homed")}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer[\'output_pin fan2\'].value}\n{% set fspeed = printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed %}\n{action_respond_info("fan2_value = %s \\n" % (fspeed))}\n\nM106 P2 S0\nSET_E_MIN_CURRENT'}, 'gcode_macro INPUTSHAPER': {'gcode': "\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0\nG90\nG28\n{% set POSITION_X = printer.configfile.settings['stepper_x'].position_max/2 %}\n{% set POSITION_Y = printer.configfile.settings['stepper_y'].position_max/2 %}\nG1 X{POSITION_X} Y{POSITION_Y} F6000\nG1 Z10 F600\nSHAPER_CALIBRATE\nCXSAVE_CONFIG\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1"}, 'gcode_macro BEDPID': {'gcode': '\nPID_CALIBRATE HEATER=heater_bed TARGET=100\nSAVE_CONFIG'}, 'gcode_macro TUNOFFINPUTSHAPER': {'gcode': '\nSET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0'}, 'gcode_macro RESUME': {'description': 'Resume the actual running print', 'rename_existing': 'RESUME_BASE', 'gcode': '\nRESTORE_E_CURRENT\n{% if printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int != 0 %}\n{% if printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int > printer.extruder.temperature %}\nM109 S{printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int}\n{% else %}\nM104 S{printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE=0\n{% endif %}\n{% if printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed > 0 %}\n\n\n\n{% set s_value = (printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed * 255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) * 255 / (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min)|float %}\nM106 P2 S{s_value}\n{% endif %}\n{% set z_resume_move = printer[\'gcode_macro PRINTER_PARAM\'].z_safe_pause|int %}\n{% if z_resume_move > 2 %}\n{% set z_resume_move = z_resume_move - 2 %}\nG91\nG1 Z-{z_resume_move} F600\nM400\n{% endif %}\n{action_respond_info("z_resume_move = %s"% (z_resume_move))}\n\n{% set E = printer["gcode_macro PAUSE"].extrude|float + 1.0 %}\n\n{% if \'VELOCITY\' in params|upper %}\n{% set get_params = (\'VELOCITY=\' + params.VELOCITY) %}\n{%else %}\n{% set get_params = "" %}\n{% endif %}\n\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG91\nG1 E{E} F2100\nG90\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nM400\nRESUME_BASE {get_params}'}, 'gcode_macro CANCEL_PRINT': {'description': 'Cancel the actual running print', 'rename_existing': 'CANCEL_PRINT_BASE', 'gcode': '\nEND_PRINT\nCANCEL_PRINT_BASE'}, 'gcode_macro G29': {'gcode': '\n{% if \'PROBE_COUNT\' in params|upper %}\n{% set get_count = (\'PROBE_COUNT\' + params.PROBE_COUNT) %}\n{%else %}\n{% set get_count = "" %}\n{% endif %}\n\n{% set bed_temp = printer.custom_macro.default_bed_temp %}\n{% set extruder_temp = printer.custom_macro.g28_ext_temp %}\n{% set nozzle_clear_temp = printer.custom_macro.default_extruder_temp %}\n\n{% if \'BED_TEMP\' in params|upper %}\n{% set bed_temp = params.BED_TEMP %}\n{% endif %}\n\n{% if \'EXTRUDER_TEMP\' in params|upper %}\n{% set nozzle_clear_temp = params.EXTRUDER_TEMP %}\n{% endif %}\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0\n\nG28\nBED_MESH_CLEAR\nNOZZLE_CLEAR HOT_MIN_TEMP={extruder_temp} HOT_MAX_TEMP={nozzle_clear_temp} BED_MAX_TEMP={bed_temp}\nACCURATE_G28\nM204 S5000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=5000\nBED_MESH_CALIBRATE {get_count}\nBED_MESH_OUTPUT\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F2000\nCXSAVE_CONFIG\nTURN_OFF_HEATERS\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1'}, 'fan_feedback': {'fan0_pin': 'nozzle_mcu:PB4', 'fan1_pin': 'PC6', 'print_delay_time': '5', 'current_delay_time': '2'}, 'custom_macro': {'default_bed_temp': '50', 'default_extruder_temp': '240', 'g28_ext_temp': '140'}, 'gcode_macro GET_TIMELAPSE_SETUP': {'description': 'Print the Timelapse setup', 'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% set output_txt = ["Timelapse Setup:"] %}\n{% set _dummy = output_txt.append("enable: %s" % tl.enable) %}\n{% set _dummy = output_txt.append("park: %s" % tl.park.enable) %}\n{% if tl.park.enable %}\n{% set _dummy = output_txt.append("park position: %s time: %s s" % (tl.park.pos, tl.park.time)) %}\n{% set _dummy = output_txt.append("park cord x:%s y:%s dz:%s" % (tl.park.coord.x, tl.park.coord.y, tl.park.coord.dz)) %}\n{% set _dummy = output_txt.append("travel speed: %s mm/s" % tl.speed.travel) %}\n{% endif %}\n{% set _dummy = output_txt.append("fw_retract: %s" % tl.extruder.fw_retract) %}\n{% if not tl.extruder.fw_retract %}\n{% set _dummy = output_txt.append("retract: %s mm speed: %s mm/s" % (tl.extruder.retract, tl.speed.retract)) %}\n{% set _dummy = output_txt.append("extrude: %s mm speed: %s mm/s" % (tl.extruder.extrude, tl.speed.extrude)) %}\n{% endif %}\n{% set _dummy = output_txt.append("verbose: %s" % tl.verbose) %}\n{action_respond_info(output_txt|join("\\n"))}'}, 'gcode_macro _SET_TIMELAPSE_SETUP': {'description': 'Set user parameters for timelapse', 'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n\n{% set min = printer.toolhead.axis_minimum %}\n{% set max = printer.toolhead.axis_maximum %}\n{% set round_bed = True if printer.configfile.settings.printer.kinematics is in [\'delta\',\'polar\',\'rotary_delta\',\'winch\']\nelse False %}\n{% set park = {\'min\' : {\'x\': (min.x / 1.42)|round(3) if round_bed else min.x|round(3),\n\'y\': (min.y / 1.42)|round(3) if round_bed else min.y|round(3)},\n\'max\' : {\'x\': (max.x / 1.42)|round(3) if round_bed else max.x|round(3),\n\'y\': (max.y / 1.42)|round(3) if round_bed else max.y|round(3)},\n\'center\': {\'x\': (max.x-(max.x-min.x)/2)|round(3),\n\'y\': (max.y-(max.y-min.y)/2)|round(3)}} %}\n\n{% if params.ENABLE %}\n{% if params.ENABLE|lower is in [\'true\', \'false\'] %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=enable VALUE={True if params.ENABLE|lower == \'true\' else False}\n{% else %}\n{action_raise_error("ENABLE=%s not supported. Allowed values are [True, False]" % params.ENABLE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.VERBOSE %}\n{% if params.VERBOSE|lower is in [\'true\', \'false\'] %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=verbose VALUE={True if params.VERBOSE|lower == \'true\' else False}\n{% else %}\n{action_raise_error("VERBOSE=%s not supported. Allowed values are [True, False]" % params.VERBOSE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_X %}\n{% if params.CUSTOM_POS_X|float >= min.x and params.CUSTOM_POS_X|float <= max.x %}\n{% set _dummy = tl.park.custom.update({\'x\':params.CUSTOM_POS_X|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_X=%s must be within [%s - %s]" % (params.CUSTOM_POS_X, min.x, max.x))}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_Y %}\n{% if params.CUSTOM_POS_Y|float >= min.y and params.CUSTOM_POS_Y|float <= max.y %}\n{% set _dummy = tl.park.custom.update({\'y\':params.CUSTOM_POS_Y|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_Y=%s must be within [%s - %s]" % (params.CUSTOM_POS_Y, min.y, max.y))}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_DZ %}\n{% if params.CUSTOM_POS_DZ|float >= min.z and params.CUSTOM_POS_DZ|float <= max.z %}\n{% set _dummy = tl.park.custom.update({\'dz\':params.CUSTOM_POS_DZ|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_DZ=%s must be within [%s - %s]" % (params.CUSTOM_POS_DZ, min.z, max.z))}\n{% endif %}\n{% endif %}\n{% if params.PARK_ENABLE %}\n{% if params.PARK_ENABLE|lower is in [\'true\', \'false\'] %}\n{% set _dummy = tl.park.update({\'enable\':True if params.PARK_ENABLE|lower == \'true\' else False}) %}\n{% else %}\n{action_raise_error("PARK_ENABLE=%s not supported. Allowed values are [True, False]" % params.PARK_ENABLE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.PARK_POS %}\n{% if params.PARK_POS|lower is in [\'center\',\'front_left\',\'front_right\',\'back_left\',\'back_right\',\'custom\',\'x_only\',\'y_only\'] %}\n{% set dic = {\'center\' : {\'x\': park.center.x , \'y\': park.center.y , \'dz\': 1 },\n\'front_left\' : {\'x\': park.min.x , \'y\': park.min.y , \'dz\': 0 },\n\'front_right\' : {\'x\': park.max.x , \'y\': park.min.y , \'dz\': 0 },\n\'back_left\' : {\'x\': park.min.x , \'y\': park.max.y , \'dz\': 0 },\n\'back_right\' : {\'x\': park.max.x , \'y\': park.max.y , \'dz\': 0 },\n\'custom\' : {\'x\': tl.park.custom.x, \'y\': tl.park.custom.y, \'dz\': tl.park.custom.dz},\n\'x_only\' : {\'x\': tl.park.custom.x, \'y\': \'none\' , \'dz\': tl.park.custom.dz},\n\'y_only\' : {\'x\': \'none\' , \'y\': tl.park.custom.y, \'dz\': tl.park.custom.dz}} %}\n{% set _dummy = tl.park.update({\'pos\':params.PARK_POS|lower}) %}\n{% set _dummy = tl.park.update({\'coord\':dic[tl.park.pos]}) %}\n{% else %}\n{action_raise_error("PARK_POS=%s not supported. Allowed values are [CENTER, FRONT_LEFT, FRONT_RIGHT, BACK_LEFT, BACK_RIGHT, CUSTOM, X_ONLY, Y_ONLY]"\n% params.PARK_POS|upper)}\n{% endif %}\n{% endif %}\n{% if params.PARK_TIME %}\n{% if params.PARK_TIME|float >= 0.0 %}\n{% set _dummy = tl.park.update({\'time\':params.PARK_TIME|float|round(3)}) %}\n{% else %}\n{action_raise_error("PARK_TIME=%s must be a positive number" % params.PARK_TIME)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=park VALUE="{tl.park}"\n{% if params.TRAVEL_SPEED %}\n{% if params.TRAVEL_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'travel\':params.TRAVEL_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("TRAVEL_SPEED=%s must be larger than 0" % params.TRAVEL_SPEED)}\n{% endif %}\n{% endif %}\n{% if params.RETRACT_SPEED %}\n{% if params.RETRACT_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'retract\':params.RETRACT_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("RETRACT_SPEED=%s must be larger than 0" % params.RETRACT_SPEED)}\n{% endif %}\n{% endif %}\n{% if params.EXTRUDE_SPEED %}\n{% if params.EXTRUDE_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'extrude\':params.EXTRUDE_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("EXTRUDE_SPEED=%s must be larger than 0" % params.EXTRUDE_SPEED)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=speed VALUE="{tl.speed}"\n{% if params.EXTRUDE_DISTANCE %}\n{% if params.EXTRUDE_DISTANCE|float >= 0.0 %}\n{% set _dummy = tl.extruder.update({\'extrude\':params.EXTRUDE_DISTANCE|float|round(3)}) %}\n{% else %}\n{action_raise_error("EXTRUDE_DISTANCE=%s must be specified as positiv number" % params.EXTRUDE_DISTANCE)}\n{% endif %}\n{% endif %}\n{% if params.RETRACT_DISTANCE %}\n{% if params.RETRACT_DISTANCE|float >= 0.0 %}\n{% set _dummy = tl.extruder.update({\'retract\':params.RETRACT_DISTANCE|float|round(3)}) %}\n{% else %}\n{action_raise_error("RETRACT_DISTANCE=%s must be specified as positiv number" % params.RETRACT_DISTANCE)}\n{% endif %}\n{% endif %}\n{% if params.FW_RETRACT %}\n{% if params.FW_RETRACT|lower is in [\'true\', \'false\'] %}\n{% if \'firmware_retraction\' in printer.configfile.settings %}\n{% set _dummy = tl.extruder.update({\'fw_retract\': True if params.FW_RETRACT|lower == \'true\' else False}) %}\n{% else %}\n{% set _dummy = tl.extruder.update({\'fw_retract\':False}) %}\n{% if params.FW_RETRACT|capitalize == \'True\' %}\n{action_raise_error("[firmware_retraction] not defined in printer.cfg. Can not enable fw_retract")}\n{% endif %}\n{% endif %}\n{% else %}\n{action_raise_error("FW_RETRACT=%s not supported. Allowed values are [True, False]" % params.FW_RETRACT|capitalize)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=extruder VALUE="{tl.extruder}"\n{% if printer.configfile.settings[\'gcode_macro pause\'] is defined %}\n{% set _dummy = tl.macro.update({\'pause\': printer.configfile.settings[\'gcode_macro pause\'].rename_existing}) %}\n{% endif %}\n{% if printer.configfile.settings[\'gcode_macro resume\'] is defined %}\n{% set _dummy = tl.macro.update({\'resume\': printer.configfile.settings[\'gcode_macro resume\'].rename_existing}) %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=macro VALUE="{tl.macro}"'}, 'gcode_macro TIMELAPSE_TAKE_FRAME': {'description': 'Take Timelapse shoot', 'variable_enable': 'False', 'variable_takingframe': 'False', 'variable_park': "{'enable': False,\n'pos' : 'center',\n'time' : 0.1,\n'custom': {'x': 0, 'y': 0, 'dz': 0},\n'coord' : {'x': 0, 'y': 0, 'dz': 0}}", 'variable_extruder': "{'fw_retract': False,\n'retract': 1.0,\n'extrude': 1.0}", 'variable_speed': "{'travel': 100,\n'retract': 15,\n'extrude': 15}", 'variable_verbose': 'True', 'variable_check_time': '0.5', 'variable_restore': "{'absolute': {'coordinates': True, 'extrude': True}, 'speed': 1500, 'e':0, 'factor': {'speed': 1.0, 'extrude': 1.0}}", 'variable_macro': "{'pause': 'PAUSE', 'resume': 'RESUME'}", 'variable_is_paused': 'False', 'gcode': '\n{% set hyperlapse = True if params.HYPERLAPSE and params.HYPERLAPSE|lower ==\'true\' else False %}\n{% if enable %}\n{% if (hyperlapse and printer[\'gcode_macro HYPERLAPSE\'].run) or\n(not hyperlapse and not printer[\'gcode_macro HYPERLAPSE\'].run) %}\n{% if park.enable %}\n{% set pos = {\'x\': \'X\' + park.coord.x|string if park.pos != \'y_only\' else \'\',\n\'y\': \'Y\' + park.coord.y|string if park.pos != \'x_only\' else \'\',\n\'z\': \'Z\'+ [printer.gcode_move.gcode_position.z + park.coord.dz, printer.toolhead.axis_maximum.z]|min|string} %}\n{% set restore = {\'absolute\': {\'coordinates\': printer.gcode_move.absolute_coordinates,\n\'extrude\' : printer.gcode_move.absolute_extrude},\n\'speed\' : printer.gcode_move.speed,\n\'e\' : printer.gcode_move.gcode_position.e,\n\'factor\' : {\'speed\' : printer.gcode_move.speed_factor,\n\'extrude\': printer.gcode_move.extrude_factor}} %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=restore VALUE="{restore}"\n{% if not printer[printer.toolhead.extruder].can_extrude %}\n{% if verbose %}{action_respond_info("Timelapse: Warning, minimum extruder temperature not reached!")}{% endif %}\n{% else %}\n{% if extruder.fw_retract %}\nG10\n{% else %}\nM83\nG0 E-{extruder.retract} F{speed.retract * 60}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=True\n{macro.pause}\nSET_GCODE_OFFSET X=0 Y=0\nG90\n{% if "xyz" not in printer.toolhead.homed_axes %}\n{% if verbose %}{action_respond_info("Timelapse: Warning, axis not homed yet!")}{% endif %}\n{% else %}\nG0 {pos.x} {pos.y} {pos.z} F{speed.travel * 60}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=takingframe VALUE=True\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={check_time}\nM400\n{% endif %}\n_TIMELAPSE_NEW_FRAME HYPERLAPSE={hyperlapse}\n{% endif %}\n{% else %}\n{% if verbose %}{action_respond_info("Timelapse: disabled, take frame ignored")}{% endif %}\n{% endif %}'}, 'gcode_macro _TIMELAPSE_NEW_FRAME': {'description': 'action call for timelapse shoot. must be a seperate macro', 'gcode': '\n{action_call_remote_method("timelapse_newframe",\nmacropark=printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'].park,\nhyperlapse=params.HYPERLAPSE)}'}, 'delayed_gcode _WAIT_TIMELAPSE_TAKE_FRAME': {'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% set factor = {\'speed\': printer.gcode_move.speed_factor, \'extrude\': printer.gcode_move.extrude_factor} %}\n{% if tl.takingframe %}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={tl.check_time}\n{% else %}\n{tl.macro.resume} VELOCITY={tl.speed.travel}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=False\n{% if not printer[printer.toolhead.extruder].can_extrude %}\n{action_respond_info("Timelapse: Warning minimum extruder temperature not reached!")}\n{% else %}\n{% if tl.extruder.fw_retract %}\nG11\n{% else %}\nG0 E{tl.extruder.extrude} F{tl.speed.extrude * 60}\nG0 F{tl.restore.speed}\n{% if tl.restore.absolute.extrude %}\nM82\nG92 E{tl.restore.e}\n{% endif %}\n{% endif %}\n{% endif %}\n{% if tl.restore.factor.speed != factor.speed %} M220 S{(factor.speed*100)|round(0)} {% endif %}\n{% if tl.restore.factor.extrude != factor.extrude %} M221 S{(factor.extrude*100)|round(0)} {% endif %}\n{% if not tl.restore.absolute.coordinates %} G91 {% endif %}\n{% endif %}'}, 'gcode_macro HYPERLAPSE': {'description': 'Start/Stop a hyperlapse recording', 'variable_cycle': '0', 'variable_run': 'False', 'gcode': '\n{% set cycle = params.CYCLE|default(30)|int %}\n{% if params.ACTION and params.ACTION|lower == \'start\' %}\n{action_respond_info("Hyperlapse: frames started (Cycle %d sec)" % cycle)}\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=True\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=cycle VALUE={cycle}\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={cycle}\nTIMELAPSE_TAKE_FRAME HYPERLAPSE=True\n{% elif params.ACTION and params.ACTION|lower == \'stop\' %}\n{% if run %}{action_respond_info("Hyperlapse: frames stopped")}{% endif %}\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=False\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION=0\n{% else %}\n{action_raise_error("Hyperlapse: No valid input parameter\nUse:\n- HYPERLAPSE ACTION=START [CYCLE=time]\n- HYPERLAPSE ACTION=STOP")}\n{% endif %}'}, 'delayed_gcode _HYPERLAPSE_LOOP': {'gcode': '\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={printer["gcode_macro HYPERLAPSE"].cycle}\nTIMELAPSE_TAKE_FRAME HYPERLAPSE=True'}, 'gcode_macro TIMELAPSE_RENDER': {'description': 'Render Timelapse video and wait for the result', 'variable_render': 'False', 'variable_run_identifier': '0', 'gcode': '\n{action_respond_info("Timelapse: Rendering started")}\n{action_call_remote_method("timelapse_render", byrendermacro="True")}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=render VALUE=True\n{printer.configfile.settings[\'gcode_macro pause\'].rename_existing}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5'}, 'delayed_gcode _WAIT_TIMELAPSE_RENDER': {'gcode': '\n{% set ri = printer[\'gcode_macro TIMELAPSE_RENDER\'].run_identifier % 4 %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=run_identifier VALUE={ri + 1}\n{% if printer[\'gcode_macro TIMELAPSE_RENDER\'].render %}\nM117 Rendering {[\'-\',\'\\\\\',\'|\',\'/\'][ri]}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5\n{% else %}\n{action_respond_info("Timelapse: Rendering finished")}\nM117\n{printer.configfile.settings[\'gcode_macro resume\'].rename_existing}\n{% endif %}'}, 'gcode_macro TEST_STREAM_DELAY': {'description': 'Helper macro to find stream and park delay', 'gcode': '\n{% set min = printer.toolhead.axis_minimum %}\n{% set max = printer.toolhead.axis_maximum %}\n{% set act = printer.toolhead.position %}\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% if act.z > 5.0 %}\nG0 X{min.x + 5.0} F{tl.speed.travel|int * 60}\nG0 X{(max.x-min.x)/2}\nG4 P{tl.park.time|float * 1000}\n_TIMELAPSE_NEW_FRAME HYPERLAPSE=FALSE\nG0 X{max.x - 5.0}\n{% else %}\n{action_raise_error("Toolhead z %.3f to low. Please place head above z = 5.0" % act.z)}\n{% endif %}'}, 'save_variables': {'filename': '/usr/data/printer_data/config/Helper-Script/variables.cfg'}, 'respond': {}, 'gcode_macro SET_GCODE_OFFSET': {'description': 'Saving Z-Offset', 'rename_existing': '_SET_GCODE_OFFSET', 'gcode': '\n{% if printer.save_variables.variables.zoffset %}\n{% set zoffset = printer.save_variables.variables.zoffset %}\n{% else %}\n{% set zoffset = {\'z\': None} %}\n{% endif %}\n{% set ns = namespace(zoffset={\'z\': zoffset.z}) %}\n_SET_GCODE_OFFSET {% for p in params %}{\'%s=%s \'% (p, params[p])}{% endfor %}\n{%if \'Z\' in params %}{% set null = ns.zoffset.update({\'z\': params.Z}) %}{% endif %}\n{%if \'Z_ADJUST\' in params %}\n{%if ns.zoffset.z == None %}{% set null = ns.zoffset.update({\'z\': 0}) %}{% endif %}\n{% set null = ns.zoffset.update({\'z\': (ns.zoffset.z | float) + (params.Z_ADJUST | float)}) %}\n{% endif %}\nSAVE_VARIABLE VARIABLE=zoffset VALUE="{ns.zoffset}"'}, 'delayed_gcode LOAD_GCODE_OFFSETS': {'initial_duration': '2', 'gcode': '\n{% if printer.save_variables.variables.zoffset %}\n{% set zoffset = printer.save_variables.variables.zoffset %}\n_SET_GCODE_OFFSET {% for axis, offset in zoffset.items() if zoffset[axis] %}{ "%s=%s " % (axis, offset) }{% endfor %}\nRESPOND TYPE=command MSG="Loaded Z-Offset from variables.cfg: {zoffset.z}mm"\n{% endif %}'}, 'calibrate_shaper_config': {}, 'gcode_shell_command resonance_graph': {'command': '/usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/calibrate_shaper.py', 'timeout': '600.0', 'verbose': 'False'}, 'gcode_shell_command belts_graph': {'command': '/usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/graph_belts.py', 'timeout': '600.0', 'verbose': 'False'}, 'gcode_shell_command delete_graph': {'command': 'sh /usr/data/helper-script/files/improved-shapers/delete_graph.sh', 'timeout': '600.0', 'verbose': 'False'}, 'gcode_shell_command delete_csv': {'command': 'sh /usr/data/helper-script/files/improved-shapers/delete_csv.sh', 'timeout': '600.0', 'verbose': 'False'}, 'gcode_macro INPUT_SHAPER_CALIBRATION': {'description': 'Measure X and Y Axis Resonances and Save values', 'gcode': '\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nRESPOND TYPE=command MSG="Measuring X and Y Resonances..."\nSHAPER_CALIBRATE\nM400\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Input Shaper Calibration complete!"\nSAVE_CONFIG'}, 'gcode_macro TEST_RESONANCES_GRAPHS': {'description': 'Test X and Y Axis Resonances and Generate Graphs', 'gcode': '\nRUN_SHELL_COMMAND CMD=delete_graph\n{% set x_png = params.X_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_x.png") %}\n{% set y_png = params.Y_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_y.png") %}\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nRESPOND TYPE=command MSG="Testing X Resonances..."\nTEST_RESONANCES AXIS=X NAME=x\nM400\nRESPOND TYPE=command MSG="Generating X Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_x_x.csv -o {x_png}"\nRESPOND TYPE=command MSG="X Graph (resonances_x.png) is now available in /Helper-Script/improved-shapers folder."\nRESPOND TYPE=command MSG="Testing Y Resonances..."\nTEST_RESONANCES AXIS=Y NAME=y\nM400\nRESPOND TYPE=command MSG="Generating Y Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_y_y.csv -o {y_png}"\nRESPOND TYPE=command MSG="Y Graph (resonances_y.png) is now available in /Helper-Script/improved-shapers folder."\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Resonances Test complete!"'}, 'gcode_macro BELTS_SHAPER_CALIBRATION': {'description': 'Perform a custom half-axis test to analyze and compare the frequency profiles of individual belts on CoreXY printers', 'gcode': '\nRUN_SHELL_COMMAND CMD=delete_graph\n{% set min_freq = params.FREQ_START|default(5)|float %}\n{% set max_freq = params.FREQ_END|default(133.33)|float %}\n{% set hz_per_sec = params.HZ_PER_SEC|default(1)|float %}\n{% set png_width = params.PNG_WIDTH|default(8)|float %}\n{% set png_height = params.PNG_HEIGHT|default(4.8)|float %}\n{% set png_out_path = params.PNG_OUT_PATH|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/belts_calibration.png") %}\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nTEST_RESONANCES AXIS=1,1 OUTPUT=raw_data NAME=b FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}\nM400\nTEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data NAME=a FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}\nM400\nRESPOND TYPE=command MSG="Generating Belts Frequency Profiles Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=belts_graph PARAMS="-w {png_width} -l {png_height} -n -o {png_out_path} -k /usr/share/klipper /tmp/raw_data_axis=1.000,-1.000_a.csv /tmp/raw_data_axis=1.000,1.000_b.csv"\nRESPOND TYPE=command MSG="Graph (belts_calibration.png) is now available in /Helper-Script/improved-shapers folder."\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Belts Shaper Calibration complete!"'}, 'gcode_macro EXCITATE_AXIS_AT_FREQ': {'description': 'Maintain a specified excitation frequency for a period of time to diagnose and locate a vibration source', 'gcode': '\n{% set frequency = params.FREQUENCY|default(25)|int %}\n{% set time = params.TIME|default(10)|int %}\n{% set axis = params.AXIS|default("x")|string|lower %}\n{% if axis not in ["x", "y", "a", "b"] %}\n{ action_raise_error("AXIS selection is invalid. Should be either x, y, a or b!") }\n{% endif %}\n{% if axis == "a" %}\n{% set axis = "1,-1" %}\n{% elif axis == "b" %}\n{% set axis = "1,1" %}\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nTEST_RESONANCES OUTPUT=raw_data AXIS={axis} FREQ_START={frequency-1} FREQ_END={frequency+1} HZ_PER_SEC={1/(time/3)}\nM400'}, 'duplicate_pin_override': {'pins': 'PC0, PC5, PB2, ADC_TEMPERATURE'}, 'temperature_fan chamber_fan': {'pin': 'PC0', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'max_power': '1', 'shutdown_speed': '0', 'sensor_type': 'EPCOS 100K B57560G104F', 'sensor_pin': 'PC5', 'min_temp': '0', 'max_temp': '70', 'control': 'watermark', 'max_delta': '2', 'target_temp': '35.0', 'max_speed': '1.0', 'min_speed': '0.0'}, 'temperature_fan mcu_fan': {'pin': 'PB2', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'max_power': '1', 'shutdown_speed': '0', 'sensor_type': 'temperature_mcu', 'min_temp': '0', 'max_temp': '100', 'control': 'watermark', 'max_delta': '2', 'target_temp': '50.0', 'max_speed': '1.0', 'min_speed': '0.0'}, 'output_pin mcu_fan': {'pin': 'PB2', 'pwm': 'True', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'value': '0.00', 'scale': '255', 'shutdown_value': '0.0'}, 'gcode_macro M141': {'description': 'Set Chamber Temperature with slicers', 'gcode': '\n{% set s = params.S|float %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=chamber_fan TARGET={s}\nRESPOND TYPE=command MSG="Chamber target temperature: {s}°C"'}, 'gcode_macro M191': {'description': 'Wait for Chamber Temperature to heat up', 'gcode': '\n{% set s = params.S|float %}\n{% set chamber_temp = printer["temperature_sensor chamber_temp"].temperature|float %}\n{% if s > 0 %}\nM141 S{s}\n{% endif %}\n{% if s > chamber_temp and s <= 90 %}\nM140 S100\nRESPOND TYPE=command MSG="Waiting for the bed to heat up the chamber..."\nTEMPERATURE_WAIT SENSOR="temperature_fan chamber_fan" MINIMUM={s-1}\nRESPOND TYPE=command MSG="Chamber target temperature reached: {s}°C"\nM140 S{s}\n{% endif %}'}, 'gcode_macro M106': {'gcode': '\n{% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}\n{% set fan = 0 %}\n{% set value = 0 %}\n{% if params.P is defined %}\n{% set tmp = params.P|int %}\n{% if tmp < fans %}\n{% set fan = tmp %}\n{% endif %}\n{% endif %}\n{% if params.S is defined %}\n{% set tmp = params.S|float %}\n{% else %}\n{% set tmp = 255 %}\n{% endif %}\n{% if tmp > 0 %}\n{% if fan == 0 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan0_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}\n{% endif %}\n{% endif %}\n{% if fan == 1 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan1_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan1_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}\n{% endif %}\n{% endif %}\n{% if fan == 2 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan2_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}\n{% endif %}\n{% endif %}\n{% endif %}\n{% if value >= 255 %}\n{% set value = 255 %}\n{% endif %}\n{% if params.P is defined and params.P|int == 3 %}\n{% set fan = 1 %}\n{% endif %}\nSET_PIN PIN=fan{fan} VALUE={value}'}, 'prtouch_v2_fan': {'max_speed': '0.5'}, 'output_pin KAMP': {'pin': 'virtual_pin:KAMP_pin', 'value': '1'}, 'output_pin BED_LEVELING': {'pin': 'virtual_pin:BED_LEVELING_pin', 'value': '1'}, 'gcode_macro START_PRINT': {'variable_prepare': '0', 'gcode': '\nWAIT_TEMP_END\nCLEAR_PAUSE\n{% set g28_extruder_temp = printer.custom_macro.g28_ext_temp %}\n{% set bed_temp = printer.custom_macro.default_bed_temp %}\n{% set extruder_temp = printer.custom_macro.default_extruder_temp %}\n{% if \'BED_TEMP\' in params|upper and (params.BED_TEMP|float) %}\n{% set bed_temp = params.BED_TEMP %}\n{% endif %}\n{% if \'EXTRUDER_TEMP\' in params|upper and (params.EXTRUDER_TEMP|float) %}\n{% set extruder_temp = params.EXTRUDER_TEMP %}\n{% endif %}\n{% if printer[\'gcode_macro START_PRINT\'].prepare|int == 0 %}\nPRINT_PREPARE_CLEAR\nCX_ROUGH_G28 EXTRUDER_TEMP={extruder_temp} BED_TEMP={bed_temp}\nCX_NOZZLE_CLEAR\nACCURATE_G28\n{% if printer[\'output_pin KAMP\'].value == 1 %}\nRESPOND TYPE=command MSG="Starting KAMP Bed Mesh..."\nBED_MESH_CLEAR\nBED_MESH_CALIBRATE\nBED_MESH_PROFILE SAVE=kamp\nBED_MESH_PROFILE LOAD=kamp\n{% else %}\n{% if printer[\'output_pin BED_LEVELING\'].value == 1 %}\nRESPOND TYPE=command MSG="Starting Full Bed Mesh..."\nCX_PRINT_LEVELING_CALIBRATION\n{% endif %}\nBED_MESH_PROFILE LOAD=default\n{% endif %}\n{% else %}\nPRINT_PREPARE_CLEAR\n{% endif %}\n{% if printer[\'output_pin KAMP\'].value == 1 %}\n_SMART_PARK\nM109 S{extruder_temp}\nM190 S{bed_temp}\nRESPOND TYPE=command MSG="Starting KAMP line purge..."\n_LINE_PURGE\n{% else %}\nRESPOND TYPE=command MSG="Starting classic line purge..."\nCX_PRINT_DRAW_ONE_LINE\n{% endif %}\nSET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel}'}, 'gcode_macro BED_MESH_CALIBRATE': {'rename_existing': '_BED_MESH_CALIBRATE', 'gcode': '\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set bed_mesh_min = printer.configfile.settings.bed_mesh.mesh_min %}\n{% set bed_mesh_max = printer.configfile.settings.bed_mesh.mesh_max %}\n{% set probe_count = printer.configfile.settings.bed_mesh.probe_count %}\n{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}\n{% set verbose_enable = kamp_settings.verbose_enable | abs %}\n{% set mesh_margin = kamp_settings.mesh_margin | float %}\n{% set fuzz_amount = kamp_settings.fuzz_amount | float %}\n{% set probe_count = probe_count if probe_count|length > 1 else probe_count * 2 %}\n{% set max_probe_point_distance_x = ( bed_mesh_max[0] - bed_mesh_min[0] ) / (probe_count[0] - 1) %}\n{% set max_probe_point_distance_y = ( bed_mesh_max[1] - bed_mesh_min[1] ) / (probe_count[1] - 1) %}\n{% set x_min = all_points | map(attribute=0) | min | default(bed_mesh_min[0]) %}\n{% set y_min = all_points | map(attribute=1) | min | default(bed_mesh_min[1]) %}\n{% set x_max = all_points | map(attribute=0) | max | default(bed_mesh_max[0]) %}\n{% set y_max = all_points | map(attribute=1) | max | default(bed_mesh_max[1]) %}\n{% set fuzz_range = range((0) | int, (fuzz_amount * 100) | int + 1) %}\n{% set adapted_x_min = x_min - mesh_margin - (fuzz_range | random / 100.0) %}\n{% set adapted_y_min = y_min - mesh_margin - (fuzz_range | random / 100.0) %}\n{% set adapted_x_max = x_max + mesh_margin + (fuzz_range | random / 100.0) %}\n{% set adapted_y_max = y_max + mesh_margin + (fuzz_range | random / 100.0) %}\n{% set adapted_x_min = [adapted_x_min , bed_mesh_min[0]] | max %}\n{% set adapted_y_min = [adapted_y_min , bed_mesh_min[1]] | max %}\n{% set adapted_x_max = [adapted_x_max , bed_mesh_max[0]] | min %}\n{% set adapted_y_max = [adapted_y_max , bed_mesh_max[1]] | min %}\n{% set points_x = (((adapted_x_max - adapted_x_min) / max_probe_point_distance_x) | round(method=\'ceil\') | int) + 1 %}\n{% set points_y = (((adapted_y_max - adapted_y_min) / max_probe_point_distance_y) | round(method=\'ceil\') | int) + 1 %}\n{% if (points_x > points_y) %}\n{% set points_y = points_x %}\n{% endif %}\n{% if (points_x < points_y) %}\n{% set points_x = points_y %}\n{% endif %}\n{% if (([points_x, points_y]|max) > 6) %}\n{% set algorithm = "bicubic" %}\n{% set min_points = 4 %}\n{% else %}\n{% set algorithm = "lagrange" %}\n{% set min_points = 3 %}\n{% endif %}\n{% set points_x = [points_x , min_points]|max %}\n{% set points_y = [points_y , min_points]|max %}\n{% set points_x = [points_x , probe_count[0]]|min %}\n{% set points_y = [points_y , probe_count[1]]|min %}\n\n{% if verbose_enable == True %}\n\n{% if printer.exclude_object.objects != [] %}\n\nRESPOND TYPE=command MSG="Algorithm: {algorithm}"\nRESPOND TYPE=command MSG="Default probe count: {probe_count[0]},{probe_count[1]}"\nRESPOND TYPE=command MSG="Adapted probe count: {points_x},{points_y}"\nRESPOND TYPE=command MSG="Default mesh bounds: {bed_mesh_min[0]},{bed_mesh_min[1]}, {bed_mesh_max[0]},{bed_mesh_max[1]}"\n\n{% if mesh_margin > 0 %}\n\nRESPOND TYPE=command MSG="Mesh margin is {mesh_margin}, mesh bounds extended by {mesh_margin}mm."\n\n{% else %}\n\nRESPOND TYPE=command MSG="Mesh margin is 0, margin not increased."\n\n{% endif %}\n\n{% if fuzz_amount > 0 %}\n\nRESPOND TYPE=command MSG="Mesh point fuzzing enabled, points fuzzed up to {fuzz_amount}mm"\n\n{% else %}\n\nRESPOND TYPE=command MSG="Fuzz amount is 0, mesh points not fuzzed."\n\n{% endif %}\n\nRESPOND TYPE=command MSG="Adapted mesh bounds: {adapted_x_min},{adapted_y_min}, {adapted_x_max},{adapted_y_max}"\nRESPOND TYPE=command MSG="KAMP adjustments successful. Happy KAMPing!"\n\n{% else %}\n\nRESPOND TYPE=command MSG="No object detected! Make sure you have enabled Exclude Objets setting in your slicer. Using Full Bed Mesh."\nG4 P5000\n\n{% endif %}\n\n{% endif %}\n\n_BED_MESH_CALIBRATE mesh_min={adapted_x_min},{adapted_y_min} mesh_max={adapted_x_max},{adapted_y_max} ALGORITHM={algorithm} PROBE_COUNT={points_x},{points_y}'}, 'gcode_macro _LINE_PURGE': {'description': 'A purge macro that adapts to be near your actual printed objects', 'gcode': '\n{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}\n{% set cross_section = printer.configfile.settings.extruder.max_extrude_cross_section | float %}\n{% if printer.firmware_retraction is defined %}\n{% set RETRACT = G10 | string %}\n{% set UNRETRACT = G11 | string %}\n{% else %}\n{% set RETRACT = \'G1 E-0.5 F2400\' | string %}\n{% set UNRETRACT = \'G1 E0.5 F2400\' | string %}\n{% endif %}\n{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}\n{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}\n{% set verbose_enable = printer["gcode_macro _KAMP_Settings"].verbose_enable | abs %}\n{% set purge_height = printer["gcode_macro _KAMP_Settings"].purge_height | float %}\n{% set tip_distance = printer["gcode_macro _KAMP_Settings"].tip_distance | float %}\n{% set purge_margin = printer["gcode_macro _KAMP_Settings"].purge_margin | float %}\n{% set purge_amount = printer["gcode_macro _KAMP_Settings"].purge_amount | float %}\n{% set flow_rate = printer["gcode_macro _KAMP_Settings"].flow_rate | float %}\n{% set rapid_move = 10 %}\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set purge_x_min = (all_points | map(attribute=0) | min | default(0)) %}\n{% set purge_x_max = (all_points | map(attribute=0) | max | default(0)) %}\n{% set purge_y_min = (all_points | map(attribute=1) | min | default(0)) %}\n{% set purge_y_max = (all_points | map(attribute=1) | max | default(0)) %}\n{% set detect_object = purge_x_min + purge_x_max + purge_y_min + purge_y_max %}\n{% set purge_x_center = ([((purge_x_max + purge_x_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% set purge_y_center = ([((purge_y_max + purge_y_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% if (purge_x_center + purge_amount + rapid_move) > bed_x_max %}\n{% set purge_x_center = (bed_x_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% if (purge_y_center + purge_amount + rapid_move) > bed_y_max %}\n{% set purge_y_center = (bed_y_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% set purge_x_origin_low = (purge_x_min - purge_margin) %}\n{% set purge_x_origin_high = (purge_x_max + purge_margin) %}\n{% set purge_y_origin_low = (purge_y_min - purge_margin) %}\n{% set purge_y_origin_high = (purge_y_max + purge_margin) %}\n{% set purge_move_speed = (flow_rate / 5.0) * 60 | float %}\n\n{% if cross_section < 5 %}\n\nRESPOND TYPE=command MSG="[Extruder] max_extrude_cross_section is insufficient for line purge, please set it to 5 or greater. Purge skipped."\n\n{% else %}\n\n{% if verbose_enable == True %}\n\nRESPOND TYPE=command MSG="Moving filament tip {tip_distance}mm"\n\n{% endif %}\n\n{% if detect_object == 0 %}\n\nRESPOND TYPE=command MSG="No object detected! Using classic purge line."\n\n{% elif purge_y_origin_low > 0 %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_low} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_x_origin_low > 0 %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_low}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_y_origin_high < bed_y_max %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_high} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_x_origin_high < bed_x_max %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_high}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% else %}\n\nRESPOND TYPE=command MSG="No space for purge line! Using classic purge line."\n\n{% endif %}\n\nSAVE_GCODE_STATE NAME=Prepurge_State\n\n{% if detect_object == 0 %}\n\nG92 E0\nG1 Z0.1 F600\nM83\n{RETRACT}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nM204 S12000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000\nM220 S100\nM221 S100\nG1 Z2.0 F1200\nG1 X0.1 Y20 Z0.3 F6000.0\nG1 X0.1 Y180.0 Z0.3 F3000.0 E10.0\nG1 X0.4 Y180.0 Z0.3 F3000.0\nG1 X0.4 Y20.0 Z0.3 F3000.0 E10.0\nG1 Y10.0 F3000.0\nG1 Z2.0 F3000.0\nG92 E0\nM82\nG1 F12000\nG21\n\n{% elif purge_y_origin_low > 0 %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_center} Y{purge_y_origin_low}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_x_origin_low > 0 %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_origin_low} Y{purge_y_center}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_y_origin_high < bed_y_max %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_center} Y{purge_y_origin_high}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_x_origin_high < bed_x_max %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_origin_high} Y{purge_y_center}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% else %}\n\nG92 E0\nG1 Z0.1 F600\nM83\n{RETRACT}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nM204 S12000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000\nM220 S100\nM221 S100\nG1 Z2.0 F1200\nG1 X0.1 Y20 Z0.3 F6000.0\nG1 X0.1 Y180.0 Z0.3 F3000.0 E10.0\nG1 X0.4 Y180.0 Z0.3 F3000.0\nG1 X0.4 Y20.0 Z0.3 F3000.0 E10.0\nG1 Y10.0 F3000.0\nG1 Z2.0 F3000.0\nG92 E0\nM82\nG1 F12000\nG21\n\n{% endif %}\n\nRESTORE_GCODE_STATE NAME=Prepurge_State\n\n{% endif %}'}, 'gcode_macro _SMART_PARK': {'description': 'Parks your printhead near the print area for pre-print hotend heating.', 'gcode': '\n{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}\n{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}\n{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}\n{% set z_height = kamp_settings.smart_park_height | float %}\n{% set purge_margin = kamp_settings.purge_margin | float %}\n{% set purge_amount = kamp_settings.purge_amount | float %}\n{% set verbose_enable = kamp_settings.verbose_enable | abs %}\n{% set center_x = bed_x_max / 2 %}\n{% set center_y = bed_y_max / 2 %}\n{% set axis_minimum_x = printer.toolhead.axis_minimum.x | float %}\n{% set axis_minimum_y = printer.toolhead.axis_minimum.y | float %}\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set x_min = (all_points | map(attribute=0) | min | default(0)) %}\n{% set x_max = (all_points | map(attribute=0) | max | default(0)) %}\n{% set y_min = (all_points | map(attribute=1) | min | default(0)) %}\n{% set y_max = (all_points | map(attribute=1) | max | default(0)) %}\n{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}\n{% set rapid_move = 10 %}\n{% set park_x_center = ([((x_max + x_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% set park_y_center = ([((y_max + y_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% if (park_x_center + purge_amount + rapid_move) > bed_x_max %}\n{% set park_x_center = (bed_x_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% if (park_y_center + purge_amount + rapid_move) > bed_y_max %}\n{% set park_y_center = (bed_y_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% set park_x_origin_low = (x_min - purge_margin) %}\n{% set park_x_origin_high = (x_max + purge_margin) %}\n{% set park_y_origin_low = (y_min - purge_margin) %}\n{% set park_y_origin_high = (y_max + purge_margin) %}\n{% set detect_object = (x_min + x_max + y_min + y_max) %}\n{% if detect_object == 0 %}\n{% set x_min = 10 %}\n{% set y_min = 10 %}\n{% set z_height = 2 %}\n{% elif park_y_origin_low > 0 %}\n{% set x_min = park_x_center %}\n{% set y_min = park_y_origin_low %}\n{% elif park_x_origin_low > 0 %}\n{% set x_min = park_x_origin_low %}\n{% set y_min = park_y_center %}\n{% elif park_y_origin_high < bed_y_max %}\n{% set x_min = park_x_center %}\n{% set y_min = park_y_origin_high %}\n{% elif park_x_origin_high < bed_x_max %}\n{% set x_min = park_x_origin_high %}\n{% set y_min = park_y_center %}\n{% else %}\n{% set x_min = 10 %}\n{% set y_min = 10 %}\n{% set z_height = 2 %}\n{% endif %}\n\n{% if verbose_enable == True %}\n\nRESPOND TYPE=command MSG="Smart Park location: {x_min},{y_min}"\n\n{% endif %}\n\nSAVE_GCODE_STATE NAME=Presmartpark_State\n\nG90\n{% if printer.toolhead.position.z < z_height %}\n\nG0 Z{z_height}\n\n{% endif %}\n\nG0 X{x_min} Y{y_min} F{travel_speed}\nG0 Z{z_height}\n\nRESTORE_GCODE_STATE NAME=Presmartpark_State'}, 'gcode_macro DEFINE_OBJECT': {'gcode': '\nEXCLUDE_OBJECT_DEFINE {rawparams}'}, 'gcode_macro START_CURRENT_OBJECT': {'gcode': '\nEXCLUDE_OBJECT_START NAME={params.NAME}'}, 'gcode_macro END_CURRENT_OBJECT': {'gcode': '\nEXCLUDE_OBJECT_END {% if params.NAME %}NAME={params.NAME}{% endif %}'}, 'gcode_macro LIST_OBJECTS': {'gcode': '\nEXCLUDE_OBJECT_DEFINE'}, 'gcode_macro LIST_EXCLUDED_OBJECTS': {'gcode': '\nEXCLUDE_OBJECT'}, 'gcode_macro REMOVE_ALL_EXCLUDED': {'gcode': '\nEXCLUDE_OBJECT RESET=1'}, 'gcode_macro _KAMP_Settings': {'description': 'This macro contains all adjustable settings for KAMP', 'variable_verbose_enable': 'True', 'variable_mesh_margin': '0', 'variable_fuzz_amount': '0', 'variable_purge_height': '0.8', 'variable_tip_distance': '0', 'variable_purge_margin': '10', 'variable_purge_amount': '50', 'variable_flow_rate': '12', 'variable_smart_park_height': '10', 'gcode': '\nRESPOND TYPE=command MSG="Running the KAMP_Settings macro does nothing, it\'s only used for storing KAMP settings."'}, 'mcu': {'serial': '/dev/ttyS7', 'baud': '230400', 'restart_method': 'command'}, 'mcu nozzle_mcu': {'serial': '/dev/ttyS1', 'baud': '230400', 'restart_method': 'command'}, 'mcu leveling_mcu': {'serial': '/dev/ttyS9', 'baud': '230400', 'restart_method': 'command'}, 'verify_heater extruder': {}, 'verify_heater heater_bed': {'check_gain_time': '120', 'heating_gain': '1.0', 'hysteresis': '10'}, 'mcu rpi': {'serial': '/tmp/klipper_host_mcu'}, 'bl24c16f': {'i2c_mcu': 'rpi', 'i2c_bus': 'i2c.2', 'i2c_speed': '400000'}, 'idle_timeout': {'timeout': '99999999'}, 'virtual_sdcard': {'path': '/usr/data/printer_data/gcodes'}, 'gcode_arcs': {'resolution': '1.0'}, 'temperature_sensor mcu_temp': {'sensor_type': 'temperature_mcu', 'min_temp': '0', 'max_temp': '100'}, 'temperature_sensor chamber_temp': {'sensor_type': 'EPCOS 100K B57560G104F', 'sensor_pin': 'PC5', 'min_temp': '0', 'max_temp': '125'}, 'stepper_x': {'step_pin': 'PC2', 'dir_pin': '!PB9', 'enable_pin': '!PC3', 'microsteps': '32', 'rotation_distance': '72', 'endstop_pin': 'tmc2209_stepper_x:virtual_endstop', 'position_endstop': '306.5', 'position_min': '-2', 'position_max': '306.5', 'homing_speed': '36', 'homing_retract_dist': '0'}, 'tmc2209 stepper_x': {'uart_pin': 'PA9', 'interpolate': 'True', 'run_current': '1.5', 'hold_current': '1.0', 'sense_resistor': '0.100', 'stealthchop_threshold': '0', 'uart_address': '3', 'diag_pin': '^PB12', 'driver_sgthrs': '65'}, 'stepper_y': {'step_pin': 'PB8', 'dir_pin': '!PB7', 'enable_pin': '!PC3', 'microsteps': '32', 'rotation_distance': '72', 'endstop_pin': 'tmc2209_stepper_y:virtual_endstop', 'position_endstop': '-2', 'position_min': '-2', 'position_max': '306', 'homing_speed': '36', 'homing_retract_dist': '0'}, 'tmc2209 stepper_y': {'uart_pin': 'PA10', 'interpolate': 'True', 'run_current': '1.5', 'hold_current': '1.0', 'sense_resistor': '0.100', 'stealthchop_threshold': '0', 'uart_address': '3', 'diag_pin': '^PB13', 'driver_sgthrs': '65'}, 'stepper_z': {'step_pin': 'PB6', 'dir_pin': '!PB5', 'enable_pin': '!PC3', 'microsteps': '16', 'rotation_distance': '8', 'gear_ratio': '64:20', 'endstop_pin': 'tmc2209_stepper_z:virtual_endstop', 'position_endstop': '0', 'position_max': '305', 'position_min': '-10', 'homing_speed': '10', 'second_homing_speed': '1', 'homing_retract_dist': '2.0'}, 'tmc2209 stepper_z': {'uart_pin': 'PA11', 'uart_address': '3', 'run_current': '0.8', 'diag_pin': '^PB14', 'stealthchop_threshold': '0', 'sense_resistor': '0.100', 'driver_sgthrs': '0'}, 'extruder': {'max_extrude_only_distance': '1000.0', 'max_extrude_cross_section': '80', 'step_pin': 'nozzle_mcu:PB1', 'dir_pin': 'nozzle_mcu:PB0', 'enable_pin': '!nozzle_mcu:PB2', 'microsteps': '16', 'rotation_distance': '6.9', 'nozzle_diameter': '0.400', 'filament_diameter': '1.750', 'heater_pin': 'nozzle_mcu:PB7', 'sensor_type': 'EPCOS 100K B57560G104F', 'sensor_pin': 'nozzle_mcu:PA0', 'pressure_advance': '0.04', 'pressure_advance_smooth_time': '0.040', 'control': 'pid', 'pid_kp': '25.013', 'pid_ki': '2.566', 'pid_kd': '60.966', 'min_temp': '0', 'max_temp': '320'}, 'tmc2209 extruder': {'uart_pin': 'nozzle_mcu:PB11', 'tx_pin': 'nozzle_mcu:PB10', 'uart_address': '3', 'run_current': '0.55', 'sense_resistor': '0.150', 'stealthchop_threshold': '0'}, 'heater_bed': {'heater_pin': 'PC8', 'sensor_type': 'NTC 100K beta 3950', 'sensor_pin': 'PC4', 'min_temp': '0', 'max_temp': '125', 'control': 'pid', 'pid_kp': '52.075', 'pid_ki': '1.036', 'pid_kd': '654.186'}, 'filament_switch_sensor filament_sensor': {'pause_on_runout': 'true', 'switch_pin': '!PC15', 'runout_gcode': "\n{% if printer.extruder.can_extrude|lower == 'true' %}\nG91\nG0 E30 F600\nG90\n{% endif %}"}, 'filament_switch_sensor filament_sensor_2': {'pause_on_runout': 'true', 'switch_pin': '!nozzle_mcu:PA10'}, 'multi_pin heater_fans': {'pins': 'nozzle_mcu:PB5,PB2'}, 'heater_fan hotend_fan': {'pin': 'multi_pin:heater_fans', 'heater': 'extruder', 'heater_temp': '40'}, 'static_digital_output my_fan_output_pins': {'pins': 'nozzle_mcu: PB6'}, 'output_pin fan0': {'pin': '!nozzle_mcu: PB8', 'pwm': 'True', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'value': '0.00', 'scale': '255', 'shutdown_value': '0.0'}, 'output_pin fan1': {'pin': 'PC0', 'pwm': 'True', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'value': '0.00', 'scale': '255', 'shutdown_value': '0.0'}, 'output_pin fan2': {'pin': 'PB1', 'pwm': 'True', 'cycle_time': '0.0100', 'hardware_pwm': 'false', 'value': '0.00', 'scale': '255', 'shutdown_value': '0.0'}, 'output_pin LED': {'pin': 'PB0', 'pwm': 'True', 'cycle_time': '0.010', 'value': '1'}, 'output_pin power': {'pin': 'PC9'}, 'adxl345': {'cs_pin': 'nozzle_mcu:PA4', 'spi_speed': '5000000', 'axes_map': 'x,-z,y', 'spi_software_sclk_pin': 'nozzle_mcu:PA5', 'spi_software_mosi_pin': 'nozzle_mcu:PA7', 'spi_software_miso_pin': 'nozzle_mcu:PA6'}, 'resonance_tester': {'accel_chip': 'adxl345', 'accel_per_hz': '75', 'probe_points': '\n150,150,10'}, 'prtouch_v2': {'pr_version': '2', 'step_base': '2', 'z_offset': '0', 'noz_ex_com': '0.09', 'tilt_corr_dis': '0.05', 'tri_min_hold': '6000,10000', 'tri_max_hold': '13000,60000', 'pres_cnt': '4', 'pres0_clk_pins': 'leveling_mcu:PA7', 'pres0_sdo_pins': 'leveling_mcu:PA4', 'pres1_clk_pins': 'leveling_mcu:PA6', 'pres1_sdo_pins': 'leveling_mcu:PA3', 'pres2_clk_pins': 'leveling_mcu:PA2', 'pres2_sdo_pins': 'leveling_mcu:PA0', 'pres3_clk_pins': 'leveling_mcu:PA5', 'pres3_sdo_pins': 'leveling_mcu:PA1', 'show_msg': 'False', 'step_swap_pin': 'PC10', 'pres_swap_pin': 'leveling_mcu:PB1', 'g28_wait_cool_down': 'true', 'pa_clr_down_mm': '-0.15', 'clr_noz_start_x': '130', 'clr_noz_start_y': '303', 'clr_noz_len_x': '40', 'clr_noz_len_y': '2', 'speeds': '2.5,1.0', 'tri_hftr_cut': '2,1', 'tri_lftr_k1': '0.50,0.15', 'tri_min_hold_1': '6000,10000', 'tri_min_hold_2': '6000,10000', 'tri_min_hold_3': '6000,10000', 'tri_min_hold_4': '6000,10000', 'tri_min_hold_5': '6000,10000', 'tri_min_hold_6': '6000,10000', 'tri_min_hold_7': '6000,10000', 'tri_min_hold_8': '6000,10000', 'tri_min_hold_9': '6000,10000', 'tri_min_hold_10': '6000,10000', 'tri_min_hold_11': '6000,10000', 'tri_min_hold_12': '6000,10000', 'tri_min_hold_13': '6000,10000', 'tri_min_hold_14': '6000,10000', 'tri_min_hold_15': '6000,10000', 'tri_min_hold_16': '6000,10000', 'tri_min_hold_17': '6000,10000', 'tri_min_hold_18': '6000,10000', 'tri_min_hold_19': '6000,10000', 'tri_min_hold_20': '6000,10000', 'tri_min_hold_21': '6000,10000', 'tri_min_hold_22': '6000,10000', 'tri_min_hold_23': '6000,10000', 'tri_min_hold_24': '6000,10000', 'tri_min_hold_25': '6000,10000', 'tri_min_hold_26': '6000,10000', 'tri_min_hold_27': '6000,10000', 'tri_min_hold_28': '6000,10000', 'tri_min_hold_29': '6000,10000', 'tri_min_hold_30': '6000,10000', 'tri_min_hold_31': '6000,10000', 'tri_min_hold_32': '6000,10000', 'tri_min_hold_33': '6000,10000', 'tri_min_hold_34': '6000,10000', 'tri_min_hold_35': '6000,10000', 'tri_min_hold_36': '6000,10000', 'tri_max_hold_1': '13000,60000', 'tri_max_hold_2': '13000,60000', 'tri_max_hold_3': '13000,60000', 'tri_max_hold_4': '13000,60000', 'tri_max_hold_5': '13000,60000', 'tri_max_hold_6': '13000,60000', 'tri_max_hold_7': '13000,60000', 'tri_max_hold_8': '13000,60000', 'tri_max_hold_9': '13000,60000', 'tri_max_hold_10': '13000,60000', 'tri_max_hold_11': '13000,60000', 'tri_max_hold_12': '13000,60000', 'tri_max_hold_13': '13000,60000', 'tri_max_hold_14': '13000,60000', 'tri_max_hold_15': '13000,60000', 'tri_max_hold_16': '13000,60000', 'tri_max_hold_17': '13000,60000', 'tri_max_hold_18': '13000,60000', 'tri_max_hold_19': '13000,60000', 'tri_max_hold_20': '13000,60000', 'tri_max_hold_21': '13000,60000', 'tri_max_hold_22': '13000,60000', 'tri_max_hold_23': '13000,60000', 'tri_max_hold_24': '13000,60000', 'tri_max_hold_25': '13000,60000', 'tri_max_hold_26': '13000,60000', 'tri_max_hold_27': '13000,60000', 'tri_max_hold_28': '13000,60000', 'tri_max_hold_29': '13000,60000', 'tri_max_hold_30': '13000,60000', 'tri_max_hold_31': '13000,60000', 'tri_max_hold_32': '13000,60000', 'tri_max_hold_33': '13000,60000', 'tri_max_hold_34': '13000,60000', 'tri_max_hold_35': '13000,60000', 'tri_max_hold_36': '13000,60000'}, 'bed_mesh': {'speed': '150', 'mesh_min': '5,5', 'mesh_max': '295,295', 'probe_count': '6,6', 'fade_start': '5.0', 'fade_end': '50.0'}, 'display_status': {}, 'printer': {'kinematics': 'corexy', 'max_velocity': '800', 'max_accel': '20000', 'max_accel_to_decel': '20000', 'max_z_velocity': '20', 'square_corner_velocity': '5.0', 'square_corner_max_velocity': '200.0', 'max_z_accel': '300'}, 'pause_resume': {}, 'exclude_object': {}, 'input_shaper': {'shaper_type_x': '2hump_ei', 'shaper_freq_x': '39.0', 'shaper_type_y': 'zv', 'shaper_freq_y': '48.0'}}, 'settings': {'mcu': {'serial': '/dev/ttyS7', 'baud': 230400, 'restart_method': 'command', 'max_stepper_error': 2.5e-05}, 'mcu nozzle_mcu': {'serial': '/dev/ttyS1', 'baud': 230400, 'restart_method': 'command', 'max_stepper_error': 2.5e-05}, 'mcu leveling_mcu': {'serial': '/dev/ttyS9', 'baud': 230400, 'restart_method': 'command', 'max_stepper_error': 2.5e-05}, 'mcu rpi': {'serial': '/tmp/klipper_host_mcu', 'max_stepper_error': 2.5e-05}, 'force_move': {'enable_force_move': True}, 'gcode_macro xyz_ready': {'gcode': '', 'description': 'G-Code macro', 'variable_x_ready': '0', 'variable_y_ready': '0', 'variable_z_ready': '0', 'variable_xy_moved': '0', 'variable_z_moved': '0', 'variable_safe_z': '3'}, 'gcode_macro _if_home_z': {'gcode': '\n{% if printer[\'gcode_macro xyz_ready\'].z_ready|int == 1 %}\n{% if printer.toolhead.position.z|int < 5 %}\n{% set z_park = 5.0 - printer.toolhead.position.z|int %}\nG91\nG1 z{z_park} F600\nG90\n{% endif %}\n{% else %}\n{% if printer[\'gcode_macro xyz_ready\'].z_moved|int == 0 %}\n{% if printer.print_stats.z_pos|float <= 20.0 or printer.print_stats.power_loss == 1 %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE={printer["gcode_macro PRINTER_PARAM"].z_safe_g28} VELOCITY=10\n{% else %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE=0.1 VELOCITY=10\n{% endif %}\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=1\n{% endif %}\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro _if_move_xy': {'gcode': '\n_IF_HOME_Z\n{% if printer[\'gcode_macro xyz_ready\'].xy_moved|int == 0 %}\n{action_respond_info("move xy\\n")}\n\nFORCE_MOVE STEPPER=stepper_y DISTANCE=-14 VELOCITY=50\nFORCE_MOVE STEPPER=stepper_y DISTANCE=7 VELOCITY=50\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=1\nG4 P1000\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro _home_x': {'gcode': "\n_IF_MOVE_XY\n\n{% if printer['gcode_macro xyz_ready'].x_ready|int == 1 %}\n{% if (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x)|round < 10 %}\n{% set x_park = (10 - (printer.configfile.settings['stepper_x'].position_max - printer.toolhead.position.x))|round %}\n{% if x_park > 0 %}\nG91\nG1 x-{x_park} F3600\nG90\nG4 P1000\n{% endif %}\n{% endif %}\n{% endif %}\n\n\n\n\nG28 X\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=1\n\nG91\nG1 x-10 F3600\nG90\n\nG4 P2000", 'description': 'G-Code macro'}, 'gcode_macro _home_y': {'gcode': "\n_IF_MOVE_XY\n\n{% if printer['gcode_macro xyz_ready'].y_ready|int == 1 %}\n{% if printer.toolhead.position.y|round < 8 %}\n{% set y_park = 8 - printer.toolhead.position.y|round %}\n{% if y_park > 0 %}\nG91\nG1 y{y_park} F3600\nG90\nG4 P1000\n{% endif %}\n{% endif %}\n{% endif %}\n\n\n\n\nG28 Y\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=1\n\nG91\nG1 y10 F3600\nG90\n\nG4 P2000", 'description': 'G-Code macro'}, 'gcode_macro _home_z': {'gcode': '\n{% if printer[\'gcode_macro xyz_ready\'].y_ready|int == 1 %}\n{% if printer[\'gcode_macro xyz_ready\'].x_ready|int == 1 %}\n_IF_HOME_Z\n{% endif %}\n{% endif %}\n{% if printer.print_stats.z_pos|float >= 260.0 %}\nFORCE_MOVE STEPPER=stepper_z DISTANCE=-8 VELOCITY=10\n{% endif %}\n\n{% set POSITION_X = printer.configfile.settings[\'stepper_x\'].position_max/2 %}\n{% set POSITION_Y = printer.configfile.settings[\'stepper_y\'].position_max/2 %}\n\nG91\n{% set x_park = POSITION_X - printer.toolhead.position.x|int %}\n{% set y_park = POSITION_Y - printer.toolhead.position.y|int %}\n{action_respond_info("x_park = %s \\n" % (x_park))}\n{action_respond_info("y_park = %s \\n" % (y_park))}\nG1 x{x_park} y{y_park} F3600\nG90\n\n\nG28 Z\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=1', 'description': 'G-Code macro'}, 'homing_override': {'axes': 'xyz', 'gcode': '\nM220 S100\n\n\n\n{% set x_axes = printer.toolhead.homed_axes %}\n{% if x_axes is defined and x_axes[0] is defined %}\n{action_respond_info(\n"x_axes: %s \\n"\n% (x_axes))}\n{% else %}\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=x_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=y_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_ready VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=xy_moved VALUE=0\nSET_GCODE_VARIABLE MACRO=xyz_ready VARIABLE=z_moved VALUE=0\n{action_respond_info(\n"x_axes is NULL\\n")}\n{% endif %}\n\n{% if x_axes is not defined or x_axes[2] is not defined %}\nBED_MESH_CLEAR\n{% endif %}\n\n{% if x_axes is defined and x_axes[0] is defined and x_axes[1] is defined %}\n{action_respond_info("x_axes: %s \\n"% (x_axes))}\n{% set position_y = printer.toolhead.position.y|int %}\n{% set max_y_position = printer["gcode_macro PRINTER_PARAM"].max_y_position|int %}\n{% if position_y >= max_y_position %}\nG91\nG0 Y-10 F3600\nG90\n{% endif %}\n{% endif %}\n\n{% set home_all = \'X\' not in params and \'Y\' not in params %}\n{% if \'Z\' in params and \'X\' not in params and \'Y\' not in params %}\n{% if x_axes[0] is defined and x_axes[1] is defined %}\n{% set home_all = 0 %}\n{% endif %}\n{% endif %}\n\n{% if home_all or \'X\' in params %}\n_HOME_X\n{% endif %}\n\n{% if home_all or \'Y\' in params %}\n_HOME_Y\n{% endif %}\n\n{% if home_all or \'X\' in params %}\n_HOME_X\n{% endif %}\n\n{% if home_all or \'Y\' in params %}\n_HOME_Y\n{% endif %}\n\n{% if home_all or \'Z\' in params %}\n_HOME_Z\n{% endif %}\nBED_MESH_PROFILE LOAD="default"\n\n\n\n\nG4 P500'}, 'gcode_macro printer_param': {'gcode': '', 'description': 'G-Code macro', 'variable_z_safe_pause': '0.0', 'variable_z_safe_g28': 3.0, 'variable_max_x_position': '300.0', 'variable_max_y_position': '300.0', 'variable_max_z_position': '300.0', 'variable_fans': '3', 'variable_auto_g29': '0', 'variable_fan0_min': '25', 'variable_fan1_min': '50', 'variable_fan2_min': '180', 'variable_fan2_speed': '0', 'variable_hotend_temp': '0', 'variable_e_min_current': '0.27'}, 'gcode_macro autotune_shapers': {'gcode': '', 'description': 'G-Code macro'}, 'gcode_macro load_material_close_fan2': {'gcode': "\nSAVE_GCODE_STATE NAME=myMoveState\n{% if printer['output_pin fan2'].value > 0.0 %}\nSET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE={printer['output_pin fan2'].value}\nM107 P2\n{% endif %}\nRESTORE_E_CURRENT", 'description': 'G-Code macro', 'variable_fan2_value': '0'}, 'gcode_macro load_material_restore_fan2': {'gcode': '\n{% set fan2_value = printer[\'gcode_macro LOAD_MATERIAL_CLOSE_FAN2\'].fan2_value|float %}\nRESTORE_GCODE_STATE NAME=myMoveState\n{% if fan2_value > 0.0 %}\n{% set s_value = (fan2_value * 255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) * 255 / (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) %}\nM106 P2 S{s_value}\nSET_GCODE_VARIABLE MACRO=LOAD_MATERIAL_CLOSE_FAN2 VARIABLE=fan2_value VALUE=0\n{% endif %}\nSET_E_MIN_CURRENT', 'description': 'G-Code macro'}, 'gcode_macro set_e_min_current': {'gcode': "\n{% set e_current = printer['gcode_macro PRINTER_PARAM'].e_min_current %}\nM400\nSET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current}\nG4 P2000", 'description': 'G-Code macro'}, 'gcode_macro restore_e_current': {'gcode': "\n{% set e_current = printer.configfile.settings['tmc2209 extruder'].run_current %}\nM400\nSET_TMC_CURRENT STEPPER=extruder CURRENT={e_current} HOLDCURRENT={e_current}\nG4 P2000", 'description': 'G-Code macro'}, 'gcode_macro load_material': {'gcode': '\nLOAD_MATERIAL_CLOSE_FAN2\nM109 S{printer.custom_macro.default_extruder_temp}\nG91\nG1 E80 F180\nLOAD_MATERIAL_RESTORE_FAN2', 'description': 'G-Code macro'}, 'gcode_macro quit_material': {'gcode': '\nSAVE_GCODE_STATE NAME=myMoveState\nRESTORE_E_CURRENT\nM109 S{printer.custom_macro.default_extruder_temp}\nM83\nG1 E10 F300\nG1 E-15 F3000\nG1 E-22.4700 F2400\nG1 E-6.4200 F1200\nG1 E-3.2100 F720\nG1 E5.0000 F356\nG1 E-5.0000 F384\nG1 E5.0000 F412\nG1 E-5.0000 F440\nG1 E5.0000 F467\nG1 E-5.0000 F495\nG1 E5.0000 F523\nG1 E-5.0000 F3000\nG1 E-15 F3000\nSET_E_MIN_CURRENT\nRESTORE_GCODE_STATE NAME=myMoveState', 'description': 'G-Code macro'}, 'gcode_macro qmode': {'gcode': '\n{% set printer_state = printer.print_stats.state %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 0 %}\n{% if printer_state == "printing" or printer_state == "paused" %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel VALUE={printer.toolhead.max_accel}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=accel_to_decel VALUE={printer.toolhead.max_accel_to_decel}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=velocity VALUE={printer.toolhead.max_velocity}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=square_corner_velocity VALUE={printer.toolhead.square_corner_velocity}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=pressure_advance VALUE={printer.extruder.pressure_advance}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=speed_factor VALUE={printer.gcode_move.speed_factor}\nSET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=0\nSET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=0\nSET_TMC_CURRENT STEPPER=stepper_x CURRENT=1.0\nSET_TMC_CURRENT STEPPER=stepper_y CURRENT=1.0\nG4 P1000\n\n\nSET_VELOCITY_LIMIT ACCEL=2500\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=2500\nSET_VELOCITY_LIMIT VELOCITY=150\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nSET_PRESSURE_ADVANCE ADVANCE=0.05\nM220 S50\n\n{% set tmp = printer[\'output_pin fan0\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={tmp}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan0_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\nSET_PIN PIN=fan0 VALUE={tmp}\n{% endif %}\n\n{% set tmp = printer[\'output_pin fan1\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer[\'output_pin fan1\'].value * 255}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan1_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\nSET_PIN PIN=fan1 VALUE={tmp}\n{% endif %}\n\n{% set tmp = printer[\'output_pin fan2\'].value * 255 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer[\'output_pin fan2\'].value * 255}\n{% if tmp - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% set tmp = printer[\'gcode_macro PRINTER_PARAM\'].fan2_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\nSET_PIN PIN=fan2 VALUE={tmp}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=1\nSET_QMODE_FLAG FLAG=1\n{% endif %}\n{% endif %}', 'description': 'G-Code macro', 'variable_flag': '0', 'variable_accel': '0', 'variable_accel_to_decel': '0', 'variable_velocity': '0', 'variable_square_corner_velocity': '0', 'variable_pressure_advance': '0.0', 'variable_fan0_value': '0.00', 'variable_fan1_value': '0.00', 'variable_fan2_value': '0.00', 'variable_speed_factor': '0', 'variable_max_accel': '2500', 'variable_max_accel_to_decel': '2500'}, 'gcode_macro qmode_exit': {'gcode': '\n{% set printer_state = printer.print_stats.state %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 %}\n{% if printer_state == "printing" or printer_state == "paused" %}\nSET_VELOCITY_LIMIT ACCEL={printer[\'gcode_macro Qmode\'].accel}\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer[\'gcode_macro Qmode\'].accel_to_decel}\nSET_VELOCITY_LIMIT VELOCITY={printer[\'gcode_macro Qmode\'].velocity}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={printer[\'gcode_macro Qmode\'].square_corner_velocity}\nSET_PRESSURE_ADVANCE ADVANCE={printer[\'gcode_macro Qmode\'].pressure_advance}\nM220 S{printer[\'gcode_macro Qmode\'].speed_factor * 100}\n\n{% set X_RUN_CUR = printer.configfile.settings[\'tmc2209 stepper_x\'].run_current %}\n{% set Y_RUN_CUR = printer.configfile.settings[\'tmc2209 stepper_y\'].run_current %}\nSET_TMC_CURRENT STEPPER=stepper_x CURRENT={X_RUN_CUR}\nSET_TMC_CURRENT STEPPER=stepper_y CURRENT={Y_RUN_CUR}\nSET_TMC_FIELD STEPPER=stepper_x FIELD=en_spreadcycle VALUE=1\nSET_TMC_FIELD STEPPER=stepper_y FIELD=en_spreadcycle VALUE=1\nG4 P1000\n\n{% if printer[\'output_pin fan0\'].value != 0 %}\n{action_respond_info("fan0_value = %s" % printer[\'gcode_macro Qmode\'].fan0_value)}\nSET_PIN PIN=fan0 VALUE={printer[\'gcode_macro Qmode\'].fan0_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE=0\n{% endif %}\n{% if printer[\'output_pin fan1\'].value != 0 %}\n{action_respond_info("fan1_value = %s" % printer[\'gcode_macro Qmode\'].fan1_value)}\nSET_PIN PIN=fan1 VALUE={printer[\'gcode_macro Qmode\'].fan1_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE=0\n{% endif %}\n{% if printer[\'output_pin fan2\'].value != 0 %}\n{action_respond_info("fan2_value = %s" % printer[\'gcode_macro Qmode\'].fan2_value)}\nSET_PIN PIN=fan2 VALUE={printer[\'gcode_macro Qmode\'].fan2_value}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE=0\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=flag VALUE=0\nSET_QMODE_FLAG FLAG=0\n{% endif %}\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro m204': {'gcode': '\n\n{% set get_params = "" %}\n{% set qmode_max_accel = printer[\'gcode_macro Qmode\'].max_accel|string %}\n{% if \'S\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.S|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'S\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'S\' + params.S) %}\n{% endif %}\n{% endif %}\n{% if \'P\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.P|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'P\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'P\' + params.P) %}\n{% endif %}\n{% endif %}\n{% if \'T\' in params|upper %}\n{% if printer[\'gcode_macro Qmode\'].flag|int == 1 and params.T|float > qmode_max_accel|float %}\n{% set get_params = (get_params + \' \' + \'T\' + qmode_max_accel) %}\n{% else %}\n{% set get_params = (get_params + \' \' + \'T\' + params.T) %}\n{% endif %}\n{% endif %}\nM204.1 {get_params}', 'rename_existing': 'M204.1', 'description': 'G-Code macro'}, 'gcode_macro m205': {'gcode': "\n{% if 'X' in params %}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.X}\n{% elif 'Y' in params %}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={params.Y}\n{% endif %}", 'description': 'G-Code macro'}, 'gcode_macro m107': {'gcode': '\n{% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}\n{% if params.P is defined %}\n{% if params.P|int < fans %}\nSET_PIN PIN=fan{params.P|int} VALUE=0\n{% else %}\nSET_PIN PIN=fan0 VALUE=0\n{% endif %}\n{% else %}\nSET_PIN PIN=fan0 VALUE=0\nSET_PIN PIN=fan2 VALUE=0\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro m900': {'gcode': "\n{% if 'K' in params %}\n{% if 'E' in params %}\nSET_PRESSURE_ADVANCE EXTRUDER={params.E} ADVANCE={params.K}\n{% else %}\nSET_PRESSURE_ADVANCE ADVANCE={params.K}\n{% endif %}\n{% endif %}", 'description': 'G-Code macro'}, 'delayed_gcode wait_temp': {'gcode': '\n{% set cur_temp = printer.extruder.temperature %}\n{% if cur_temp|int < 40 %}\nWAIT_TEMP_END\n{% else %}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=5\n{% endif %}', 'initial_duration': 0.0}, 'gcode_macro wait_temp_start': {'gcode': '\n{action_respond_info("wait temp start\\n")}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=1\nM106 P0 S255', 'description': 'G-Code macro'}, 'gcode_macro wait_temp_end': {'gcode': '\n{action_respond_info("wait temp end\\n")}\nUPDATE_DELAYED_GCODE ID=wait_temp DURATION=0\nM106 P0 S0', 'description': 'G-Code macro'}, 'gcode_macro print_calibration': {'gcode': '\nCX_PRINT_LEVELING_CALIBRATION', 'description': 'G-Code macro'}, 'gcode_macro first_floor_pause_position': {'gcode': "\n{% set extruder_temp = printer.custom_macro.g28_ext_temp %}\nM104 S{extruder_temp}\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer['gcode_macro PRINTER_PARAM'].max_x_position|float + 1 %}\nG90\nG1 Z2 F600\nG1 X{x_park} Y{y_park} F6000\nG1 Z0.2 F600", 'description': 'G-Code macro'}, 'gcode_macro accurate_g28': {'gcode': '\nACCURATE_HOME_Z', 'description': 'G-Code macro'}, 'gcode_macro print_prepared': {'gcode': '\nSET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=1\n{action_respond_info("print prepared")}', 'description': 'G-Code macro'}, 'gcode_macro print_prepare_clear': {'gcode': '\nSET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=prepare VALUE=0', 'description': 'G-Code macro'}, 'gcode_macro end_print_point_without_lifting': {'gcode': '\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\nG91\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z2.0 F600\nG90\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("end print xyz_axes is NULL\\n")}\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro end_print_point': {'gcode': '\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < (max_z / 2) %}\n{% set z_safe = (max_z / 2) - act_z %}\n{% elif act_z < max_z %}\n{% set z_safe = 2.0 %}\n{% endif %}\nG91\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z2.0 F600\nG90\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F30000\n{% if z_safe > 2.0 %}\nG91\n{% set z_safe = z_safe - 2.0 %}\nG1 Z{z_safe} F600\nG90\n{% endif %}\n{% else %}\n{action_respond_info("end print xyz_axes is NULL\\n")}\n{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro end_print': {'gcode': '\nQmode_exit\nEXCLUDE_OBJECT_RESET\nPRINT_PREPARE_CLEAR\nM220 S100\nSET_VELOCITY_LIMIT ACCEL=5000 ACCEL_TO_DECEL=2500\nTURN_OFF_HEATERS\nM107 P1\nM107 P2\nEND_PRINT_POINT\nWAIT_TEMP_START\nM84', 'description': 'G-Code macro'}, 'gcode_macro first_floor_pause': {'gcode': '\n\n{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float %}\n\n\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\n\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < (max_z - 2.0) %}\n{% set z_safe = 2.0 %}\n{% elif act_z < max_z %}\n{% set z_safe = max_z - act_z %}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}\nPAUSE_BASE\nG91\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z{z_safe} F600\nG90\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("Printer not homed")}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer[\'output_pin fan2\'].value}\n{% set fspeed = printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed %}\n{action_respond_info("fan2_value = %s \\n" % (fspeed))}\n\nM106 P2 S0\nSET_E_MIN_CURRENT', 'description': 'Pause the first floor print', 'variable_extrude': '2.0'}, 'gcode_macro first_floor_resume': {'gcode': '\nRESTORE_E_CURRENT\n{% if printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed > 0 %}\n\n\n\n{% set s_value = (printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed * 255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) * 255 / (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min)|float %}\nM106 P2 S{s_value}\n{% endif %}\n\n{% set E = printer["gcode_macro FIRST_FLOOR_PAUSE"].extrude|float + 1.0 %}\n\n{% if \'VELOCITY\' in params|upper %}\n{% set get_params = (\'VELOCITY=\' + params.VELOCITY) %}\n{%else %}\n{% set get_params = "" %}\n{% endif %}\n\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG91\nG1 E{E} F2100\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nM400\nRESUME_BASE {get_params}', 'description': 'Resume the first floor print'}, 'gcode_macro pause': {'gcode': '\n\n{% set E = printer["gcode_macro PAUSE"].extrude|float %}\n\n\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\n\n{% set max_z = printer["gcode_macro PRINTER_PARAM"].max_z_position|float %}\n{% set act_z = printer.toolhead.position.z|float %}\n{% set z_safe = 0.0 %}\n{% if act_z < 48.0 %}\n{% set z_safe = 50.0 - act_z %}\n{% elif act_z < (max_z - 2.0) %}\n{% set z_safe = 2.0 %}\n{% elif act_z < max_z %}\n{% set z_safe = max_z - act_z %}\n{% endif %}\n{action_respond_info("z_safe = %s"% (z_safe))}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=z_safe_pause VALUE={z_safe|float}\nPAUSE_BASE\nG91\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE={printer.extruder.target}\nM104 S140\n{% if "xyz" in printer.toolhead.homed_axes %}\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG1 E-1.0 F180\nG1 E-{E} F4000\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nG1 Z{z_safe} F600\nM400\nG90\nG1 X{x_park} Y{y_park} F30000\n{% else %}\n{action_respond_info("Printer not homed")}\n{% endif %}\n\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=fan2_speed VALUE={printer[\'output_pin fan2\'].value}\n{% set fspeed = printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed %}\n{action_respond_info("fan2_value = %s \\n" % (fspeed))}\n\nM106 P2 S0\nSET_E_MIN_CURRENT', 'rename_existing': 'PAUSE_BASE', 'description': 'Pause the actual running print', 'variable_extrude': '2.0'}, 'gcode_macro inputshaper': {'gcode': "\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0\nG90\nG28\n{% set POSITION_X = printer.configfile.settings['stepper_x'].position_max/2 %}\n{% set POSITION_Y = printer.configfile.settings['stepper_y'].position_max/2 %}\nG1 X{POSITION_X} Y{POSITION_Y} F6000\nG1 Z10 F600\nSHAPER_CALIBRATE\nCXSAVE_CONFIG\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1", 'description': 'G-Code macro'}, 'gcode_macro bedpid': {'gcode': '\nPID_CALIBRATE HEATER=heater_bed TARGET=100\nSAVE_CONFIG', 'description': 'G-Code macro'}, 'gcode_macro tunoffinputshaper': {'gcode': '\nSET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0', 'description': 'G-Code macro'}, 'gcode_macro resume': {'gcode': '\nRESTORE_E_CURRENT\n{% if printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int != 0 %}\n{% if printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int > printer.extruder.temperature %}\nM109 S{printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int}\n{% else %}\nM104 S{printer[\'gcode_macro PRINTER_PARAM\'].hotend_temp|int}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=PRINTER_PARAM VARIABLE=hotend_temp VALUE=0\n{% endif %}\n{% if printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed > 0 %}\n\n\n\n{% set s_value = (printer[\'gcode_macro PRINTER_PARAM\'].fan2_speed * 255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) * 255 / (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min)|float %}\nM106 P2 S{s_value}\n{% endif %}\n{% set z_resume_move = printer[\'gcode_macro PRINTER_PARAM\'].z_safe_pause|int %}\n{% if z_resume_move > 2 %}\n{% set z_resume_move = z_resume_move - 2 %}\nG91\nG1 Z-{z_resume_move} F600\nM400\n{% endif %}\n{action_respond_info("z_resume_move = %s"% (z_resume_move))}\n\n{% set E = printer["gcode_macro PAUSE"].extrude|float + 1.0 %}\n\n{% if \'VELOCITY\' in params|upper %}\n{% set get_params = (\'VELOCITY=\' + params.VELOCITY) %}\n{%else %}\n{% set get_params = "" %}\n{% endif %}\n\n{% if printer.extruder.can_extrude|lower == \'true\' %}\nG91\nG1 E{E} F2100\nG90\n{% else %}\n{action_respond_info("Extruder not hot enough")}\n{% endif %}\nM400\nRESUME_BASE {get_params}', 'rename_existing': 'RESUME_BASE', 'description': 'Resume the actual running print'}, 'gcode_macro cancel_print': {'gcode': '\nEND_PRINT\nCANCEL_PRINT_BASE', 'rename_existing': 'CANCEL_PRINT_BASE', 'description': 'Cancel the actual running print'}, 'gcode_macro g29': {'gcode': '\n{% if \'PROBE_COUNT\' in params|upper %}\n{% set get_count = (\'PROBE_COUNT\' + params.PROBE_COUNT) %}\n{%else %}\n{% set get_count = "" %}\n{% endif %}\n\n{% set bed_temp = printer.custom_macro.default_bed_temp %}\n{% set extruder_temp = printer.custom_macro.g28_ext_temp %}\n{% set nozzle_clear_temp = printer.custom_macro.default_extruder_temp %}\n\n{% if \'BED_TEMP\' in params|upper %}\n{% set bed_temp = params.BED_TEMP %}\n{% endif %}\n\n{% if \'EXTRUDER_TEMP\' in params|upper %}\n{% set nozzle_clear_temp = params.EXTRUDER_TEMP %}\n{% endif %}\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=0\n\nG28\nBED_MESH_CLEAR\nNOZZLE_CLEAR HOT_MIN_TEMP={extruder_temp} HOT_MAX_TEMP={nozzle_clear_temp} BED_MAX_TEMP={bed_temp}\nACCURATE_G28\nM204 S5000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=5000\nBED_MESH_CALIBRATE {get_count}\nBED_MESH_OUTPUT\n{% set y_park = printer.toolhead.axis_maximum.y/2 %}\n{% set x_park = printer.toolhead.axis_maximum.x|float - 10.0 %}\nG1 X{x_park} Y{y_park} F2000\nCXSAVE_CONFIG\nTURN_OFF_HEATERS\nSET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1\nSET_FILAMENT_SENSOR SENSOR=filament_sensor_2 ENABLE=1', 'description': 'G-Code macro'}, 'fan_feedback': {'print_delay_time': 5.0, 'current_delay_time': 2.0, 'fan0_pin': 'nozzle_mcu:PB4', 'fan1_pin': 'PC6'}, 'custom_macro': {'default_extruder_temp': 240.0, 'default_bed_temp': 50.0, 'g28_ext_temp': 140.0, 'nozzle_clear': True, 'calibration': 0}, 'gcode_macro get_timelapse_setup': {'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% set output_txt = ["Timelapse Setup:"] %}\n{% set _dummy = output_txt.append("enable: %s" % tl.enable) %}\n{% set _dummy = output_txt.append("park: %s" % tl.park.enable) %}\n{% if tl.park.enable %}\n{% set _dummy = output_txt.append("park position: %s time: %s s" % (tl.park.pos, tl.park.time)) %}\n{% set _dummy = output_txt.append("park cord x:%s y:%s dz:%s" % (tl.park.coord.x, tl.park.coord.y, tl.park.coord.dz)) %}\n{% set _dummy = output_txt.append("travel speed: %s mm/s" % tl.speed.travel) %}\n{% endif %}\n{% set _dummy = output_txt.append("fw_retract: %s" % tl.extruder.fw_retract) %}\n{% if not tl.extruder.fw_retract %}\n{% set _dummy = output_txt.append("retract: %s mm speed: %s mm/s" % (tl.extruder.retract, tl.speed.retract)) %}\n{% set _dummy = output_txt.append("extrude: %s mm speed: %s mm/s" % (tl.extruder.extrude, tl.speed.extrude)) %}\n{% endif %}\n{% set _dummy = output_txt.append("verbose: %s" % tl.verbose) %}\n{action_respond_info(output_txt|join("\\n"))}', 'description': 'Print the Timelapse setup'}, 'gcode_macro _set_timelapse_setup': {'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n\n{% set min = printer.toolhead.axis_minimum %}\n{% set max = printer.toolhead.axis_maximum %}\n{% set round_bed = True if printer.configfile.settings.printer.kinematics is in [\'delta\',\'polar\',\'rotary_delta\',\'winch\']\nelse False %}\n{% set park = {\'min\' : {\'x\': (min.x / 1.42)|round(3) if round_bed else min.x|round(3),\n\'y\': (min.y / 1.42)|round(3) if round_bed else min.y|round(3)},\n\'max\' : {\'x\': (max.x / 1.42)|round(3) if round_bed else max.x|round(3),\n\'y\': (max.y / 1.42)|round(3) if round_bed else max.y|round(3)},\n\'center\': {\'x\': (max.x-(max.x-min.x)/2)|round(3),\n\'y\': (max.y-(max.y-min.y)/2)|round(3)}} %}\n\n{% if params.ENABLE %}\n{% if params.ENABLE|lower is in [\'true\', \'false\'] %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=enable VALUE={True if params.ENABLE|lower == \'true\' else False}\n{% else %}\n{action_raise_error("ENABLE=%s not supported. Allowed values are [True, False]" % params.ENABLE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.VERBOSE %}\n{% if params.VERBOSE|lower is in [\'true\', \'false\'] %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=verbose VALUE={True if params.VERBOSE|lower == \'true\' else False}\n{% else %}\n{action_raise_error("VERBOSE=%s not supported. Allowed values are [True, False]" % params.VERBOSE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_X %}\n{% if params.CUSTOM_POS_X|float >= min.x and params.CUSTOM_POS_X|float <= max.x %}\n{% set _dummy = tl.park.custom.update({\'x\':params.CUSTOM_POS_X|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_X=%s must be within [%s - %s]" % (params.CUSTOM_POS_X, min.x, max.x))}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_Y %}\n{% if params.CUSTOM_POS_Y|float >= min.y and params.CUSTOM_POS_Y|float <= max.y %}\n{% set _dummy = tl.park.custom.update({\'y\':params.CUSTOM_POS_Y|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_Y=%s must be within [%s - %s]" % (params.CUSTOM_POS_Y, min.y, max.y))}\n{% endif %}\n{% endif %}\n{% if params.CUSTOM_POS_DZ %}\n{% if params.CUSTOM_POS_DZ|float >= min.z and params.CUSTOM_POS_DZ|float <= max.z %}\n{% set _dummy = tl.park.custom.update({\'dz\':params.CUSTOM_POS_DZ|float|round(3)}) %}\n{% else %}\n{action_raise_error("CUSTOM_POS_DZ=%s must be within [%s - %s]" % (params.CUSTOM_POS_DZ, min.z, max.z))}\n{% endif %}\n{% endif %}\n{% if params.PARK_ENABLE %}\n{% if params.PARK_ENABLE|lower is in [\'true\', \'false\'] %}\n{% set _dummy = tl.park.update({\'enable\':True if params.PARK_ENABLE|lower == \'true\' else False}) %}\n{% else %}\n{action_raise_error("PARK_ENABLE=%s not supported. Allowed values are [True, False]" % params.PARK_ENABLE|capitalize)}\n{% endif %}\n{% endif %}\n{% if params.PARK_POS %}\n{% if params.PARK_POS|lower is in [\'center\',\'front_left\',\'front_right\',\'back_left\',\'back_right\',\'custom\',\'x_only\',\'y_only\'] %}\n{% set dic = {\'center\' : {\'x\': park.center.x , \'y\': park.center.y , \'dz\': 1 },\n\'front_left\' : {\'x\': park.min.x , \'y\': park.min.y , \'dz\': 0 },\n\'front_right\' : {\'x\': park.max.x , \'y\': park.min.y , \'dz\': 0 },\n\'back_left\' : {\'x\': park.min.x , \'y\': park.max.y , \'dz\': 0 },\n\'back_right\' : {\'x\': park.max.x , \'y\': park.max.y , \'dz\': 0 },\n\'custom\' : {\'x\': tl.park.custom.x, \'y\': tl.park.custom.y, \'dz\': tl.park.custom.dz},\n\'x_only\' : {\'x\': tl.park.custom.x, \'y\': \'none\' , \'dz\': tl.park.custom.dz},\n\'y_only\' : {\'x\': \'none\' , \'y\': tl.park.custom.y, \'dz\': tl.park.custom.dz}} %}\n{% set _dummy = tl.park.update({\'pos\':params.PARK_POS|lower}) %}\n{% set _dummy = tl.park.update({\'coord\':dic[tl.park.pos]}) %}\n{% else %}\n{action_raise_error("PARK_POS=%s not supported. Allowed values are [CENTER, FRONT_LEFT, FRONT_RIGHT, BACK_LEFT, BACK_RIGHT, CUSTOM, X_ONLY, Y_ONLY]"\n% params.PARK_POS|upper)}\n{% endif %}\n{% endif %}\n{% if params.PARK_TIME %}\n{% if params.PARK_TIME|float >= 0.0 %}\n{% set _dummy = tl.park.update({\'time\':params.PARK_TIME|float|round(3)}) %}\n{% else %}\n{action_raise_error("PARK_TIME=%s must be a positive number" % params.PARK_TIME)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=park VALUE="{tl.park}"\n{% if params.TRAVEL_SPEED %}\n{% if params.TRAVEL_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'travel\':params.TRAVEL_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("TRAVEL_SPEED=%s must be larger than 0" % params.TRAVEL_SPEED)}\n{% endif %}\n{% endif %}\n{% if params.RETRACT_SPEED %}\n{% if params.RETRACT_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'retract\':params.RETRACT_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("RETRACT_SPEED=%s must be larger than 0" % params.RETRACT_SPEED)}\n{% endif %}\n{% endif %}\n{% if params.EXTRUDE_SPEED %}\n{% if params.EXTRUDE_SPEED|float > 0.0 %}\n{% set _dummy = tl.speed.update({\'extrude\':params.EXTRUDE_SPEED|float|round(3)}) %}\n{% else %}\n{action_raise_error("EXTRUDE_SPEED=%s must be larger than 0" % params.EXTRUDE_SPEED)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=speed VALUE="{tl.speed}"\n{% if params.EXTRUDE_DISTANCE %}\n{% if params.EXTRUDE_DISTANCE|float >= 0.0 %}\n{% set _dummy = tl.extruder.update({\'extrude\':params.EXTRUDE_DISTANCE|float|round(3)}) %}\n{% else %}\n{action_raise_error("EXTRUDE_DISTANCE=%s must be specified as positiv number" % params.EXTRUDE_DISTANCE)}\n{% endif %}\n{% endif %}\n{% if params.RETRACT_DISTANCE %}\n{% if params.RETRACT_DISTANCE|float >= 0.0 %}\n{% set _dummy = tl.extruder.update({\'retract\':params.RETRACT_DISTANCE|float|round(3)}) %}\n{% else %}\n{action_raise_error("RETRACT_DISTANCE=%s must be specified as positiv number" % params.RETRACT_DISTANCE)}\n{% endif %}\n{% endif %}\n{% if params.FW_RETRACT %}\n{% if params.FW_RETRACT|lower is in [\'true\', \'false\'] %}\n{% if \'firmware_retraction\' in printer.configfile.settings %}\n{% set _dummy = tl.extruder.update({\'fw_retract\': True if params.FW_RETRACT|lower == \'true\' else False}) %}\n{% else %}\n{% set _dummy = tl.extruder.update({\'fw_retract\':False}) %}\n{% if params.FW_RETRACT|capitalize == \'True\' %}\n{action_raise_error("[firmware_retraction] not defined in printer.cfg. Can not enable fw_retract")}\n{% endif %}\n{% endif %}\n{% else %}\n{action_raise_error("FW_RETRACT=%s not supported. Allowed values are [True, False]" % params.FW_RETRACT|capitalize)}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=extruder VALUE="{tl.extruder}"\n{% if printer.configfile.settings[\'gcode_macro pause\'] is defined %}\n{% set _dummy = tl.macro.update({\'pause\': printer.configfile.settings[\'gcode_macro pause\'].rename_existing}) %}\n{% endif %}\n{% if printer.configfile.settings[\'gcode_macro resume\'] is defined %}\n{% set _dummy = tl.macro.update({\'resume\': printer.configfile.settings[\'gcode_macro resume\'].rename_existing}) %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=macro VALUE="{tl.macro}"', 'description': 'Set user parameters for timelapse'}, 'gcode_macro timelapse_take_frame': {'gcode': '\n{% set hyperlapse = True if params.HYPERLAPSE and params.HYPERLAPSE|lower ==\'true\' else False %}\n{% if enable %}\n{% if (hyperlapse and printer[\'gcode_macro HYPERLAPSE\'].run) or\n(not hyperlapse and not printer[\'gcode_macro HYPERLAPSE\'].run) %}\n{% if park.enable %}\n{% set pos = {\'x\': \'X\' + park.coord.x|string if park.pos != \'y_only\' else \'\',\n\'y\': \'Y\' + park.coord.y|string if park.pos != \'x_only\' else \'\',\n\'z\': \'Z\'+ [printer.gcode_move.gcode_position.z + park.coord.dz, printer.toolhead.axis_maximum.z]|min|string} %}\n{% set restore = {\'absolute\': {\'coordinates\': printer.gcode_move.absolute_coordinates,\n\'extrude\' : printer.gcode_move.absolute_extrude},\n\'speed\' : printer.gcode_move.speed,\n\'e\' : printer.gcode_move.gcode_position.e,\n\'factor\' : {\'speed\' : printer.gcode_move.speed_factor,\n\'extrude\': printer.gcode_move.extrude_factor}} %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=restore VALUE="{restore}"\n{% if not printer[printer.toolhead.extruder].can_extrude %}\n{% if verbose %}{action_respond_info("Timelapse: Warning, minimum extruder temperature not reached!")}{% endif %}\n{% else %}\n{% if extruder.fw_retract %}\nG10\n{% else %}\nM83\nG0 E-{extruder.retract} F{speed.retract * 60}\n{% endif %}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=True\n{macro.pause}\nSET_GCODE_OFFSET X=0 Y=0\nG90\n{% if "xyz" not in printer.toolhead.homed_axes %}\n{% if verbose %}{action_respond_info("Timelapse: Warning, axis not homed yet!")}{% endif %}\n{% else %}\nG0 {pos.x} {pos.y} {pos.z} F{speed.travel * 60}\n{% endif %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=takingframe VALUE=True\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={check_time}\nM400\n{% endif %}\n_TIMELAPSE_NEW_FRAME HYPERLAPSE={hyperlapse}\n{% endif %}\n{% else %}\n{% if verbose %}{action_respond_info("Timelapse: disabled, take frame ignored")}{% endif %}\n{% endif %}', 'description': 'Take Timelapse shoot', 'variable_enable': 'False', 'variable_takingframe': 'False', 'variable_park': "{'enable': False,\n'pos' : 'center',\n'time' : 0.1,\n'custom': {'x': 0, 'y': 0, 'dz': 0},\n'coord' : {'x': 0, 'y': 0, 'dz': 0}}", 'variable_extruder': "{'fw_retract': False,\n'retract': 1.0,\n'extrude': 1.0}", 'variable_speed': "{'travel': 100,\n'retract': 15,\n'extrude': 15}", 'variable_verbose': 'True', 'variable_check_time': '0.5', 'variable_restore': "{'absolute': {'coordinates': True, 'extrude': True}, 'speed': 1500, 'e':0, 'factor': {'speed': 1.0, 'extrude': 1.0}}", 'variable_macro': "{'pause': 'PAUSE', 'resume': 'RESUME'}", 'variable_is_paused': 'False'}, 'gcode_macro _timelapse_new_frame': {'gcode': '\n{action_call_remote_method("timelapse_newframe",\nmacropark=printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'].park,\nhyperlapse=params.HYPERLAPSE)}', 'description': 'action call for timelapse shoot. must be a seperate macro'}, 'delayed_gcode _wait_timelapse_take_frame': {'gcode': '\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% set factor = {\'speed\': printer.gcode_move.speed_factor, \'extrude\': printer.gcode_move.extrude_factor} %}\n{% if tl.takingframe %}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION={tl.check_time}\n{% else %}\n{tl.macro.resume} VELOCITY={tl.speed.travel}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=False\n{% if not printer[printer.toolhead.extruder].can_extrude %}\n{action_respond_info("Timelapse: Warning minimum extruder temperature not reached!")}\n{% else %}\n{% if tl.extruder.fw_retract %}\nG11\n{% else %}\nG0 E{tl.extruder.extrude} F{tl.speed.extrude * 60}\nG0 F{tl.restore.speed}\n{% if tl.restore.absolute.extrude %}\nM82\nG92 E{tl.restore.e}\n{% endif %}\n{% endif %}\n{% endif %}\n{% if tl.restore.factor.speed != factor.speed %} M220 S{(factor.speed*100)|round(0)} {% endif %}\n{% if tl.restore.factor.extrude != factor.extrude %} M221 S{(factor.extrude*100)|round(0)} {% endif %}\n{% if not tl.restore.absolute.coordinates %} G91 {% endif %}\n{% endif %}', 'initial_duration': 0.0}, 'gcode_macro hyperlapse': {'gcode': '\n{% set cycle = params.CYCLE|default(30)|int %}\n{% if params.ACTION and params.ACTION|lower == \'start\' %}\n{action_respond_info("Hyperlapse: frames started (Cycle %d sec)" % cycle)}\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=True\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=cycle VALUE={cycle}\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={cycle}\nTIMELAPSE_TAKE_FRAME HYPERLAPSE=True\n{% elif params.ACTION and params.ACTION|lower == \'stop\' %}\n{% if run %}{action_respond_info("Hyperlapse: frames stopped")}{% endif %}\nSET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=False\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION=0\n{% else %}\n{action_raise_error("Hyperlapse: No valid input parameter\nUse:\n- HYPERLAPSE ACTION=START [CYCLE=time]\n- HYPERLAPSE ACTION=STOP")}\n{% endif %}', 'description': 'Start/Stop a hyperlapse recording', 'variable_cycle': '0', 'variable_run': 'False'}, 'delayed_gcode _hyperlapse_loop': {'gcode': '\nUPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={printer["gcode_macro HYPERLAPSE"].cycle}\nTIMELAPSE_TAKE_FRAME HYPERLAPSE=True', 'initial_duration': 0.0}, 'gcode_macro timelapse_render': {'gcode': '\n{action_respond_info("Timelapse: Rendering started")}\n{action_call_remote_method("timelapse_render", byrendermacro="True")}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=render VALUE=True\n{printer.configfile.settings[\'gcode_macro pause\'].rename_existing}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5', 'description': 'Render Timelapse video and wait for the result', 'variable_render': 'False', 'variable_run_identifier': '0'}, 'delayed_gcode _wait_timelapse_render': {'gcode': '\n{% set ri = printer[\'gcode_macro TIMELAPSE_RENDER\'].run_identifier % 4 %}\nSET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=run_identifier VALUE={ri + 1}\n{% if printer[\'gcode_macro TIMELAPSE_RENDER\'].render %}\nM117 Rendering {[\'-\',\'\\\\\',\'|\',\'/\'][ri]}\nUPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5\n{% else %}\n{action_respond_info("Timelapse: Rendering finished")}\nM117\n{printer.configfile.settings[\'gcode_macro resume\'].rename_existing}\n{% endif %}', 'initial_duration': 0.0}, 'gcode_macro test_stream_delay': {'gcode': '\n{% set min = printer.toolhead.axis_minimum %}\n{% set max = printer.toolhead.axis_maximum %}\n{% set act = printer.toolhead.position %}\n{% set tl = printer[\'gcode_macro TIMELAPSE_TAKE_FRAME\'] %}\n{% if act.z > 5.0 %}\nG0 X{min.x + 5.0} F{tl.speed.travel|int * 60}\nG0 X{(max.x-min.x)/2}\nG4 P{tl.park.time|float * 1000}\n_TIMELAPSE_NEW_FRAME HYPERLAPSE=FALSE\nG0 X{max.x - 5.0}\n{% else %}\n{action_raise_error("Toolhead z %.3f to low. Please place head above z = 5.0" % act.z)}\n{% endif %}', 'description': 'Helper macro to find stream and park delay'}, 'save_variables': {'filename': '/usr/data/printer_data/config/Helper-Script/variables.cfg'}, 'respond': {'default_type': 'echo', 'default_prefix': 'echo:'}, 'gcode_macro set_gcode_offset': {'gcode': '\n{% if printer.save_variables.variables.zoffset %}\n{% set zoffset = printer.save_variables.variables.zoffset %}\n{% else %}\n{% set zoffset = {\'z\': None} %}\n{% endif %}\n{% set ns = namespace(zoffset={\'z\': zoffset.z}) %}\n_SET_GCODE_OFFSET {% for p in params %}{\'%s=%s \'% (p, params[p])}{% endfor %}\n{%if \'Z\' in params %}{% set null = ns.zoffset.update({\'z\': params.Z}) %}{% endif %}\n{%if \'Z_ADJUST\' in params %}\n{%if ns.zoffset.z == None %}{% set null = ns.zoffset.update({\'z\': 0}) %}{% endif %}\n{% set null = ns.zoffset.update({\'z\': (ns.zoffset.z | float) + (params.Z_ADJUST | float)}) %}\n{% endif %}\nSAVE_VARIABLE VARIABLE=zoffset VALUE="{ns.zoffset}"', 'rename_existing': '_SET_GCODE_OFFSET', 'description': 'Saving Z-Offset'}, 'delayed_gcode load_gcode_offsets': {'gcode': '\n{% if printer.save_variables.variables.zoffset %}\n{% set zoffset = printer.save_variables.variables.zoffset %}\n_SET_GCODE_OFFSET {% for axis, offset in zoffset.items() if zoffset[axis] %}{ "%s=%s " % (axis, offset) }{% endfor %}\nRESPOND TYPE=command MSG="Loaded Z-Offset from variables.cfg: {zoffset.z}mm"\n{% endif %}', 'initial_duration': 2.0}, 'calibrate_shaper_config': {'shaper_type': 'mzv', 'shaper_type_x': 'mzv', 'shaper_freq_x': 0.0, 'shaper_type_y': 'mzv', 'shaper_freq_y': 0.0}, 'gcode_shell_command resonance_graph': {'command': '/usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/calibrate_shaper.py', 'timeout': 600.0, 'verbose': False}, 'gcode_shell_command belts_graph': {'command': '/usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/graph_belts.py', 'timeout': 600.0, 'verbose': False}, 'gcode_shell_command delete_graph': {'command': 'sh /usr/data/helper-script/files/improved-shapers/delete_graph.sh', 'timeout': 600.0, 'verbose': False}, 'gcode_shell_command delete_csv': {'command': 'sh /usr/data/helper-script/files/improved-shapers/delete_csv.sh', 'timeout': 600.0, 'verbose': False}, 'gcode_macro input_shaper_calibration': {'gcode': '\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nRESPOND TYPE=command MSG="Measuring X and Y Resonances..."\nSHAPER_CALIBRATE\nM400\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Input Shaper Calibration complete!"\nSAVE_CONFIG', 'description': 'Measure X and Y Axis Resonances and Save values'}, 'gcode_macro test_resonances_graphs': {'gcode': '\nRUN_SHELL_COMMAND CMD=delete_graph\n{% set x_png = params.X_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_x.png") %}\n{% set y_png = params.Y_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_y.png") %}\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nRESPOND TYPE=command MSG="Testing X Resonances..."\nTEST_RESONANCES AXIS=X NAME=x\nM400\nRESPOND TYPE=command MSG="Generating X Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_x_x.csv -o {x_png}"\nRESPOND TYPE=command MSG="X Graph (resonances_x.png) is now available in /Helper-Script/improved-shapers folder."\nRESPOND TYPE=command MSG="Testing Y Resonances..."\nTEST_RESONANCES AXIS=Y NAME=y\nM400\nRESPOND TYPE=command MSG="Generating Y Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_y_y.csv -o {y_png}"\nRESPOND TYPE=command MSG="Y Graph (resonances_y.png) is now available in /Helper-Script/improved-shapers folder."\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Resonances Test complete!"', 'description': 'Test X and Y Axis Resonances and Generate Graphs'}, 'gcode_macro belts_shaper_calibration': {'gcode': '\nRUN_SHELL_COMMAND CMD=delete_graph\n{% set min_freq = params.FREQ_START|default(5)|float %}\n{% set max_freq = params.FREQ_END|default(133.33)|float %}\n{% set hz_per_sec = params.HZ_PER_SEC|default(1)|float %}\n{% set png_width = params.PNG_WIDTH|default(8)|float %}\n{% set png_height = params.PNG_HEIGHT|default(4.8)|float %}\n{% set png_out_path = params.PNG_OUT_PATH|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/belts_calibration.png") %}\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nTEST_RESONANCES AXIS=1,1 OUTPUT=raw_data NAME=b FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}\nM400\nTEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data NAME=a FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}\nM400\nRESPOND TYPE=command MSG="Generating Belts Frequency Profiles Graph... This may take some time."\nRUN_SHELL_COMMAND CMD=belts_graph PARAMS="-w {png_width} -l {png_height} -n -o {png_out_path} -k /usr/share/klipper /tmp/raw_data_axis=1.000,-1.000_a.csv /tmp/raw_data_axis=1.000,1.000_b.csv"\nRESPOND TYPE=command MSG="Graph (belts_calibration.png) is now available in /Helper-Script/improved-shapers folder."\n{% if printer["configfile"].config["temperature_fan mcu_fan"] %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50\n{% endif %}\nRUN_SHELL_COMMAND CMD=delete_csv\nRESPOND TYPE=command MSG="Belts Shaper Calibration complete!"', 'description': 'Perform a custom half-axis test to analyze and compare the frequency profiles of individual belts on CoreXY printers'}, 'gcode_macro excitate_axis_at_freq': {'gcode': '\n{% set frequency = params.FREQUENCY|default(25)|int %}\n{% set time = params.TIME|default(10)|int %}\n{% set axis = params.AXIS|default("x")|string|lower %}\n{% if axis not in ["x", "y", "a", "b"] %}\n{ action_raise_error("AXIS selection is invalid. Should be either x, y, a or b!") }\n{% endif %}\n{% if axis == "a" %}\n{% set axis = "1,-1" %}\n{% elif axis == "b" %}\n{% set axis = "1,1" %}\n{% endif %}\n{% if printer.toolhead.homed_axes != "xyz" %}\nRESPOND TYPE=command MSG="Homing..."\nG28\n{% endif %}\nTEST_RESONANCES OUTPUT=raw_data AXIS={axis} FREQ_START={frequency-1} FREQ_END={frequency+1} HZ_PER_SEC={1/(time/3)}\nM400', 'description': 'Maintain a specified excitation frequency for a period of time to diagnose and locate a vibration source'}, 'duplicate_pin_override': {'pins': ('PC0', 'PC5', 'PB2', 'ADC_TEMPERATURE')}, 'temperature_fan chamber_fan': {'max_power': 1.0, 'kick_start_time': 0.1, 'off_below': 0.0, 'cycle_time': 0.01, 'hardware_pwm': False, 'shutdown_speed': 0.0, 'pin': 'PC0', 'min_temp': 0.0, 'max_temp': 70.0, 'sensor_type': 'EPCOS 100K B57560G104F', 'pullup_resistor': 4700.0, 'inline_resistor': 0.0, 'sensor_pin': 'PC5', 'max_speed': 1.0, 'min_speed': 0.0, 'target_temp': 35.0, 'control': 'watermark', 'max_delta': 2.0}, 'temperature_fan mcu_fan': {'max_power': 1.0, 'kick_start_time': 0.1, 'off_below': 0.0, 'cycle_time': 0.01, 'hardware_pwm': False, 'shutdown_speed': 0.0, 'pin': 'PB2', 'min_temp': 0.0, 'max_temp': 100.0, 'sensor_type': 'temperature_mcu', 'sensor_mcu': 'mcu', 'max_speed': 1.0, 'min_speed': 0.0, 'target_temp': 50.0, 'control': 'watermark', 'max_delta': 2.0}, 'output_pin mcu_fan': {'pwm': True, 'pin': 'PB2', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 255.0, 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'gcode_macro m141': {'gcode': '\n{% set s = params.S|float %}\nSET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=chamber_fan TARGET={s}\nRESPOND TYPE=command MSG="Chamber target temperature: {s}°C"', 'description': 'Set Chamber Temperature with slicers'}, 'gcode_macro m191': {'gcode': '\n{% set s = params.S|float %}\n{% set chamber_temp = printer["temperature_sensor chamber_temp"].temperature|float %}\n{% if s > 0 %}\nM141 S{s}\n{% endif %}\n{% if s > chamber_temp and s <= 90 %}\nM140 S100\nRESPOND TYPE=command MSG="Waiting for the bed to heat up the chamber..."\nTEMPERATURE_WAIT SENSOR="temperature_fan chamber_fan" MINIMUM={s-1}\nRESPOND TYPE=command MSG="Chamber target temperature reached: {s}°C"\nM140 S{s}\n{% endif %}', 'description': 'Wait for Chamber Temperature to heat up'}, 'gcode_macro m106': {'gcode': '\n{% set fans = printer["gcode_macro PRINTER_PARAM"].fans|int %}\n{% set fan = 0 %}\n{% set value = 0 %}\n{% if params.P is defined %}\n{% set tmp = params.P|int %}\n{% if tmp < fans %}\n{% set fan = tmp %}\n{% endif %}\n{% endif %}\n{% if params.S is defined %}\n{% set tmp = params.S|float %}\n{% else %}\n{% set tmp = 255 %}\n{% endif %}\n{% if tmp > 0 %}\n{% if fan == 0 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan0_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan0_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan0_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan0_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan0_min + value %}\n{% endif %}\n{% endif %}\n{% if fan == 1 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan1_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan1_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan1_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan1_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan1_min + value %}\n{% endif %}\n{% endif %}\n{% if fan == 2 %}\n{% set value = (255 - printer["gcode_macro PRINTER_PARAM"].fan2_min) / 255 * tmp %}\n{% if printer[\'gcode_macro Qmode\'].flag | int == 1 %}\nSET_GCODE_VARIABLE MACRO=Qmode VARIABLE=fan2_value VALUE={printer["gcode_macro PRINTER_PARAM"].fan2_min + value}\n{% if value > (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + (255 - printer[\'gcode_macro PRINTER_PARAM\'].fan2_min) / 2 %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}\n{% endif %}\n{% else %}\n{% set value = printer["gcode_macro PRINTER_PARAM"].fan2_min + value %}\n{% endif %}\n{% endif %}\n{% endif %}\n{% if value >= 255 %}\n{% set value = 255 %}\n{% endif %}\n{% if params.P is defined and params.P|int == 3 %}\n{% set fan = 1 %}\n{% endif %}\nSET_PIN PIN=fan{fan} VALUE={value}', 'description': 'G-Code macro'}, 'prtouch_v2_fan': {'max_speed': 0.5}, 'output_pin kamp': {'pwm': False, 'pin': 'virtual_pin:KAMP_pin', 'maximum_mcu_duration': 0.0, 'value': 1.0, 'shutdown_value': 0.0}, 'output_pin bed_leveling': {'pwm': False, 'pin': 'virtual_pin:BED_LEVELING_pin', 'maximum_mcu_duration': 0.0, 'value': 1.0, 'shutdown_value': 0.0}, 'gcode_macro start_print': {'gcode': '\nWAIT_TEMP_END\nCLEAR_PAUSE\n{% set g28_extruder_temp = printer.custom_macro.g28_ext_temp %}\n{% set bed_temp = printer.custom_macro.default_bed_temp %}\n{% set extruder_temp = printer.custom_macro.default_extruder_temp %}\n{% if \'BED_TEMP\' in params|upper and (params.BED_TEMP|float) %}\n{% set bed_temp = params.BED_TEMP %}\n{% endif %}\n{% if \'EXTRUDER_TEMP\' in params|upper and (params.EXTRUDER_TEMP|float) %}\n{% set extruder_temp = params.EXTRUDER_TEMP %}\n{% endif %}\n{% if printer[\'gcode_macro START_PRINT\'].prepare|int == 0 %}\nPRINT_PREPARE_CLEAR\nCX_ROUGH_G28 EXTRUDER_TEMP={extruder_temp} BED_TEMP={bed_temp}\nCX_NOZZLE_CLEAR\nACCURATE_G28\n{% if printer[\'output_pin KAMP\'].value == 1 %}\nRESPOND TYPE=command MSG="Starting KAMP Bed Mesh..."\nBED_MESH_CLEAR\nBED_MESH_CALIBRATE\nBED_MESH_PROFILE SAVE=kamp\nBED_MESH_PROFILE LOAD=kamp\n{% else %}\n{% if printer[\'output_pin BED_LEVELING\'].value == 1 %}\nRESPOND TYPE=command MSG="Starting Full Bed Mesh..."\nCX_PRINT_LEVELING_CALIBRATION\n{% endif %}\nBED_MESH_PROFILE LOAD=default\n{% endif %}\n{% else %}\nPRINT_PREPARE_CLEAR\n{% endif %}\n{% if printer[\'output_pin KAMP\'].value == 1 %}\n_SMART_PARK\nM109 S{extruder_temp}\nM190 S{bed_temp}\nRESPOND TYPE=command MSG="Starting KAMP line purge..."\n_LINE_PURGE\n{% else %}\nRESPOND TYPE=command MSG="Starting classic line purge..."\nCX_PRINT_DRAW_ONE_LINE\n{% endif %}\nSET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel}', 'description': 'G-Code macro', 'variable_prepare': '0'}, 'gcode_macro bed_mesh_calibrate': {'gcode': '\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set bed_mesh_min = printer.configfile.settings.bed_mesh.mesh_min %}\n{% set bed_mesh_max = printer.configfile.settings.bed_mesh.mesh_max %}\n{% set probe_count = printer.configfile.settings.bed_mesh.probe_count %}\n{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}\n{% set verbose_enable = kamp_settings.verbose_enable | abs %}\n{% set mesh_margin = kamp_settings.mesh_margin | float %}\n{% set fuzz_amount = kamp_settings.fuzz_amount | float %}\n{% set probe_count = probe_count if probe_count|length > 1 else probe_count * 2 %}\n{% set max_probe_point_distance_x = ( bed_mesh_max[0] - bed_mesh_min[0] ) / (probe_count[0] - 1) %}\n{% set max_probe_point_distance_y = ( bed_mesh_max[1] - bed_mesh_min[1] ) / (probe_count[1] - 1) %}\n{% set x_min = all_points | map(attribute=0) | min | default(bed_mesh_min[0]) %}\n{% set y_min = all_points | map(attribute=1) | min | default(bed_mesh_min[1]) %}\n{% set x_max = all_points | map(attribute=0) | max | default(bed_mesh_max[0]) %}\n{% set y_max = all_points | map(attribute=1) | max | default(bed_mesh_max[1]) %}\n{% set fuzz_range = range((0) | int, (fuzz_amount * 100) | int + 1) %}\n{% set adapted_x_min = x_min - mesh_margin - (fuzz_range | random / 100.0) %}\n{% set adapted_y_min = y_min - mesh_margin - (fuzz_range | random / 100.0) %}\n{% set adapted_x_max = x_max + mesh_margin + (fuzz_range | random / 100.0) %}\n{% set adapted_y_max = y_max + mesh_margin + (fuzz_range | random / 100.0) %}\n{% set adapted_x_min = [adapted_x_min , bed_mesh_min[0]] | max %}\n{% set adapted_y_min = [adapted_y_min , bed_mesh_min[1]] | max %}\n{% set adapted_x_max = [adapted_x_max , bed_mesh_max[0]] | min %}\n{% set adapted_y_max = [adapted_y_max , bed_mesh_max[1]] | min %}\n{% set points_x = (((adapted_x_max - adapted_x_min) / max_probe_point_distance_x) | round(method=\'ceil\') | int) + 1 %}\n{% set points_y = (((adapted_y_max - adapted_y_min) / max_probe_point_distance_y) | round(method=\'ceil\') | int) + 1 %}\n{% if (points_x > points_y) %}\n{% set points_y = points_x %}\n{% endif %}\n{% if (points_x < points_y) %}\n{% set points_x = points_y %}\n{% endif %}\n{% if (([points_x, points_y]|max) > 6) %}\n{% set algorithm = "bicubic" %}\n{% set min_points = 4 %}\n{% else %}\n{% set algorithm = "lagrange" %}\n{% set min_points = 3 %}\n{% endif %}\n{% set points_x = [points_x , min_points]|max %}\n{% set points_y = [points_y , min_points]|max %}\n{% set points_x = [points_x , probe_count[0]]|min %}\n{% set points_y = [points_y , probe_count[1]]|min %}\n\n{% if verbose_enable == True %}\n\n{% if printer.exclude_object.objects != [] %}\n\nRESPOND TYPE=command MSG="Algorithm: {algorithm}"\nRESPOND TYPE=command MSG="Default probe count: {probe_count[0]},{probe_count[1]}"\nRESPOND TYPE=command MSG="Adapted probe count: {points_x},{points_y}"\nRESPOND TYPE=command MSG="Default mesh bounds: {bed_mesh_min[0]},{bed_mesh_min[1]}, {bed_mesh_max[0]},{bed_mesh_max[1]}"\n\n{% if mesh_margin > 0 %}\n\nRESPOND TYPE=command MSG="Mesh margin is {mesh_margin}, mesh bounds extended by {mesh_margin}mm."\n\n{% else %}\n\nRESPOND TYPE=command MSG="Mesh margin is 0, margin not increased."\n\n{% endif %}\n\n{% if fuzz_amount > 0 %}\n\nRESPOND TYPE=command MSG="Mesh point fuzzing enabled, points fuzzed up to {fuzz_amount}mm"\n\n{% else %}\n\nRESPOND TYPE=command MSG="Fuzz amount is 0, mesh points not fuzzed."\n\n{% endif %}\n\nRESPOND TYPE=command MSG="Adapted mesh bounds: {adapted_x_min},{adapted_y_min}, {adapted_x_max},{adapted_y_max}"\nRESPOND TYPE=command MSG="KAMP adjustments successful. Happy KAMPing!"\n\n{% else %}\n\nRESPOND TYPE=command MSG="No object detected! Make sure you have enabled Exclude Objets setting in your slicer. Using Full Bed Mesh."\nG4 P5000\n\n{% endif %}\n\n{% endif %}\n\n_BED_MESH_CALIBRATE mesh_min={adapted_x_min},{adapted_y_min} mesh_max={adapted_x_max},{adapted_y_max} ALGORITHM={algorithm} PROBE_COUNT={points_x},{points_y}', 'rename_existing': '_BED_MESH_CALIBRATE', 'description': 'G-Code macro'}, 'gcode_macro _line_purge': {'gcode': '\n{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}\n{% set cross_section = printer.configfile.settings.extruder.max_extrude_cross_section | float %}\n{% if printer.firmware_retraction is defined %}\n{% set RETRACT = G10 | string %}\n{% set UNRETRACT = G11 | string %}\n{% else %}\n{% set RETRACT = \'G1 E-0.5 F2400\' | string %}\n{% set UNRETRACT = \'G1 E0.5 F2400\' | string %}\n{% endif %}\n{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}\n{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}\n{% set verbose_enable = printer["gcode_macro _KAMP_Settings"].verbose_enable | abs %}\n{% set purge_height = printer["gcode_macro _KAMP_Settings"].purge_height | float %}\n{% set tip_distance = printer["gcode_macro _KAMP_Settings"].tip_distance | float %}\n{% set purge_margin = printer["gcode_macro _KAMP_Settings"].purge_margin | float %}\n{% set purge_amount = printer["gcode_macro _KAMP_Settings"].purge_amount | float %}\n{% set flow_rate = printer["gcode_macro _KAMP_Settings"].flow_rate | float %}\n{% set rapid_move = 10 %}\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set purge_x_min = (all_points | map(attribute=0) | min | default(0)) %}\n{% set purge_x_max = (all_points | map(attribute=0) | max | default(0)) %}\n{% set purge_y_min = (all_points | map(attribute=1) | min | default(0)) %}\n{% set purge_y_max = (all_points | map(attribute=1) | max | default(0)) %}\n{% set detect_object = purge_x_min + purge_x_max + purge_y_min + purge_y_max %}\n{% set purge_x_center = ([((purge_x_max + purge_x_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% set purge_y_center = ([((purge_y_max + purge_y_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% if (purge_x_center + purge_amount + rapid_move) > bed_x_max %}\n{% set purge_x_center = (bed_x_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% if (purge_y_center + purge_amount + rapid_move) > bed_y_max %}\n{% set purge_y_center = (bed_y_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% set purge_x_origin_low = (purge_x_min - purge_margin) %}\n{% set purge_x_origin_high = (purge_x_max + purge_margin) %}\n{% set purge_y_origin_low = (purge_y_min - purge_margin) %}\n{% set purge_y_origin_high = (purge_y_max + purge_margin) %}\n{% set purge_move_speed = (flow_rate / 5.0) * 60 | float %}\n\n{% if cross_section < 5 %}\n\nRESPOND TYPE=command MSG="[Extruder] max_extrude_cross_section is insufficient for line purge, please set it to 5 or greater. Purge skipped."\n\n{% else %}\n\n{% if verbose_enable == True %}\n\nRESPOND TYPE=command MSG="Moving filament tip {tip_distance}mm"\n\n{% endif %}\n\n{% if detect_object == 0 %}\n\nRESPOND TYPE=command MSG="No object detected! Using classic purge line."\n\n{% elif purge_y_origin_low > 0 %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_low} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_x_origin_low > 0 %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_low}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_y_origin_high < bed_y_max %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_center}, {purge_y_origin_high} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% elif purge_x_origin_high < bed_x_max %}\n\nRESPOND TYPE=command MSG="KAMP line purge starting at {purge_x_origin_high}, {purge_y_center} and purging {purge_amount}mm of filament, requested flow rate is {flow_rate}mm3/s."\n\n{% else %}\n\nRESPOND TYPE=command MSG="No space for purge line! Using classic purge line."\n\n{% endif %}\n\nSAVE_GCODE_STATE NAME=Prepurge_State\n\n{% if detect_object == 0 %}\n\nG92 E0\nG1 Z0.1 F600\nM83\n{RETRACT}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nM204 S12000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000\nM220 S100\nM221 S100\nG1 Z2.0 F1200\nG1 X0.1 Y20 Z0.3 F6000.0\nG1 X0.1 Y180.0 Z0.3 F3000.0 E10.0\nG1 X0.4 Y180.0 Z0.3 F3000.0\nG1 X0.4 Y20.0 Z0.3 F3000.0 E10.0\nG1 Y10.0 F3000.0\nG1 Z2.0 F3000.0\nG92 E0\nM82\nG1 F12000\nG21\n\n{% elif purge_y_origin_low > 0 %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_center} Y{purge_y_origin_low}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_x_origin_low > 0 %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_origin_low} Y{purge_y_center}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_y_origin_high < bed_y_max %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_center} Y{purge_y_origin_high}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 X{purge_x_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 X{purge_x_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% elif purge_x_origin_high < bed_x_max %}\n\nG92 E0\nG0 F{travel_speed}\nG90\nG0 X{purge_x_origin_high} Y{purge_y_center}\nG0 Z{purge_height}\nM83\nG1 E{tip_distance} F{purge_move_speed}\nG1 Y{purge_y_center + purge_amount} E{purge_amount} F{purge_move_speed}\n{RETRACT}\nG0 Y{purge_y_center + purge_amount + rapid_move} F{travel_speed}\nG92 E0\nM82\nG0 Z{purge_height * 2} F{travel_speed}\n\n{% else %}\n\nG92 E0\nG1 Z0.1 F600\nM83\n{RETRACT}\nSET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY=5\nM204 S12000\nSET_VELOCITY_LIMIT ACCEL_TO_DECEL=6000\nM220 S100\nM221 S100\nG1 Z2.0 F1200\nG1 X0.1 Y20 Z0.3 F6000.0\nG1 X0.1 Y180.0 Z0.3 F3000.0 E10.0\nG1 X0.4 Y180.0 Z0.3 F3000.0\nG1 X0.4 Y20.0 Z0.3 F3000.0 E10.0\nG1 Y10.0 F3000.0\nG1 Z2.0 F3000.0\nG92 E0\nM82\nG1 F12000\nG21\n\n{% endif %}\n\nRESTORE_GCODE_STATE NAME=Prepurge_State\n\n{% endif %}', 'description': 'A purge macro that adapts to be near your actual printed objects'}, 'gcode_macro _smart_park': {'gcode': '\n{% set kamp_settings = printer["gcode_macro _KAMP_Settings"] %}\n{% set bed_x_max = printer["gcode_macro PRINTER_PARAM"].max_x_position | float %}\n{% set bed_y_max = printer["gcode_macro PRINTER_PARAM"].max_y_position | float %}\n{% set z_height = kamp_settings.smart_park_height | float %}\n{% set purge_margin = kamp_settings.purge_margin | float %}\n{% set purge_amount = kamp_settings.purge_amount | float %}\n{% set verbose_enable = kamp_settings.verbose_enable | abs %}\n{% set center_x = bed_x_max / 2 %}\n{% set center_y = bed_y_max / 2 %}\n{% set axis_minimum_x = printer.toolhead.axis_minimum.x | float %}\n{% set axis_minimum_y = printer.toolhead.axis_minimum.y | float %}\n{% set all_points = printer.exclude_object.objects | map(attribute=\'polygon\') | sum(start=[]) %}\n{% set x_min = (all_points | map(attribute=0) | min | default(0)) %}\n{% set x_max = (all_points | map(attribute=0) | max | default(0)) %}\n{% set y_min = (all_points | map(attribute=1) | min | default(0)) %}\n{% set y_max = (all_points | map(attribute=1) | max | default(0)) %}\n{% set travel_speed = (printer.toolhead.max_velocity) * 60 | float %}\n{% set rapid_move = 10 %}\n{% set park_x_center = ([((x_max + x_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% set park_y_center = ([((y_max + y_min) / 2) - (purge_amount / 2), 0] | max) %}\n{% if (park_x_center + purge_amount + rapid_move) > bed_x_max %}\n{% set park_x_center = (bed_x_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% if (park_y_center + purge_amount + rapid_move) > bed_y_max %}\n{% set park_y_center = (bed_y_max - (purge_amount + rapid_move)) %}\n{% endif %}\n{% set park_x_origin_low = (x_min - purge_margin) %}\n{% set park_x_origin_high = (x_max + purge_margin) %}\n{% set park_y_origin_low = (y_min - purge_margin) %}\n{% set park_y_origin_high = (y_max + purge_margin) %}\n{% set detect_object = (x_min + x_max + y_min + y_max) %}\n{% if detect_object == 0 %}\n{% set x_min = 10 %}\n{% set y_min = 10 %}\n{% set z_height = 2 %}\n{% elif park_y_origin_low > 0 %}\n{% set x_min = park_x_center %}\n{% set y_min = park_y_origin_low %}\n{% elif park_x_origin_low > 0 %}\n{% set x_min = park_x_origin_low %}\n{% set y_min = park_y_center %}\n{% elif park_y_origin_high < bed_y_max %}\n{% set x_min = park_x_center %}\n{% set y_min = park_y_origin_high %}\n{% elif park_x_origin_high < bed_x_max %}\n{% set x_min = park_x_origin_high %}\n{% set y_min = park_y_center %}\n{% else %}\n{% set x_min = 10 %}\n{% set y_min = 10 %}\n{% set z_height = 2 %}\n{% endif %}\n\n{% if verbose_enable == True %}\n\nRESPOND TYPE=command MSG="Smart Park location: {x_min},{y_min}"\n\n{% endif %}\n\nSAVE_GCODE_STATE NAME=Presmartpark_State\n\nG90\n{% if printer.toolhead.position.z < z_height %}\n\nG0 Z{z_height}\n\n{% endif %}\n\nG0 X{x_min} Y{y_min} F{travel_speed}\nG0 Z{z_height}\n\nRESTORE_GCODE_STATE NAME=Presmartpark_State', 'description': 'Parks your printhead near the print area for pre-print hotend heating.'}, 'gcode_macro define_object': {'gcode': '\nEXCLUDE_OBJECT_DEFINE {rawparams}', 'description': 'G-Code macro'}, 'gcode_macro start_current_object': {'gcode': '\nEXCLUDE_OBJECT_START NAME={params.NAME}', 'description': 'G-Code macro'}, 'gcode_macro end_current_object': {'gcode': '\nEXCLUDE_OBJECT_END {% if params.NAME %}NAME={params.NAME}{% endif %}', 'description': 'G-Code macro'}, 'gcode_macro list_objects': {'gcode': '\nEXCLUDE_OBJECT_DEFINE', 'description': 'G-Code macro'}, 'gcode_macro list_excluded_objects': {'gcode': '\nEXCLUDE_OBJECT', 'description': 'G-Code macro'}, 'gcode_macro remove_all_excluded': {'gcode': '\nEXCLUDE_OBJECT RESET=1', 'description': 'G-Code macro'}, 'gcode_macro _kamp_settings': {'gcode': '\nRESPOND TYPE=command MSG="Running the KAMP_Settings macro does nothing, it\'s only used for storing KAMP settings."', 'description': 'This macro contains all adjustable settings for KAMP', 'variable_verbose_enable': 'True', 'variable_mesh_margin': '0', 'variable_fuzz_amount': '0', 'variable_purge_height': '0.8', 'variable_tip_distance': '0', 'variable_purge_margin': '10', 'variable_purge_amount': '50', 'variable_flow_rate': '12', 'variable_smart_park_height': '10'}, 'verify_heater extruder': {'hysteresis': 5.0, 'max_error': 120.0, 'heating_gain': 2.0, 'check_gain_time': 20.0}, 'verify_heater heater_bed': {'hysteresis': 10.0, 'max_error': 120.0, 'heating_gain': 1.0, 'check_gain_time': 120.0}, 'bl24c16f': {'i2c_mcu': 'rpi', 'i2c_speed': 400000, 'i2c_bus': 'i2c.2', 'i2c_address': 87}, 'idle_timeout': {'timeout': 99999999.0, 'gcode': "\n{% if 'heaters' in printer %}\n TURN_OFF_HEATERS\n{% endif %}\nM84\n"}, 'virtual_sdcard': {'path': '/usr/data/printer_data/gcodes', 'on_error_gcode': ''}, 'gcode_arcs': {'resolution': 1.0}, 'temperature_sensor mcu_temp': {'sensor_type': 'temperature_mcu', 'sensor_mcu': 'mcu', 'min_temp': 0.0, 'max_temp': 100.0}, 'temperature_sensor chamber_temp': {'sensor_type': 'EPCOS 100K B57560G104F', 'pullup_resistor': 4700.0, 'inline_resistor': 0.0, 'sensor_pin': 'PC5', 'min_temp': 0.0, 'max_temp': 125.0}, 'tmc2209 stepper_x': {'uart_pin': 'PA9', 'uart_address': 3, 'diag_pin': '^PB12', 'run_current': 1.5, 'hold_current': 1.0, 'sense_resistor': 0.1, 'interpolate': True, 'stealthchop_threshold': 0.0, 'driver_toff': 3, 'driver_hstrt': 5, 'driver_hend': 0, 'driver_tbl': 2, 'driver_iholddelay': 8, 'driver_tpowerdown': 20, 'driver_pwm_ofs': 36, 'driver_pwm_grad': 14, 'driver_pwm_freq': 1, 'driver_pwm_autoscale': True, 'driver_pwm_autograd': True, 'driver_pwm_reg': 8, 'driver_pwm_lim': 12, 'driver_sgthrs': 65}, 'stepper_x': {'microsteps': 32, 'step_pin': 'PC2', 'dir_pin': '!PB9', 'rotation_distance': 72.0, 'full_steps_per_rotation': 200, 'gear_ratio': (), 'enable_pin': '!PC3', 'endstop_pin': 'tmc2209_stepper_x:virtual_endstop', 'position_endstop': 306.5, 'position_min': -2.0, 'position_max': 306.5, 'homing_speed': 36.0, 'second_homing_speed': 18.0, 'homing_retract_speed': 36.0, 'homing_retract_dist': 0.0, 'homing_positive_dir': True}, 'tmc2209 stepper_y': {'uart_pin': 'PA10', 'uart_address': 3, 'diag_pin': '^PB13', 'run_current': 1.5, 'hold_current': 1.0, 'sense_resistor': 0.1, 'interpolate': True, 'stealthchop_threshold': 0.0, 'driver_toff': 3, 'driver_hstrt': 5, 'driver_hend': 0, 'driver_tbl': 2, 'driver_iholddelay': 8, 'driver_tpowerdown': 20, 'driver_pwm_ofs': 36, 'driver_pwm_grad': 14, 'driver_pwm_freq': 1, 'driver_pwm_autoscale': True, 'driver_pwm_autograd': True, 'driver_pwm_reg': 8, 'driver_pwm_lim': 12, 'driver_sgthrs': 65}, 'stepper_y': {'microsteps': 32, 'step_pin': 'PB8', 'dir_pin': '!PB7', 'rotation_distance': 72.0, 'full_steps_per_rotation': 200, 'gear_ratio': (), 'enable_pin': '!PC3', 'endstop_pin': 'tmc2209_stepper_y:virtual_endstop', 'position_endstop': -2.0, 'position_min': -2.0, 'position_max': 306.0, 'homing_speed': 36.0, 'second_homing_speed': 18.0, 'homing_retract_speed': 36.0, 'homing_retract_dist': 0.0, 'homing_positive_dir': False}, 'tmc2209 stepper_z': {'uart_pin': 'PA11', 'uart_address': 3, 'diag_pin': '^PB14', 'run_current': 0.8, 'hold_current': 2.0, 'sense_resistor': 0.1, 'interpolate': True, 'stealthchop_threshold': 0.0, 'driver_toff': 3, 'driver_hstrt': 5, 'driver_hend': 0, 'driver_tbl': 2, 'driver_iholddelay': 8, 'driver_tpowerdown': 20, 'driver_pwm_ofs': 36, 'driver_pwm_grad': 14, 'driver_pwm_freq': 1, 'driver_pwm_autoscale': True, 'driver_pwm_autograd': True, 'driver_pwm_reg': 8, 'driver_pwm_lim': 12, 'driver_sgthrs': 0}, 'stepper_z': {'microsteps': 16, 'position_max': 305.0, 'position_min': -10.0, 'step_pin': 'PB6', 'dir_pin': '!PB5', 'rotation_distance': 8.0, 'full_steps_per_rotation': 200, 'gear_ratio': ((64.0, 20.0),), 'enable_pin': '!PC3', 'endstop_pin': 'tmc2209_stepper_z:virtual_endstop', 'position_endstop': 0.0, 'homing_speed': 10.0, 'second_homing_speed': 1.0, 'homing_retract_speed': 10.0, 'homing_retract_dist': 2.0, 'homing_positive_dir': False}, 'tmc2209 extruder': {'uart_pin': 'nozzle_mcu:PB11', 'tx_pin': 'nozzle_mcu:PB10', 'uart_address': 3, 'run_current': 0.55, 'hold_current': 2.0, 'sense_resistor': 0.15, 'interpolate': True, 'stealthchop_threshold': 0.0, 'driver_toff': 3, 'driver_hstrt': 5, 'driver_hend': 0, 'driver_tbl': 2, 'driver_iholddelay': 8, 'driver_tpowerdown': 20, 'driver_pwm_ofs': 36, 'driver_pwm_grad': 14, 'driver_pwm_freq': 1, 'driver_pwm_autoscale': True, 'driver_pwm_autograd': True, 'driver_pwm_reg': 8, 'driver_pwm_lim': 12, 'driver_sgthrs': 0}, 'extruder': {'microsteps': 16, 'sensor_type': 'EPCOS 100K B57560G104F', 'pullup_resistor': 4700.0, 'inline_resistor': 0.0, 'sensor_pin': 'nozzle_mcu:PA0', 'min_temp': 0.0, 'max_temp': 320.0, 'min_extrude_temp': 170.0, 'max_power': 1.0, 'smooth_time': 1.0, 'control': 'pid', 'pid_kp': 25.013, 'pid_ki': 2.566, 'pid_kd': 60.966, 'heater_pin': 'nozzle_mcu:PB7', 'pwm_cycle_time': 0.1, 'nozzle_diameter': 0.4, 'filament_diameter': 1.75, 'max_extrude_cross_section': 80.0, 'max_extrude_only_velocity': 212.86486429531544, 'max_extrude_only_accel': 5321.6216073828855, 'max_extrude_only_distance': 1000.0, 'instantaneous_corner_velocity': 1.0, 'step_pin': 'nozzle_mcu:PB1', 'pressure_advance': 0.04, 'pressure_advance_smooth_time': 0.04, 'dir_pin': 'nozzle_mcu:PB0', 'rotation_distance': 6.9, 'full_steps_per_rotation': 200, 'gear_ratio': (), 'enable_pin': '!nozzle_mcu:PB2'}, 'heater_bed': {'sensor_type': 'NTC 100K beta 3950', 'pullup_resistor': 4700.0, 'inline_resistor': 0.0, 'sensor_pin': 'PC4', 'min_temp': 0.0, 'max_temp': 125.0, 'min_extrude_temp': 170.0, 'max_power': 1.0, 'smooth_time': 1.0, 'control': 'pid', 'pid_kp': 52.075, 'pid_ki': 1.036, 'pid_kd': 654.186, 'heater_pin': 'PC8', 'pwm_cycle_time': 0.1}, 'filament_switch_sensor filament_sensor': {'switch_pin': '!PC15', 'pause_on_runout': True, 'runout_gcode': "\n{% if printer.extruder.can_extrude|lower == 'true' %}\nG91\nG0 E30 F600\nG90\n{% endif %}", 'pause_delay': 0.5, 'event_delay': 3.0}, 'pause_resume': {'recover_velocity': 50.0}, 'filament_switch_sensor filament_sensor_2': {'switch_pin': '!nozzle_mcu:PA10', 'pause_on_runout': True, 'runout_gcode': '', 'pause_delay': 0.5, 'event_delay': 3.0}, 'multi_pin heater_fans': {'pins': ('nozzle_mcu:PB5', 'PB2')}, 'heater_fan hotend_fan': {'heater': ('extruder',), 'heater_temp': 40.0, 'max_power': 1.0, 'kick_start_time': 0.1, 'off_below': 0.0, 'cycle_time': 0.01, 'hardware_pwm': False, 'shutdown_speed': 1.0, 'pin': 'multi_pin:heater_fans', 'fan_speed': 1.0}, 'static_digital_output my_fan_output_pins': {'pins': ('nozzle_mcu: PB6',)}, 'output_pin fan0': {'pwm': True, 'pin': '!nozzle_mcu: PB8', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 255.0, 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'output_pin fan1': {'pwm': True, 'pin': 'PC0', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 255.0, 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'output_pin fan2': {'pwm': True, 'pin': 'PB1', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 255.0, 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'output_pin led': {'pwm': True, 'pin': 'PB0', 'cycle_time': 0.01, 'hardware_pwm': False, 'scale': 1.0, 'maximum_mcu_duration': 0.0, 'value': 1.0, 'shutdown_value': 0.0}, 'output_pin power': {'pwm': False, 'pin': 'PC9', 'maximum_mcu_duration': 0.0, 'value': 0.0, 'shutdown_value': 0.0}, 'adxl345': {'axes_map': ('x', '-z', 'y'), 'rate': 3200, 'cs_pin': 'nozzle_mcu:PA4', 'spi_speed': 5000000, 'spi_software_sclk_pin': 'nozzle_mcu:PA5', 'spi_software_miso_pin': 'nozzle_mcu:PA6', 'spi_software_mosi_pin': 'nozzle_mcu:PA7'}, 'resonance_tester': {'move_speed': 50.0, 'min_freq': 5.0, 'max_freq': 133.33333333333334, 'accel_per_hz': 75.0, 'hz_per_sec': 1.0, 'probe_points': ((150.0, 150.0, 10.0),), 'low_mem': True, 'accel_chip': 'adxl345'}, 'prtouch_v2': {'pr_version': 2, 'tri_min_hold_1': (6000, 10000), 'tri_max_hold_1': (13000, 60000), 'tri_min_hold_2': (6000, 10000), 'tri_max_hold_2': (13000, 60000), 'tri_min_hold_3': (6000, 10000), 'tri_max_hold_3': (13000, 60000), 'tri_min_hold_4': (6000, 10000), 'tri_max_hold_4': (13000, 60000), 'tri_min_hold_5': (6000, 10000), 'tri_max_hold_5': (13000, 60000), 'tri_min_hold_6': (6000, 10000), 'tri_max_hold_6': (13000, 60000), 'tri_min_hold_7': (6000, 10000), 'tri_max_hold_7': (13000, 60000), 'tri_min_hold_8': (6000, 10000), 'tri_max_hold_8': (13000, 60000), 'tri_min_hold_9': (6000, 10000), 'tri_max_hold_9': (13000, 60000), 'tri_min_hold_10': (6000, 10000), 'tri_max_hold_10': (13000, 60000), 'tri_min_hold_11': (6000, 10000), 'tri_max_hold_11': (13000, 60000), 'tri_min_hold_12': (6000, 10000), 'tri_max_hold_12': (13000, 60000), 'tri_min_hold_13': (6000, 10000), 'tri_max_hold_13': (13000, 60000), 'tri_min_hold_14': (6000, 10000), 'tri_max_hold_14': (13000, 60000), 'tri_min_hold_15': (6000, 10000), 'tri_max_hold_15': (13000, 60000), 'tri_min_hold_16': (6000, 10000), 'tri_max_hold_16': (13000, 60000), 'tri_min_hold_17': (6000, 10000), 'tri_max_hold_17': (13000, 60000), 'tri_min_hold_18': (6000, 10000), 'tri_max_hold_18': (13000, 60000), 'tri_min_hold_19': (6000, 10000), 'tri_max_hold_19': (13000, 60000), 'tri_min_hold_20': (6000, 10000), 'tri_max_hold_20': (13000, 60000), 'tri_min_hold_21': (6000, 10000), 'tri_max_hold_21': (13000, 60000), 'tri_min_hold_22': (6000, 10000), 'tri_max_hold_22': (13000, 60000), 'tri_min_hold_23': (6000, 10000), 'tri_max_hold_23': (13000, 60000), 'tri_min_hold_24': (6000, 10000), 'tri_max_hold_24': (13000, 60000), 'tri_min_hold_25': (6000, 10000), 'tri_max_hold_25': (13000, 60000), 'tri_min_hold_26': (6000, 10000), 'tri_max_hold_26': (13000, 60000), 'tri_min_hold_27': (6000, 10000), 'tri_max_hold_27': (13000, 60000), 'tri_min_hold_28': (6000, 10000), 'tri_max_hold_28': (13000, 60000), 'tri_min_hold_29': (6000, 10000), 'tri_max_hold_29': (13000, 60000), 'tri_min_hold_30': (6000, 10000), 'tri_max_hold_30': (13000, 60000), 'tri_min_hold_31': (6000, 10000), 'tri_max_hold_31': (13000, 60000), 'tri_min_hold_32': (6000, 10000), 'tri_max_hold_32': (13000, 60000), 'tri_min_hold_33': (6000, 10000), 'tri_max_hold_33': (13000, 60000), 'tri_min_hold_34': (6000, 10000), 'tri_max_hold_34': (13000, 60000), 'tri_min_hold_35': (6000, 10000), 'tri_max_hold_35': (13000, 60000), 'tri_min_hold_36': (6000, 10000), 'tri_max_hold_36': (13000, 60000), 'use_adc': False, 'tri_acq_ms': 12, 'tri_send_ms': 10, 'tri_need_cnt': 1, 'tri_try_max_times': 10, 'cal_hftr_cut': 10, 'cal_lftr_k1': 0.85, 'tri_min_hold': (6000, 10000), 'tri_max_hold': (13000, 60000), 'tri_hftr_cut': (2.0, 1.0), 'tri_lftr_k1': (0.5, 0.15), 'correct_tri_hold': 0, 'correct_step_mm': 0.04, 'show_msg': False, 'shake_cnt': 8, 'shake_range': 0.5, 'hot_min_temp': 140, 'hot_max_temp': 200, 'bed_max_temp': 60, 'pa_clr_dis_mm': 30, 'pa_clr_down_mm': -0.15, 'clr_noz_start_x': 130.0, 'clr_noz_start_y': 303.0, 'clr_noz_len_x': 40.0, 'clr_noz_len_y': 2.0, 'clr_xy_spd': 2.0, 'speeds': (2.5, 1.0), 'lift_speed': 5.0, 'rdy_xy_spd': 200, 'rdy_z_spd': 5.0, 'acc_ctl_mm': 0.25, 'low_spd_nul': 5, 'send_step_duty': 16, 'run_max_velocity': 500, 'run_max_accel': 500, 'run_max_z_velocity': 20, 'run_max_z_accel': 200, 'check_bed_mesh_max_err': 0.2, 'need_self_check': True, 'bed_max_err': 5, 'g29_down_min_z': 25, 'probe_min_3err': 0.1, 'step_base': 2, 'g28_wait_cool_down': True, 'best_above_z': 3, 'safe_z_dead_dis': 2, 'fan_heat_min_spd': 0.3, 'fan_heat_max_spd': 1.0, 'lost_step_dis': 0.5, 'tilt_corr_dis': 0.05, 'bed_mesh_top_mid_com': 0.0, 'bed_mesh_bottom_mid_com': 0.0, 'bed_mesh_left_mid_com': 0.0, 'bed_mesh_right_mid_com': 0.0, 'noz_ex_com': 0.09, 'sys_time_duty': 0.001, 'shake_sample_num': 100, 'shake_z_velocity': 100, 'shake_z_accel': 500, 'shake_num': 20, 'check_std_max': 6000, 'check_std_mim': 250, 'step_swap_pin': 'PC10', 'pres_swap_pin': 'leveling_mcu:PB1', 'pres_cnt': 4, 'pres0_clk_pins': 'leveling_mcu:PA7', 'pres0_sdo_pins': 'leveling_mcu:PA4', 'pres1_clk_pins': 'leveling_mcu:PA6', 'pres1_sdo_pins': 'leveling_mcu:PA3', 'pres2_clk_pins': 'leveling_mcu:PA2', 'pres2_sdo_pins': 'leveling_mcu:PA0', 'pres3_clk_pins': 'leveling_mcu:PA5', 'pres3_sdo_pins': 'leveling_mcu:PA1', 'speed': 5.0, 'x_offset': 0.0, 'y_offset': 0.0, 'z_offset': 0.0, 'samples': 1, 'sample_retract_dist': 2.0, 'samples_result': 'average', 'samples_tolerance': 0.1, 'samples_tolerance_retries': 0}, 'printer': {'kinematics': 'corexy', 'max_velocity': 800.0, 'max_accel': 20000.0, 'max_accel_to_decel': 20000.0, 'square_corner_velocity': 5.0, 'square_corner_max_velocity': 200.0, 'buffer_time_low': 1.0, 'buffer_time_high': 2.0, 'buffer_time_start': 0.25, 'move_flush_time': 0.05, 'max_z_velocity': 20.0, 'max_z_accel': 300.0}, 'bed_mesh': {'probe_count': (6, 6), 'mesh_min': (5.0, 5.0), 'mesh_max': (295.0, 295.0), 'mesh_pps': (2, 2), 'algorithm': 'lagrange', 'bicubic_tension': 0.2, 'horizontal_move_z': 5.0, 'speed': 150.0, 'fade_start': 5.0, 'fade_end': 50.0, 'split_delta_z': 0.025, 'move_check_distance': 5.0}, 'input_shaper': {'shaper_type': 'mzv', 'shaper_type_x': '2hump_ei', 'damping_ratio_x': 0.1, 'shaper_freq_x': 39.0, 'shaper_type_y': 'zv', 'damping_ratio_y': 0.1, 'shaper_freq_y': 48.0}}, 'warnings': [{'type': 'deprecated_value', 'value': 'NTC 100K beta 3950', 'message': "Value 'NTC 100K beta 3950' in option 'sensor_type' in section 'heater_bed' is deprecated.", 'section': 'heater_bed', 'option': 'sensor_type'}], 'save_config_pending': False, 'save_config_pending_items': {}}, 'mcu': {'mcu_version': '1.3.0.40-5-g6977eaff-dirty-20230711_100121-ubuntu', 'mcu_build_versions': 'gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34', 'mcu_constants': {'ADC_MAX': 4095, 'CLOCK_FREQ': 120000000, 'INITIAL_PINS': 'PC7,PB0', 'MCU': 'gd32f303xe', 'RECEIVE_WINDOW': 192, 'RESERVE_PINS_serial': 'PA2,PA3', 'SERIAL_BAUD': 230400, 'STATS_SUMSQ_BASE': 256, 'STEPPER_BOTH_EDGE': 1, 'build_machine_uid': 'Jul 11 202310:01:16'}, 'last_stats': {'mcu_awake': 0.003, 'mcu_task_avg': 1.1e-05, 'mcu_task_stddev': 5e-06, 'bytes_write': 1928, 'bytes_read': 6346, 'bytes_retransmit': 9, 'bytes_invalid': 0, 'send_seq': 174, 'receive_seq': 174, 'retransmit_seq': 2, 'srtt': 0.001, 'rttvar': 0.0, 'rto': 0.025, 'ready_bytes': 0, 'stalled_bytes': 0, 'freq': 119998069}}, 'mcu nozzle_mcu': {'mcu_version': '1.3.0.40-5-g6977eaff-dirty-20230711_100254-ubuntu', 'mcu_build_versions': 'gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34', 'mcu_constants': {'ADC_MAX': 4095, 'CLOCK_FREQ': 120000000, 'INITIAL_PINS': '!PB5,!PB6,!PB7', 'MCU': 'gd32f303xb', 'RECEIVE_WINDOW': 192, 'RESERVE_PINS_serial': 'PA2,PA3', 'SERIAL_BAUD': 230400, 'STATS_SUMSQ_BASE': 256, 'STEPPER_BOTH_EDGE': 1, 'build_machine_uid': 'Jul 11 202310:02:50'}, 'last_stats': {'mcu_awake': 0.0, 'mcu_task_avg': 0.0, 'mcu_task_stddev': 0.0, 'bytes_write': 1153, 'bytes_read': 4815, 'bytes_retransmit': 9, 'bytes_invalid': 0, 'send_seq': 117, 'receive_seq': 117, 'retransmit_seq': 2, 'srtt': 0.001, 'rttvar': 0.0, 'rto': 0.025, 'ready_bytes': 0, 'stalled_bytes': 0, 'freq': 119999442, 'adj': 119984287}}, 'mcu leveling_mcu': {'mcu_version': '1.3.0.40-5-g6977eaff-dirty-20230711_095416-ubuntu', 'mcu_build_versions': 'gcc: (15:9-2019-q4-0ubuntu1) 9.2.1 20191025 (release) [ARM/arm-9-branch revision 277599] binutils: (2.34-4ubuntu1+13ubuntu1) 2.34', 'mcu_constants': {'ADC_MAX': 4095, 'CLOCK_FREQ': 72000000, 'MCU': 'gd32e230x8', 'RECEIVE_WINDOW': 192, 'RESERVE_PINS_serial': 'PA9,PA10', 'SERIAL_BAUD': 230400, 'STATS_SUMSQ_BASE': 256, 'STEPPER_BOTH_EDGE': 1, 'build_machine_uid': 'Jul 11 202309:54:12'}, 'last_stats': {'mcu_awake': 0.004, 'mcu_task_avg': 2.7e-05, 'mcu_task_stddev': 7.6e-05, 'bytes_write': 761, 'bytes_read': 4267, 'bytes_retransmit': 9, 'bytes_invalid': 0, 'send_seq': 91, 'receive_seq': 91, 'retransmit_seq': 2, 'srtt': 0.001, 'rttvar': 0.001, 'rto': 0.025, 'ready_bytes': 0, 'stalled_bytes': 0, 'freq': 71826418, 'adj': 71738610}}, 'mcu rpi': {'mcu_version': 'v0.11.0-372-gb9ad7605', 'mcu_build_versions': 'gcc: (Ingenic Linux-Release5.1.0-Default(xburst2(fp64)+glibc2.29) 2021.12-22 10:52:10) 7.2.0 binutils: (Ingenic Linux-Release5.1.0.-Default(xburst2(fp64)+glibc2.29) 2021.12-22 08:55:37) 2.27', 'mcu_constants': {'ADC_MAX': 4095, 'CLOCK_FREQ': 50000000, 'MCU': 'linux', 'PCA9685_MAX': 4096, 'PWM_MAX': 32768, 'STATS_SUMSQ_BASE': 256, 'build_machine_uid': 'May 18 202311:46:31'}, 'last_stats': {'mcu_awake': 0.0, 'mcu_task_avg': 0.0, 'mcu_task_stddev': 0.0, 'bytes_write': 774, 'bytes_read': 4425, 'bytes_retransmit': 0, 'bytes_invalid': 0, 'send_seq': 99, 'receive_seq': 99, 'retransmit_seq': 0, 'srtt': 0.0, 'rttvar': 0.0, 'rto': 0.025, 'ready_bytes': 0, 'stalled_bytes': 0, 'freq': 50048671, 'adj': 50009675}}, 'virtual_pins': {'pins': {'KAMP_pin': {'value': 1.0, 'type': 'digital_out'}, 'BED_LEVELING_pin': {'value': 1.0, 'type': 'digital_out'}}}, 'gcode_macro xyz_ready': {'x_ready': 0, 'y_ready': 0, 'z_ready': 0, 'xy_moved': 0, 'z_moved': 0, 'safe_z': 3}, 'gcode_macro _IF_HOME_Z': {}, 'gcode_macro _IF_MOVE_XY': {}, 'gcode_macro _HOME_X': {}, 'gcode_macro _HOME_Y': {}, 'gcode_macro _HOME_Z': {}, 'gcode_macro PRINTER_PARAM': {'z_safe_pause': 0.0, 'z_safe_g28': 3.0, 'max_x_position': 300.0, 'max_y_position': 300.0, 'max_z_position': 300.0, 'fans': 3, 'auto_g29': 0, 'fan0_min': 25, 'fan1_min': 50, 'fan2_min': 180, 'fan2_speed': 0, 'hotend_temp': 0, 'e_min_current': 0.27}, 'gcode_macro AUTOTUNE_SHAPERS': {}, 'gcode_macro LOAD_MATERIAL_CLOSE_FAN2': {'fan2_value': 0}, 'gcode_macro LOAD_MATERIAL_RESTORE_FAN2': {}, 'gcode_macro SET_E_MIN_CURRENT': {}, 'gcode_macro RESTORE_E_CURRENT': {}, 'gcode_macro LOAD_MATERIAL': {}, 'gcode_macro QUIT_MATERIAL': {}, 'gcode_macro Qmode': {'flag': 0, 'accel': 0, 'accel_to_decel': 0, 'velocity': 0, 'square_corner_velocity': 0, 'pressure_advance': 0.0, 'fan0_value': 0.0, 'fan1_value': 0.0, 'fan2_value': 0.0, 'speed_factor': 0, 'max_accel': 2500, 'max_accel_to_decel': 2500}, 'gcode_macro Qmode_exit': {}, 'gcode_macro M204': {}, 'gcode_macro M205': {}, 'gcode_macro M107': {}, 'gcode_macro M900': {}, 'gcode_macro WAIT_TEMP_START': {}, 'gcode_macro WAIT_TEMP_END': {}, 'gcode_macro PRINT_CALIBRATION': {}, 'gcode_macro FIRST_FLOOR_PAUSE_POSITION': {}, 'gcode_macro ACCURATE_G28': {}, 'gcode_macro PRINT_PREPARED': {}, 'gcode_macro PRINT_PREPARE_CLEAR': {}, 'gcode_macro END_PRINT_POINT_WITHOUT_LIFTING': {}, 'gcode_macro END_PRINT_POINT': {}, 'gcode_macro END_PRINT': {}, 'gcode_macro FIRST_FLOOR_PAUSE': {'extrude': 2.0}, 'gcode_macro FIRST_FLOOR_RESUME': {}, 'gcode_macro PAUSE': {'extrude': 2.0}, 'gcode_macro INPUTSHAPER': {}, 'gcode_macro BEDPID': {}, 'gcode_macro TUNOFFINPUTSHAPER': {}, 'gcode_macro RESUME': {}, 'gcode_macro CANCEL_PRINT': {}, 'gcode_macro G29': {}, 'gcode_move': {'speed_factor': 1.0, 'speed': 1500.0, 'extrude_factor': 1.0, 'absolute_coordinates': True, 'absolute_extrude': True, 'homing_origin': Coord(x=0.0, y=0.0, z=0.0, e=0.0), 'position': Coord(x=0.0, y=0.0, z=0.0, e=0.0), 'gcode_position': Coord(x=0.0, y=0.0, z=0.0, e=0.0)}, 'print_stats': {'filename': '', 'total_duration': 0.0, 'print_duration': 0.0, 'filament_used': 0.0, 'state': 'standby', 'message': '', 'info': {'total_layer': None, 'current_layer': None}, 'power_loss': 0, 'z_pos': 6.0}, 'fan_feedback': {'fan0_speed': 0, 'fan1_speed': 0, 'fan2_speed': 0, 'fan3_speed': 0, 'fan4_speed': 0}, 'custom_macro': {'leveling_calibration': 0, 'default_extruder_temp': 240.0, 'default_bed_temp': 50.0, 'g28_ext_temp': 140.0, 'qmode_flag': 0}, 'gcode_macro GET_TIMELAPSE_SETUP': {}, 'gcode_macro _SET_TIMELAPSE_SETUP': {}, 'gcode_macro TIMELAPSE_TAKE_FRAME': {'enable': True, 'takingframe': False, 'park': {'enable': False, 'pos': 'back_right', 'time': 0.1, 'custom': {'x': 10.0, 'y': 10.0, 'dz': 0.0}, 'coord': {'x': 306.5, 'y': 306.0, 'dz': 0}}, 'extruder': {'fw_retract': False, 'retract': 0.5, 'extrude': 0.5}, 'speed': {'travel': 400.0, 'retract': 40.0, 'extrude': 40.0}, 'verbose': False, 'check_time': 0.5, 'restore': {'absolute': {'coordinates': True, 'extrude': True}, 'speed': 1500, 'e': 0, 'factor': {'speed': 1.0, 'extrude': 1.0}}, 'macro': {'pause': 'PAUSE_BASE', 'resume': 'RESUME_BASE'}, 'is_paused': False}, 'gcode_macro _TIMELAPSE_NEW_FRAME': {}, 'gcode_macro HYPERLAPSE': {'cycle': 0, 'run': False}, 'gcode_macro TIMELAPSE_RENDER': {'render': False, 'run_identifier': 0}, 'gcode_macro TEST_STREAM_DELAY': {}, 'save_variables': {'variables': {}}, 'gcode_macro SET_GCODE_OFFSET': {}, 'calibrate_shaper_config': {}, 'gcode_macro INPUT_SHAPER_CALIBRATION': {}, 'gcode_macro TEST_RESONANCES_GRAPHS': {}, 'gcode_macro BELTS_SHAPER_CALIBRATION': {}, 'gcode_macro EXCITATE_AXIS_AT_FREQ': {}, 'heaters': {'available_heaters': ['heater_bed', 'extruder'], 'available_sensors': ['temperature_fan chamber_fan', 'temperature_fan mcu_fan', 'temperature_sensor mcu_temp', 'temperature_sensor chamber_temp', 'heater_bed', 'extruder'], 'extruder_temperature_wait': False, 'bed_temperature_wait': False}, 'temperature_fan chamber_fan': {'speed': 0.0, 'rpm': None, 'temperature': 21.33, 'target': 35.0}, 'temperature_fan mcu_fan': {'speed': 0.0, 'rpm': None, 'temperature': 34.15, 'target': 50.0}, 'output_pin mcu_fan': {'value': 0.0}, 'gcode_macro M141': {}, 'gcode_macro M191': {}, 'gcode_macro M106': {}, 'output_pin KAMP': {'value': 1.0}, 'output_pin BED_LEVELING': {'value': 1.0}, 'gcode_macro START_PRINT': {'prepare': 0}, 'gcode_macro BED_MESH_CALIBRATE': {}, 'gcode_macro _LINE_PURGE': {}, 'gcode_macro _SMART_PARK': {}, 'gcode_macro DEFINE_OBJECT': {}, 'gcode_macro START_CURRENT_OBJECT': {}, 'gcode_macro END_CURRENT_OBJECT': {}, 'gcode_macro LIST_OBJECTS': {}, 'gcode_macro LIST_EXCLUDED_OBJECTS': {}, 'gcode_macro REMOVE_ALL_EXCLUDED': {}, 'gcode_macro _KAMP_Settings': {'verbose_enable': True, 'mesh_margin': 0, 'fuzz_amount': 0, 'purge_height': 0.8, 'tip_distance': 0, 'purge_margin': 10, 'purge_amount': 50, 'flow_rate': 12, 'smart_park_height': 10}, 'idle_timeout': {'state': 'Idle', 'printing_time': 0.0}, 'virtual_sdcard': {'file_path': None, 'progress': 0.0, 'is_active': False, 'file_position': 0, 'file_size': 0, 'first_layer_stop': False, 'layer': 0, 'layer_count': 0, 'run_dis': 0.0}, 'temperature_sensor mcu_temp': {'temperature': 39.88, 'measured_min_temp': 39.83, 'measured_max_temp': 39.88}, 'temperature_sensor chamber_temp': {'temperature': 21.35, 'measured_min_temp': 21.29, 'measured_max_temp': 21.35}, 'tmc2209 stepper_x': {'mcu_phase_offset': 1, 'phase_offset_position': 0.01125, 'run_current': 1.4731391274719736, 'hold_current': 1.0017346066809423, 'drv_status': None}, 'tmc2209 stepper_y': {'mcu_phase_offset': 1, 'phase_offset_position': 0.01125, 'run_current': 1.4731391274719736, 'hold_current': 1.0017346066809423, 'drv_status': None}, 'tmc2209 stepper_z': {'mcu_phase_offset': 1, 'phase_offset_position': 0.00078125, 'run_current': 0.7954951288348658, 'hold_current': 0.7954951288348658, 'drv_status': None}, 'tmc2209 extruder': {'mcu_phase_offset': 62, 'phase_offset_position': 0.13368750000000001, 'run_current': 0.5615259732951996, 'hold_current': 0.5615259732951996, 'drv_status': None}, 'heater_bed': {'temperature': 50.22, 'target': 0.0, 'power': 0.0}, 'pause_resume': {'is_paused': False}, 'filament_switch_sensor filament_sensor': {'filament_detected': True, 'enabled': True}, 'filament_switch_sensor filament_sensor_2': {'filament_detected': True, 'enabled': True}, 'heater_fan hotend_fan': {'speed': 0.0, 'rpm': None}, 'output_pin fan0': {'value': 0.0}, 'output_pin fan1': {'value': 0.0}, 'output_pin fan2': {'value': 0.0}, 'output_pin LED': {'value': 1.0}, 'output_pin power': {'value': 0.0}, 'probe': {'last_query': False, 'last_z_result': 0.0, 'z_offset': 0.0}, 'bed_mesh': {'profile_name': '', 'mesh_min': (0.0, 0.0), 'mesh_max': (0.0, 0.0), 'probed_matrix': [[]], 'mesh_matrix': [[]], 'profiles': {}}, 'display_status': {'progress': 0.0, 'message': None}, 'exclude_object': {'objects': [], 'excluded_objects': [], 'current_object': None}, 'motion_report': {'live_position': Coord(x=0.0, y=0.0, z=0.0, e=0.0), 'live_velocity': 0.0, 'live_extruder_velocity': 0.0, 'steppers': ['extruder', 'stepper_x', 'stepper_y', 'stepper_z'], 'trapq': ['extruder', 'toolhead']}, 'query_endstops': {'last_query': {}}, 'system_stats': {'sysload': 1.54, 'cputime': 101.330754975, 'memavail': 127972}, 'manual_probe': {'is_active': False, 'z_position': None, 'z_position_lower': None, 'z_position_upper': None}, 'toolhead': {'homed_axes': '', 'axis_minimum': Coord(x=-2.0, y=-2.0, z=-10.0, e=0.0), 'axis_maximum': Coord(x=306.5, y=306.0, z=305.0, e=0.0), 'print_time': 0.022897957999829348, 'stalls': 0, 'estimated_print_time': 1026.98592365, 'extruder': 'extruder', 'position': Coord(x=0.0, y=0.0, z=0.0, e=0.0), 'max_velocity': 800.0, 'max_accel': 20000.0, 'max_accel_to_decel': 20000.0, 'square_corner_velocity': 5.0}, 'extruder': {'temperature': 26.57, 'target': 0.0, 'power': 0.0, 'can_extrude': False, 'pressure_advance': 0.04, 'smooth_time': 0.04}}} [INFO] 2024-04-13 07:07:34,825 [root] [statistics:generate_stats:68] Stats 1038.0: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000009 mcu_task_stddev=0.000004 bytes_write=1962 bytes_read=6966 bytes_retransmit=9 bytes_invalid=0 send_seq=179 receive_seq=179 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119997228 nozzle_mcu: mcu_awake=0.002 mcu_task_avg=0.000009 mcu_task_stddev=0.000006 bytes_write=1187 bytes_read=5030 bytes_retransmit=9 bytes_invalid=0 send_seq=122 receive_seq=122 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=119998837 adj=120018518 leveling_mcu: mcu_awake=0.004 mcu_task_avg=0.000027 mcu_task_stddev=0.000076 bytes_write=779 bytes_read=4315 bytes_retransmit=9 bytes_invalid=0 send_seq=94 receive_seq=94 retransmit_seq=2 srtt=0.001 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=71833927 adj=71868784 rpi: mcu_awake=0.014 mcu_task_avg=0.000096 mcu_task_stddev=0.000856 bytes_write=802 bytes_read=4503 bytes_retransmit=0 bytes_invalid=0 send_seq=103 receive_seq=103 retransmit_seq=0 srtt=0.001 rttvar=0.003 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=49998807 adj=50061319 mcu_temp: temp=39.9 chamber_temp: temp=21.3 heater_bed: target=0 temp=50.1 pwm=0.000 sysload=1.58 cputime=101.865 memavail=127748 print_time=0.023 buffer_time=0.000 print_stall=0 extruder: target=0 temp=26.6 pwm=0.000