Args: ['/home/biqu/klipper/klippy/klippy.py', '/home/biqu/printer_data/config/printer.cfg', '-I', '/home/biqu/printer_data/comms/klippy.serial', '-l', '/home/biqu/printer_data/logs/klippy.log', '-a', '/home/biqu/printer_data/comms/klippy.sock'] Git version: 'v0.12.0-65-g96ab9069-dirty' Untracked files: klippy/extras/z_calibration.py Branch: master Remote: origin Tracked URL: https://github.com/Klipper3d/klipper CPU: 4 core ? Python: '3.9.2 (default, Feb 28 2021, 17:03:44) \n[GCC 10.2.1 20210110]' =============== Log rollover at Mon Jan 15 08:52:23 2024 =============== Args: ['/home/biqu/klipper/klippy/klippy.py', '/home/biqu/printer_data/config/printer.cfg', '-I', '/home/biqu/printer_data/comms/klippy.serial', '-l', '/home/biqu/printer_data/logs/klippy.log', '-a', '/home/biqu/printer_data/comms/klippy.sock'] Git version: 'v0.12.0-65-g96ab9069-dirty' Untracked files: klippy/extras/z_calibration.py Branch: master Remote: origin Tracked URL: https://github.com/Klipper3d/klipper CPU: 4 core ? Python: '3.9.2 (default, Feb 28 2021, 17:03:44) \n[GCC 10.2.1 20210110]' Start printer at Mon Jan 15 08:52:24 2024 (1705305144.5 66.3) ===== Config file ===== [force_move] enable_force_move = True [virtual_sdcard] path = ~/printer_data/gcodes on_error_gcode = CANCEL_PRINT [pause_resume] [display_status] [respond] [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %} {% set retract = client.cancel_retract|default(5.0)|abs %} {% set park_x = "" if (client.park_at_cancel_x|default(none) is none) else "X=" ~ client.park_at_cancel_x %} {% set park_y = "" if (client.park_at_cancel_y|default(none) is none) else "Y=" ~ client.park_at_cancel_y %} {% set custom_park = park_x|length > 0 or park_y|length > 0 %} {% if printer['gcode_macro RESUME'].restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro RESUME'].restore_idle_timeout} {% endif %} {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %} _CLIENT_RETRACT LENGTH={retract} TURN_OFF_HEATERS M106 S0 {client.user_cancel_macro|default("")} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False SET_PAUSE_NEXT_LAYER ENABLE=0 SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0 CANCEL_PRINT_BASE [gcode_macro PAUSE] description = Pause the actual running print rename_existing = PAUSE_BASE gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set idle_timeout = client.idle_timeout|default(0) %} {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0 %} {% set restore = False if printer.toolhead.extruder == '' else True if params.RESTORE|default(1)|int == 1 else False %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}" {% if idle_timeout > 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout} SET_IDLE_TIMEOUT TIMEOUT={idle_timeout} {% endif %} PAUSE_BASE {client.user_pause_macro|default("")} _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams} [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE variable_last_extruder_temp = {'restore': False, 'temp': 0} variable_restore_idle_timeout = 0 variable_idle_state = False gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} {% set sp_move = client.speed_move|default(velocity) %} {% set runout_resume = True if client.runout_sensor|default("") == "" else True if not printer[client.runout_sensor].enabled else printer[client.runout_sensor].filament_detected %} {% set can_extrude = True if printer.toolhead.extruder == '' else printer[printer.toolhead.extruder].can_extrude %} {% set do_resume = False %} {% set prompt_txt = [] %} {% if printer.idle_timeout.state|upper == "IDLE" or idle_state %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False {% if last_extruder_temp.restore %} RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp.temp) }' M109 S{last_extruder_temp.temp} {% set do_resume = True %} {% elif can_extrude %} {% set do_resume = True %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}' {% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %} {% endif %} {% elif can_extrude %} {% set do_resume = True %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}' {% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %} {% endif %} {% if runout_resume %} {% if do_resume %} {% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %} {client.user_resume_macro|default("")} _CLIENT_EXTRUDE RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)} {% endif %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]}' {% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]) %} {% endif %} {% if not (runout_resume and do_resume) %} RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!" {% for element in prompt_txt %} RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}' {% endfor %} RESPOND TYPE=command MSG="action:prompt_footer_button Ok|RESPOND TYPE=command MSG=action:prompt_end|info" RESPOND TYPE=command MSG="action:prompt_show" {% endif %} [gcode_macro SET_PAUSE_NEXT_LAYER] description = Enable a pause if the next layer is reached gcode = {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %} {% set ENABLE = params.ENABLE|default(1)|int != 0 %} {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %} SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}" [gcode_macro SET_PAUSE_AT_LAYER] description = Enable/disable a pause if a given layer number is reached gcode = {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %} {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined else params.LAYER is defined %} {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %} {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %} SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}" [gcode_macro SET_PRINT_STATS_INFO] rename_existing = SET_PRINT_STATS_INFO_BASE description = Overwrite, to get pause_next_layer and pause_at_layer feature variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" } variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" } gcode = {% if pause_next_layer.enable %} RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}' {pause_next_layer.call} SET_PAUSE_NEXT_LAYER ENABLE=0 {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %} RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}' {pause_at_layer.call} SET_PAUSE_AT_LAYER ENABLE=0 {% endif %} SET_PRINT_STATS_INFO_BASE {rawparams} [gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL] description = Helper: park toolhead used in PAUSE and CANCEL_PRINT gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} {% set use_custom = client.use_custom_pos|default(false)|lower == 'true' %} {% set custom_park_x = client.custom_park_x|default(0.0) %} {% set custom_park_y = client.custom_park_y|default(0.0) %} {% set park_dz = client.custom_park_dz|default(2.0)|abs %} {% set sp_hop = client.speed_hop|default(15) * 60 %} {% set sp_move = client.speed_move|default(velocity) * 60 %} {% set origin = printer.gcode_move.homing_origin %} {% set act = printer.gcode_move.gcode_position %} {% set max = printer.toolhead.axis_maximum %} {% set cone = printer.toolhead.cone_start_z|default(max.z) %} {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch'] else False %} {% set z_min = params.Z_MIN|default(0)|float %} {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %} {% set x_park = params.X if params.X is defined else custom_park_x if use_custom else 0.0 if round_bed else (max.x - 5.0) %} {% set y_park = params.Y if params.Y is defined else custom_park_y if use_custom else (max.y - 5.0) if round_bed and z_park < cone else 0.0 if round_bed else (max.y - 5.0) %} _CLIENT_RETRACT {% if "xyz" in printer.toolhead.homed_axes %} G90 G1 Z{z_park} F{sp_hop} G1 X{x_park} Y{y_park} F{sp_move} {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %} {% else %} RESPOND TYPE=echo MSG='Printer not homed' {% endif %} [gcode_macro _CLIENT_EXTRUDE] description = Extrudes, if the extruder is hot enough gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %} {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %} {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %} {% set absolute_extrude = printer.gcode_move.absolute_extrude %} {% if printer.toolhead.extruder != '' %} {% if printer[printer.toolhead.extruder].can_extrude %} {% if use_fw_retract %} {% if length < 0 %} G10 {% else %} G11 {% endif %} {% else %} M83 G1 E{length} F{(speed|float|abs) * 60} {% if absolute_extrude %} M82 {% endif %} {% endif %} {% else %} RESPOND TYPE=echo MSG='{"\"%s\" not hot enough" % printer.toolhead.extruder}' {% endif %} {% endif %} [gcode_macro _CLIENT_RETRACT] description = Retracts, if the extruder is hot enough gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %} {% set speed = params.SPEED|default(client.speed_retract)|default(35) %} _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs} [gcode_macro _START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(40)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(200)|float %} M140 S{BED_TEMP} M104 S{EXTRUDER_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_PROFILE LOAD=default M220 S100 M221 S100 G92 E0 G1 Z10.0 F3000 G1 X10.1 Y20 F5000.0 M190 S{BED_TEMP} M109 S{EXTRUDER_TEMP} G1 Z0.28 G1 X10.1 Y200.0 Z0.32 F1500.0 E15 G1 X10.4 Y200.0 Z0.32 F5000.0 G1 X10.4 Y20 Z0.32 F1500.0 E30 G92 E0 G1 Z3.0 F3000 [gcode_macro _END_PRINT] gcode = M140 S0 M104 S0 M104 S0 T1 M106 S0 G91 G1 X-2 Y-2 E-3 F300 G1 Z10 F3000 G90 G1 X220Y220 M84 [gcode_macro PARK_extruder] gcode = G90 G1 X{printer['toolhead'].axis_minimum.y} [gcode_macro T0] gcode = PARK_{printer.toolhead.extruder} ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=0 [gcode_macro PARK_extruder1] gcode = G90 G1 X{printer['toolhead'].axis_maximum.y} [gcode_macro T1] gcode = PARK_{printer.toolhead.extruder} ACTIVATE_EXTRUDER EXTRUDER=extruder1 SET_DUAL_CARRIAGE CARRIAGE=1 [gcode_macro ACTIVATE_COPY_MODE] gcode = SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY G1 X0 ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY G1 X{printer['toolhead'].axis_maximum.y/2} SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder [gcode_macro ACTIVATE_MIRROR_MODE] gcode = SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY G1 X0 ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY G1 X{printer['toolhead'].axis_maximum.y} SET_DUAL_CARRIAGE CARRIAGE=1 MODE=MIRROR SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder [gcode_macro UNLOAD_FILAMENT_T0] gcode = M83 G1 E10 F300 G1 E-780 F1800 M82 [gcode_macro LOAD_FILAMENT_T0] gcode = M83 G1 E750 F1800 G1 E30 F300 G1 E15 F150 M82 [gcode_macro UNLOAD_FILAMENT_T1] gcode = M83 G1 E10 F300 G1 E-780 F1800 M82 [gcode_macro LOAD_FILAMENT_T1] gcode = M83 G1 E750 F1800 G1 E30 F300 G1 E15 F150 M82 [gcode_macro DUMP_PARAMETERS] description = Debug: Print all entries of the printer object gcode = {% set parameters = namespace(output = '') %} {% for name1 in printer %} {% for name2 in printer[name1] %} {% set donotwant = ['configfile'] %} {% if name1 is not in donotwant %} {% set param = "printer['%s'].%s = %s" % (name1, name2, printer[name1][name2]) %} {% set parameters.output = parameters.output + param + "\n" %} {% endif %} {% endfor %} {% endfor %} {action_respond_info(parameters.output)} [gcode_macro _User_Variables] variable_verbose = True variable_debug = False variable_travel_speed = 200 variable_move_accel = 1000 variable_dock_speed = 50 variable_release_speed = 75 variable_z_drop_speed = 20 variable_safe_z = 25 variable_enable_z_hop = True variable_max_bed_y = 300 variable_max_bed_x = 300 variable_z_endstop_x = 0 variable_z_endstop_y = 0 variable_docklocation_x = 100 variable_docklocation_y = 320 variable_docklocation_z = -128 variable_enable_dock_servo = False variable_servo_name = 'NAME' variable_servo_deploy = 10 variable_servo_retract = 11 variable_servo_delay = 250 variable_dockmove_x = 50 variable_dockmove_y = 0 variable_dockmove_z = 0 variable_attachmove_x = 0 variable_attachmove_y = 30 variable_attachmove_z = 0 variable_umbilical = False variable_umbilical_x = 15 variable_umbilical_y = 15 variable_park_toolhead = False variable_parkposition_x = 125 variable_parkposition_y = 125 variable_parkposition_z = 30 variable_version = 1 variable_attachmove2_x = 0 variable_attachmove2_y = 0 variable_attachmove2_z = 0 variable_home_backoff_x = 10 variable_home_backoff_y = 10 variable_override_homing = '' variable_dock_on_zhome = True gcode = {% set Mx = printer['configfile'].config["stepper_x"]["position_max"]|float %} {% set My = printer['configfile'].config["stepper_y"]["position_max"]|float %} {% set Ox = printer['configfile'].config["probe"]["x_offset"]|float %} {% set Oy = printer['configfile'].config["probe"]["y_offset"]|float %} {% set Oz = printer['configfile'].config["probe"]["z_offset"]|float %} {% if z_endstop_x != 0 or z_endstop_y != 0 %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_x VALUE={ z_endstop_x } SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_y VALUE={ z_endstop_y } {% else %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_x VALUE={ (Mx * 0.5) - Ox } SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_y VALUE={ (My * 0.5) - Oy } {% endif %} [gcode_macro _Probe_Variables] variable_probe_attached = False variable_probe_state = False variable_probe_lock = False variable_probe_z_homed = False variable_z_endstop_x = 0 variable_z_endstop_y = 0 gcode = [gcode_macro _klicky_check_variables_version] gcode = {% set version = printer["gcode_macro _User_Variables"].version|default(0) %} {% if version != 1 %} { action_raise_error("Please update your klicky variables, there are some functionality changes") } {% endif %} [gcode_macro _KlickyDebug] gcode = {% set message = params.MSG %} {% set debug = printer["gcode_macro _User_Variables"].debug|default(False) %} {% if debug %} { action_respond_info(message) } {% endif %} [gcode_macro _exit_point] gcode = {% set function = 'pre_' ~ params.FUNCTION %} {% set move = params.MOVE|default(0) %} {% set speed = printer["gcode_macro _User_Variables"].travel_speed %} M400 SET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel} SET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel} RESTORE_GCODE_STATE NAME={function} MOVE={move} MOVE_SPEED={speed} [gcode_macro _entry_point] gcode = {% set function = 'pre_' ~ params.FUNCTION %} {% set move_accel = printer["gcode_macro _User_Variables"].move_accel|default(1000) %} M400 SAVE_GCODE_STATE NAME={function} SET_GCODE_OFFSET Z=0 G90 SET_VELOCITY_LIMIT ACCEL={move_accel} [gcode_macro _Homing_Variables] gcode = {% set reset = params.RESET|default(0) %} {% if reset %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ False } {% endif %} [gcode_macro Attach_Probe_Lock] description = Attaches Klicky Probe, can only be docked after unlocking gcode = Attach_Probe _Probe_Lock [gcode_macro Dock_Probe_Unlock] description = Docks Klicky Probe even if it was locked gcode = _Probe_Unlock Dock_Probe [gcode_macro _Probe_Unlock] description = Unlocks Klicky Probe state gcode = _KlickyDebug msg="_Probe_Lock setting probe_lock variable to False" SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ False } [gcode_macro _Probe_Lock] description = Locks Klicky Probe state gcode = _KlickyDebug msg="_Probe_Lock setting probe_lock variable to True" SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ True } [gcode_macro _DeployKlickyDock] description = Deploys Klicky servo-controlled dock gcode = {% set enable_dock_servo = printer["gcode_macro _User_Variables"].enable_dock_servo|default(False) %} {% set servo_delay = printer["gcode_macro _User_Variables"].servo_delay|default(1000) %} {% set servo_name = printer["gcode_macro _User_Variables"].servo_name %} {% set servo_deploy = printer["gcode_macro _User_Variables"].servo_deploy|default(360) %} M400 {% if enable_dock_servo != False %} _KlickyDebug msg="_DeployKlickyDock Klicky servo configuration enabled" {% if servo_deploy == 360 %} { action_raise_error("Klicky: servo active on klicky-variables, but no servo deploy angle specified") } {% endif %} _KlickyDebug msg="_DeployKlickyDock SET_SERVO SERVO={servo_name|string} ANGLE={servo_deploy|int}" SET_SERVO SERVO={servo_name|string} ANGLE={servo_deploy|int} M400 G4 P{servo_delay|int} _KlickyDebug msg="_DeployKlickyDock SET_SERVO SERVO={servo_name|string} WIDTH=0" SET_SERVO SERVO={servo_name|string} WIDTH=0 {% elif printer["gcode_macro _DeployDock"] is defined %} _KlickyDebug msg="_DeployKlickyDock calling _DeployDock" _DeployDock {% endif %} [gcode_macro _RetractKlickyDock] description = Retracts Klicky servo-controlled dock gcode = {% set enable_dock_servo = printer["gcode_macro _User_Variables"].enable_dock_servo|default(False) %} {% set servo_delay = printer["gcode_macro _User_Variables"].servo_delay|default(1000) %} {% set servo_name = printer["gcode_macro _User_Variables"].servo_name %} {% set servo_retract = printer["gcode_macro _User_Variables"].servo_retract|default(360) %} M400 {% if enable_dock_servo != False %} _KlickyDebug msg="_RetractKlickyDock Klicky servo configuration enabled" {% if servo_retract == 360 %} { action_raise_error("Klicky: servo active on klicky-variables, but no servo retract angle specified") } {% endif %} _KlickyDebug msg="_RetractKlickyDock SET_SERVO SERVO={servo_name|string} ANGLE={servo_retract|int}" SET_SERVO SERVO={servo_name|string} ANGLE={servo_retract|int} M400 G4 P{servo_delay|int} _KlickyDebug msg="_RetractKlickyDock SET_SERVO SERVO={servo_name|string} WIDTH=0" SET_SERVO SERVO={servo_name|string} WIDTH=0 {% elif printer["gcode_macro _RetractDock"] is defined %} _KlickyDebug msg="_RetractKlickyDock calling _RetractDock" _RetractDock {% endif %} [gcode_macro Attach_Probe] description = Attaches Klicky Probe gcode = {% set goback = params.BACK|default(0) %} {% set probe_attached = printer["gcode_macro _Probe_Variables"].probe_attached %} {% set probe_lock = printer["gcode_macro _Probe_Variables"].probe_lock %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} {% set dockmove_x = printer["gcode_macro _User_Variables"].dockmove_x|default(0) %} {% set dockmove_y = printer["gcode_macro _User_Variables"].dockmove_y|default(0) %} {% set dockmove_z = printer["gcode_macro _User_Variables"].dockmove_z|default(0) %} {% set docklocation_x = printer["gcode_macro _User_Variables"].docklocation_x %} {% set docklocation_y = printer["gcode_macro _User_Variables"].docklocation_y %} {% set docklocation_z = printer["gcode_macro _User_Variables"].docklocation_z %} {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} {% set attachmove2_x = printer["gcode_macro _User_Variables"].attachmove2_x|default(0) %} {% set attachmove2_y = printer["gcode_macro _User_Variables"].attachmove2_y|default(0) %} {% set attachmove2_z = printer["gcode_macro _User_Variables"].attachmove2_z|default(0) %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z %} {% set enable_z_hop = printer["gcode_macro _User_Variables"].enable_z_hop %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set dock_feedrate = printer["gcode_macro _User_Variables"].dock_speed * 60 %} {% set release_feedrate = printer["gcode_macro _User_Variables"].release_speed * 60 %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} _entry_point function=Attach_Probe {% if bypass_probe_docking == False %} {% if not 'xy' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X and Y Axis First!") } _KlickyDebug msg="Attach_Probe Axis homed" {% elif not probe_attached and not probe_lock %} _KlickyDebug msg="Attach_Probe going to attach probe" {% if verbose %} { action_respond_info("Attaching Probe") } {% endif %} _KLICKY_STATUS_BUSY {% if not 'z' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Resetting Z position to zero") } {% endif %} _KlickyDebug msg="Attach_Probe Z not homed, setting position as X=Y=Z=0" SET_KINEMATIC_POSITION Z=0 {% if not enable_z_hop %} _KlickyDebug msg="Attach_Probe z_hop disabled" {% set safe_z = 0 %} {% endif %} {% endif %} {% if printer.gcode_move.gcode_position.z < safe_z %} _KlickyDebug msg="Attach_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if not 'z' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Resetting Z position to zero, duplicate?") } {% endif %} _KlickyDebug msg="Attach_Probe Z not homed, setting position as X=Y=Z=0" SET_KINEMATIC_POSITION Z=0 {% endif %} {% if printer.gcode_move.gcode_position.z < safe_z %} _KlickyDebug msg="Attach_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Umbilical_Path _entry_point function=Attach_Probe_intern _KlickyDebug msg="Attach_Probe moving near the dock with G0 X{docklocation_x|int - attachmove_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove_y|int - attachmove2_y} F{travel_feedrate}" G0 X{docklocation_x|int - attachmove_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove_y|int - attachmove2_y} F{travel_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int - attachmove2_z|int} F{dock_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int - attachmove2_z|int} F{dock_feedrate} _KlickyDebug msg="Attach_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate} {% endif %} _DeployKlickyDock {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving to the dock with G0 Z{docklocation_z} F{dock_feedrate}" G0 Z{docklocation_z} F{dock_feedrate} {% endif %} _KlickyDebug msg="Attach_Probe moving to the dock with G0 X{docklocation_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove2_y} F{dock_feedrate}" G0 X{docklocation_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove2_y} F{dock_feedrate} _KlickyDebug msg="Attach_Probe moving to the dock with G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate}" G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving from the dock to G0 Z{docklocation_z|int - attachmove_z|int} F{z_drop_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int} F{z_drop_feedrate} {% endif %} _KlickyDebug msg="Attach_Probe moving from the dock to G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{release_feedrate}" G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{release_feedrate} _RetractKlickyDock {% if ((printer.gcode_move.gcode_position.z < safe_z) or (docklocation_z != -128 and docklocation_z < safe_z ))%} _KlickyDebug msg="Attach_Probe moving to a safe Z position: G0 Z{safe_z} F{z_drop_feedrate} from {printer.gcode_move.gcode_position.z}" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Park_Toolhead _CheckProbe action=attach _exit_point function=Attach_Probe_intern move={goback} _KLICKY_STATUS_READY {% elif probe_lock %} {% if verbose %} { action_respond_info("Probe locked!") } {% endif %} _KlickyDebug msg="Attach_Probe probe locked not attaching probe" _CheckProbe action=query {% else %} {% if verbose %} { action_respond_info("Probe already attached!") } {% endif %} _KlickyDebug msg="Attach_Probe probe already attached, doing nothing" _CheckProbe action=query {% endif %} _exit_point function=Attach_Probe {% else %} _KlickyDebug msg="Attach_Probe probe docking bypassed, doing nothing" {% endif %} [gcode_macro Dock_Probe] description = Docks Klicky Probe gcode = {% set goback = params.BACK|default(0) %} {% set probe_attached = printer["gcode_macro _Probe_Variables"].probe_attached %} {% set probe_lock = printer["gcode_macro _Probe_Variables"].probe_lock %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} {% set dockmove_x = printer["gcode_macro _User_Variables"].dockmove_x|default(0) %} {% set dockmove_y = printer["gcode_macro _User_Variables"].dockmove_y|default(0) %} {% set dockmove_z = printer["gcode_macro _User_Variables"].dockmove_z|default(0) %} {% set docklocation_x = printer["gcode_macro _User_Variables"].docklocation_x %} {% set docklocation_y = printer["gcode_macro _User_Variables"].docklocation_y %} {% set docklocation_z = printer["gcode_macro _User_Variables"].docklocation_z %} {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set dock_feedrate = printer["gcode_macro _User_Variables"].dock_speed * 60 %} {% set release_feedrate = printer["gcode_macro _User_Variables"].release_speed * 60 %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} {% if bypass_probe_docking == True %} _KlickyDebug msg="Attach_Probe probe docking bypassed, doing nothing" {% endif %} {% if bypass_probe_docking != True %} _entry_point function=Dock_Probe {% if probe_attached and not probe_lock %} _KLICKY_STATUS_BUSY {% if printer.gcode_move.gcode_position.z < safe_z %} _KlickyDebug msg="Dock_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Umbilical_Path _KlickyDebug msg="Dock_Probe moving near the dock with G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{travel_feedrate}" G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{travel_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Dock_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate} {% endif %} _DeployKlickyDock _KlickyDebug msg="Dock_Probe moving to the dock with G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate}" G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving to the dock with G0 Z{docklocation_z} F{dock_feedrate}" G0 Z{docklocation_z} F{dock_feedrate} {% endif %} {% if docklocation_z != -128 %} _KlickyDebug msg="Dock_Probe moving from the dock to G0 Z{docklocation_z|int + dockmove_z|int} F{release_feedrate}" G0 Z{docklocation_z|int + dockmove_z|int} F{release_feedrate} {% endif %} _KlickyDebug msg="Dock_Probe moving from the dock to G0 X{docklocation_x|int + dockmove_x|int} Y{docklocation_y|int + dockmove_y|int} F{release_feedrate}" G0 X{docklocation_x|int + dockmove_x|int} Y{docklocation_y|int + dockmove_y|int} F{release_feedrate} _RetractKlickyDock _KlickyDebug msg="Dock_Probe moving away from the dock to G0 X{docklocation_x|int + dockmove_x|int - attachmove_x|int} Y{docklocation_y|int + dockmove_y|int - attachmove_y|int} F{release_feedrate}" G0 X{docklocation_x|int + dockmove_x|int - attachmove_x|int} Y{docklocation_y|int + dockmove_y|int - attachmove_y|int} F{release_feedrate} {% if (printer.gcode_move.gcode_position.z < safe_z) %} _KlickyDebug msg="Dock_Probe moving to a safe Z position: G0 Z{safe_z} F{z_drop_feedrate} from {printer.gcode_move.gcode_position.z}" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Park_Toolhead G4 P1000 _CheckProbe action=dock _KLICKY_STATUS_READY {% elif probe_lock %} {% if verbose %} { action_respond_info("Probe locked") } {% endif %} _KlickyDebug msg="Dock_Probe probe locked not docking probe" _CheckProbe action=query {% else %} {% if verbose %} { action_respond_info("Probe already docked") } {% endif %} _KlickyDebug msg="Dock_Probe probe already docked, doing nothing" _CheckProbe action=query {% endif %} _exit_point function=Dock_Probe move={goback} {% else %} _KlickyDebug msg="Dock_Probe probe docking bypassed, doing nothing" {% endif %} [gcode_macro PROBE_CALIBRATE] rename_existing = _PROBE_CALIBRATE description = Calibrate the probes z_offset with klicky automount gcode = {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set max_x = printer["gcode_macro _User_Variables"].max_bed_x|float %} {% set max_y = printer["gcode_macro _User_Variables"].max_bed_y|float %} {% set probe_offset_x = printer['configfile'].config["probe"]["x_offset"]|float %} {% set probe_offset_y = printer['configfile'].config["probe"]["y_offset"]|float %} {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} {% if not 'xyz' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X, Y and Z Axis First!") } {% endif %} _KlickyDebug msg="probe_calibrate Axis homed" _KlickyDebug msg="probe_calibrate Variables max_x={max_x},max_y={max_y},probe_offset_x={probe_offset_x},probe_offset_y={probe_offset_y}" {% if printer['gcode_move'].position.y > (max_y - probe_offset_y) or printer['gcode_move'].position.y < - probe_offset_y or printer['gcode_move'].position.x > (max_x - probe_offset_x) or printer['gcode_move'].position.x < - probe_offset_x %} { action_raise_error("Must perform PROBE_CALIBRATE with the probe above the BED, check klicky_variables bed size!") } {% endif %} {% if bypass_probe_docking == False %} _CheckProbe action=query G90 Attach_Probe back=1 _KLICKY_STATUS_CALIBRATING_Z _KlickyDebug msg="probe_calibrate calling klipper probe_calibrate" _PROBE_CALIBRATE {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} M118 moving the toolhead 20 mm from the bed _KlickyDebug msg="probe_calibrate Moving Z up by 20mm" TESTZ Z=20 M118 remove manually the probe and continue calibration _KLICKY_STATUS_READY {% else %} _KLICKY_STATUS_CALIBRATING_Z _KlickyDebug msg="probe_calibrate calling klipper probe_calibrate" _PROBE_CALIBRATE {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} _KLICKY_STATUS_READY {% endif %} [gcode_macro PROBE_ACCURACY] rename_existing = _PROBE_ACCURACY description = Probe Z-height accuracy at current XY position with klicky automount gcode = {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set max_x = printer["gcode_macro _User_Variables"].max_bed_x|float %} {% set max_y = printer["gcode_macro _User_Variables"].max_bed_y|float %} {% set probe_offset_x = printer['configfile'].config["probe"]["x_offset"]|float %} {% set probe_offset_y = printer['configfile'].config["probe"]["y_offset"]|float %} {% if not 'xyz' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X, Y and Z Axis First!") } {% endif %} _KlickyDebug msg="probe_accuracy Axis homed" _KlickyDebug msg="probe_accuracy Variables max_x={max_x},max_y={max_y},probe_offset_x={probe_offset_x},probe_offset_y={probe_offset_y}" _entry_point function=PROBE_ACCURACY {% if printer['gcode_move'].position.y > (max_y - probe_offset_y) or printer['gcode_move'].position.y < - probe_offset_y or printer['gcode_move'].position.x > (max_x - probe_offset_x) or printer['gcode_move'].position.x < - probe_offset_x %} { action_raise_error("Must perform PROBE_ACCURACY with the probe above the BED, check klicky_variables bed size!") } {% endif%} _CheckProbe action=query Attach_Probe back=1 _KlickyDebug msg="probe_accuracy calling klipper probe accuracy" _PROBE_ACCURACY {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} Dock_Probe back=1 _exit_point function=PROBE_ACCURACY move=1 [homing_override] axes = xyz gcode = _User_Variables {% set verbose = printer["gcode_macro _User_Variables"].verbose %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z %} {% set enable_z_hop = printer["gcode_macro _User_Variables"].enable_z_hop %} {% set kinematic_z = 0 %} {% set dock_on_zhome = printer["gcode_macro _User_Variables"].dock_on_zhome|default(True) %} {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set home_backoff_x = printer["gcode_macro _User_Variables"].home_backoff_x|default(0) %} {% set home_backoff_y = printer["gcode_macro _User_Variables"].home_backoff_y|default(0) %} {% set override_homing = printer["gcode_macro _User_Variables"].override_homing|default('') %} _klicky_check_variables_version _CheckProbe action=query {% set home_x, home_y, home_z, leave_probe_attached = False, False, False, False %} {% if 'PROBE_LOCK' in params%} {% if verbose %} { action_respond_info("PROBE_LOCK = True") } {% endif %} {% set leave_probe_attached = True %} {% endif %} {% if not 'X' in params and not 'Y' in params and not 'Z' in params %} {% set home_x, home_y, home_z = True, True, True %} _KlickyDebug msg="homing_override goint to home all axes" {% else %} {% if 'X' in params %} {% set home_x = True %} _KlickyDebug msg="homing_override goint to home X" {% endif %} {% if 'Y' in params %} {% set home_y = True %} _KlickyDebug msg="homing_override goint to home Y" {% endif %} {% if 'Z' in params %} {% set home_z = True %} _KlickyDebug msg="homing_override goint to home Z" {% endif %} {% if 'X' in params and 'Y' in params and 'Z' in params %} _Homing_Variables reset=1 _KlickyDebug msg="homing_override goint to home all axes" {% endif %} {% endif %} _entry_point function=homing_override _KLICKY_STATUS_HOMING {% if 'z' not in printer.toolhead.homed_axes %} {% if enable_z_hop == False %} _KlickyDebug msg="homing_override z_hop disabled" {% set kinematic_z = safe_z %} {% set safe_z = safe_z %} {% endif %} {% endif %} {% if 'x' not in printer.toolhead.homed_axes and 'y' not in printer.toolhead.homed_axes and 'z' not in printer.toolhead.homed_axes%} {% if verbose %} { action_respond_info("No axis homed") } {% endif %} _KlickyDebug msg="homing_override no axis homed, setting position as X=Y=0 Z={kinematic_z}" SET_KINEMATIC_POSITION X=0 Y=0 Z={kinematic_z} M400 _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% if home_z != True %} _KlickyDebug msg="homing_override clearing axis homed state if not already homing Z" M84 {% endif %} {% endif %} {% if home_z %} {% if 'x' not in printer.toolhead.homed_axes and 'y' not in printer.toolhead.homed_axes%} {% if verbose %} { action_respond_info("X or Y not homed, forcing full G28") } {% endif %} {% set home_x, home_y, home_z = True, True, True %} {% endif %} {% endif %} {% if ((attachmove_y == 0 and override_homing == '' ) or (override_homing == 'Y'))%} {% if home_y %} {% if override_homing == 'Y' %} _KlickyDebug msg="homing_override Y homing first override, due to override_homing = Y" {% else %} _KlickyDebug msg="homing_override Y homing first override, due to attachmove_y = 0" {% endif %} {% if verbose %} { action_respond_info("Homing Y") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if printer["gcode_macro _HOME_Y"] is defined %} _KlickyDebug msg="homing_override calling _HOME_Y external script to handle the Y homing" _HOME_Y {% else %} _KlickyDebug msg="homing_override Homing Y G28 Y0" G28 Y0 {% if home_backoff_y != 0 %} {% if (printer.configfile.settings.stepper_y.position_endstop > (printer.configfile.settings.stepper_y.position_min|default(0) + printer.configfile.settings.stepper_y.position_max)/2) %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop-home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate} {% else %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate} {%endif %} {%endif %} {% endif %} {% endif %} {% set home_y = False %} {% endif %} {% if home_x %} {% if verbose %} { action_respond_info("Homing X") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in X homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if printer["gcode_macro _HOME_X"] is defined %} _KlickyDebug msg="homing_override calling _HOME_X external script to handle the X homing" _HOME_X {% else %} _KlickyDebug msg="homing_override Homing X, G28 X0" G28 X0 {% if home_backoff_x != 0 %} {% if (printer.configfile.settings.stepper_x.position_endstop > (printer.configfile.settings.stepper_x.position_min|default(0) + printer.configfile.settings.stepper_x.position_max)/2) %} _KlickyDebug msg="homing_override backing off X endstop, G0 X{printer.configfile.settings.stepper_x.position_endstop - home_backoff_x|int} F{travel_feedrate}" G0 X{printer.configfile.settings.stepper_x.position_endstop - home_backoff_x|int} F{travel_feedrate} {% else %} _KlickyDebug msg="homing_override backing off X endstop, G0 X{printer.configfile.settings.stepper_x.position_endstop + home_backoff_x|int} F{travel_feedrate}" G0 X{printer.configfile.settings.stepper_x.position_endstop + home_backoff_x|int} F{travel_feedrate} {%endif %} {%endif %} {% endif %} {% endif %} {% if home_y %} {% if verbose %} { action_respond_info("Homing Y") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if printer["gcode_macro _HOME_Y"] is defined %} _KlickyDebug msg="homing_override calling _HOME_Y external script to handle the Y homing" _HOME_Y {% else %} _KlickyDebug msg="homing_override Homing Y, G28 Y0" G28 Y0 {% if home_backoff_y != 0 %} {% if (printer.configfile.settings.stepper_y.position_endstop > (printer.configfile.settings.stepper_y.position_min|default(0) + printer.configfile.settings.stepper_y.position_max)/2) %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate} {% else %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate} {%endif %} {%endif %} {% endif %} {% endif %} {% if home_z %} {% if verbose %} { action_respond_info("Homing Z") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if 'z_virtual_endstop' in printer['configfile'].config["stepper_z"]["endstop_pin"] %} _KlickyDebug msg="homing_override probe configured as a virtual Z endstop attaching probe" Attach_Probe {% if leave_probe_attached %} _Probe_Lock {% endif %} {% elif dock_on_zhome == True %} Dock_Probe {% endif %} _Home_Z_ {% if 'z_virtual_endstop' in printer['configfile'].config["stepper_z"]["endstop_pin"] %} _KlickyDebug msg="homing_override probe no longer required, docking probe" Dock_Probe {% elif dock_on_zhome == False %} Dock_Probe {% endif %} {% endif %} _CheckProbe action=query _Park_Toolhead _exit_point function=homing_override _KLICKY_STATUS_READY [gcode_macro _Umbilical_Path] gcode = {% set umbilical = printer["gcode_macro _User_Variables"].umbilical %} {% set umbilical_x = printer["gcode_macro _User_Variables"].umbilical_x %} {% set umbilical_y = printer["gcode_macro _User_Variables"].umbilical_y %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% if umbilical %} _entry_point function=Umbilical_Path _KlickyDebug msg="_Umbilical_Path moving to G0 X{umbilical_x} Y{umbilical_y} Z{safe_z} F{travel_feedrate}" G0 X{umbilical_x} Y{umbilical_y} Z{safe_z} F{travel_feedrate} _exit_point function=Umbilical_Path {% endif %} [gcode_macro _Home_Z_] gcode = {% set z_endstop_x = printer["gcode_macro _Probe_Variables"].z_endstop_x %} {% set z_endstop_y = printer["gcode_macro _Probe_Variables"].z_endstop_y %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} _entry_point function=Home_Z {% if not 'xy' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X and Y Axis First!") } {% else %} _KlickyDebug msg="_Home_Z_ XY Axis homed" {% if not 'z' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Resetting Z position to zero") } {% endif %} _KlickyDebug msg="_Home_Z_ Z not homed, setting position as X=Y=Z=0" SET_KINEMATIC_POSITION Z=0 {% endif %} _KlickyDebug msg="_Home_Z_ moving to Z endstop position G0 X{z_endstop_x} Y{z_endstop_y} F{travel_feedrate}" G0 X{z_endstop_x} Y{z_endstop_y} F{travel_feedrate} _KlickyDebug msg="_Home_Z_ Homing Z G28 Z" G28 Z0 _KlickyDebug msg="_Home_Z_ toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _exit_point function=Home_Z [gcode_macro _CheckProbe] variable_probe_state = 0 gcode = Query_Probe _SetProbeState action={ params.ACTION } [gcode_macro _SetProbeState] gcode = {% set query_probe_triggered = printer.probe.last_query %} {% set action = params.ACTION|default('') %} {% if query_probe_triggered %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_attached VALUE={ False } {% else %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_attached VALUE={ True } {% endif %} {% if action == 'query' %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_state VALUE={ query_probe_triggered } {% endif %} {% if not query_probe_triggered and action == 'dock' %} { action_raise_error("Probe dock failed!") } {% endif %} {% if query_probe_triggered and action == 'attach' %} { action_raise_error("Probe attach failed!") } {% endif %} [gcode_macro _Park_Toolhead] gcode = {% set park_toolhead = printer["gcode_macro _User_Variables"].park_toolhead %} {% set parkposition_x = printer["gcode_macro _User_Variables"].parkposition_x %} {% set parkposition_y = printer["gcode_macro _User_Variables"].parkposition_y %} {% set parkposition_z = printer["gcode_macro _User_Variables"].parkposition_z %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} _entry_point function=Park_Toolhead {% if park_toolhead and 'xyz' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Parking Toolhead") } {% endif %} {% if parkposition_z == -128 %} _KlickyDebug msg="_Park_Toolhead moving to G0 X{parkposition_x} Y{parkposition_y} F{travel_feedrate}" G0 X{parkposition_x} Y{parkposition_y} F{travel_feedrate} {% else %} _KlickyDebug msg="_Park_Toolhead moving to G0 X{parkposition_x} Y{parkposition_y} Z{parkposition_z} F{travel_feedrate}" G0 X{parkposition_x} Y{parkposition_y} Z{parkposition_z} F{travel_feedrate} {% endif %} {% endif %} _exit_point function=Park_Toolhead [gcode_macro _klicky_status_ready] gcode = {% if printer['gcode_macro status_ready'] is defined %} _KlickyDebug msg="_klicky_status_ready activating the LED STATUS_READY" STATUS_READY {% endif %} [gcode_macro _klicky_status_busy] gcode = {% if printer['gcode_macro status_busy'] is defined %} _KlickyDebug msg="_klicky_status_busy activating the LED STATUS_BUSY" STATUS_BUSY {% endif %} [gcode_macro _klicky_status_leveling] gcode = {% if printer['gcode_macro status_leveling'] is defined %} _KlickyDebug msg="_klicky_status_leveling activating the LED STATUS_LEVELING" STATUS_LEVELING {% endif %} [gcode_macro _klicky_status_homing] gcode = {% if printer['gcode_macro status_homing'] is defined %} _KlickyDebug msg="_klicky_status_homing activating the LED STATUS_HOMING" STATUS_HOMING {% endif %} [gcode_macro _klicky_status_cleaning] gcode = {% if printer['gcode_macro status_cleaning'] is defined %} _KlickyDebug msg="_klicky_status_cleaning activating the LED STATUS_CLEANING" STATUS_CLEANING {% endif %} [gcode_macro _klicky_status_meshing] gcode = {% if printer['gcode_macro status_meshing'] is defined %} _KlickyDebug msg="_klicky_status_meshing activating the LED STATUS_MESHING" STATUS_MESHING {% endif %} [gcode_macro _klicky_status_calibrating_z] gcode = {% if printer['gcode_macro status_calibrating_z'] is defined %} _KlickyDebug msg="_klicky_status_calibrating_z activating the LED STATUS_CALIBRATING_Z" STATUS_CALIBRATING_Z {% endif %} [gcode_macro BED_MESH_CALIBRATE] rename_existing = _BED_MESH_CALIBRATE description = Perform Mesh Bed Leveling with klicky automount gcode = {% set V = printer["gcode_macro _User_Variables"].verbose %} {% if V %} { action_respond_info("Bed Mesh Calibrate") } {% endif %} _CheckProbe action=query G90 Attach_Probe _KLICKY_STATUS_MESHING _BED_MESH_CALIBRATE {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} Dock_Probe [gcode_macro Z_TILT_ADJUST] rename_existing = _Z_TILT_ADJUST description = gcode = {% set V = printer["gcode_macro _User_Variables"].verbose %} {% if V %} { action_respond_info("Z Tilt Adjust") } {% endif %} _CheckProbe action=query G90 Attach_Probe _KLICKY_STATUS_LEVELING _Z_TILT_ADJUST {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} Dock_Probe G28 Z0 [mcu] serial = /dev/serial/by-id/usb-Klipper_stm32f446xx_250031000750535556323420-if00 [printer] kinematics = hybrid_corexy max_velocity = 400 max_accel = 3000 max_z_velocity = 5 max_z_accel = 200 [stepper_x] step_pin = PF13 dir_pin = PF12 enable_pin = !PF14 microsteps = 16 rotation_distance = 40 endstop_pin = !PG6 position_endstop = -20 position_min = -20 position_max = 270 homing_speed = 50 [dual_carriage] step_pin = PG0 dir_pin = PG1 enable_pin = !PF15 microsteps = 16 rotation_distance = 40 endstop_pin = !PG9 position_endstop = 350 position_min = 80 position_max = 350 homing_speed = 50 [stepper_y] step_pin = PF11 dir_pin = PG3 enable_pin = !PG5 microsteps = 16 rotation_distance = 40 endstop_pin = !PG10 position_endstop = 320 position_max = 320 position_min = 0 homing_speed = 50 [stepper_y1] step_pin = PG4 dir_pin = !PC1 enable_pin = !PA0 microsteps = 16 rotation_distance = 40 endstop_pin = !PG11 [stepper_z] step_pin = PF9 dir_pin = PF10 enable_pin = !PG2 microsteps = 16 rotation_distance = 2 endstop_pin = probe:z_virtual_endstop position_min = 0 position_max = 200 [stepper_z1] step_pin = PC13 dir_pin = PF0 enable_pin = !PF1 microsteps = 16 rotation_distance = 2 endstop_pin = probe:z_virtual_endstop [stepper_z2] step_pin = PE2 dir_pin = PE3 enable_pin = !PD4 microsteps = 16 rotation_distance = 2 endstop_pin = probe:z_virtual_endstop [extruder] step_pin = PE6 dir_pin = PA14 enable_pin = !PE0 microsteps = 16 full_steps_per_rotation = 200 rotation_distance = 4.637 nozzle_diameter = 0.400 filament_diameter = 1.750 max_extrude_only_distance = 500.0 max_extrude_only_velocity = 120 heater_pin = PA2 sensor_pin = PF4 sensor_type = ATC Semitec 104NT-4-R025H42G min_temp = 0 max_temp = 300 control = pid pid_kp = 32.724 pid_ki = 3.576 pid_kd = 74.855 [probe] pin = PG14 x_offset = 0 y_offset = 25.0 z_offset = 1 speed = 10.0 samples = 3 samples_result = median sample_retract_dist = 3.0 samples_tolerance = 0.006 samples_tolerance_retries = 3 [z_tilt] z_positions = -69, -19 79, 150 69, -19 points = 20, 0 155, 250 250, 0 speed = 50 horizontal_move_z = 15 retries = 10 retry_tolerance = 0.01 [bed_mesh] speed = 120 horizontal_move_z = 15 mesh_min = 50,20 mesh_max = 230,200 probe_count = 5,5 algorithm = bicubic fade_start = 1 fade_end = 10 fade_target = 0 [filament_switch_sensor material_0] switch_pin = !PG12 [filament_switch_sensor material_1] switch_pin = !PG13 [heater_fan fan0] pin = PA8 [fan_generic Part_T0] pin = PE5 [heater_fan fan1] pin = PD12 [fan_generic Part_T1] pin = PD13 [tmc2209 stepper_x] uart_pin = PC4 run_current = 0.8 stealthchop_threshold = 999999 [tmc2209 dual_carriage] uart_pin = PD11 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_y] uart_pin = PC6 run_current = 0.8 stealthchop_threshold = 999999 [tmc2209 stepper_y1] uart_pin = PC7 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_z] uart_pin = PF2 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_z1] uart_pin = PE4 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_z2] uart_pin = PE1 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 extruder] uart_pin = PD3 run_current = 0.850 hold_current = 0.100 stealthchop_threshold = 0 [board_pins] aliases = EXP1_1=PE8, EXP1_2=PE7, EXP1_3=PE9, EXP1_4=PE10, EXP1_5=PE12, EXP1_6=PE13, EXP1_7=PE14, EXP1_8=PE15, EXP1_9=, EXP1_10=<5V>, EXP2_1=PA6, EXP2_2=PA5, EXP2_3=PB1, EXP2_4=PA4, EXP2_5=PB2, EXP2_6=PA7, EXP2_7=PC15, EXP2_8=, EXP2_9=, EXP2_10=PC5 ======================= Extruder max_extrude_ratio=0.266081 mcu 'mcu': Starting serial connect webhooks client 281472846699296: New connection webhooks client 281472846699296: Client info {'program': 'Moonraker', 'version': 'v0.8.0-247-g3008a13'} Loaded MCU 'mcu' 119 commands (v0.11.0-241-gffb5105b / gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2) MCU 'mcu' config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_i2c3=PA8,PC9 BUS_PINS_sdio=PC12,PD2,PC8,PC9,PC10,PC11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi2a=PC2,PC3,PB10 BUS_PINS_spi3=PB4,PB5,PB3 BUS_PINS_spi3a=PC11,PC12,PC10 BUS_PINS_spi4=PE13,PE14,PE12 CLOCK_FREQ=180000000 MCU=stm32f446xx PWM_MAX=255 RESERVE_PINS_USB=PA11,PA12 RESERVE_PINS_crystal=PH0,PH1 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 Sending MCU 'mcu' printer configuration... Configured MCU 'mcu' (1024 moves) bed_mesh: generated points Index | Tool Adjusted | Probe 0 | (50.0, -5.0) | (50.0, 20.0) 1 | (95.0, -5.0) | (95.0, 20.0) 2 | (140.0, -5.0) | (140.0, 20.0) 3 | (185.0, -5.0) | (185.0, 20.0) 4 | (230.0, -5.0) | (230.0, 20.0) 5 | (230.0, 40.0) | (230.0, 65.0) 6 | (185.0, 40.0) | (185.0, 65.0) 7 | (140.0, 40.0) | (140.0, 65.0) 8 | (95.0, 40.0) | (95.0, 65.0) 9 | (50.0, 40.0) | (50.0, 65.0) 10 | (50.0, 85.0) | (50.0, 110.0) 11 | (95.0, 85.0) | (95.0, 110.0) 12 | (140.0, 85.0) | (140.0, 110.0) 13 | (185.0, 85.0) | (185.0, 110.0) 14 | (230.0, 85.0) | (230.0, 110.0) 15 | (230.0, 130.0) | (230.0, 155.0) 16 | (185.0, 130.0) | (185.0, 155.0) 17 | (140.0, 130.0) | (140.0, 155.0) 18 | (95.0, 130.0) | (95.0, 155.0) 19 | (50.0, 130.0) | (50.0, 155.0) 20 | (50.0, 175.0) | (50.0, 200.0) 21 | (95.0, 175.0) | (95.0, 200.0) 22 | (140.0, 175.0) | (140.0, 200.0) 23 | (185.0, 175.0) | (185.0, 200.0) 24 | (230.0, 175.0) | (230.0, 200.0) Starting heater checks for extruder webhooks: registering remote method 'shutdown_machine' for connection id: 281472846699296 webhooks: registering remote method 'reboot_machine' for connection id: 281472846699296 webhooks: registering remote method 'pause_job_queue' for connection id: 281472846699296 webhooks: registering remote method 'start_job_queue' for connection id: 281472846699296 SET_KINEMATIC_POSITION pos=100.000,100.000,10.000 Stats 185.6: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4498 bytes_read=15245 bytes_retransmit=9 bytes_invalid=0 send_seq=429 receive_seq=429 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003779 sysload=0.96 cputime=6.110 memavail=702556 print_time=186.910 buffer_time=0.132 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 186.6: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4504 bytes_read=15306 bytes_retransmit=9 bytes_invalid=0 send_seq=430 receive_seq=430 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003781 sysload=0.96 cputime=6.134 memavail=702928 print_time=186.910 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 187.6: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4510 bytes_read=15367 bytes_retransmit=9 bytes_invalid=0 send_seq=431 receive_seq=431 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003779 sysload=0.96 cputime=6.152 memavail=702832 print_time=186.910 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 188.6: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4516 bytes_read=15443 bytes_retransmit=9 bytes_invalid=0 send_seq=432 receive_seq=432 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003783 sysload=0.96 cputime=6.175 memavail=702868 print_time=186.910 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 189.6: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4522 bytes_read=15502 bytes_retransmit=9 bytes_invalid=0 send_seq=433 receive_seq=433 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003783 sysload=0.96 cputime=6.194 memavail=702716 print_time=186.910 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 190.6: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4528 bytes_read=15573 bytes_retransmit=9 bytes_invalid=0 send_seq=434 receive_seq=434 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003781 sysload=0.96 cputime=6.215 memavail=702528 print_time=186.910 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 191.6: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4534 bytes_read=15649 bytes_retransmit=9 bytes_invalid=0 send_seq=435 receive_seq=435 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003781 sysload=0.96 cputime=6.234 memavail=702860 print_time=186.910 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 192.6: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4540 bytes_read=15710 bytes_retransmit=9 bytes_invalid=0 send_seq=436 receive_seq=436 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003779 sysload=0.96 cputime=6.258 memavail=702612 print_time=186.910 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 TMC 'stepper_x' reports GSTAT: 00000001 reset=1(Reset) TMC 'stepper_x' reports GSTAT: 00000000 Pausing toolhead to calculate stepper_x phase offset Stats 193.6: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5006 bytes_read=16202 bytes_retransmit=9 bytes_invalid=0 send_seq=462 receive_seq=462 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003777 sysload=0.96 cputime=6.336 memavail=703256 print_time=194.602 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 194.6: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5040 bytes_read=16324 bytes_retransmit=9 bytes_invalid=0 send_seq=465 receive_seq=465 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003784 sysload=0.96 cputime=6.362 memavail=702808 print_time=194.602 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 195.6: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5074 bytes_read=16445 bytes_retransmit=9 bytes_invalid=0 send_seq=468 receive_seq=468 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003785 sysload=0.89 cputime=6.390 memavail=703404 print_time=194.602 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 196.6: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=5108 bytes_read=16567 bytes_retransmit=9 bytes_invalid=0 send_seq=471 receive_seq=471 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003784 sysload=0.89 cputime=6.415 memavail=703660 print_time=194.602 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 197.6: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6098 bytes_read=17303 bytes_retransmit=9 bytes_invalid=0 send_seq=515 receive_seq=515 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003783 sysload=0.89 cputime=6.523 memavail=703284 print_time=198.909 buffer_time=0.121 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 TMC 'stepper_y' reports GSTAT: 00000001 reset=1(Reset) TMC 'stepper_y1' reports GSTAT: 00000001 reset=1(Reset) TMC 'dual_carriage' reports GSTAT: 00000001 reset=1(Reset) TMC 'stepper_y' reports GSTAT: 00000000 Pausing toolhead to calculate stepper_y phase offset TMC 'stepper_y1' reports GSTAT: 00000000 TMC 'dual_carriage' reports GSTAT: 00000000 Pausing toolhead to calculate stepper_y1 phase offset Pausing toolhead to calculate dual_carriage phase offset Stats 198.6: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6630 bytes_read=18064 bytes_retransmit=9 bytes_invalid=0 send_seq=550 receive_seq=550 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003781 sysload=0.89 cputime=6.635 memavail=702808 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Stats 199.6: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6748 bytes_read=18324 bytes_retransmit=9 bytes_invalid=0 send_seq=559 receive_seq=559 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003779 sysload=0.89 cputime=6.679 memavail=702332 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 200.6: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6866 bytes_read=18569 bytes_retransmit=9 bytes_invalid=0 send_seq=568 receive_seq=568 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003778 sysload=0.81 cputime=6.718 memavail=701924 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 201.6: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=6984 bytes_read=18829 bytes_retransmit=9 bytes_invalid=0 send_seq=577 receive_seq=577 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003778 sysload=0.81 cputime=6.760 memavail=701992 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Stats 202.6: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=7102 bytes_read=19089 bytes_retransmit=9 bytes_invalid=0 send_seq=586 receive_seq=586 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003777 sysload=0.81 cputime=6.799 memavail=703216 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 203.6: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=7220 bytes_read=19334 bytes_retransmit=9 bytes_invalid=0 send_seq=595 receive_seq=595 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003775 sysload=0.81 cputime=6.840 memavail=702964 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 204.6: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=7338 bytes_read=19579 bytes_retransmit=9 bytes_invalid=0 send_seq=604 receive_seq=604 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003775 sysload=0.81 cputime=6.879 memavail=703480 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 205.6: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=7456 bytes_read=19839 bytes_retransmit=9 bytes_invalid=0 send_seq=613 receive_seq=613 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003776 sysload=0.83 cputime=6.917 memavail=703232 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 206.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7574 bytes_read=20099 bytes_retransmit=9 bytes_invalid=0 send_seq=622 receive_seq=622 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003778 sysload=0.83 cputime=6.978 memavail=703432 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 207.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7692 bytes_read=20344 bytes_retransmit=9 bytes_invalid=0 send_seq=631 receive_seq=631 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003780 sysload=0.83 cputime=7.027 memavail=703484 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 208.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7810 bytes_read=20604 bytes_retransmit=9 bytes_invalid=0 send_seq=640 receive_seq=640 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003779 sysload=0.83 cputime=7.065 memavail=703484 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Stats 209.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7928 bytes_read=20849 bytes_retransmit=9 bytes_invalid=0 send_seq=649 receive_seq=649 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003777 sysload=0.83 cputime=7.110 memavail=703904 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 210.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8052 bytes_read=21110 bytes_retransmit=9 bytes_invalid=0 send_seq=659 receive_seq=659 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003794 sysload=0.76 cputime=7.171 memavail=703904 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 211.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8170 bytes_read=21385 bytes_retransmit=9 bytes_invalid=0 send_seq=668 receive_seq=668 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003797 sysload=0.76 cputime=7.227 memavail=703904 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 212.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8288 bytes_read=21630 bytes_retransmit=9 bytes_invalid=0 send_seq=677 receive_seq=677 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003800 sysload=0.76 cputime=7.288 memavail=703904 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 213.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8406 bytes_read=21872 bytes_retransmit=9 bytes_invalid=0 send_seq=686 receive_seq=686 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003798 sysload=0.76 cputime=7.340 memavail=703908 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 214.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8524 bytes_read=22128 bytes_retransmit=9 bytes_invalid=0 send_seq=695 receive_seq=695 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003796 sysload=0.76 cputime=7.378 memavail=703908 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 215.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8642 bytes_read=22373 bytes_retransmit=9 bytes_invalid=0 send_seq=704 receive_seq=704 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003792 sysload=0.70 cputime=7.417 memavail=703924 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Stats 216.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8760 bytes_read=22633 bytes_retransmit=9 bytes_invalid=0 send_seq=713 receive_seq=713 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003790 sysload=0.70 cputime=7.454 memavail=703924 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 217.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8878 bytes_read=22893 bytes_retransmit=9 bytes_invalid=0 send_seq=722 receive_seq=722 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003801 sysload=0.70 cputime=7.496 memavail=703672 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 218.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8996 bytes_read=23138 bytes_retransmit=9 bytes_invalid=0 send_seq=731 receive_seq=731 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003798 sysload=0.70 cputime=7.533 memavail=703420 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 219.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9114 bytes_read=23383 bytes_retransmit=9 bytes_invalid=0 send_seq=740 receive_seq=740 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003801 sysload=0.70 cputime=7.573 memavail=703520 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 220.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9232 bytes_read=23643 bytes_retransmit=9 bytes_invalid=0 send_seq=749 receive_seq=749 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003799 sysload=0.64 cputime=7.609 memavail=703556 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 221.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9350 bytes_read=23903 bytes_retransmit=9 bytes_invalid=0 send_seq=758 receive_seq=758 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003795 sysload=0.64 cputime=7.649 memavail=703556 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 222.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9468 bytes_read=24148 bytes_retransmit=9 bytes_invalid=0 send_seq=767 receive_seq=767 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003792 sysload=0.64 cputime=7.699 memavail=704340 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 223.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9586 bytes_read=24408 bytes_retransmit=9 bytes_invalid=0 send_seq=776 receive_seq=776 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003790 sysload=0.64 cputime=7.738 memavail=704072 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 224.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9704 bytes_read=24653 bytes_retransmit=9 bytes_invalid=0 send_seq=785 receive_seq=785 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003792 sysload=0.64 cputime=7.784 memavail=704604 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Stats 225.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9822 bytes_read=24898 bytes_retransmit=9 bytes_invalid=0 send_seq=794 receive_seq=794 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003791 sysload=0.59 cputime=7.830 memavail=704616 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Stats 226.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9940 bytes_read=25173 bytes_retransmit=9 bytes_invalid=0 send_seq=803 receive_seq=803 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003789 sysload=0.59 cputime=7.868 memavail=704592 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 227.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10058 bytes_read=25418 bytes_retransmit=9 bytes_invalid=0 send_seq=812 receive_seq=812 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003789 sysload=0.59 cputime=7.916 memavail=704644 print_time=198.909 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 228.6: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10213 bytes_read=25668 bytes_retransmit=9 bytes_invalid=0 send_seq=822 receive_seq=822 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003791 sysload=0.59 cputime=7.978 memavail=704644 print_time=230.515 buffer_time=0.703 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Attempting MCU 'mcu' reset command b'Got EOF when reading from device' webhooks client 281472846699296: Disconnected Restarting printer Start printer at Mon Jan 15 08:55:08 2024 (1705305308.6 230.5) ===== Config file ===== [force_move] enable_force_move = True [virtual_sdcard] path = ~/printer_data/gcodes on_error_gcode = CANCEL_PRINT [pause_resume] [display_status] [respond] [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %} {% set retract = client.cancel_retract|default(5.0)|abs %} {% set park_x = "" if (client.park_at_cancel_x|default(none) is none) else "X=" ~ client.park_at_cancel_x %} {% set park_y = "" if (client.park_at_cancel_y|default(none) is none) else "Y=" ~ client.park_at_cancel_y %} {% set custom_park = park_x|length > 0 or park_y|length > 0 %} {% if printer['gcode_macro RESUME'].restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro RESUME'].restore_idle_timeout} {% endif %} {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %} _CLIENT_RETRACT LENGTH={retract} TURN_OFF_HEATERS M106 S0 {client.user_cancel_macro|default("")} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False SET_PAUSE_NEXT_LAYER ENABLE=0 SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0 CANCEL_PRINT_BASE [gcode_macro PAUSE] description = Pause the actual running print rename_existing = PAUSE_BASE gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set idle_timeout = client.idle_timeout|default(0) %} {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0 %} {% set restore = False if printer.toolhead.extruder == '' else True if params.RESTORE|default(1)|int == 1 else False %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}" {% if idle_timeout > 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout} SET_IDLE_TIMEOUT TIMEOUT={idle_timeout} {% endif %} PAUSE_BASE {client.user_pause_macro|default("")} _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams} [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE variable_last_extruder_temp = {'restore': False, 'temp': 0} variable_restore_idle_timeout = 0 variable_idle_state = False gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} {% set sp_move = client.speed_move|default(velocity) %} {% set runout_resume = True if client.runout_sensor|default("") == "" else True if not printer[client.runout_sensor].enabled else printer[client.runout_sensor].filament_detected %} {% set can_extrude = True if printer.toolhead.extruder == '' else printer[printer.toolhead.extruder].can_extrude %} {% set do_resume = False %} {% set prompt_txt = [] %} {% if printer.idle_timeout.state|upper == "IDLE" or idle_state %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False {% if last_extruder_temp.restore %} RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp.temp) }' M109 S{last_extruder_temp.temp} {% set do_resume = True %} {% elif can_extrude %} {% set do_resume = True %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}' {% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %} {% endif %} {% elif can_extrude %} {% set do_resume = True %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}' {% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %} {% endif %} {% if runout_resume %} {% if do_resume %} {% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %} {client.user_resume_macro|default("")} _CLIENT_EXTRUDE RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)} {% endif %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]}' {% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]) %} {% endif %} {% if not (runout_resume and do_resume) %} RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!" {% for element in prompt_txt %} RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}' {% endfor %} RESPOND TYPE=command MSG="action:prompt_footer_button Ok|RESPOND TYPE=command MSG=action:prompt_end|info" RESPOND TYPE=command MSG="action:prompt_show" {% endif %} [gcode_macro SET_PAUSE_NEXT_LAYER] description = Enable a pause if the next layer is reached gcode = {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %} {% set ENABLE = params.ENABLE|default(1)|int != 0 %} {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %} SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}" [gcode_macro SET_PAUSE_AT_LAYER] description = Enable/disable a pause if a given layer number is reached gcode = {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %} {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined else params.LAYER is defined %} {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %} {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %} SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}" [gcode_macro SET_PRINT_STATS_INFO] rename_existing = SET_PRINT_STATS_INFO_BASE description = Overwrite, to get pause_next_layer and pause_at_layer feature variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" } variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" } gcode = {% if pause_next_layer.enable %} RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}' {pause_next_layer.call} SET_PAUSE_NEXT_LAYER ENABLE=0 {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %} RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}' {pause_at_layer.call} SET_PAUSE_AT_LAYER ENABLE=0 {% endif %} SET_PRINT_STATS_INFO_BASE {rawparams} [gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL] description = Helper: park toolhead used in PAUSE and CANCEL_PRINT gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} {% set use_custom = client.use_custom_pos|default(false)|lower == 'true' %} {% set custom_park_x = client.custom_park_x|default(0.0) %} {% set custom_park_y = client.custom_park_y|default(0.0) %} {% set park_dz = client.custom_park_dz|default(2.0)|abs %} {% set sp_hop = client.speed_hop|default(15) * 60 %} {% set sp_move = client.speed_move|default(velocity) * 60 %} {% set origin = printer.gcode_move.homing_origin %} {% set act = printer.gcode_move.gcode_position %} {% set max = printer.toolhead.axis_maximum %} {% set cone = printer.toolhead.cone_start_z|default(max.z) %} {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch'] else False %} {% set z_min = params.Z_MIN|default(0)|float %} {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %} {% set x_park = params.X if params.X is defined else custom_park_x if use_custom else 0.0 if round_bed else (max.x - 5.0) %} {% set y_park = params.Y if params.Y is defined else custom_park_y if use_custom else (max.y - 5.0) if round_bed and z_park < cone else 0.0 if round_bed else (max.y - 5.0) %} _CLIENT_RETRACT {% if "xyz" in printer.toolhead.homed_axes %} G90 G1 Z{z_park} F{sp_hop} G1 X{x_park} Y{y_park} F{sp_move} {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %} {% else %} RESPOND TYPE=echo MSG='Printer not homed' {% endif %} [gcode_macro _CLIENT_EXTRUDE] description = Extrudes, if the extruder is hot enough gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %} {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %} {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %} {% set absolute_extrude = printer.gcode_move.absolute_extrude %} {% if printer.toolhead.extruder != '' %} {% if printer[printer.toolhead.extruder].can_extrude %} {% if use_fw_retract %} {% if length < 0 %} G10 {% else %} G11 {% endif %} {% else %} M83 G1 E{length} F{(speed|float|abs) * 60} {% if absolute_extrude %} M82 {% endif %} {% endif %} {% else %} RESPOND TYPE=echo MSG='{"\"%s\" not hot enough" % printer.toolhead.extruder}' {% endif %} {% endif %} [gcode_macro _CLIENT_RETRACT] description = Retracts, if the extruder is hot enough gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %} {% set speed = params.SPEED|default(client.speed_retract)|default(35) %} _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs} [gcode_macro _START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(40)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(200)|float %} M140 S{BED_TEMP} M104 S{EXTRUDER_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_PROFILE LOAD=default M220 S100 M221 S100 G92 E0 G1 Z10.0 F3000 G1 X10.1 Y20 F5000.0 M190 S{BED_TEMP} M109 S{EXTRUDER_TEMP} G1 Z0.28 G1 X10.1 Y200.0 Z0.32 F1500.0 E15 G1 X10.4 Y200.0 Z0.32 F5000.0 G1 X10.4 Y20 Z0.32 F1500.0 E30 G92 E0 G1 Z3.0 F3000 [gcode_macro _END_PRINT] gcode = M140 S0 M104 S0 M104 S0 T1 M106 S0 G91 G1 X-2 Y-2 E-3 F300 G1 Z10 F3000 G90 G1 X220Y220 M84 [gcode_macro PARK_extruder] gcode = G90 G1 X{printer['toolhead'].axis_minimum.y} [gcode_macro T0] gcode = PARK_{printer.toolhead.extruder} ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=0 [gcode_macro PARK_extruder1] gcode = G90 G1 X{printer['toolhead'].axis_maximum.y} [gcode_macro T1] gcode = PARK_{printer.toolhead.extruder} ACTIVATE_EXTRUDER EXTRUDER=extruder1 SET_DUAL_CARRIAGE CARRIAGE=1 [gcode_macro ACTIVATE_COPY_MODE] gcode = SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY G1 X0 ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY G1 X{printer['toolhead'].axis_maximum.y/2} SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder [gcode_macro ACTIVATE_MIRROR_MODE] gcode = SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY G1 X0 ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY G1 X{printer['toolhead'].axis_maximum.y} SET_DUAL_CARRIAGE CARRIAGE=1 MODE=MIRROR SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder [gcode_macro UNLOAD_FILAMENT_T0] gcode = M83 G1 E10 F300 G1 E-780 F1800 M82 [gcode_macro LOAD_FILAMENT_T0] gcode = M83 G1 E750 F1800 G1 E30 F300 G1 E15 F150 M82 [gcode_macro UNLOAD_FILAMENT_T1] gcode = M83 G1 E10 F300 G1 E-780 F1800 M82 [gcode_macro LOAD_FILAMENT_T1] gcode = M83 G1 E750 F1800 G1 E30 F300 G1 E15 F150 M82 [gcode_macro DUMP_PARAMETERS] description = Debug: Print all entries of the printer object gcode = {% set parameters = namespace(output = '') %} {% for name1 in printer %} {% for name2 in printer[name1] %} {% set donotwant = ['configfile'] %} {% if name1 is not in donotwant %} {% set param = "printer['%s'].%s = %s" % (name1, name2, printer[name1][name2]) %} {% set parameters.output = parameters.output + param + "\n" %} {% endif %} {% endfor %} {% endfor %} {action_respond_info(parameters.output)} [gcode_macro _User_Variables] variable_verbose = True variable_debug = False variable_travel_speed = 200 variable_move_accel = 1000 variable_dock_speed = 50 variable_release_speed = 75 variable_z_drop_speed = 20 variable_safe_z = 25 variable_enable_z_hop = True variable_max_bed_y = 300 variable_max_bed_x = 300 variable_z_endstop_x = 0 variable_z_endstop_y = 0 variable_docklocation_x = 100 variable_docklocation_y = 320 variable_docklocation_z = -128 variable_enable_dock_servo = False variable_servo_name = 'NAME' variable_servo_deploy = 10 variable_servo_retract = 11 variable_servo_delay = 250 variable_dockmove_x = 50 variable_dockmove_y = 0 variable_dockmove_z = 0 variable_attachmove_x = 0 variable_attachmove_y = 30 variable_attachmove_z = 0 variable_umbilical = False variable_umbilical_x = 15 variable_umbilical_y = 15 variable_park_toolhead = False variable_parkposition_x = 125 variable_parkposition_y = 125 variable_parkposition_z = 30 variable_version = 1 variable_attachmove2_x = 0 variable_attachmove2_y = 0 variable_attachmove2_z = 0 variable_home_backoff_x = 10 variable_home_backoff_y = 10 variable_override_homing = '' variable_dock_on_zhome = True gcode = {% set Mx = printer['configfile'].config["stepper_x"]["position_max"]|float %} {% set My = printer['configfile'].config["stepper_y"]["position_max"]|float %} {% set Ox = printer['configfile'].config["probe"]["x_offset"]|float %} {% set Oy = printer['configfile'].config["probe"]["y_offset"]|float %} {% set Oz = printer['configfile'].config["probe"]["z_offset"]|float %} {% if z_endstop_x != 0 or z_endstop_y != 0 %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_x VALUE={ z_endstop_x } SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_y VALUE={ z_endstop_y } {% else %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_x VALUE={ (Mx * 0.5) - Ox } SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_y VALUE={ (My * 0.5) - Oy } {% endif %} [gcode_macro _Probe_Variables] variable_probe_attached = False variable_probe_state = False variable_probe_lock = False variable_probe_z_homed = False variable_z_endstop_x = 0 variable_z_endstop_y = 0 gcode = [gcode_macro _klicky_check_variables_version] gcode = {% set version = printer["gcode_macro _User_Variables"].version|default(0) %} {% if version != 1 %} { action_raise_error("Please update your klicky variables, there are some functionality changes") } {% endif %} [gcode_macro _KlickyDebug] gcode = {% set message = params.MSG %} {% set debug = printer["gcode_macro _User_Variables"].debug|default(False) %} {% if debug %} { action_respond_info(message) } {% endif %} [gcode_macro _exit_point] gcode = {% set function = 'pre_' ~ params.FUNCTION %} {% set move = params.MOVE|default(0) %} {% set speed = printer["gcode_macro _User_Variables"].travel_speed %} M400 SET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel} SET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel} RESTORE_GCODE_STATE NAME={function} MOVE={move} MOVE_SPEED={speed} [gcode_macro _entry_point] gcode = {% set function = 'pre_' ~ params.FUNCTION %} {% set move_accel = printer["gcode_macro _User_Variables"].move_accel|default(1000) %} M400 SAVE_GCODE_STATE NAME={function} SET_GCODE_OFFSET Z=0 G90 SET_VELOCITY_LIMIT ACCEL={move_accel} [gcode_macro _Homing_Variables] gcode = {% set reset = params.RESET|default(0) %} {% if reset %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ False } {% endif %} [gcode_macro Attach_Probe_Lock] description = Attaches Klicky Probe, can only be docked after unlocking gcode = Attach_Probe _Probe_Lock [gcode_macro Dock_Probe_Unlock] description = Docks Klicky Probe even if it was locked gcode = _Probe_Unlock Dock_Probe [gcode_macro _Probe_Unlock] description = Unlocks Klicky Probe state gcode = _KlickyDebug msg="_Probe_Lock setting probe_lock variable to False" SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ False } [gcode_macro _Probe_Lock] description = Locks Klicky Probe state gcode = _KlickyDebug msg="_Probe_Lock setting probe_lock variable to True" SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ True } [gcode_macro _DeployKlickyDock] description = Deploys Klicky servo-controlled dock gcode = {% set enable_dock_servo = printer["gcode_macro _User_Variables"].enable_dock_servo|default(False) %} {% set servo_delay = printer["gcode_macro _User_Variables"].servo_delay|default(1000) %} {% set servo_name = printer["gcode_macro _User_Variables"].servo_name %} {% set servo_deploy = printer["gcode_macro _User_Variables"].servo_deploy|default(360) %} M400 {% if enable_dock_servo != False %} _KlickyDebug msg="_DeployKlickyDock Klicky servo configuration enabled" {% if servo_deploy == 360 %} { action_raise_error("Klicky: servo active on klicky-variables, but no servo deploy angle specified") } {% endif %} _KlickyDebug msg="_DeployKlickyDock SET_SERVO SERVO={servo_name|string} ANGLE={servo_deploy|int}" SET_SERVO SERVO={servo_name|string} ANGLE={servo_deploy|int} M400 G4 P{servo_delay|int} _KlickyDebug msg="_DeployKlickyDock SET_SERVO SERVO={servo_name|string} WIDTH=0" SET_SERVO SERVO={servo_name|string} WIDTH=0 {% elif printer["gcode_macro _DeployDock"] is defined %} _KlickyDebug msg="_DeployKlickyDock calling _DeployDock" _DeployDock {% endif %} [gcode_macro _RetractKlickyDock] description = Retracts Klicky servo-controlled dock gcode = {% set enable_dock_servo = printer["gcode_macro _User_Variables"].enable_dock_servo|default(False) %} {% set servo_delay = printer["gcode_macro _User_Variables"].servo_delay|default(1000) %} {% set servo_name = printer["gcode_macro _User_Variables"].servo_name %} {% set servo_retract = printer["gcode_macro _User_Variables"].servo_retract|default(360) %} M400 {% if enable_dock_servo != False %} _KlickyDebug msg="_RetractKlickyDock Klicky servo configuration enabled" {% if servo_retract == 360 %} { action_raise_error("Klicky: servo active on klicky-variables, but no servo retract angle specified") } {% endif %} _KlickyDebug msg="_RetractKlickyDock SET_SERVO SERVO={servo_name|string} ANGLE={servo_retract|int}" SET_SERVO SERVO={servo_name|string} ANGLE={servo_retract|int} M400 G4 P{servo_delay|int} _KlickyDebug msg="_RetractKlickyDock SET_SERVO SERVO={servo_name|string} WIDTH=0" SET_SERVO SERVO={servo_name|string} WIDTH=0 {% elif printer["gcode_macro _RetractDock"] is defined %} _KlickyDebug msg="_RetractKlickyDock calling _RetractDock" _RetractDock {% endif %} [gcode_macro Attach_Probe] description = Attaches Klicky Probe gcode = {% set goback = params.BACK|default(0) %} {% set probe_attached = printer["gcode_macro _Probe_Variables"].probe_attached %} {% set probe_lock = printer["gcode_macro _Probe_Variables"].probe_lock %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} {% set dockmove_x = printer["gcode_macro _User_Variables"].dockmove_x|default(0) %} {% set dockmove_y = printer["gcode_macro _User_Variables"].dockmove_y|default(0) %} {% set dockmove_z = printer["gcode_macro _User_Variables"].dockmove_z|default(0) %} {% set docklocation_x = printer["gcode_macro _User_Variables"].docklocation_x %} {% set docklocation_y = printer["gcode_macro _User_Variables"].docklocation_y %} {% set docklocation_z = printer["gcode_macro _User_Variables"].docklocation_z %} {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} {% set attachmove2_x = printer["gcode_macro _User_Variables"].attachmove2_x|default(0) %} {% set attachmove2_y = printer["gcode_macro _User_Variables"].attachmove2_y|default(0) %} {% set attachmove2_z = printer["gcode_macro _User_Variables"].attachmove2_z|default(0) %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z %} {% set enable_z_hop = printer["gcode_macro _User_Variables"].enable_z_hop %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set dock_feedrate = printer["gcode_macro _User_Variables"].dock_speed * 60 %} {% set release_feedrate = printer["gcode_macro _User_Variables"].release_speed * 60 %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} _entry_point function=Attach_Probe {% if bypass_probe_docking == False %} {% if not 'xy' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X and Y Axis First!") } _KlickyDebug msg="Attach_Probe Axis homed" {% elif not probe_attached and not probe_lock %} _KlickyDebug msg="Attach_Probe going to attach probe" {% if verbose %} { action_respond_info("Attaching Probe") } {% endif %} _KLICKY_STATUS_BUSY {% if not 'z' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Resetting Z position to zero") } {% endif %} _KlickyDebug msg="Attach_Probe Z not homed, setting position as X=Y=Z=0" SET_KINEMATIC_POSITION Z=0 {% if not enable_z_hop %} _KlickyDebug msg="Attach_Probe z_hop disabled" {% set safe_z = 0 %} {% endif %} {% endif %} {% if printer.gcode_move.gcode_position.z < safe_z %} _KlickyDebug msg="Attach_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if not 'z' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Resetting Z position to zero, duplicate?") } {% endif %} _KlickyDebug msg="Attach_Probe Z not homed, setting position as X=Y=Z=0" SET_KINEMATIC_POSITION Z=0 {% endif %} {% if printer.gcode_move.gcode_position.z < safe_z %} _KlickyDebug msg="Attach_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Umbilical_Path _entry_point function=Attach_Probe_intern _KlickyDebug msg="Attach_Probe moving near the dock with G0 X{docklocation_x|int - attachmove_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove_y|int - attachmove2_y} F{travel_feedrate}" G0 X{docklocation_x|int - attachmove_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove_y|int - attachmove2_y} F{travel_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int - attachmove2_z|int} F{dock_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int - attachmove2_z|int} F{dock_feedrate} _KlickyDebug msg="Attach_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate} {% endif %} _DeployKlickyDock {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving to the dock with G0 Z{docklocation_z} F{dock_feedrate}" G0 Z{docklocation_z} F{dock_feedrate} {% endif %} _KlickyDebug msg="Attach_Probe moving to the dock with G0 X{docklocation_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove2_y} F{dock_feedrate}" G0 X{docklocation_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove2_y} F{dock_feedrate} _KlickyDebug msg="Attach_Probe moving to the dock with G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate}" G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving from the dock to G0 Z{docklocation_z|int - attachmove_z|int} F{z_drop_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int} F{z_drop_feedrate} {% endif %} _KlickyDebug msg="Attach_Probe moving from the dock to G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{release_feedrate}" G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{release_feedrate} _RetractKlickyDock {% if ((printer.gcode_move.gcode_position.z < safe_z) or (docklocation_z != -128 and docklocation_z < safe_z ))%} _KlickyDebug msg="Attach_Probe moving to a safe Z position: G0 Z{safe_z} F{z_drop_feedrate} from {printer.gcode_move.gcode_position.z}" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Park_Toolhead _CheckProbe action=attach _exit_point function=Attach_Probe_intern move={goback} _KLICKY_STATUS_READY {% elif probe_lock %} {% if verbose %} { action_respond_info("Probe locked!") } {% endif %} _KlickyDebug msg="Attach_Probe probe locked not attaching probe" _CheckProbe action=query {% else %} {% if verbose %} { action_respond_info("Probe already attached!") } {% endif %} _KlickyDebug msg="Attach_Probe probe already attached, doing nothing" _CheckProbe action=query {% endif %} _exit_point function=Attach_Probe {% else %} _KlickyDebug msg="Attach_Probe probe docking bypassed, doing nothing" {% endif %} [gcode_macro Dock_Probe] description = Docks Klicky Probe gcode = {% set goback = params.BACK|default(0) %} {% set probe_attached = printer["gcode_macro _Probe_Variables"].probe_attached %} {% set probe_lock = printer["gcode_macro _Probe_Variables"].probe_lock %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} {% set dockmove_x = printer["gcode_macro _User_Variables"].dockmove_x|default(0) %} {% set dockmove_y = printer["gcode_macro _User_Variables"].dockmove_y|default(0) %} {% set dockmove_z = printer["gcode_macro _User_Variables"].dockmove_z|default(0) %} {% set docklocation_x = printer["gcode_macro _User_Variables"].docklocation_x %} {% set docklocation_y = printer["gcode_macro _User_Variables"].docklocation_y %} {% set docklocation_z = printer["gcode_macro _User_Variables"].docklocation_z %} {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set dock_feedrate = printer["gcode_macro _User_Variables"].dock_speed * 60 %} {% set release_feedrate = printer["gcode_macro _User_Variables"].release_speed * 60 %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} {% if bypass_probe_docking == True %} _KlickyDebug msg="Attach_Probe probe docking bypassed, doing nothing" {% endif %} {% if bypass_probe_docking != True %} _entry_point function=Dock_Probe {% if probe_attached and not probe_lock %} _KLICKY_STATUS_BUSY {% if printer.gcode_move.gcode_position.z < safe_z %} _KlickyDebug msg="Dock_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Umbilical_Path _KlickyDebug msg="Dock_Probe moving near the dock with G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{travel_feedrate}" G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{travel_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Dock_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate} {% endif %} _DeployKlickyDock _KlickyDebug msg="Dock_Probe moving to the dock with G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate}" G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving to the dock with G0 Z{docklocation_z} F{dock_feedrate}" G0 Z{docklocation_z} F{dock_feedrate} {% endif %} {% if docklocation_z != -128 %} _KlickyDebug msg="Dock_Probe moving from the dock to G0 Z{docklocation_z|int + dockmove_z|int} F{release_feedrate}" G0 Z{docklocation_z|int + dockmove_z|int} F{release_feedrate} {% endif %} _KlickyDebug msg="Dock_Probe moving from the dock to G0 X{docklocation_x|int + dockmove_x|int} Y{docklocation_y|int + dockmove_y|int} F{release_feedrate}" G0 X{docklocation_x|int + dockmove_x|int} Y{docklocation_y|int + dockmove_y|int} F{release_feedrate} _RetractKlickyDock _KlickyDebug msg="Dock_Probe moving away from the dock to G0 X{docklocation_x|int + dockmove_x|int - attachmove_x|int} Y{docklocation_y|int + dockmove_y|int - attachmove_y|int} F{release_feedrate}" G0 X{docklocation_x|int + dockmove_x|int - attachmove_x|int} Y{docklocation_y|int + dockmove_y|int - attachmove_y|int} F{release_feedrate} {% if (printer.gcode_move.gcode_position.z < safe_z) %} _KlickyDebug msg="Dock_Probe moving to a safe Z position: G0 Z{safe_z} F{z_drop_feedrate} from {printer.gcode_move.gcode_position.z}" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Park_Toolhead G4 P1000 _CheckProbe action=dock _KLICKY_STATUS_READY {% elif probe_lock %} {% if verbose %} { action_respond_info("Probe locked") } {% endif %} _KlickyDebug msg="Dock_Probe probe locked not docking probe" _CheckProbe action=query {% else %} {% if verbose %} { action_respond_info("Probe already docked") } {% endif %} _KlickyDebug msg="Dock_Probe probe already docked, doing nothing" _CheckProbe action=query {% endif %} _exit_point function=Dock_Probe move={goback} {% else %} _KlickyDebug msg="Dock_Probe probe docking bypassed, doing nothing" {% endif %} [gcode_macro PROBE_CALIBRATE] rename_existing = _PROBE_CALIBRATE description = Calibrate the probes z_offset with klicky automount gcode = {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set max_x = printer["gcode_macro _User_Variables"].max_bed_x|float %} {% set max_y = printer["gcode_macro _User_Variables"].max_bed_y|float %} {% set probe_offset_x = printer['configfile'].config["probe"]["x_offset"]|float %} {% set probe_offset_y = printer['configfile'].config["probe"]["y_offset"]|float %} {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} {% if not 'xyz' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X, Y and Z Axis First!") } {% endif %} _KlickyDebug msg="probe_calibrate Axis homed" _KlickyDebug msg="probe_calibrate Variables max_x={max_x},max_y={max_y},probe_offset_x={probe_offset_x},probe_offset_y={probe_offset_y}" {% if printer['gcode_move'].position.y > (max_y - probe_offset_y) or printer['gcode_move'].position.y < - probe_offset_y or printer['gcode_move'].position.x > (max_x - probe_offset_x) or printer['gcode_move'].position.x < - probe_offset_x %} { action_raise_error("Must perform PROBE_CALIBRATE with the probe above the BED, check klicky_variables bed size!") } {% endif %} {% if bypass_probe_docking == False %} _CheckProbe action=query G90 Attach_Probe back=1 _KLICKY_STATUS_CALIBRATING_Z _KlickyDebug msg="probe_calibrate calling klipper probe_calibrate" _PROBE_CALIBRATE {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} M118 moving the toolhead 20 mm from the bed _KlickyDebug msg="probe_calibrate Moving Z up by 20mm" TESTZ Z=20 M118 remove manually the probe and continue calibration _KLICKY_STATUS_READY {% else %} _KLICKY_STATUS_CALIBRATING_Z _KlickyDebug msg="probe_calibrate calling klipper probe_calibrate" _PROBE_CALIBRATE {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} _KLICKY_STATUS_READY {% endif %} [gcode_macro PROBE_ACCURACY] rename_existing = _PROBE_ACCURACY description = Probe Z-height accuracy at current XY position with klicky automount gcode = {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set max_x = printer["gcode_macro _User_Variables"].max_bed_x|float %} {% set max_y = printer["gcode_macro _User_Variables"].max_bed_y|float %} {% set probe_offset_x = printer['configfile'].config["probe"]["x_offset"]|float %} {% set probe_offset_y = printer['configfile'].config["probe"]["y_offset"]|float %} {% if not 'xyz' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X, Y and Z Axis First!") } {% endif %} _KlickyDebug msg="probe_accuracy Axis homed" _KlickyDebug msg="probe_accuracy Variables max_x={max_x},max_y={max_y},probe_offset_x={probe_offset_x},probe_offset_y={probe_offset_y}" _entry_point function=PROBE_ACCURACY {% if printer['gcode_move'].position.y > (max_y - probe_offset_y) or printer['gcode_move'].position.y < - probe_offset_y or printer['gcode_move'].position.x > (max_x - probe_offset_x) or printer['gcode_move'].position.x < - probe_offset_x %} { action_raise_error("Must perform PROBE_ACCURACY with the probe above the BED, check klicky_variables bed size!") } {% endif%} _CheckProbe action=query Attach_Probe back=1 _KlickyDebug msg="probe_accuracy calling klipper probe accuracy" _PROBE_ACCURACY {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} Dock_Probe back=1 _exit_point function=PROBE_ACCURACY move=1 [homing_override] axes = xyz gcode = _User_Variables {% set verbose = printer["gcode_macro _User_Variables"].verbose %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z %} {% set enable_z_hop = printer["gcode_macro _User_Variables"].enable_z_hop %} {% set kinematic_z = 0 %} {% set dock_on_zhome = printer["gcode_macro _User_Variables"].dock_on_zhome|default(True) %} {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set home_backoff_x = printer["gcode_macro _User_Variables"].home_backoff_x|default(0) %} {% set home_backoff_y = printer["gcode_macro _User_Variables"].home_backoff_y|default(0) %} {% set override_homing = printer["gcode_macro _User_Variables"].override_homing|default('') %} _klicky_check_variables_version _CheckProbe action=query {% set home_x, home_y, home_z, leave_probe_attached = False, False, False, False %} {% if 'PROBE_LOCK' in params%} {% if verbose %} { action_respond_info("PROBE_LOCK = True") } {% endif %} {% set leave_probe_attached = True %} {% endif %} {% if not 'X' in params and not 'Y' in params and not 'Z' in params %} {% set home_x, home_y, home_z = True, True, True %} _KlickyDebug msg="homing_override goint to home all axes" {% else %} {% if 'X' in params %} {% set home_x = True %} _KlickyDebug msg="homing_override goint to home X" {% endif %} {% if 'Y' in params %} {% set home_y = True %} _KlickyDebug msg="homing_override goint to home Y" {% endif %} {% if 'Z' in params %} {% set home_z = True %} _KlickyDebug msg="homing_override goint to home Z" {% endif %} {% if 'X' in params and 'Y' in params and 'Z' in params %} _Homing_Variables reset=1 _KlickyDebug msg="homing_override goint to home all axes" {% endif %} {% endif %} _entry_point function=homing_override _KLICKY_STATUS_HOMING {% if 'z' not in printer.toolhead.homed_axes %} {% if enable_z_hop == False %} _KlickyDebug msg="homing_override z_hop disabled" {% set kinematic_z = safe_z %} {% set safe_z = safe_z %} {% endif %} {% endif %} {% if 'x' not in printer.toolhead.homed_axes and 'y' not in printer.toolhead.homed_axes and 'z' not in printer.toolhead.homed_axes%} {% if verbose %} { action_respond_info("No axis homed") } {% endif %} _KlickyDebug msg="homing_override no axis homed, setting position as X=Y=0 Z={kinematic_z}" SET_KINEMATIC_POSITION X=0 Y=0 Z={kinematic_z} M400 _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% if home_z != True %} _KlickyDebug msg="homing_override clearing axis homed state if not already homing Z" M84 {% endif %} {% endif %} {% if home_z %} {% if 'x' not in printer.toolhead.homed_axes and 'y' not in printer.toolhead.homed_axes%} {% if verbose %} { action_respond_info("X or Y not homed, forcing full G28") } {% endif %} {% set home_x, home_y, home_z = True, True, True %} {% endif %} {% endif %} {% if ((attachmove_y == 0 and override_homing == '' ) or (override_homing == 'Y'))%} {% if home_y %} {% if override_homing == 'Y' %} _KlickyDebug msg="homing_override Y homing first override, due to override_homing = Y" {% else %} _KlickyDebug msg="homing_override Y homing first override, due to attachmove_y = 0" {% endif %} {% if verbose %} { action_respond_info("Homing Y") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if printer["gcode_macro _HOME_Y"] is defined %} _KlickyDebug msg="homing_override calling _HOME_Y external script to handle the Y homing" _HOME_Y {% else %} _KlickyDebug msg="homing_override Homing Y G28 Y0" G28 Y0 {% if home_backoff_y != 0 %} {% if (printer.configfile.settings.stepper_y.position_endstop > (printer.configfile.settings.stepper_y.position_min|default(0) + printer.configfile.settings.stepper_y.position_max)/2) %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop-home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate} {% else %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate} {%endif %} {%endif %} {% endif %} {% endif %} {% set home_y = False %} {% endif %} {% if home_x %} {% if verbose %} { action_respond_info("Homing X") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in X homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if printer["gcode_macro _HOME_X"] is defined %} _KlickyDebug msg="homing_override calling _HOME_X external script to handle the X homing" _HOME_X {% else %} _KlickyDebug msg="homing_override Homing X, G28 X0" G28 X0 {% if home_backoff_x != 0 %} {% if (printer.configfile.settings.stepper_x.position_endstop > (printer.configfile.settings.stepper_x.position_min|default(0) + printer.configfile.settings.stepper_x.position_max)/2) %} _KlickyDebug msg="homing_override backing off X endstop, G0 X{printer.configfile.settings.stepper_x.position_endstop - home_backoff_x|int} F{travel_feedrate}" G0 X{printer.configfile.settings.stepper_x.position_endstop - home_backoff_x|int} F{travel_feedrate} {% else %} _KlickyDebug msg="homing_override backing off X endstop, G0 X{printer.configfile.settings.stepper_x.position_endstop + home_backoff_x|int} F{travel_feedrate}" G0 X{printer.configfile.settings.stepper_x.position_endstop + home_backoff_x|int} F{travel_feedrate} {%endif %} {%endif %} {% endif %} {% endif %} {% if home_y %} {% if verbose %} { action_respond_info("Homing Y") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if printer["gcode_macro _HOME_Y"] is defined %} _KlickyDebug msg="homing_override calling _HOME_Y external script to handle the Y homing" _HOME_Y {% else %} _KlickyDebug msg="homing_override Homing Y, G28 Y0" G28 Y0 {% if home_backoff_y != 0 %} {% if (printer.configfile.settings.stepper_y.position_endstop > (printer.configfile.settings.stepper_y.position_min|default(0) + printer.configfile.settings.stepper_y.position_max)/2) %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate} {% else %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate} {%endif %} {%endif %} {% endif %} {% endif %} {% if home_z %} {% if verbose %} { action_respond_info("Homing Z") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if 'z_virtual_endstop' in printer['configfile'].config["stepper_z"]["endstop_pin"] %} _KlickyDebug msg="homing_override probe configured as a virtual Z endstop attaching probe" Attach_Probe {% if leave_probe_attached %} _Probe_Lock {% endif %} {% elif dock_on_zhome == True %} Dock_Probe {% endif %} _Home_Z_ {% if 'z_virtual_endstop' in printer['configfile'].config["stepper_z"]["endstop_pin"] %} _KlickyDebug msg="homing_override probe no longer required, docking probe" Dock_Probe {% elif dock_on_zhome == False %} Dock_Probe {% endif %} {% endif %} _CheckProbe action=query _Park_Toolhead _exit_point function=homing_override _KLICKY_STATUS_READY [gcode_macro _Umbilical_Path] gcode = {% set umbilical = printer["gcode_macro _User_Variables"].umbilical %} {% set umbilical_x = printer["gcode_macro _User_Variables"].umbilical_x %} {% set umbilical_y = printer["gcode_macro _User_Variables"].umbilical_y %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% if umbilical %} _entry_point function=Umbilical_Path _KlickyDebug msg="_Umbilical_Path moving to G0 X{umbilical_x} Y{umbilical_y} Z{safe_z} F{travel_feedrate}" G0 X{umbilical_x} Y{umbilical_y} Z{safe_z} F{travel_feedrate} _exit_point function=Umbilical_Path {% endif %} [gcode_macro _Home_Z_] gcode = {% set z_endstop_x = printer["gcode_macro _Probe_Variables"].z_endstop_x %} {% set z_endstop_y = printer["gcode_macro _Probe_Variables"].z_endstop_y %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} _entry_point function=Home_Z {% if not 'xy' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X and Y Axis First!") } {% else %} _KlickyDebug msg="_Home_Z_ XY Axis homed" {% if not 'z' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Resetting Z position to zero") } {% endif %} _KlickyDebug msg="_Home_Z_ Z not homed, setting position as X=Y=Z=0" SET_KINEMATIC_POSITION Z=0 {% endif %} _KlickyDebug msg="_Home_Z_ moving to Z endstop position G0 X{z_endstop_x} Y{z_endstop_y} F{travel_feedrate}" G0 X{z_endstop_x} Y{z_endstop_y} F{travel_feedrate} _KlickyDebug msg="_Home_Z_ Homing Z G28 Z" G28 Z0 _KlickyDebug msg="_Home_Z_ toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _exit_point function=Home_Z [gcode_macro _CheckProbe] variable_probe_state = 0 gcode = Query_Probe _SetProbeState action={ params.ACTION } [gcode_macro _SetProbeState] gcode = {% set query_probe_triggered = printer.probe.last_query %} {% set action = params.ACTION|default('') %} {% if query_probe_triggered %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_attached VALUE={ False } {% else %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_attached VALUE={ True } {% endif %} {% if action == 'query' %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_state VALUE={ query_probe_triggered } {% endif %} {% if not query_probe_triggered and action == 'dock' %} { action_raise_error("Probe dock failed!") } {% endif %} {% if query_probe_triggered and action == 'attach' %} { action_raise_error("Probe attach failed!") } {% endif %} [gcode_macro _Park_Toolhead] gcode = {% set park_toolhead = printer["gcode_macro _User_Variables"].park_toolhead %} {% set parkposition_x = printer["gcode_macro _User_Variables"].parkposition_x %} {% set parkposition_y = printer["gcode_macro _User_Variables"].parkposition_y %} {% set parkposition_z = printer["gcode_macro _User_Variables"].parkposition_z %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} _entry_point function=Park_Toolhead {% if park_toolhead and 'xyz' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Parking Toolhead") } {% endif %} {% if parkposition_z == -128 %} _KlickyDebug msg="_Park_Toolhead moving to G0 X{parkposition_x} Y{parkposition_y} F{travel_feedrate}" G0 X{parkposition_x} Y{parkposition_y} F{travel_feedrate} {% else %} _KlickyDebug msg="_Park_Toolhead moving to G0 X{parkposition_x} Y{parkposition_y} Z{parkposition_z} F{travel_feedrate}" G0 X{parkposition_x} Y{parkposition_y} Z{parkposition_z} F{travel_feedrate} {% endif %} {% endif %} _exit_point function=Park_Toolhead [gcode_macro _klicky_status_ready] gcode = {% if printer['gcode_macro status_ready'] is defined %} _KlickyDebug msg="_klicky_status_ready activating the LED STATUS_READY" STATUS_READY {% endif %} [gcode_macro _klicky_status_busy] gcode = {% if printer['gcode_macro status_busy'] is defined %} _KlickyDebug msg="_klicky_status_busy activating the LED STATUS_BUSY" STATUS_BUSY {% endif %} [gcode_macro _klicky_status_leveling] gcode = {% if printer['gcode_macro status_leveling'] is defined %} _KlickyDebug msg="_klicky_status_leveling activating the LED STATUS_LEVELING" STATUS_LEVELING {% endif %} [gcode_macro _klicky_status_homing] gcode = {% if printer['gcode_macro status_homing'] is defined %} _KlickyDebug msg="_klicky_status_homing activating the LED STATUS_HOMING" STATUS_HOMING {% endif %} [gcode_macro _klicky_status_cleaning] gcode = {% if printer['gcode_macro status_cleaning'] is defined %} _KlickyDebug msg="_klicky_status_cleaning activating the LED STATUS_CLEANING" STATUS_CLEANING {% endif %} [gcode_macro _klicky_status_meshing] gcode = {% if printer['gcode_macro status_meshing'] is defined %} _KlickyDebug msg="_klicky_status_meshing activating the LED STATUS_MESHING" STATUS_MESHING {% endif %} [gcode_macro _klicky_status_calibrating_z] gcode = {% if printer['gcode_macro status_calibrating_z'] is defined %} _KlickyDebug msg="_klicky_status_calibrating_z activating the LED STATUS_CALIBRATING_Z" STATUS_CALIBRATING_Z {% endif %} [gcode_macro BED_MESH_CALIBRATE] rename_existing = _BED_MESH_CALIBRATE description = Perform Mesh Bed Leveling with klicky automount gcode = {% set V = printer["gcode_macro _User_Variables"].verbose %} {% if V %} { action_respond_info("Bed Mesh Calibrate") } {% endif %} _CheckProbe action=query G90 Attach_Probe _KLICKY_STATUS_MESHING _BED_MESH_CALIBRATE {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} Dock_Probe [gcode_macro Z_TILT_ADJUST] rename_existing = _Z_TILT_ADJUST description = gcode = {% set V = printer["gcode_macro _User_Variables"].verbose %} {% if V %} { action_respond_info("Z Tilt Adjust") } {% endif %} _CheckProbe action=query G90 Attach_Probe _KLICKY_STATUS_LEVELING _Z_TILT_ADJUST {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} Dock_Probe G28 Z0 [mcu] serial = /dev/serial/by-id/usb-Klipper_stm32f446xx_250031000750535556323420-if00 [printer] kinematics = hybrid_corexy max_velocity = 400 max_accel = 3000 max_z_velocity = 5 max_z_accel = 200 [stepper_x] step_pin = PF13 dir_pin = PF12 enable_pin = !PF14 microsteps = 16 rotation_distance = 40 endstop_pin = !PG6 position_endstop = -20 position_min = -20 position_max = 270 homing_speed = 50 [dual_carriage] step_pin = PG0 dir_pin = PG1 enable_pin = !PF15 microsteps = 16 rotation_distance = 40 endstop_pin = !PG9 position_endstop = 350 position_min = 80 position_max = 350 homing_speed = 50 [stepper_y] step_pin = PF11 dir_pin = !PG3 enable_pin = !PG5 microsteps = 16 rotation_distance = 40 endstop_pin = !PG10 position_endstop = 320 position_max = 320 position_min = 0 homing_speed = 50 [stepper_y1] step_pin = PG4 dir_pin = PC1 enable_pin = !PA0 microsteps = 16 rotation_distance = 40 endstop_pin = !PG11 [stepper_z] step_pin = PF9 dir_pin = PF10 enable_pin = !PG2 microsteps = 16 rotation_distance = 2 endstop_pin = probe:z_virtual_endstop position_min = 0 position_max = 200 [stepper_z1] step_pin = PC13 dir_pin = PF0 enable_pin = !PF1 microsteps = 16 rotation_distance = 2 endstop_pin = probe:z_virtual_endstop [stepper_z2] step_pin = PE2 dir_pin = PE3 enable_pin = !PD4 microsteps = 16 rotation_distance = 2 endstop_pin = probe:z_virtual_endstop [extruder] step_pin = PE6 dir_pin = PA14 enable_pin = !PE0 microsteps = 16 full_steps_per_rotation = 200 rotation_distance = 4.637 nozzle_diameter = 0.400 filament_diameter = 1.750 max_extrude_only_distance = 500.0 max_extrude_only_velocity = 120 heater_pin = PA2 sensor_pin = PF4 sensor_type = ATC Semitec 104NT-4-R025H42G min_temp = 0 max_temp = 300 control = pid pid_kp = 32.724 pid_ki = 3.576 pid_kd = 74.855 [probe] pin = PG14 x_offset = 0 y_offset = 25.0 z_offset = 1 speed = 10.0 samples = 3 samples_result = median sample_retract_dist = 3.0 samples_tolerance = 0.006 samples_tolerance_retries = 3 [z_tilt] z_positions = -69, -19 79, 150 69, -19 points = 20, 0 155, 250 250, 0 speed = 50 horizontal_move_z = 15 retries = 10 retry_tolerance = 0.01 [bed_mesh] speed = 120 horizontal_move_z = 15 mesh_min = 50,20 mesh_max = 230,200 probe_count = 5,5 algorithm = bicubic fade_start = 1 fade_end = 10 fade_target = 0 [filament_switch_sensor material_0] switch_pin = !PG12 [filament_switch_sensor material_1] switch_pin = !PG13 [heater_fan fan0] pin = PA8 [fan_generic Part_T0] pin = PE5 [heater_fan fan1] pin = PD12 [fan_generic Part_T1] pin = PD13 [tmc2209 stepper_x] uart_pin = PC4 run_current = 0.8 stealthchop_threshold = 999999 [tmc2209 dual_carriage] uart_pin = PD11 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_y] uart_pin = PC6 run_current = 0.8 stealthchop_threshold = 999999 [tmc2209 stepper_y1] uart_pin = PC7 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_z] uart_pin = PF2 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_z1] uart_pin = PE4 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_z2] uart_pin = PE1 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 extruder] uart_pin = PD3 run_current = 0.850 hold_current = 0.100 stealthchop_threshold = 0 [board_pins] aliases = EXP1_1=PE8, EXP1_2=PE7, EXP1_3=PE9, EXP1_4=PE10, EXP1_5=PE12, EXP1_6=PE13, EXP1_7=PE14, EXP1_8=PE15, EXP1_9=, EXP1_10=<5V>, EXP2_1=PA6, EXP2_2=PA5, EXP2_3=PB1, EXP2_4=PA4, EXP2_5=PB2, EXP2_6=PA7, EXP2_7=PC15, EXP2_8=, EXP2_9=, EXP2_10=PC5 ======================= Extruder max_extrude_ratio=0.266081 mcu 'mcu': Starting serial connect webhooks client 281472846698816: New connection webhooks client 281472846698816: Client info {'program': 'Moonraker', 'version': 'v0.8.0-247-g3008a13'} Loaded MCU 'mcu' 119 commands (v0.11.0-241-gffb5105b / gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2) MCU 'mcu' config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_i2c3=PA8,PC9 BUS_PINS_sdio=PC12,PD2,PC8,PC9,PC10,PC11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi2a=PC2,PC3,PB10 BUS_PINS_spi3=PB4,PB5,PB3 BUS_PINS_spi3a=PC11,PC12,PC10 BUS_PINS_spi4=PE13,PE14,PE12 CLOCK_FREQ=180000000 MCU=stm32f446xx PWM_MAX=255 RESERVE_PINS_USB=PA11,PA12 RESERVE_PINS_crystal=PH0,PH1 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 Sending MCU 'mcu' printer configuration... Configured MCU 'mcu' (1024 moves) bed_mesh: generated points Index | Tool Adjusted | Probe 0 | (50.0, -5.0) | (50.0, 20.0) 1 | (95.0, -5.0) | (95.0, 20.0) 2 | (140.0, -5.0) | (140.0, 20.0) 3 | (185.0, -5.0) | (185.0, 20.0) 4 | (230.0, -5.0) | (230.0, 20.0) 5 | (230.0, 40.0) | (230.0, 65.0) 6 | (185.0, 40.0) | (185.0, 65.0) 7 | (140.0, 40.0) | (140.0, 65.0) 8 | (95.0, 40.0) | (95.0, 65.0) 9 | (50.0, 40.0) | (50.0, 65.0) 10 | (50.0, 85.0) | (50.0, 110.0) 11 | (95.0, 85.0) | (95.0, 110.0) 12 | (140.0, 85.0) | (140.0, 110.0) 13 | (185.0, 85.0) | (185.0, 110.0) 14 | (230.0, 85.0) | (230.0, 110.0) 15 | (230.0, 130.0) | (230.0, 155.0) 16 | (185.0, 130.0) | (185.0, 155.0) 17 | (140.0, 130.0) | (140.0, 155.0) 18 | (95.0, 130.0) | (95.0, 155.0) 19 | (50.0, 130.0) | (50.0, 155.0) 20 | (50.0, 175.0) | (50.0, 200.0) 21 | (95.0, 175.0) | (95.0, 200.0) 22 | (140.0, 175.0) | (140.0, 200.0) 23 | (185.0, 175.0) | (185.0, 200.0) 24 | (230.0, 175.0) | (230.0, 200.0) Starting heater checks for extruder Stats 234.3: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=3763 bytes_read=7314 bytes_retransmit=9 bytes_invalid=0 send_seq=306 receive_seq=306 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180002273 sysload=0.55 cputime=10.905 memavail=703228 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=0.0 pwm=0.000 webhooks: registering remote method 'shutdown_machine' for connection id: 281472846698816 webhooks: registering remote method 'reboot_machine' for connection id: 281472846698816 webhooks: registering remote method 'pause_job_queue' for connection id: 281472846698816 webhooks: registering remote method 'start_job_queue' for connection id: 281472846698816 Stats 235.3: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=3777 bytes_read=7360 bytes_retransmit=9 bytes_invalid=0 send_seq=308 receive_seq=308 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180002996 sysload=0.74 cputime=10.969 memavail=703216 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 236.3: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000006 bytes_write=3783 bytes_read=7436 bytes_retransmit=9 bytes_invalid=0 send_seq=309 receive_seq=309 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003048 sysload=0.74 cputime=11.004 memavail=703092 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Stats 237.3: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000006 bytes_write=3789 bytes_read=7512 bytes_retransmit=9 bytes_invalid=0 send_seq=310 receive_seq=310 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003534 sysload=0.74 cputime=11.027 memavail=703384 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 238.3: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000006 bytes_write=3795 bytes_read=7573 bytes_retransmit=9 bytes_invalid=0 send_seq=311 receive_seq=311 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003446 sysload=0.74 cputime=11.048 memavail=703856 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 239.3: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000006 bytes_write=3801 bytes_read=7634 bytes_retransmit=9 bytes_invalid=0 send_seq=312 receive_seq=312 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003288 sysload=0.74 cputime=11.066 memavail=703424 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 SET_KINEMATIC_POSITION pos=100.000,100.000,10.000 Stats 240.3: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000006 bytes_write=3807 bytes_read=7710 bytes_retransmit=9 bytes_invalid=0 send_seq=313 receive_seq=313 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003564 sysload=0.68 cputime=11.095 memavail=704012 print_time=9.115 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 241.3: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3813 bytes_read=7784 bytes_retransmit=9 bytes_invalid=0 send_seq=314 receive_seq=314 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180004088 sysload=0.68 cputime=11.115 memavail=704032 print_time=9.115 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 242.3: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3819 bytes_read=7845 bytes_retransmit=9 bytes_invalid=0 send_seq=315 receive_seq=315 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180004420 sysload=0.68 cputime=11.136 memavail=704124 print_time=9.115 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 243.3: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4224 bytes_read=8270 bytes_retransmit=9 bytes_invalid=0 send_seq=337 receive_seq=337 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180004184 sysload=0.68 cputime=11.202 memavail=704424 print_time=12.316 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 244.3: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4258 bytes_read=8377 bytes_retransmit=9 bytes_invalid=0 send_seq=340 receive_seq=340 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180004007 sysload=0.68 cputime=11.229 memavail=704084 print_time=12.316 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 245.3: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4421 bytes_read=8530 bytes_retransmit=9 bytes_invalid=0 send_seq=347 receive_seq=347 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003909 sysload=0.63 cputime=11.263 memavail=703920 print_time=14.833 buffer_time=0.274 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Stats 246.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=5597 bytes_read=9658 bytes_retransmit=9 bytes_invalid=0 send_seq=407 receive_seq=407 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003869 sysload=0.63 cputime=11.413 memavail=703996 print_time=14.833 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Stats 247.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=6070 bytes_read=9938 bytes_retransmit=9 bytes_invalid=0 send_seq=423 receive_seq=423 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003983 sysload=0.63 cputime=11.461 memavail=703828 print_time=15.880 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 248.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=6543 bytes_read=10218 bytes_retransmit=9 bytes_invalid=0 send_seq=439 receive_seq=439 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003919 sysload=0.63 cputime=11.505 memavail=704168 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 249.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=6667 bytes_read=10494 bytes_retransmit=9 bytes_invalid=0 send_seq=449 receive_seq=449 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003813 sysload=0.63 cputime=11.558 memavail=703748 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 250.3: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=6785 bytes_read=10739 bytes_retransmit=9 bytes_invalid=0 send_seq=458 receive_seq=458 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003782 sysload=0.58 cputime=11.597 memavail=703780 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 251.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=6903 bytes_read=10999 bytes_retransmit=9 bytes_invalid=0 send_seq=467 receive_seq=467 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003743 sysload=0.58 cputime=11.641 memavail=703340 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 252.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=7021 bytes_read=11259 bytes_retransmit=9 bytes_invalid=0 send_seq=476 receive_seq=476 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003711 sysload=0.58 cputime=11.681 memavail=703888 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 253.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=7139 bytes_read=11504 bytes_retransmit=9 bytes_invalid=0 send_seq=485 receive_seq=485 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003690 sysload=0.58 cputime=11.724 memavail=703972 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 254.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=7257 bytes_read=11748 bytes_retransmit=9 bytes_invalid=0 send_seq=494 receive_seq=494 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003677 sysload=0.58 cputime=11.764 memavail=703752 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Stats 255.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=7375 bytes_read=12003 bytes_retransmit=9 bytes_invalid=0 send_seq=503 receive_seq=503 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003667 sysload=0.53 cputime=11.805 memavail=703280 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 256.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7493 bytes_read=12263 bytes_retransmit=9 bytes_invalid=0 send_seq=512 receive_seq=512 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003749 sysload=0.53 cputime=11.859 memavail=703684 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 257.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7611 bytes_read=12508 bytes_retransmit=9 bytes_invalid=0 send_seq=521 receive_seq=521 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003729 sysload=0.53 cputime=11.900 memavail=703676 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 258.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7729 bytes_read=12768 bytes_retransmit=9 bytes_invalid=0 send_seq=530 receive_seq=530 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003716 sysload=0.53 cputime=11.942 memavail=703832 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 259.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7847 bytes_read=13013 bytes_retransmit=9 bytes_invalid=0 send_seq=539 receive_seq=539 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003704 sysload=0.53 cputime=11.979 memavail=703832 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 260.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7965 bytes_read=13258 bytes_retransmit=9 bytes_invalid=0 send_seq=548 receive_seq=548 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003692 sysload=0.49 cputime=12.021 memavail=703792 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 261.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8083 bytes_read=13533 bytes_retransmit=9 bytes_invalid=0 send_seq=557 receive_seq=557 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003685 sysload=0.49 cputime=12.060 memavail=703872 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 262.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8201 bytes_read=13778 bytes_retransmit=9 bytes_invalid=0 send_seq=566 receive_seq=566 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003701 sysload=0.49 cputime=12.100 memavail=703872 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 263.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8319 bytes_read=14023 bytes_retransmit=9 bytes_invalid=0 send_seq=575 receive_seq=575 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003685 sysload=0.49 cputime=12.155 memavail=703876 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 264.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8437 bytes_read=14283 bytes_retransmit=9 bytes_invalid=0 send_seq=584 receive_seq=584 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003692 sysload=0.49 cputime=12.193 memavail=704128 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 265.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8555 bytes_read=14528 bytes_retransmit=9 bytes_invalid=0 send_seq=593 receive_seq=593 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003785 sysload=0.53 cputime=12.234 memavail=704128 print_time=16.973 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 266.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8710 bytes_read=14793 bytes_retransmit=9 bytes_invalid=0 send_seq=603 receive_seq=603 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003780 sysload=0.53 cputime=12.298 memavail=704428 print_time=36.338 buffer_time=0.766 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Attempting MCU 'mcu' reset command webhooks client 281472846698816: Disconnected Restarting printer Start printer at Mon Jan 15 08:55:46 2024 (1705305346.4 268.3) ===== Config file ===== [force_move] enable_force_move = True [virtual_sdcard] path = ~/printer_data/gcodes on_error_gcode = CANCEL_PRINT [pause_resume] [display_status] [respond] [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %} {% set retract = client.cancel_retract|default(5.0)|abs %} {% set park_x = "" if (client.park_at_cancel_x|default(none) is none) else "X=" ~ client.park_at_cancel_x %} {% set park_y = "" if (client.park_at_cancel_y|default(none) is none) else "Y=" ~ client.park_at_cancel_y %} {% set custom_park = park_x|length > 0 or park_y|length > 0 %} {% if printer['gcode_macro RESUME'].restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro RESUME'].restore_idle_timeout} {% endif %} {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %} _CLIENT_RETRACT LENGTH={retract} TURN_OFF_HEATERS M106 S0 {client.user_cancel_macro|default("")} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False SET_PAUSE_NEXT_LAYER ENABLE=0 SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0 CANCEL_PRINT_BASE [gcode_macro PAUSE] description = Pause the actual running print rename_existing = PAUSE_BASE gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set idle_timeout = client.idle_timeout|default(0) %} {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0 %} {% set restore = False if printer.toolhead.extruder == '' else True if params.RESTORE|default(1)|int == 1 else False %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}" {% if idle_timeout > 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout} SET_IDLE_TIMEOUT TIMEOUT={idle_timeout} {% endif %} PAUSE_BASE {client.user_pause_macro|default("")} _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams} [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE variable_last_extruder_temp = {'restore': False, 'temp': 0} variable_restore_idle_timeout = 0 variable_idle_state = False gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} {% set sp_move = client.speed_move|default(velocity) %} {% set runout_resume = True if client.runout_sensor|default("") == "" else True if not printer[client.runout_sensor].enabled else printer[client.runout_sensor].filament_detected %} {% set can_extrude = True if printer.toolhead.extruder == '' else printer[printer.toolhead.extruder].can_extrude %} {% set do_resume = False %} {% set prompt_txt = [] %} {% if printer.idle_timeout.state|upper == "IDLE" or idle_state %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False {% if last_extruder_temp.restore %} RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp.temp) }' M109 S{last_extruder_temp.temp} {% set do_resume = True %} {% elif can_extrude %} {% set do_resume = True %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}' {% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %} {% endif %} {% elif can_extrude %} {% set do_resume = True %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}' {% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %} {% endif %} {% if runout_resume %} {% if do_resume %} {% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %} {client.user_resume_macro|default("")} _CLIENT_EXTRUDE RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)} {% endif %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]}' {% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]) %} {% endif %} {% if not (runout_resume and do_resume) %} RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!" {% for element in prompt_txt %} RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}' {% endfor %} RESPOND TYPE=command MSG="action:prompt_footer_button Ok|RESPOND TYPE=command MSG=action:prompt_end|info" RESPOND TYPE=command MSG="action:prompt_show" {% endif %} [gcode_macro SET_PAUSE_NEXT_LAYER] description = Enable a pause if the next layer is reached gcode = {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %} {% set ENABLE = params.ENABLE|default(1)|int != 0 %} {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %} SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}" [gcode_macro SET_PAUSE_AT_LAYER] description = Enable/disable a pause if a given layer number is reached gcode = {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %} {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined else params.LAYER is defined %} {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %} {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %} SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}" [gcode_macro SET_PRINT_STATS_INFO] rename_existing = SET_PRINT_STATS_INFO_BASE description = Overwrite, to get pause_next_layer and pause_at_layer feature variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" } variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" } gcode = {% if pause_next_layer.enable %} RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}' {pause_next_layer.call} SET_PAUSE_NEXT_LAYER ENABLE=0 {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %} RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}' {pause_at_layer.call} SET_PAUSE_AT_LAYER ENABLE=0 {% endif %} SET_PRINT_STATS_INFO_BASE {rawparams} [gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL] description = Helper: park toolhead used in PAUSE and CANCEL_PRINT gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} {% set use_custom = client.use_custom_pos|default(false)|lower == 'true' %} {% set custom_park_x = client.custom_park_x|default(0.0) %} {% set custom_park_y = client.custom_park_y|default(0.0) %} {% set park_dz = client.custom_park_dz|default(2.0)|abs %} {% set sp_hop = client.speed_hop|default(15) * 60 %} {% set sp_move = client.speed_move|default(velocity) * 60 %} {% set origin = printer.gcode_move.homing_origin %} {% set act = printer.gcode_move.gcode_position %} {% set max = printer.toolhead.axis_maximum %} {% set cone = printer.toolhead.cone_start_z|default(max.z) %} {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch'] else False %} {% set z_min = params.Z_MIN|default(0)|float %} {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %} {% set x_park = params.X if params.X is defined else custom_park_x if use_custom else 0.0 if round_bed else (max.x - 5.0) %} {% set y_park = params.Y if params.Y is defined else custom_park_y if use_custom else (max.y - 5.0) if round_bed and z_park < cone else 0.0 if round_bed else (max.y - 5.0) %} _CLIENT_RETRACT {% if "xyz" in printer.toolhead.homed_axes %} G90 G1 Z{z_park} F{sp_hop} G1 X{x_park} Y{y_park} F{sp_move} {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %} {% else %} RESPOND TYPE=echo MSG='Printer not homed' {% endif %} [gcode_macro _CLIENT_EXTRUDE] description = Extrudes, if the extruder is hot enough gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %} {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %} {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %} {% set absolute_extrude = printer.gcode_move.absolute_extrude %} {% if printer.toolhead.extruder != '' %} {% if printer[printer.toolhead.extruder].can_extrude %} {% if use_fw_retract %} {% if length < 0 %} G10 {% else %} G11 {% endif %} {% else %} M83 G1 E{length} F{(speed|float|abs) * 60} {% if absolute_extrude %} M82 {% endif %} {% endif %} {% else %} RESPOND TYPE=echo MSG='{"\"%s\" not hot enough" % printer.toolhead.extruder}' {% endif %} {% endif %} [gcode_macro _CLIENT_RETRACT] description = Retracts, if the extruder is hot enough gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %} {% set speed = params.SPEED|default(client.speed_retract)|default(35) %} _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs} [gcode_macro _START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(40)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(200)|float %} M140 S{BED_TEMP} M104 S{EXTRUDER_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_PROFILE LOAD=default M220 S100 M221 S100 G92 E0 G1 Z10.0 F3000 G1 X10.1 Y20 F5000.0 M190 S{BED_TEMP} M109 S{EXTRUDER_TEMP} G1 Z0.28 G1 X10.1 Y200.0 Z0.32 F1500.0 E15 G1 X10.4 Y200.0 Z0.32 F5000.0 G1 X10.4 Y20 Z0.32 F1500.0 E30 G92 E0 G1 Z3.0 F3000 [gcode_macro _END_PRINT] gcode = M140 S0 M104 S0 M104 S0 T1 M106 S0 G91 G1 X-2 Y-2 E-3 F300 G1 Z10 F3000 G90 G1 X220Y220 M84 [gcode_macro PARK_extruder] gcode = G90 G1 X{printer['toolhead'].axis_minimum.y} [gcode_macro T0] gcode = PARK_{printer.toolhead.extruder} ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=0 [gcode_macro PARK_extruder1] gcode = G90 G1 X{printer['toolhead'].axis_maximum.y} [gcode_macro T1] gcode = PARK_{printer.toolhead.extruder} ACTIVATE_EXTRUDER EXTRUDER=extruder1 SET_DUAL_CARRIAGE CARRIAGE=1 [gcode_macro ACTIVATE_COPY_MODE] gcode = SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY G1 X0 ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY G1 X{printer['toolhead'].axis_maximum.y/2} SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder [gcode_macro ACTIVATE_MIRROR_MODE] gcode = SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY G1 X0 ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY G1 X{printer['toolhead'].axis_maximum.y} SET_DUAL_CARRIAGE CARRIAGE=1 MODE=MIRROR SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder [gcode_macro UNLOAD_FILAMENT_T0] gcode = M83 G1 E10 F300 G1 E-780 F1800 M82 [gcode_macro LOAD_FILAMENT_T0] gcode = M83 G1 E750 F1800 G1 E30 F300 G1 E15 F150 M82 [gcode_macro UNLOAD_FILAMENT_T1] gcode = M83 G1 E10 F300 G1 E-780 F1800 M82 [gcode_macro LOAD_FILAMENT_T1] gcode = M83 G1 E750 F1800 G1 E30 F300 G1 E15 F150 M82 [gcode_macro DUMP_PARAMETERS] description = Debug: Print all entries of the printer object gcode = {% set parameters = namespace(output = '') %} {% for name1 in printer %} {% for name2 in printer[name1] %} {% set donotwant = ['configfile'] %} {% if name1 is not in donotwant %} {% set param = "printer['%s'].%s = %s" % (name1, name2, printer[name1][name2]) %} {% set parameters.output = parameters.output + param + "\n" %} {% endif %} {% endfor %} {% endfor %} {action_respond_info(parameters.output)} [gcode_macro _User_Variables] variable_verbose = True variable_debug = False variable_travel_speed = 200 variable_move_accel = 1000 variable_dock_speed = 50 variable_release_speed = 75 variable_z_drop_speed = 20 variable_safe_z = 25 variable_enable_z_hop = True variable_max_bed_y = 300 variable_max_bed_x = 300 variable_z_endstop_x = 0 variable_z_endstop_y = 0 variable_docklocation_x = 100 variable_docklocation_y = 320 variable_docklocation_z = -128 variable_enable_dock_servo = False variable_servo_name = 'NAME' variable_servo_deploy = 10 variable_servo_retract = 11 variable_servo_delay = 250 variable_dockmove_x = 50 variable_dockmove_y = 0 variable_dockmove_z = 0 variable_attachmove_x = 0 variable_attachmove_y = 30 variable_attachmove_z = 0 variable_umbilical = False variable_umbilical_x = 15 variable_umbilical_y = 15 variable_park_toolhead = False variable_parkposition_x = 125 variable_parkposition_y = 125 variable_parkposition_z = 30 variable_version = 1 variable_attachmove2_x = 0 variable_attachmove2_y = 0 variable_attachmove2_z = 0 variable_home_backoff_x = 10 variable_home_backoff_y = 10 variable_override_homing = '' variable_dock_on_zhome = True gcode = {% set Mx = printer['configfile'].config["stepper_x"]["position_max"]|float %} {% set My = printer['configfile'].config["stepper_y"]["position_max"]|float %} {% set Ox = printer['configfile'].config["probe"]["x_offset"]|float %} {% set Oy = printer['configfile'].config["probe"]["y_offset"]|float %} {% set Oz = printer['configfile'].config["probe"]["z_offset"]|float %} {% if z_endstop_x != 0 or z_endstop_y != 0 %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_x VALUE={ z_endstop_x } SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_y VALUE={ z_endstop_y } {% else %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_x VALUE={ (Mx * 0.5) - Ox } SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_y VALUE={ (My * 0.5) - Oy } {% endif %} [gcode_macro _Probe_Variables] variable_probe_attached = False variable_probe_state = False variable_probe_lock = False variable_probe_z_homed = False variable_z_endstop_x = 0 variable_z_endstop_y = 0 gcode = [gcode_macro _klicky_check_variables_version] gcode = {% set version = printer["gcode_macro _User_Variables"].version|default(0) %} {% if version != 1 %} { action_raise_error("Please update your klicky variables, there are some functionality changes") } {% endif %} [gcode_macro _KlickyDebug] gcode = {% set message = params.MSG %} {% set debug = printer["gcode_macro _User_Variables"].debug|default(False) %} {% if debug %} { action_respond_info(message) } {% endif %} [gcode_macro _exit_point] gcode = {% set function = 'pre_' ~ params.FUNCTION %} {% set move = params.MOVE|default(0) %} {% set speed = printer["gcode_macro _User_Variables"].travel_speed %} M400 SET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel} SET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel} RESTORE_GCODE_STATE NAME={function} MOVE={move} MOVE_SPEED={speed} [gcode_macro _entry_point] gcode = {% set function = 'pre_' ~ params.FUNCTION %} {% set move_accel = printer["gcode_macro _User_Variables"].move_accel|default(1000) %} M400 SAVE_GCODE_STATE NAME={function} SET_GCODE_OFFSET Z=0 G90 SET_VELOCITY_LIMIT ACCEL={move_accel} [gcode_macro _Homing_Variables] gcode = {% set reset = params.RESET|default(0) %} {% if reset %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ False } {% endif %} [gcode_macro Attach_Probe_Lock] description = Attaches Klicky Probe, can only be docked after unlocking gcode = Attach_Probe _Probe_Lock [gcode_macro Dock_Probe_Unlock] description = Docks Klicky Probe even if it was locked gcode = _Probe_Unlock Dock_Probe [gcode_macro _Probe_Unlock] description = Unlocks Klicky Probe state gcode = _KlickyDebug msg="_Probe_Lock setting probe_lock variable to False" SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ False } [gcode_macro _Probe_Lock] description = Locks Klicky Probe state gcode = _KlickyDebug msg="_Probe_Lock setting probe_lock variable to True" SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ True } [gcode_macro _DeployKlickyDock] description = Deploys Klicky servo-controlled dock gcode = {% set enable_dock_servo = printer["gcode_macro _User_Variables"].enable_dock_servo|default(False) %} {% set servo_delay = printer["gcode_macro _User_Variables"].servo_delay|default(1000) %} {% set servo_name = printer["gcode_macro _User_Variables"].servo_name %} {% set servo_deploy = printer["gcode_macro _User_Variables"].servo_deploy|default(360) %} M400 {% if enable_dock_servo != False %} _KlickyDebug msg="_DeployKlickyDock Klicky servo configuration enabled" {% if servo_deploy == 360 %} { action_raise_error("Klicky: servo active on klicky-variables, but no servo deploy angle specified") } {% endif %} _KlickyDebug msg="_DeployKlickyDock SET_SERVO SERVO={servo_name|string} ANGLE={servo_deploy|int}" SET_SERVO SERVO={servo_name|string} ANGLE={servo_deploy|int} M400 G4 P{servo_delay|int} _KlickyDebug msg="_DeployKlickyDock SET_SERVO SERVO={servo_name|string} WIDTH=0" SET_SERVO SERVO={servo_name|string} WIDTH=0 {% elif printer["gcode_macro _DeployDock"] is defined %} _KlickyDebug msg="_DeployKlickyDock calling _DeployDock" _DeployDock {% endif %} [gcode_macro _RetractKlickyDock] description = Retracts Klicky servo-controlled dock gcode = {% set enable_dock_servo = printer["gcode_macro _User_Variables"].enable_dock_servo|default(False) %} {% set servo_delay = printer["gcode_macro _User_Variables"].servo_delay|default(1000) %} {% set servo_name = printer["gcode_macro _User_Variables"].servo_name %} {% set servo_retract = printer["gcode_macro _User_Variables"].servo_retract|default(360) %} M400 {% if enable_dock_servo != False %} _KlickyDebug msg="_RetractKlickyDock Klicky servo configuration enabled" {% if servo_retract == 360 %} { action_raise_error("Klicky: servo active on klicky-variables, but no servo retract angle specified") } {% endif %} _KlickyDebug msg="_RetractKlickyDock SET_SERVO SERVO={servo_name|string} ANGLE={servo_retract|int}" SET_SERVO SERVO={servo_name|string} ANGLE={servo_retract|int} M400 G4 P{servo_delay|int} _KlickyDebug msg="_RetractKlickyDock SET_SERVO SERVO={servo_name|string} WIDTH=0" SET_SERVO SERVO={servo_name|string} WIDTH=0 {% elif printer["gcode_macro _RetractDock"] is defined %} _KlickyDebug msg="_RetractKlickyDock calling _RetractDock" _RetractDock {% endif %} [gcode_macro Attach_Probe] description = Attaches Klicky Probe gcode = {% set goback = params.BACK|default(0) %} {% set probe_attached = printer["gcode_macro _Probe_Variables"].probe_attached %} {% set probe_lock = printer["gcode_macro _Probe_Variables"].probe_lock %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} {% set dockmove_x = printer["gcode_macro _User_Variables"].dockmove_x|default(0) %} {% set dockmove_y = printer["gcode_macro _User_Variables"].dockmove_y|default(0) %} {% set dockmove_z = printer["gcode_macro _User_Variables"].dockmove_z|default(0) %} {% set docklocation_x = printer["gcode_macro _User_Variables"].docklocation_x %} {% set docklocation_y = printer["gcode_macro _User_Variables"].docklocation_y %} {% set docklocation_z = printer["gcode_macro _User_Variables"].docklocation_z %} {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} {% set attachmove2_x = printer["gcode_macro _User_Variables"].attachmove2_x|default(0) %} {% set attachmove2_y = printer["gcode_macro _User_Variables"].attachmove2_y|default(0) %} {% set attachmove2_z = printer["gcode_macro _User_Variables"].attachmove2_z|default(0) %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z %} {% set enable_z_hop = printer["gcode_macro _User_Variables"].enable_z_hop %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set dock_feedrate = printer["gcode_macro _User_Variables"].dock_speed * 60 %} {% set release_feedrate = printer["gcode_macro _User_Variables"].release_speed * 60 %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} _entry_point function=Attach_Probe {% if bypass_probe_docking == False %} {% if not 'xy' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X and Y Axis First!") } _KlickyDebug msg="Attach_Probe Axis homed" {% elif not probe_attached and not probe_lock %} _KlickyDebug msg="Attach_Probe going to attach probe" {% if verbose %} { action_respond_info("Attaching Probe") } {% endif %} _KLICKY_STATUS_BUSY {% if not 'z' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Resetting Z position to zero") } {% endif %} _KlickyDebug msg="Attach_Probe Z not homed, setting position as X=Y=Z=0" SET_KINEMATIC_POSITION Z=0 {% if not enable_z_hop %} _KlickyDebug msg="Attach_Probe z_hop disabled" {% set safe_z = 0 %} {% endif %} {% endif %} {% if printer.gcode_move.gcode_position.z < safe_z %} _KlickyDebug msg="Attach_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if not 'z' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Resetting Z position to zero, duplicate?") } {% endif %} _KlickyDebug msg="Attach_Probe Z not homed, setting position as X=Y=Z=0" SET_KINEMATIC_POSITION Z=0 {% endif %} {% if printer.gcode_move.gcode_position.z < safe_z %} _KlickyDebug msg="Attach_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Umbilical_Path _entry_point function=Attach_Probe_intern _KlickyDebug msg="Attach_Probe moving near the dock with G0 X{docklocation_x|int - attachmove_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove_y|int - attachmove2_y} F{travel_feedrate}" G0 X{docklocation_x|int - attachmove_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove_y|int - attachmove2_y} F{travel_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int - attachmove2_z|int} F{dock_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int - attachmove2_z|int} F{dock_feedrate} _KlickyDebug msg="Attach_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate} {% endif %} _DeployKlickyDock {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving to the dock with G0 Z{docklocation_z} F{dock_feedrate}" G0 Z{docklocation_z} F{dock_feedrate} {% endif %} _KlickyDebug msg="Attach_Probe moving to the dock with G0 X{docklocation_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove2_y} F{dock_feedrate}" G0 X{docklocation_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove2_y} F{dock_feedrate} _KlickyDebug msg="Attach_Probe moving to the dock with G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate}" G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving from the dock to G0 Z{docklocation_z|int - attachmove_z|int} F{z_drop_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int} F{z_drop_feedrate} {% endif %} _KlickyDebug msg="Attach_Probe moving from the dock to G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{release_feedrate}" G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{release_feedrate} _RetractKlickyDock {% if ((printer.gcode_move.gcode_position.z < safe_z) or (docklocation_z != -128 and docklocation_z < safe_z ))%} _KlickyDebug msg="Attach_Probe moving to a safe Z position: G0 Z{safe_z} F{z_drop_feedrate} from {printer.gcode_move.gcode_position.z}" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Park_Toolhead _CheckProbe action=attach _exit_point function=Attach_Probe_intern move={goback} _KLICKY_STATUS_READY {% elif probe_lock %} {% if verbose %} { action_respond_info("Probe locked!") } {% endif %} _KlickyDebug msg="Attach_Probe probe locked not attaching probe" _CheckProbe action=query {% else %} {% if verbose %} { action_respond_info("Probe already attached!") } {% endif %} _KlickyDebug msg="Attach_Probe probe already attached, doing nothing" _CheckProbe action=query {% endif %} _exit_point function=Attach_Probe {% else %} _KlickyDebug msg="Attach_Probe probe docking bypassed, doing nothing" {% endif %} [gcode_macro Dock_Probe] description = Docks Klicky Probe gcode = {% set goback = params.BACK|default(0) %} {% set probe_attached = printer["gcode_macro _Probe_Variables"].probe_attached %} {% set probe_lock = printer["gcode_macro _Probe_Variables"].probe_lock %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} {% set dockmove_x = printer["gcode_macro _User_Variables"].dockmove_x|default(0) %} {% set dockmove_y = printer["gcode_macro _User_Variables"].dockmove_y|default(0) %} {% set dockmove_z = printer["gcode_macro _User_Variables"].dockmove_z|default(0) %} {% set docklocation_x = printer["gcode_macro _User_Variables"].docklocation_x %} {% set docklocation_y = printer["gcode_macro _User_Variables"].docklocation_y %} {% set docklocation_z = printer["gcode_macro _User_Variables"].docklocation_z %} {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set dock_feedrate = printer["gcode_macro _User_Variables"].dock_speed * 60 %} {% set release_feedrate = printer["gcode_macro _User_Variables"].release_speed * 60 %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} {% if bypass_probe_docking == True %} _KlickyDebug msg="Attach_Probe probe docking bypassed, doing nothing" {% endif %} {% if bypass_probe_docking != True %} _entry_point function=Dock_Probe {% if probe_attached and not probe_lock %} _KLICKY_STATUS_BUSY {% if printer.gcode_move.gcode_position.z < safe_z %} _KlickyDebug msg="Dock_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Umbilical_Path _KlickyDebug msg="Dock_Probe moving near the dock with G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{travel_feedrate}" G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{travel_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Dock_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate} {% endif %} _DeployKlickyDock _KlickyDebug msg="Dock_Probe moving to the dock with G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate}" G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving to the dock with G0 Z{docklocation_z} F{dock_feedrate}" G0 Z{docklocation_z} F{dock_feedrate} {% endif %} {% if docklocation_z != -128 %} _KlickyDebug msg="Dock_Probe moving from the dock to G0 Z{docklocation_z|int + dockmove_z|int} F{release_feedrate}" G0 Z{docklocation_z|int + dockmove_z|int} F{release_feedrate} {% endif %} _KlickyDebug msg="Dock_Probe moving from the dock to G0 X{docklocation_x|int + dockmove_x|int} Y{docklocation_y|int + dockmove_y|int} F{release_feedrate}" G0 X{docklocation_x|int + dockmove_x|int} Y{docklocation_y|int + dockmove_y|int} F{release_feedrate} _RetractKlickyDock _KlickyDebug msg="Dock_Probe moving away from the dock to G0 X{docklocation_x|int + dockmove_x|int - attachmove_x|int} Y{docklocation_y|int + dockmove_y|int - attachmove_y|int} F{release_feedrate}" G0 X{docklocation_x|int + dockmove_x|int - attachmove_x|int} Y{docklocation_y|int + dockmove_y|int - attachmove_y|int} F{release_feedrate} {% if (printer.gcode_move.gcode_position.z < safe_z) %} _KlickyDebug msg="Dock_Probe moving to a safe Z position: G0 Z{safe_z} F{z_drop_feedrate} from {printer.gcode_move.gcode_position.z}" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Park_Toolhead G4 P1000 _CheckProbe action=dock _KLICKY_STATUS_READY {% elif probe_lock %} {% if verbose %} { action_respond_info("Probe locked") } {% endif %} _KlickyDebug msg="Dock_Probe probe locked not docking probe" _CheckProbe action=query {% else %} {% if verbose %} { action_respond_info("Probe already docked") } {% endif %} _KlickyDebug msg="Dock_Probe probe already docked, doing nothing" _CheckProbe action=query {% endif %} _exit_point function=Dock_Probe move={goback} {% else %} _KlickyDebug msg="Dock_Probe probe docking bypassed, doing nothing" {% endif %} [gcode_macro PROBE_CALIBRATE] rename_existing = _PROBE_CALIBRATE description = Calibrate the probes z_offset with klicky automount gcode = {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set max_x = printer["gcode_macro _User_Variables"].max_bed_x|float %} {% set max_y = printer["gcode_macro _User_Variables"].max_bed_y|float %} {% set probe_offset_x = printer['configfile'].config["probe"]["x_offset"]|float %} {% set probe_offset_y = printer['configfile'].config["probe"]["y_offset"]|float %} {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} {% if not 'xyz' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X, Y and Z Axis First!") } {% endif %} _KlickyDebug msg="probe_calibrate Axis homed" _KlickyDebug msg="probe_calibrate Variables max_x={max_x},max_y={max_y},probe_offset_x={probe_offset_x},probe_offset_y={probe_offset_y}" {% if printer['gcode_move'].position.y > (max_y - probe_offset_y) or printer['gcode_move'].position.y < - probe_offset_y or printer['gcode_move'].position.x > (max_x - probe_offset_x) or printer['gcode_move'].position.x < - probe_offset_x %} { action_raise_error("Must perform PROBE_CALIBRATE with the probe above the BED, check klicky_variables bed size!") } {% endif %} {% if bypass_probe_docking == False %} _CheckProbe action=query G90 Attach_Probe back=1 _KLICKY_STATUS_CALIBRATING_Z _KlickyDebug msg="probe_calibrate calling klipper probe_calibrate" _PROBE_CALIBRATE {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} M118 moving the toolhead 20 mm from the bed _KlickyDebug msg="probe_calibrate Moving Z up by 20mm" TESTZ Z=20 M118 remove manually the probe and continue calibration _KLICKY_STATUS_READY {% else %} _KLICKY_STATUS_CALIBRATING_Z _KlickyDebug msg="probe_calibrate calling klipper probe_calibrate" _PROBE_CALIBRATE {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} _KLICKY_STATUS_READY {% endif %} [gcode_macro PROBE_ACCURACY] rename_existing = _PROBE_ACCURACY description = Probe Z-height accuracy at current XY position with klicky automount gcode = {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set max_x = printer["gcode_macro _User_Variables"].max_bed_x|float %} {% set max_y = printer["gcode_macro _User_Variables"].max_bed_y|float %} {% set probe_offset_x = printer['configfile'].config["probe"]["x_offset"]|float %} {% set probe_offset_y = printer['configfile'].config["probe"]["y_offset"]|float %} {% if not 'xyz' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X, Y and Z Axis First!") } {% endif %} _KlickyDebug msg="probe_accuracy Axis homed" _KlickyDebug msg="probe_accuracy Variables max_x={max_x},max_y={max_y},probe_offset_x={probe_offset_x},probe_offset_y={probe_offset_y}" _entry_point function=PROBE_ACCURACY {% if printer['gcode_move'].position.y > (max_y - probe_offset_y) or printer['gcode_move'].position.y < - probe_offset_y or printer['gcode_move'].position.x > (max_x - probe_offset_x) or printer['gcode_move'].position.x < - probe_offset_x %} { action_raise_error("Must perform PROBE_ACCURACY with the probe above the BED, check klicky_variables bed size!") } {% endif%} _CheckProbe action=query Attach_Probe back=1 _KlickyDebug msg="probe_accuracy calling klipper probe accuracy" _PROBE_ACCURACY {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} Dock_Probe back=1 _exit_point function=PROBE_ACCURACY move=1 [homing_override] axes = xyz gcode = _User_Variables {% set verbose = printer["gcode_macro _User_Variables"].verbose %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z %} {% set enable_z_hop = printer["gcode_macro _User_Variables"].enable_z_hop %} {% set kinematic_z = 0 %} {% set dock_on_zhome = printer["gcode_macro _User_Variables"].dock_on_zhome|default(True) %} {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set home_backoff_x = printer["gcode_macro _User_Variables"].home_backoff_x|default(0) %} {% set home_backoff_y = printer["gcode_macro _User_Variables"].home_backoff_y|default(0) %} {% set override_homing = printer["gcode_macro _User_Variables"].override_homing|default('') %} _klicky_check_variables_version _CheckProbe action=query {% set home_x, home_y, home_z, leave_probe_attached = False, False, False, False %} {% if 'PROBE_LOCK' in params%} {% if verbose %} { action_respond_info("PROBE_LOCK = True") } {% endif %} {% set leave_probe_attached = True %} {% endif %} {% if not 'X' in params and not 'Y' in params and not 'Z' in params %} {% set home_x, home_y, home_z = True, True, True %} _KlickyDebug msg="homing_override goint to home all axes" {% else %} {% if 'X' in params %} {% set home_x = True %} _KlickyDebug msg="homing_override goint to home X" {% endif %} {% if 'Y' in params %} {% set home_y = True %} _KlickyDebug msg="homing_override goint to home Y" {% endif %} {% if 'Z' in params %} {% set home_z = True %} _KlickyDebug msg="homing_override goint to home Z" {% endif %} {% if 'X' in params and 'Y' in params and 'Z' in params %} _Homing_Variables reset=1 _KlickyDebug msg="homing_override goint to home all axes" {% endif %} {% endif %} _entry_point function=homing_override _KLICKY_STATUS_HOMING {% if 'z' not in printer.toolhead.homed_axes %} {% if enable_z_hop == False %} _KlickyDebug msg="homing_override z_hop disabled" {% set kinematic_z = safe_z %} {% set safe_z = safe_z %} {% endif %} {% endif %} {% if 'x' not in printer.toolhead.homed_axes and 'y' not in printer.toolhead.homed_axes and 'z' not in printer.toolhead.homed_axes%} {% if verbose %} { action_respond_info("No axis homed") } {% endif %} _KlickyDebug msg="homing_override no axis homed, setting position as X=Y=0 Z={kinematic_z}" SET_KINEMATIC_POSITION X=0 Y=0 Z={kinematic_z} M400 _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% if home_z != True %} _KlickyDebug msg="homing_override clearing axis homed state if not already homing Z" M84 {% endif %} {% endif %} {% if home_z %} {% if 'x' not in printer.toolhead.homed_axes and 'y' not in printer.toolhead.homed_axes%} {% if verbose %} { action_respond_info("X or Y not homed, forcing full G28") } {% endif %} {% set home_x, home_y, home_z = True, True, True %} {% endif %} {% endif %} {% if ((attachmove_y == 0 and override_homing == '' ) or (override_homing == 'Y'))%} {% if home_y %} {% if override_homing == 'Y' %} _KlickyDebug msg="homing_override Y homing first override, due to override_homing = Y" {% else %} _KlickyDebug msg="homing_override Y homing first override, due to attachmove_y = 0" {% endif %} {% if verbose %} { action_respond_info("Homing Y") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if printer["gcode_macro _HOME_Y"] is defined %} _KlickyDebug msg="homing_override calling _HOME_Y external script to handle the Y homing" _HOME_Y {% else %} _KlickyDebug msg="homing_override Homing Y G28 Y0" G28 Y0 {% if home_backoff_y != 0 %} {% if (printer.configfile.settings.stepper_y.position_endstop > (printer.configfile.settings.stepper_y.position_min|default(0) + printer.configfile.settings.stepper_y.position_max)/2) %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop-home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate} {% else %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate} {%endif %} {%endif %} {% endif %} {% endif %} {% set home_y = False %} {% endif %} {% if home_x %} {% if verbose %} { action_respond_info("Homing X") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in X homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if printer["gcode_macro _HOME_X"] is defined %} _KlickyDebug msg="homing_override calling _HOME_X external script to handle the X homing" _HOME_X {% else %} _KlickyDebug msg="homing_override Homing X, G28 X0" G28 X0 {% if home_backoff_x != 0 %} {% if (printer.configfile.settings.stepper_x.position_endstop > (printer.configfile.settings.stepper_x.position_min|default(0) + printer.configfile.settings.stepper_x.position_max)/2) %} _KlickyDebug msg="homing_override backing off X endstop, G0 X{printer.configfile.settings.stepper_x.position_endstop - home_backoff_x|int} F{travel_feedrate}" G0 X{printer.configfile.settings.stepper_x.position_endstop - home_backoff_x|int} F{travel_feedrate} {% else %} _KlickyDebug msg="homing_override backing off X endstop, G0 X{printer.configfile.settings.stepper_x.position_endstop + home_backoff_x|int} F{travel_feedrate}" G0 X{printer.configfile.settings.stepper_x.position_endstop + home_backoff_x|int} F{travel_feedrate} {%endif %} {%endif %} {% endif %} {% endif %} {% if home_y %} {% if verbose %} { action_respond_info("Homing Y") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if printer["gcode_macro _HOME_Y"] is defined %} _KlickyDebug msg="homing_override calling _HOME_Y external script to handle the Y homing" _HOME_Y {% else %} _KlickyDebug msg="homing_override Homing Y, G28 Y0" G28 Y0 {% if home_backoff_y != 0 %} {% if (printer.configfile.settings.stepper_y.position_endstop > (printer.configfile.settings.stepper_y.position_min|default(0) + printer.configfile.settings.stepper_y.position_max)/2) %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate} {% else %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate} {%endif %} {%endif %} {% endif %} {% endif %} {% if home_z %} {% if verbose %} { action_respond_info("Homing Z") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if 'z_virtual_endstop' in printer['configfile'].config["stepper_z"]["endstop_pin"] %} _KlickyDebug msg="homing_override probe configured as a virtual Z endstop attaching probe" Attach_Probe {% if leave_probe_attached %} _Probe_Lock {% endif %} {% elif dock_on_zhome == True %} Dock_Probe {% endif %} _Home_Z_ {% if 'z_virtual_endstop' in printer['configfile'].config["stepper_z"]["endstop_pin"] %} _KlickyDebug msg="homing_override probe no longer required, docking probe" Dock_Probe {% elif dock_on_zhome == False %} Dock_Probe {% endif %} {% endif %} _CheckProbe action=query _Park_Toolhead _exit_point function=homing_override _KLICKY_STATUS_READY [gcode_macro _Umbilical_Path] gcode = {% set umbilical = printer["gcode_macro _User_Variables"].umbilical %} {% set umbilical_x = printer["gcode_macro _User_Variables"].umbilical_x %} {% set umbilical_y = printer["gcode_macro _User_Variables"].umbilical_y %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% if umbilical %} _entry_point function=Umbilical_Path _KlickyDebug msg="_Umbilical_Path moving to G0 X{umbilical_x} Y{umbilical_y} Z{safe_z} F{travel_feedrate}" G0 X{umbilical_x} Y{umbilical_y} Z{safe_z} F{travel_feedrate} _exit_point function=Umbilical_Path {% endif %} [gcode_macro _Home_Z_] gcode = {% set z_endstop_x = printer["gcode_macro _Probe_Variables"].z_endstop_x %} {% set z_endstop_y = printer["gcode_macro _Probe_Variables"].z_endstop_y %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} _entry_point function=Home_Z {% if not 'xy' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X and Y Axis First!") } {% else %} _KlickyDebug msg="_Home_Z_ XY Axis homed" {% if not 'z' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Resetting Z position to zero") } {% endif %} _KlickyDebug msg="_Home_Z_ Z not homed, setting position as X=Y=Z=0" SET_KINEMATIC_POSITION Z=0 {% endif %} _KlickyDebug msg="_Home_Z_ moving to Z endstop position G0 X{z_endstop_x} Y{z_endstop_y} F{travel_feedrate}" G0 X{z_endstop_x} Y{z_endstop_y} F{travel_feedrate} _KlickyDebug msg="_Home_Z_ Homing Z G28 Z" G28 Z0 _KlickyDebug msg="_Home_Z_ toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _exit_point function=Home_Z [gcode_macro _CheckProbe] variable_probe_state = 0 gcode = Query_Probe _SetProbeState action={ params.ACTION } [gcode_macro _SetProbeState] gcode = {% set query_probe_triggered = printer.probe.last_query %} {% set action = params.ACTION|default('') %} {% if query_probe_triggered %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_attached VALUE={ False } {% else %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_attached VALUE={ True } {% endif %} {% if action == 'query' %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_state VALUE={ query_probe_triggered } {% endif %} {% if not query_probe_triggered and action == 'dock' %} { action_raise_error("Probe dock failed!") } {% endif %} {% if query_probe_triggered and action == 'attach' %} { action_raise_error("Probe attach failed!") } {% endif %} [gcode_macro _Park_Toolhead] gcode = {% set park_toolhead = printer["gcode_macro _User_Variables"].park_toolhead %} {% set parkposition_x = printer["gcode_macro _User_Variables"].parkposition_x %} {% set parkposition_y = printer["gcode_macro _User_Variables"].parkposition_y %} {% set parkposition_z = printer["gcode_macro _User_Variables"].parkposition_z %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} _entry_point function=Park_Toolhead {% if park_toolhead and 'xyz' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Parking Toolhead") } {% endif %} {% if parkposition_z == -128 %} _KlickyDebug msg="_Park_Toolhead moving to G0 X{parkposition_x} Y{parkposition_y} F{travel_feedrate}" G0 X{parkposition_x} Y{parkposition_y} F{travel_feedrate} {% else %} _KlickyDebug msg="_Park_Toolhead moving to G0 X{parkposition_x} Y{parkposition_y} Z{parkposition_z} F{travel_feedrate}" G0 X{parkposition_x} Y{parkposition_y} Z{parkposition_z} F{travel_feedrate} {% endif %} {% endif %} _exit_point function=Park_Toolhead [gcode_macro _klicky_status_ready] gcode = {% if printer['gcode_macro status_ready'] is defined %} _KlickyDebug msg="_klicky_status_ready activating the LED STATUS_READY" STATUS_READY {% endif %} [gcode_macro _klicky_status_busy] gcode = {% if printer['gcode_macro status_busy'] is defined %} _KlickyDebug msg="_klicky_status_busy activating the LED STATUS_BUSY" STATUS_BUSY {% endif %} [gcode_macro _klicky_status_leveling] gcode = {% if printer['gcode_macro status_leveling'] is defined %} _KlickyDebug msg="_klicky_status_leveling activating the LED STATUS_LEVELING" STATUS_LEVELING {% endif %} [gcode_macro _klicky_status_homing] gcode = {% if printer['gcode_macro status_homing'] is defined %} _KlickyDebug msg="_klicky_status_homing activating the LED STATUS_HOMING" STATUS_HOMING {% endif %} [gcode_macro _klicky_status_cleaning] gcode = {% if printer['gcode_macro status_cleaning'] is defined %} _KlickyDebug msg="_klicky_status_cleaning activating the LED STATUS_CLEANING" STATUS_CLEANING {% endif %} [gcode_macro _klicky_status_meshing] gcode = {% if printer['gcode_macro status_meshing'] is defined %} _KlickyDebug msg="_klicky_status_meshing activating the LED STATUS_MESHING" STATUS_MESHING {% endif %} [gcode_macro _klicky_status_calibrating_z] gcode = {% if printer['gcode_macro status_calibrating_z'] is defined %} _KlickyDebug msg="_klicky_status_calibrating_z activating the LED STATUS_CALIBRATING_Z" STATUS_CALIBRATING_Z {% endif %} [gcode_macro BED_MESH_CALIBRATE] rename_existing = _BED_MESH_CALIBRATE description = Perform Mesh Bed Leveling with klicky automount gcode = {% set V = printer["gcode_macro _User_Variables"].verbose %} {% if V %} { action_respond_info("Bed Mesh Calibrate") } {% endif %} _CheckProbe action=query G90 Attach_Probe _KLICKY_STATUS_MESHING _BED_MESH_CALIBRATE {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} Dock_Probe [gcode_macro Z_TILT_ADJUST] rename_existing = _Z_TILT_ADJUST description = gcode = {% set V = printer["gcode_macro _User_Variables"].verbose %} {% if V %} { action_respond_info("Z Tilt Adjust") } {% endif %} _CheckProbe action=query G90 Attach_Probe _KLICKY_STATUS_LEVELING _Z_TILT_ADJUST {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} Dock_Probe G28 Z0 [mcu] serial = /dev/serial/by-id/usb-Klipper_stm32f446xx_250031000750535556323420-if00 [printer] kinematics = hybrid_corexy max_velocity = 400 max_accel = 3000 max_z_velocity = 5 max_z_accel = 200 [stepper_x] step_pin = PF13 dir_pin = !PF12 enable_pin = !PF14 microsteps = 16 rotation_distance = 40 endstop_pin = !PG6 position_endstop = -20 position_min = -20 position_max = 270 homing_speed = 50 [dual_carriage] step_pin = PG0 dir_pin = PG1 enable_pin = !PF15 microsteps = 16 rotation_distance = 40 endstop_pin = !PG9 position_endstop = 350 position_min = 80 position_max = 350 homing_speed = 50 [stepper_y] step_pin = PF11 dir_pin = !PG3 enable_pin = !PG5 microsteps = 16 rotation_distance = 40 endstop_pin = !PG10 position_endstop = 320 position_max = 320 position_min = 0 homing_speed = 50 [stepper_y1] step_pin = PG4 dir_pin = PC1 enable_pin = !PA0 microsteps = 16 rotation_distance = 40 endstop_pin = !PG11 [stepper_z] step_pin = PF9 dir_pin = PF10 enable_pin = !PG2 microsteps = 16 rotation_distance = 2 endstop_pin = probe:z_virtual_endstop position_min = 0 position_max = 200 [stepper_z1] step_pin = PC13 dir_pin = PF0 enable_pin = !PF1 microsteps = 16 rotation_distance = 2 endstop_pin = probe:z_virtual_endstop [stepper_z2] step_pin = PE2 dir_pin = PE3 enable_pin = !PD4 microsteps = 16 rotation_distance = 2 endstop_pin = probe:z_virtual_endstop [extruder] step_pin = PE6 dir_pin = PA14 enable_pin = !PE0 microsteps = 16 full_steps_per_rotation = 200 rotation_distance = 4.637 nozzle_diameter = 0.400 filament_diameter = 1.750 max_extrude_only_distance = 500.0 max_extrude_only_velocity = 120 heater_pin = PA2 sensor_pin = PF4 sensor_type = ATC Semitec 104NT-4-R025H42G min_temp = 0 max_temp = 300 control = pid pid_kp = 32.724 pid_ki = 3.576 pid_kd = 74.855 [probe] pin = PG14 x_offset = 0 y_offset = 25.0 z_offset = 1 speed = 10.0 samples = 3 samples_result = median sample_retract_dist = 3.0 samples_tolerance = 0.006 samples_tolerance_retries = 3 [z_tilt] z_positions = -69, -19 79, 150 69, -19 points = 20, 0 155, 250 250, 0 speed = 50 horizontal_move_z = 15 retries = 10 retry_tolerance = 0.01 [bed_mesh] speed = 120 horizontal_move_z = 15 mesh_min = 50,20 mesh_max = 230,200 probe_count = 5,5 algorithm = bicubic fade_start = 1 fade_end = 10 fade_target = 0 [filament_switch_sensor material_0] switch_pin = !PG12 [filament_switch_sensor material_1] switch_pin = !PG13 [heater_fan fan0] pin = PA8 [fan_generic Part_T0] pin = PE5 [heater_fan fan1] pin = PD12 [fan_generic Part_T1] pin = PD13 [tmc2209 stepper_x] uart_pin = PC4 run_current = 0.8 stealthchop_threshold = 999999 [tmc2209 dual_carriage] uart_pin = PD11 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_y] uart_pin = PC6 run_current = 0.8 stealthchop_threshold = 999999 [tmc2209 stepper_y1] uart_pin = PC7 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_z] uart_pin = PF2 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_z1] uart_pin = PE4 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_z2] uart_pin = PE1 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 extruder] uart_pin = PD3 run_current = 0.850 hold_current = 0.100 stealthchop_threshold = 0 [board_pins] aliases = EXP1_1=PE8, EXP1_2=PE7, EXP1_3=PE9, EXP1_4=PE10, EXP1_5=PE12, EXP1_6=PE13, EXP1_7=PE14, EXP1_8=PE15, EXP1_9=, EXP1_10=<5V>, EXP2_1=PA6, EXP2_2=PA5, EXP2_3=PB1, EXP2_4=PA4, EXP2_5=PB2, EXP2_6=PA7, EXP2_7=PC15, EXP2_8=, EXP2_9=, EXP2_10=PC5 ======================= Extruder max_extrude_ratio=0.266081 mcu 'mcu': Starting serial connect webhooks client 281472848676320: New connection webhooks client 281472848676320: Client info {'program': 'Moonraker', 'version': 'v0.8.0-247-g3008a13'} Loaded MCU 'mcu' 119 commands (v0.11.0-241-gffb5105b / gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2) MCU 'mcu' config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_i2c3=PA8,PC9 BUS_PINS_sdio=PC12,PD2,PC8,PC9,PC10,PC11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi2a=PC2,PC3,PB10 BUS_PINS_spi3=PB4,PB5,PB3 BUS_PINS_spi3a=PC11,PC12,PC10 BUS_PINS_spi4=PE13,PE14,PE12 CLOCK_FREQ=180000000 MCU=stm32f446xx PWM_MAX=255 RESERVE_PINS_USB=PA11,PA12 RESERVE_PINS_crystal=PH0,PH1 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 Sending MCU 'mcu' printer configuration... Configured MCU 'mcu' (1024 moves) bed_mesh: generated points Index | Tool Adjusted | Probe 0 | (50.0, -5.0) | (50.0, 20.0) 1 | (95.0, -5.0) | (95.0, 20.0) 2 | (140.0, -5.0) | (140.0, 20.0) 3 | (185.0, -5.0) | (185.0, 20.0) 4 | (230.0, -5.0) | (230.0, 20.0) 5 | (230.0, 40.0) | (230.0, 65.0) 6 | (185.0, 40.0) | (185.0, 65.0) 7 | (140.0, 40.0) | (140.0, 65.0) 8 | (95.0, 40.0) | (95.0, 65.0) 9 | (50.0, 40.0) | (50.0, 65.0) 10 | (50.0, 85.0) | (50.0, 110.0) 11 | (95.0, 85.0) | (95.0, 110.0) 12 | (140.0, 85.0) | (140.0, 110.0) 13 | (185.0, 85.0) | (185.0, 110.0) 14 | (230.0, 85.0) | (230.0, 110.0) 15 | (230.0, 130.0) | (230.0, 155.0) 16 | (185.0, 130.0) | (185.0, 155.0) 17 | (140.0, 130.0) | (140.0, 155.0) 18 | (95.0, 130.0) | (95.0, 155.0) 19 | (50.0, 130.0) | (50.0, 155.0) 20 | (50.0, 175.0) | (50.0, 200.0) 21 | (95.0, 175.0) | (95.0, 200.0) 22 | (140.0, 175.0) | (140.0, 200.0) 23 | (185.0, 175.0) | (185.0, 200.0) 24 | (230.0, 175.0) | (230.0, 200.0) Starting heater checks for extruder Stats 271.9: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=3698 bytes_read=7249 bytes_retransmit=9 bytes_invalid=0 send_seq=293 receive_seq=293 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180010474 sysload=0.57 cputime=15.046 memavail=701744 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=0.0 pwm=0.000 webhooks: registering remote method 'shutdown_machine' for connection id: 281472848676320 webhooks: registering remote method 'reboot_machine' for connection id: 281472848676320 webhooks: registering remote method 'pause_job_queue' for connection id: 281472848676320 webhooks: registering remote method 'start_job_queue' for connection id: 281472848676320 Stats 272.9: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=3712 bytes_read=7280 bytes_retransmit=9 bytes_invalid=0 send_seq=295 receive_seq=295 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180004796 sysload=0.57 cputime=15.113 memavail=702088 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=0.0 pwm=0.000 Stats 273.9: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000007 bytes_write=3718 bytes_read=7371 bytes_retransmit=9 bytes_invalid=0 send_seq=296 receive_seq=296 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180005143 sysload=0.57 cputime=15.168 memavail=701624 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 274.9: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000007 bytes_write=3724 bytes_read=7432 bytes_retransmit=9 bytes_invalid=0 send_seq=297 receive_seq=297 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180004149 sysload=0.57 cputime=15.186 memavail=701952 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 275.9: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000007 bytes_write=3730 bytes_read=7493 bytes_retransmit=9 bytes_invalid=0 send_seq=298 receive_seq=298 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003867 sysload=0.60 cputime=15.205 memavail=702288 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 SET_KINEMATIC_POSITION pos=100.000,100.000,10.000 Stats 276.9: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000007 bytes_write=3736 bytes_read=7569 bytes_retransmit=9 bytes_invalid=0 send_seq=299 receive_seq=299 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180004077 sysload=0.60 cputime=15.235 memavail=702068 print_time=7.650 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 277.9: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000007 bytes_write=3742 bytes_read=7630 bytes_retransmit=9 bytes_invalid=0 send_seq=300 receive_seq=300 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003946 sysload=0.60 cputime=15.252 memavail=702188 print_time=7.650 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Stats 278.9: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3748 bytes_read=7719 bytes_retransmit=9 bytes_invalid=0 send_seq=301 receive_seq=301 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003777 sysload=0.60 cputime=15.283 memavail=702440 print_time=7.650 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 279.9: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4153 bytes_read=8129 bytes_retransmit=9 bytes_invalid=0 send_seq=323 receive_seq=323 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003949 sysload=0.60 cputime=15.366 memavail=702784 print_time=10.747 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 280.9: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4282 bytes_read=8251 bytes_retransmit=9 bytes_invalid=0 send_seq=329 receive_seq=329 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003871 sysload=0.71 cputime=15.394 memavail=702816 print_time=11.710 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 281.9: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4316 bytes_read=8373 bytes_retransmit=9 bytes_invalid=0 send_seq=332 receive_seq=332 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003854 sysload=0.71 cputime=15.424 memavail=703836 print_time=11.710 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 282.9: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5621 bytes_read=9517 bytes_retransmit=9 bytes_invalid=0 send_seq=396 receive_seq=396 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003850 sysload=0.71 cputime=15.579 memavail=704952 print_time=14.382 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 283.9: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=6094 bytes_read=9794 bytes_retransmit=9 bytes_invalid=0 send_seq=412 receive_seq=412 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003782 sysload=0.71 cputime=15.623 memavail=705296 print_time=15.480 buffer_time=0.089 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 284.9: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=6212 bytes_read=10054 bytes_retransmit=9 bytes_invalid=0 send_seq=421 receive_seq=421 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003745 sysload=0.71 cputime=15.665 memavail=705612 print_time=15.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 285.9: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=6316 bytes_read=10276 bytes_retransmit=9 bytes_invalid=0 send_seq=429 receive_seq=429 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003711 sysload=0.66 cputime=15.714 memavail=705668 print_time=15.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 286.9: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=6454 bytes_read=10560 bytes_retransmit=9 bytes_invalid=0 send_seq=440 receive_seq=440 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003615 sysload=0.66 cputime=15.759 memavail=705672 print_time=15.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 287.9: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=6558 bytes_read=10797 bytes_retransmit=9 bytes_invalid=0 send_seq=448 receive_seq=448 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003614 sysload=0.66 cputime=15.802 memavail=705444 print_time=15.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 288.9: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=6676 bytes_read=11057 bytes_retransmit=9 bytes_invalid=0 send_seq=457 receive_seq=457 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003659 sysload=0.66 cputime=15.864 memavail=705444 print_time=15.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 289.9: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=6808 bytes_read=11325 bytes_retransmit=9 bytes_invalid=0 send_seq=467 receive_seq=467 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003661 sysload=0.66 cputime=15.915 memavail=705196 print_time=15.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 290.9: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=6926 bytes_read=11585 bytes_retransmit=9 bytes_invalid=0 send_seq=476 receive_seq=476 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003672 sysload=0.60 cputime=15.953 memavail=704948 print_time=15.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 291.9: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=7044 bytes_read=11829 bytes_retransmit=9 bytes_invalid=0 send_seq=485 receive_seq=485 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003680 sysload=0.60 cputime=15.998 memavail=704948 print_time=15.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 292.9: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=7162 bytes_read=12070 bytes_retransmit=9 bytes_invalid=0 send_seq=494 receive_seq=494 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003685 sysload=0.60 cputime=16.040 memavail=705220 print_time=15.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 293.9: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7266 bytes_read=12321 bytes_retransmit=9 bytes_invalid=0 send_seq=502 receive_seq=502 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003713 sysload=0.60 cputime=16.088 memavail=705220 print_time=15.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 294.9: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7398 bytes_read=12584 bytes_retransmit=9 bytes_invalid=0 send_seq=512 receive_seq=511 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003705 sysload=0.60 cputime=16.134 memavail=704972 print_time=15.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 295.9: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7502 bytes_read=12829 bytes_retransmit=9 bytes_invalid=0 send_seq=520 receive_seq=520 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003717 sysload=0.56 cputime=16.172 memavail=704972 print_time=15.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 296.9: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7620 bytes_read=13089 bytes_retransmit=9 bytes_invalid=0 send_seq=529 receive_seq=529 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003713 sysload=0.56 cputime=16.219 memavail=705480 print_time=15.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 297.9: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7738 bytes_read=13316 bytes_retransmit=9 bytes_invalid=0 send_seq=538 receive_seq=538 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003704 sysload=0.56 cputime=16.258 memavail=705240 print_time=15.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 298.9: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7856 bytes_read=13576 bytes_retransmit=9 bytes_invalid=0 send_seq=547 receive_seq=547 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003698 sysload=0.56 cputime=16.300 memavail=705240 print_time=15.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Stats 299.9: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7974 bytes_read=13836 bytes_retransmit=9 bytes_invalid=0 send_seq=556 receive_seq=556 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003754 sysload=0.56 cputime=16.341 memavail=705744 print_time=15.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 300.9: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8059 bytes_read=13989 bytes_retransmit=9 bytes_invalid=0 send_seq=561 receive_seq=561 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003760 sysload=0.51 cputime=16.381 memavail=706376 print_time=33.243 buffer_time=0.843 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Attempting MCU 'mcu' reset command b'Got EOF when reading from device' webhooks client 281472848676320: Disconnected Restarting printer Start printer at Mon Jan 15 08:56:21 2024 (1705305381.1 302.9) ===== Config file ===== [force_move] enable_force_move = True [virtual_sdcard] path = ~/printer_data/gcodes on_error_gcode = CANCEL_PRINT [pause_resume] [display_status] [respond] [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %} {% set retract = client.cancel_retract|default(5.0)|abs %} {% set park_x = "" if (client.park_at_cancel_x|default(none) is none) else "X=" ~ client.park_at_cancel_x %} {% set park_y = "" if (client.park_at_cancel_y|default(none) is none) else "Y=" ~ client.park_at_cancel_y %} {% set custom_park = park_x|length > 0 or park_y|length > 0 %} {% if printer['gcode_macro RESUME'].restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro RESUME'].restore_idle_timeout} {% endif %} {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %} _CLIENT_RETRACT LENGTH={retract} TURN_OFF_HEATERS M106 S0 {client.user_cancel_macro|default("")} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False SET_PAUSE_NEXT_LAYER ENABLE=0 SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0 CANCEL_PRINT_BASE [gcode_macro PAUSE] description = Pause the actual running print rename_existing = PAUSE_BASE gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set idle_timeout = client.idle_timeout|default(0) %} {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0 %} {% set restore = False if printer.toolhead.extruder == '' else True if params.RESTORE|default(1)|int == 1 else False %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}" {% if idle_timeout > 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout} SET_IDLE_TIMEOUT TIMEOUT={idle_timeout} {% endif %} PAUSE_BASE {client.user_pause_macro|default("")} _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams} [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE variable_last_extruder_temp = {'restore': False, 'temp': 0} variable_restore_idle_timeout = 0 variable_idle_state = False gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} {% set sp_move = client.speed_move|default(velocity) %} {% set runout_resume = True if client.runout_sensor|default("") == "" else True if not printer[client.runout_sensor].enabled else printer[client.runout_sensor].filament_detected %} {% set can_extrude = True if printer.toolhead.extruder == '' else printer[printer.toolhead.extruder].can_extrude %} {% set do_resume = False %} {% set prompt_txt = [] %} {% if printer.idle_timeout.state|upper == "IDLE" or idle_state %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False {% if last_extruder_temp.restore %} RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp.temp) }' M109 S{last_extruder_temp.temp} {% set do_resume = True %} {% elif can_extrude %} {% set do_resume = True %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}' {% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %} {% endif %} {% elif can_extrude %} {% set do_resume = True %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}' {% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %} {% endif %} {% if runout_resume %} {% if do_resume %} {% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %} {client.user_resume_macro|default("")} _CLIENT_EXTRUDE RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)} {% endif %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]}' {% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]) %} {% endif %} {% if not (runout_resume and do_resume) %} RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!" {% for element in prompt_txt %} RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}' {% endfor %} RESPOND TYPE=command MSG="action:prompt_footer_button Ok|RESPOND TYPE=command MSG=action:prompt_end|info" RESPOND TYPE=command MSG="action:prompt_show" {% endif %} [gcode_macro SET_PAUSE_NEXT_LAYER] description = Enable a pause if the next layer is reached gcode = {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %} {% set ENABLE = params.ENABLE|default(1)|int != 0 %} {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %} SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}" [gcode_macro SET_PAUSE_AT_LAYER] description = Enable/disable a pause if a given layer number is reached gcode = {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %} {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined else params.LAYER is defined %} {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %} {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %} SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}" [gcode_macro SET_PRINT_STATS_INFO] rename_existing = SET_PRINT_STATS_INFO_BASE description = Overwrite, to get pause_next_layer and pause_at_layer feature variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" } variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" } gcode = {% if pause_next_layer.enable %} RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}' {pause_next_layer.call} SET_PAUSE_NEXT_LAYER ENABLE=0 {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %} RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}' {pause_at_layer.call} SET_PAUSE_AT_LAYER ENABLE=0 {% endif %} SET_PRINT_STATS_INFO_BASE {rawparams} [gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL] description = Helper: park toolhead used in PAUSE and CANCEL_PRINT gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} {% set use_custom = client.use_custom_pos|default(false)|lower == 'true' %} {% set custom_park_x = client.custom_park_x|default(0.0) %} {% set custom_park_y = client.custom_park_y|default(0.0) %} {% set park_dz = client.custom_park_dz|default(2.0)|abs %} {% set sp_hop = client.speed_hop|default(15) * 60 %} {% set sp_move = client.speed_move|default(velocity) * 60 %} {% set origin = printer.gcode_move.homing_origin %} {% set act = printer.gcode_move.gcode_position %} {% set max = printer.toolhead.axis_maximum %} {% set cone = printer.toolhead.cone_start_z|default(max.z) %} {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch'] else False %} {% set z_min = params.Z_MIN|default(0)|float %} {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %} {% set x_park = params.X if params.X is defined else custom_park_x if use_custom else 0.0 if round_bed else (max.x - 5.0) %} {% set y_park = params.Y if params.Y is defined else custom_park_y if use_custom else (max.y - 5.0) if round_bed and z_park < cone else 0.0 if round_bed else (max.y - 5.0) %} _CLIENT_RETRACT {% if "xyz" in printer.toolhead.homed_axes %} G90 G1 Z{z_park} F{sp_hop} G1 X{x_park} Y{y_park} F{sp_move} {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %} {% else %} RESPOND TYPE=echo MSG='Printer not homed' {% endif %} [gcode_macro _CLIENT_EXTRUDE] description = Extrudes, if the extruder is hot enough gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %} {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %} {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %} {% set absolute_extrude = printer.gcode_move.absolute_extrude %} {% if printer.toolhead.extruder != '' %} {% if printer[printer.toolhead.extruder].can_extrude %} {% if use_fw_retract %} {% if length < 0 %} G10 {% else %} G11 {% endif %} {% else %} M83 G1 E{length} F{(speed|float|abs) * 60} {% if absolute_extrude %} M82 {% endif %} {% endif %} {% else %} RESPOND TYPE=echo MSG='{"\"%s\" not hot enough" % printer.toolhead.extruder}' {% endif %} {% endif %} [gcode_macro _CLIENT_RETRACT] description = Retracts, if the extruder is hot enough gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %} {% set speed = params.SPEED|default(client.speed_retract)|default(35) %} _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs} [gcode_macro _START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(40)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(200)|float %} M140 S{BED_TEMP} M104 S{EXTRUDER_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_PROFILE LOAD=default M220 S100 M221 S100 G92 E0 G1 Z10.0 F3000 G1 X10.1 Y20 F5000.0 M190 S{BED_TEMP} M109 S{EXTRUDER_TEMP} G1 Z0.28 G1 X10.1 Y200.0 Z0.32 F1500.0 E15 G1 X10.4 Y200.0 Z0.32 F5000.0 G1 X10.4 Y20 Z0.32 F1500.0 E30 G92 E0 G1 Z3.0 F3000 [gcode_macro _END_PRINT] gcode = M140 S0 M104 S0 M104 S0 T1 M106 S0 G91 G1 X-2 Y-2 E-3 F300 G1 Z10 F3000 G90 G1 X220Y220 M84 [gcode_macro PARK_extruder] gcode = G90 G1 X{printer['toolhead'].axis_minimum.y} [gcode_macro T0] gcode = PARK_{printer.toolhead.extruder} ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=0 [gcode_macro PARK_extruder1] gcode = G90 G1 X{printer['toolhead'].axis_maximum.y} [gcode_macro T1] gcode = PARK_{printer.toolhead.extruder} ACTIVATE_EXTRUDER EXTRUDER=extruder1 SET_DUAL_CARRIAGE CARRIAGE=1 [gcode_macro ACTIVATE_COPY_MODE] gcode = SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY G1 X0 ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY G1 X{printer['toolhead'].axis_maximum.y/2} SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder [gcode_macro ACTIVATE_MIRROR_MODE] gcode = SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY G1 X0 ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY G1 X{printer['toolhead'].axis_maximum.y} SET_DUAL_CARRIAGE CARRIAGE=1 MODE=MIRROR SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder [gcode_macro UNLOAD_FILAMENT_T0] gcode = M83 G1 E10 F300 G1 E-780 F1800 M82 [gcode_macro LOAD_FILAMENT_T0] gcode = M83 G1 E750 F1800 G1 E30 F300 G1 E15 F150 M82 [gcode_macro UNLOAD_FILAMENT_T1] gcode = M83 G1 E10 F300 G1 E-780 F1800 M82 [gcode_macro LOAD_FILAMENT_T1] gcode = M83 G1 E750 F1800 G1 E30 F300 G1 E15 F150 M82 [gcode_macro DUMP_PARAMETERS] description = Debug: Print all entries of the printer object gcode = {% set parameters = namespace(output = '') %} {% for name1 in printer %} {% for name2 in printer[name1] %} {% set donotwant = ['configfile'] %} {% if name1 is not in donotwant %} {% set param = "printer['%s'].%s = %s" % (name1, name2, printer[name1][name2]) %} {% set parameters.output = parameters.output + param + "\n" %} {% endif %} {% endfor %} {% endfor %} {action_respond_info(parameters.output)} [gcode_macro _User_Variables] variable_verbose = True variable_debug = False variable_travel_speed = 200 variable_move_accel = 1000 variable_dock_speed = 50 variable_release_speed = 75 variable_z_drop_speed = 20 variable_safe_z = 25 variable_enable_z_hop = True variable_max_bed_y = 300 variable_max_bed_x = 300 variable_z_endstop_x = 0 variable_z_endstop_y = 0 variable_docklocation_x = 100 variable_docklocation_y = 320 variable_docklocation_z = -128 variable_enable_dock_servo = False variable_servo_name = 'NAME' variable_servo_deploy = 10 variable_servo_retract = 11 variable_servo_delay = 250 variable_dockmove_x = 50 variable_dockmove_y = 0 variable_dockmove_z = 0 variable_attachmove_x = 0 variable_attachmove_y = 30 variable_attachmove_z = 0 variable_umbilical = False variable_umbilical_x = 15 variable_umbilical_y = 15 variable_park_toolhead = False variable_parkposition_x = 125 variable_parkposition_y = 125 variable_parkposition_z = 30 variable_version = 1 variable_attachmove2_x = 0 variable_attachmove2_y = 0 variable_attachmove2_z = 0 variable_home_backoff_x = 10 variable_home_backoff_y = 10 variable_override_homing = '' variable_dock_on_zhome = True gcode = {% set Mx = printer['configfile'].config["stepper_x"]["position_max"]|float %} {% set My = printer['configfile'].config["stepper_y"]["position_max"]|float %} {% set Ox = printer['configfile'].config["probe"]["x_offset"]|float %} {% set Oy = printer['configfile'].config["probe"]["y_offset"]|float %} {% set Oz = printer['configfile'].config["probe"]["z_offset"]|float %} {% if z_endstop_x != 0 or z_endstop_y != 0 %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_x VALUE={ z_endstop_x } SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_y VALUE={ z_endstop_y } {% else %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_x VALUE={ (Mx * 0.5) - Ox } SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_y VALUE={ (My * 0.5) - Oy } {% endif %} [gcode_macro _Probe_Variables] variable_probe_attached = False variable_probe_state = False variable_probe_lock = False variable_probe_z_homed = False variable_z_endstop_x = 0 variable_z_endstop_y = 0 gcode = [gcode_macro _klicky_check_variables_version] gcode = {% set version = printer["gcode_macro _User_Variables"].version|default(0) %} {% if version != 1 %} { action_raise_error("Please update your klicky variables, there are some functionality changes") } {% endif %} [gcode_macro _KlickyDebug] gcode = {% set message = params.MSG %} {% set debug = printer["gcode_macro _User_Variables"].debug|default(False) %} {% if debug %} { action_respond_info(message) } {% endif %} [gcode_macro _exit_point] gcode = {% set function = 'pre_' ~ params.FUNCTION %} {% set move = params.MOVE|default(0) %} {% set speed = printer["gcode_macro _User_Variables"].travel_speed %} M400 SET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel} SET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel} RESTORE_GCODE_STATE NAME={function} MOVE={move} MOVE_SPEED={speed} [gcode_macro _entry_point] gcode = {% set function = 'pre_' ~ params.FUNCTION %} {% set move_accel = printer["gcode_macro _User_Variables"].move_accel|default(1000) %} M400 SAVE_GCODE_STATE NAME={function} SET_GCODE_OFFSET Z=0 G90 SET_VELOCITY_LIMIT ACCEL={move_accel} [gcode_macro _Homing_Variables] gcode = {% set reset = params.RESET|default(0) %} {% if reset %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ False } {% endif %} [gcode_macro Attach_Probe_Lock] description = Attaches Klicky Probe, can only be docked after unlocking gcode = Attach_Probe _Probe_Lock [gcode_macro Dock_Probe_Unlock] description = Docks Klicky Probe even if it was locked gcode = _Probe_Unlock Dock_Probe [gcode_macro _Probe_Unlock] description = Unlocks Klicky Probe state gcode = _KlickyDebug msg="_Probe_Lock setting probe_lock variable to False" SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ False } [gcode_macro _Probe_Lock] description = Locks Klicky Probe state gcode = _KlickyDebug msg="_Probe_Lock setting probe_lock variable to True" SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ True } [gcode_macro _DeployKlickyDock] description = Deploys Klicky servo-controlled dock gcode = {% set enable_dock_servo = printer["gcode_macro _User_Variables"].enable_dock_servo|default(False) %} {% set servo_delay = printer["gcode_macro _User_Variables"].servo_delay|default(1000) %} {% set servo_name = printer["gcode_macro _User_Variables"].servo_name %} {% set servo_deploy = printer["gcode_macro _User_Variables"].servo_deploy|default(360) %} M400 {% if enable_dock_servo != False %} _KlickyDebug msg="_DeployKlickyDock Klicky servo configuration enabled" {% if servo_deploy == 360 %} { action_raise_error("Klicky: servo active on klicky-variables, but no servo deploy angle specified") } {% endif %} _KlickyDebug msg="_DeployKlickyDock SET_SERVO SERVO={servo_name|string} ANGLE={servo_deploy|int}" SET_SERVO SERVO={servo_name|string} ANGLE={servo_deploy|int} M400 G4 P{servo_delay|int} _KlickyDebug msg="_DeployKlickyDock SET_SERVO SERVO={servo_name|string} WIDTH=0" SET_SERVO SERVO={servo_name|string} WIDTH=0 {% elif printer["gcode_macro _DeployDock"] is defined %} _KlickyDebug msg="_DeployKlickyDock calling _DeployDock" _DeployDock {% endif %} [gcode_macro _RetractKlickyDock] description = Retracts Klicky servo-controlled dock gcode = {% set enable_dock_servo = printer["gcode_macro _User_Variables"].enable_dock_servo|default(False) %} {% set servo_delay = printer["gcode_macro _User_Variables"].servo_delay|default(1000) %} {% set servo_name = printer["gcode_macro _User_Variables"].servo_name %} {% set servo_retract = printer["gcode_macro _User_Variables"].servo_retract|default(360) %} M400 {% if enable_dock_servo != False %} _KlickyDebug msg="_RetractKlickyDock Klicky servo configuration enabled" {% if servo_retract == 360 %} { action_raise_error("Klicky: servo active on klicky-variables, but no servo retract angle specified") } {% endif %} _KlickyDebug msg="_RetractKlickyDock SET_SERVO SERVO={servo_name|string} ANGLE={servo_retract|int}" SET_SERVO SERVO={servo_name|string} ANGLE={servo_retract|int} M400 G4 P{servo_delay|int} _KlickyDebug msg="_RetractKlickyDock SET_SERVO SERVO={servo_name|string} WIDTH=0" SET_SERVO SERVO={servo_name|string} WIDTH=0 {% elif printer["gcode_macro _RetractDock"] is defined %} _KlickyDebug msg="_RetractKlickyDock calling _RetractDock" _RetractDock {% endif %} [gcode_macro Attach_Probe] description = Attaches Klicky Probe gcode = {% set goback = params.BACK|default(0) %} {% set probe_attached = printer["gcode_macro _Probe_Variables"].probe_attached %} {% set probe_lock = printer["gcode_macro _Probe_Variables"].probe_lock %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} {% set dockmove_x = printer["gcode_macro _User_Variables"].dockmove_x|default(0) %} {% set dockmove_y = printer["gcode_macro _User_Variables"].dockmove_y|default(0) %} {% set dockmove_z = printer["gcode_macro _User_Variables"].dockmove_z|default(0) %} {% set docklocation_x = printer["gcode_macro _User_Variables"].docklocation_x %} {% set docklocation_y = printer["gcode_macro _User_Variables"].docklocation_y %} {% set docklocation_z = printer["gcode_macro _User_Variables"].docklocation_z %} {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} {% set attachmove2_x = printer["gcode_macro _User_Variables"].attachmove2_x|default(0) %} {% set attachmove2_y = printer["gcode_macro _User_Variables"].attachmove2_y|default(0) %} {% set attachmove2_z = printer["gcode_macro _User_Variables"].attachmove2_z|default(0) %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z %} {% set enable_z_hop = printer["gcode_macro _User_Variables"].enable_z_hop %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set dock_feedrate = printer["gcode_macro _User_Variables"].dock_speed * 60 %} {% set release_feedrate = printer["gcode_macro _User_Variables"].release_speed * 60 %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} _entry_point function=Attach_Probe {% if bypass_probe_docking == False %} {% if not 'xy' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X and Y Axis First!") } _KlickyDebug msg="Attach_Probe Axis homed" {% elif not probe_attached and not probe_lock %} _KlickyDebug msg="Attach_Probe going to attach probe" {% if verbose %} { action_respond_info("Attaching Probe") } {% endif %} _KLICKY_STATUS_BUSY {% if not 'z' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Resetting Z position to zero") } {% endif %} _KlickyDebug msg="Attach_Probe Z not homed, setting position as X=Y=Z=0" SET_KINEMATIC_POSITION Z=0 {% if not enable_z_hop %} _KlickyDebug msg="Attach_Probe z_hop disabled" {% set safe_z = 0 %} {% endif %} {% endif %} {% if printer.gcode_move.gcode_position.z < safe_z %} _KlickyDebug msg="Attach_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if not 'z' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Resetting Z position to zero, duplicate?") } {% endif %} _KlickyDebug msg="Attach_Probe Z not homed, setting position as X=Y=Z=0" SET_KINEMATIC_POSITION Z=0 {% endif %} {% if printer.gcode_move.gcode_position.z < safe_z %} _KlickyDebug msg="Attach_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Umbilical_Path _entry_point function=Attach_Probe_intern _KlickyDebug msg="Attach_Probe moving near the dock with G0 X{docklocation_x|int - attachmove_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove_y|int - attachmove2_y} F{travel_feedrate}" G0 X{docklocation_x|int - attachmove_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove_y|int - attachmove2_y} F{travel_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int - attachmove2_z|int} F{dock_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int - attachmove2_z|int} F{dock_feedrate} _KlickyDebug msg="Attach_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate} {% endif %} _DeployKlickyDock {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving to the dock with G0 Z{docklocation_z} F{dock_feedrate}" G0 Z{docklocation_z} F{dock_feedrate} {% endif %} _KlickyDebug msg="Attach_Probe moving to the dock with G0 X{docklocation_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove2_y} F{dock_feedrate}" G0 X{docklocation_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove2_y} F{dock_feedrate} _KlickyDebug msg="Attach_Probe moving to the dock with G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate}" G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving from the dock to G0 Z{docklocation_z|int - attachmove_z|int} F{z_drop_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int} F{z_drop_feedrate} {% endif %} _KlickyDebug msg="Attach_Probe moving from the dock to G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{release_feedrate}" G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{release_feedrate} _RetractKlickyDock {% if ((printer.gcode_move.gcode_position.z < safe_z) or (docklocation_z != -128 and docklocation_z < safe_z ))%} _KlickyDebug msg="Attach_Probe moving to a safe Z position: G0 Z{safe_z} F{z_drop_feedrate} from {printer.gcode_move.gcode_position.z}" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Park_Toolhead _CheckProbe action=attach _exit_point function=Attach_Probe_intern move={goback} _KLICKY_STATUS_READY {% elif probe_lock %} {% if verbose %} { action_respond_info("Probe locked!") } {% endif %} _KlickyDebug msg="Attach_Probe probe locked not attaching probe" _CheckProbe action=query {% else %} {% if verbose %} { action_respond_info("Probe already attached!") } {% endif %} _KlickyDebug msg="Attach_Probe probe already attached, doing nothing" _CheckProbe action=query {% endif %} _exit_point function=Attach_Probe {% else %} _KlickyDebug msg="Attach_Probe probe docking bypassed, doing nothing" {% endif %} [gcode_macro Dock_Probe] description = Docks Klicky Probe gcode = {% set goback = params.BACK|default(0) %} {% set probe_attached = printer["gcode_macro _Probe_Variables"].probe_attached %} {% set probe_lock = printer["gcode_macro _Probe_Variables"].probe_lock %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} {% set dockmove_x = printer["gcode_macro _User_Variables"].dockmove_x|default(0) %} {% set dockmove_y = printer["gcode_macro _User_Variables"].dockmove_y|default(0) %} {% set dockmove_z = printer["gcode_macro _User_Variables"].dockmove_z|default(0) %} {% set docklocation_x = printer["gcode_macro _User_Variables"].docklocation_x %} {% set docklocation_y = printer["gcode_macro _User_Variables"].docklocation_y %} {% set docklocation_z = printer["gcode_macro _User_Variables"].docklocation_z %} {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set dock_feedrate = printer["gcode_macro _User_Variables"].dock_speed * 60 %} {% set release_feedrate = printer["gcode_macro _User_Variables"].release_speed * 60 %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} {% if bypass_probe_docking == True %} _KlickyDebug msg="Attach_Probe probe docking bypassed, doing nothing" {% endif %} {% if bypass_probe_docking != True %} _entry_point function=Dock_Probe {% if probe_attached and not probe_lock %} _KLICKY_STATUS_BUSY {% if printer.gcode_move.gcode_position.z < safe_z %} _KlickyDebug msg="Dock_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Umbilical_Path _KlickyDebug msg="Dock_Probe moving near the dock with G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{travel_feedrate}" G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{travel_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Dock_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate} {% endif %} _DeployKlickyDock _KlickyDebug msg="Dock_Probe moving to the dock with G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate}" G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving to the dock with G0 Z{docklocation_z} F{dock_feedrate}" G0 Z{docklocation_z} F{dock_feedrate} {% endif %} {% if docklocation_z != -128 %} _KlickyDebug msg="Dock_Probe moving from the dock to G0 Z{docklocation_z|int + dockmove_z|int} F{release_feedrate}" G0 Z{docklocation_z|int + dockmove_z|int} F{release_feedrate} {% endif %} _KlickyDebug msg="Dock_Probe moving from the dock to G0 X{docklocation_x|int + dockmove_x|int} Y{docklocation_y|int + dockmove_y|int} F{release_feedrate}" G0 X{docklocation_x|int + dockmove_x|int} Y{docklocation_y|int + dockmove_y|int} F{release_feedrate} _RetractKlickyDock _KlickyDebug msg="Dock_Probe moving away from the dock to G0 X{docklocation_x|int + dockmove_x|int - attachmove_x|int} Y{docklocation_y|int + dockmove_y|int - attachmove_y|int} F{release_feedrate}" G0 X{docklocation_x|int + dockmove_x|int - attachmove_x|int} Y{docklocation_y|int + dockmove_y|int - attachmove_y|int} F{release_feedrate} {% if (printer.gcode_move.gcode_position.z < safe_z) %} _KlickyDebug msg="Dock_Probe moving to a safe Z position: G0 Z{safe_z} F{z_drop_feedrate} from {printer.gcode_move.gcode_position.z}" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Park_Toolhead G4 P1000 _CheckProbe action=dock _KLICKY_STATUS_READY {% elif probe_lock %} {% if verbose %} { action_respond_info("Probe locked") } {% endif %} _KlickyDebug msg="Dock_Probe probe locked not docking probe" _CheckProbe action=query {% else %} {% if verbose %} { action_respond_info("Probe already docked") } {% endif %} _KlickyDebug msg="Dock_Probe probe already docked, doing nothing" _CheckProbe action=query {% endif %} _exit_point function=Dock_Probe move={goback} {% else %} _KlickyDebug msg="Dock_Probe probe docking bypassed, doing nothing" {% endif %} [gcode_macro PROBE_CALIBRATE] rename_existing = _PROBE_CALIBRATE description = Calibrate the probes z_offset with klicky automount gcode = {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set max_x = printer["gcode_macro _User_Variables"].max_bed_x|float %} {% set max_y = printer["gcode_macro _User_Variables"].max_bed_y|float %} {% set probe_offset_x = printer['configfile'].config["probe"]["x_offset"]|float %} {% set probe_offset_y = printer['configfile'].config["probe"]["y_offset"]|float %} {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} {% if not 'xyz' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X, Y and Z Axis First!") } {% endif %} _KlickyDebug msg="probe_calibrate Axis homed" _KlickyDebug msg="probe_calibrate Variables max_x={max_x},max_y={max_y},probe_offset_x={probe_offset_x},probe_offset_y={probe_offset_y}" {% if printer['gcode_move'].position.y > (max_y - probe_offset_y) or printer['gcode_move'].position.y < - probe_offset_y or printer['gcode_move'].position.x > (max_x - probe_offset_x) or printer['gcode_move'].position.x < - probe_offset_x %} { action_raise_error("Must perform PROBE_CALIBRATE with the probe above the BED, check klicky_variables bed size!") } {% endif %} {% if bypass_probe_docking == False %} _CheckProbe action=query G90 Attach_Probe back=1 _KLICKY_STATUS_CALIBRATING_Z _KlickyDebug msg="probe_calibrate calling klipper probe_calibrate" _PROBE_CALIBRATE {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} M118 moving the toolhead 20 mm from the bed _KlickyDebug msg="probe_calibrate Moving Z up by 20mm" TESTZ Z=20 M118 remove manually the probe and continue calibration _KLICKY_STATUS_READY {% else %} _KLICKY_STATUS_CALIBRATING_Z _KlickyDebug msg="probe_calibrate calling klipper probe_calibrate" _PROBE_CALIBRATE {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} _KLICKY_STATUS_READY {% endif %} [gcode_macro PROBE_ACCURACY] rename_existing = _PROBE_ACCURACY description = Probe Z-height accuracy at current XY position with klicky automount gcode = {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set max_x = printer["gcode_macro _User_Variables"].max_bed_x|float %} {% set max_y = printer["gcode_macro _User_Variables"].max_bed_y|float %} {% set probe_offset_x = printer['configfile'].config["probe"]["x_offset"]|float %} {% set probe_offset_y = printer['configfile'].config["probe"]["y_offset"]|float %} {% if not 'xyz' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X, Y and Z Axis First!") } {% endif %} _KlickyDebug msg="probe_accuracy Axis homed" _KlickyDebug msg="probe_accuracy Variables max_x={max_x},max_y={max_y},probe_offset_x={probe_offset_x},probe_offset_y={probe_offset_y}" _entry_point function=PROBE_ACCURACY {% if printer['gcode_move'].position.y > (max_y - probe_offset_y) or printer['gcode_move'].position.y < - probe_offset_y or printer['gcode_move'].position.x > (max_x - probe_offset_x) or printer['gcode_move'].position.x < - probe_offset_x %} { action_raise_error("Must perform PROBE_ACCURACY with the probe above the BED, check klicky_variables bed size!") } {% endif%} _CheckProbe action=query Attach_Probe back=1 _KlickyDebug msg="probe_accuracy calling klipper probe accuracy" _PROBE_ACCURACY {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} Dock_Probe back=1 _exit_point function=PROBE_ACCURACY move=1 [homing_override] axes = xyz gcode = _User_Variables {% set verbose = printer["gcode_macro _User_Variables"].verbose %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z %} {% set enable_z_hop = printer["gcode_macro _User_Variables"].enable_z_hop %} {% set kinematic_z = 0 %} {% set dock_on_zhome = printer["gcode_macro _User_Variables"].dock_on_zhome|default(True) %} {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set home_backoff_x = printer["gcode_macro _User_Variables"].home_backoff_x|default(0) %} {% set home_backoff_y = printer["gcode_macro _User_Variables"].home_backoff_y|default(0) %} {% set override_homing = printer["gcode_macro _User_Variables"].override_homing|default('') %} _klicky_check_variables_version _CheckProbe action=query {% set home_x, home_y, home_z, leave_probe_attached = False, False, False, False %} {% if 'PROBE_LOCK' in params%} {% if verbose %} { action_respond_info("PROBE_LOCK = True") } {% endif %} {% set leave_probe_attached = True %} {% endif %} {% if not 'X' in params and not 'Y' in params and not 'Z' in params %} {% set home_x, home_y, home_z = True, True, True %} _KlickyDebug msg="homing_override goint to home all axes" {% else %} {% if 'X' in params %} {% set home_x = True %} _KlickyDebug msg="homing_override goint to home X" {% endif %} {% if 'Y' in params %} {% set home_y = True %} _KlickyDebug msg="homing_override goint to home Y" {% endif %} {% if 'Z' in params %} {% set home_z = True %} _KlickyDebug msg="homing_override goint to home Z" {% endif %} {% if 'X' in params and 'Y' in params and 'Z' in params %} _Homing_Variables reset=1 _KlickyDebug msg="homing_override goint to home all axes" {% endif %} {% endif %} _entry_point function=homing_override _KLICKY_STATUS_HOMING {% if 'z' not in printer.toolhead.homed_axes %} {% if enable_z_hop == False %} _KlickyDebug msg="homing_override z_hop disabled" {% set kinematic_z = safe_z %} {% set safe_z = safe_z %} {% endif %} {% endif %} {% if 'x' not in printer.toolhead.homed_axes and 'y' not in printer.toolhead.homed_axes and 'z' not in printer.toolhead.homed_axes%} {% if verbose %} { action_respond_info("No axis homed") } {% endif %} _KlickyDebug msg="homing_override no axis homed, setting position as X=Y=0 Z={kinematic_z}" SET_KINEMATIC_POSITION X=0 Y=0 Z={kinematic_z} M400 _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% if home_z != True %} _KlickyDebug msg="homing_override clearing axis homed state if not already homing Z" M84 {% endif %} {% endif %} {% if home_z %} {% if 'x' not in printer.toolhead.homed_axes and 'y' not in printer.toolhead.homed_axes%} {% if verbose %} { action_respond_info("X or Y not homed, forcing full G28") } {% endif %} {% set home_x, home_y, home_z = True, True, True %} {% endif %} {% endif %} {% if ((attachmove_y == 0 and override_homing == '' ) or (override_homing == 'Y'))%} {% if home_y %} {% if override_homing == 'Y' %} _KlickyDebug msg="homing_override Y homing first override, due to override_homing = Y" {% else %} _KlickyDebug msg="homing_override Y homing first override, due to attachmove_y = 0" {% endif %} {% if verbose %} { action_respond_info("Homing Y") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if printer["gcode_macro _HOME_Y"] is defined %} _KlickyDebug msg="homing_override calling _HOME_Y external script to handle the Y homing" _HOME_Y {% else %} _KlickyDebug msg="homing_override Homing Y G28 Y0" G28 Y0 {% if home_backoff_y != 0 %} {% if (printer.configfile.settings.stepper_y.position_endstop > (printer.configfile.settings.stepper_y.position_min|default(0) + printer.configfile.settings.stepper_y.position_max)/2) %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop-home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate} {% else %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate} {%endif %} {%endif %} {% endif %} {% endif %} {% set home_y = False %} {% endif %} {% if home_x %} {% if verbose %} { action_respond_info("Homing X") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in X homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if printer["gcode_macro _HOME_X"] is defined %} _KlickyDebug msg="homing_override calling _HOME_X external script to handle the X homing" _HOME_X {% else %} _KlickyDebug msg="homing_override Homing X, G28 X0" G28 X0 {% if home_backoff_x != 0 %} {% if (printer.configfile.settings.stepper_x.position_endstop > (printer.configfile.settings.stepper_x.position_min|default(0) + printer.configfile.settings.stepper_x.position_max)/2) %} _KlickyDebug msg="homing_override backing off X endstop, G0 X{printer.configfile.settings.stepper_x.position_endstop - home_backoff_x|int} F{travel_feedrate}" G0 X{printer.configfile.settings.stepper_x.position_endstop - home_backoff_x|int} F{travel_feedrate} {% else %} _KlickyDebug msg="homing_override backing off X endstop, G0 X{printer.configfile.settings.stepper_x.position_endstop + home_backoff_x|int} F{travel_feedrate}" G0 X{printer.configfile.settings.stepper_x.position_endstop + home_backoff_x|int} F{travel_feedrate} {%endif %} {%endif %} {% endif %} {% endif %} {% if home_y %} {% if verbose %} { action_respond_info("Homing Y") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if printer["gcode_macro _HOME_Y"] is defined %} _KlickyDebug msg="homing_override calling _HOME_Y external script to handle the Y homing" _HOME_Y {% else %} _KlickyDebug msg="homing_override Homing Y, G28 Y0" G28 Y0 {% if home_backoff_y != 0 %} {% if (printer.configfile.settings.stepper_y.position_endstop > (printer.configfile.settings.stepper_y.position_min|default(0) + printer.configfile.settings.stepper_y.position_max)/2) %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate} {% else %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate} {%endif %} {%endif %} {% endif %} {% endif %} {% if home_z %} {% if verbose %} { action_respond_info("Homing Z") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if 'z_virtual_endstop' in printer['configfile'].config["stepper_z"]["endstop_pin"] %} _KlickyDebug msg="homing_override probe configured as a virtual Z endstop attaching probe" Attach_Probe {% if leave_probe_attached %} _Probe_Lock {% endif %} {% elif dock_on_zhome == True %} Dock_Probe {% endif %} _Home_Z_ {% if 'z_virtual_endstop' in printer['configfile'].config["stepper_z"]["endstop_pin"] %} _KlickyDebug msg="homing_override probe no longer required, docking probe" Dock_Probe {% elif dock_on_zhome == False %} Dock_Probe {% endif %} {% endif %} _CheckProbe action=query _Park_Toolhead _exit_point function=homing_override _KLICKY_STATUS_READY [gcode_macro _Umbilical_Path] gcode = {% set umbilical = printer["gcode_macro _User_Variables"].umbilical %} {% set umbilical_x = printer["gcode_macro _User_Variables"].umbilical_x %} {% set umbilical_y = printer["gcode_macro _User_Variables"].umbilical_y %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% if umbilical %} _entry_point function=Umbilical_Path _KlickyDebug msg="_Umbilical_Path moving to G0 X{umbilical_x} Y{umbilical_y} Z{safe_z} F{travel_feedrate}" G0 X{umbilical_x} Y{umbilical_y} Z{safe_z} F{travel_feedrate} _exit_point function=Umbilical_Path {% endif %} [gcode_macro _Home_Z_] gcode = {% set z_endstop_x = printer["gcode_macro _Probe_Variables"].z_endstop_x %} {% set z_endstop_y = printer["gcode_macro _Probe_Variables"].z_endstop_y %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} _entry_point function=Home_Z {% if not 'xy' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X and Y Axis First!") } {% else %} _KlickyDebug msg="_Home_Z_ XY Axis homed" {% if not 'z' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Resetting Z position to zero") } {% endif %} _KlickyDebug msg="_Home_Z_ Z not homed, setting position as X=Y=Z=0" SET_KINEMATIC_POSITION Z=0 {% endif %} _KlickyDebug msg="_Home_Z_ moving to Z endstop position G0 X{z_endstop_x} Y{z_endstop_y} F{travel_feedrate}" G0 X{z_endstop_x} Y{z_endstop_y} F{travel_feedrate} _KlickyDebug msg="_Home_Z_ Homing Z G28 Z" G28 Z0 _KlickyDebug msg="_Home_Z_ toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _exit_point function=Home_Z [gcode_macro _CheckProbe] variable_probe_state = 0 gcode = Query_Probe _SetProbeState action={ params.ACTION } [gcode_macro _SetProbeState] gcode = {% set query_probe_triggered = printer.probe.last_query %} {% set action = params.ACTION|default('') %} {% if query_probe_triggered %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_attached VALUE={ False } {% else %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_attached VALUE={ True } {% endif %} {% if action == 'query' %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_state VALUE={ query_probe_triggered } {% endif %} {% if not query_probe_triggered and action == 'dock' %} { action_raise_error("Probe dock failed!") } {% endif %} {% if query_probe_triggered and action == 'attach' %} { action_raise_error("Probe attach failed!") } {% endif %} [gcode_macro _Park_Toolhead] gcode = {% set park_toolhead = printer["gcode_macro _User_Variables"].park_toolhead %} {% set parkposition_x = printer["gcode_macro _User_Variables"].parkposition_x %} {% set parkposition_y = printer["gcode_macro _User_Variables"].parkposition_y %} {% set parkposition_z = printer["gcode_macro _User_Variables"].parkposition_z %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} _entry_point function=Park_Toolhead {% if park_toolhead and 'xyz' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Parking Toolhead") } {% endif %} {% if parkposition_z == -128 %} _KlickyDebug msg="_Park_Toolhead moving to G0 X{parkposition_x} Y{parkposition_y} F{travel_feedrate}" G0 X{parkposition_x} Y{parkposition_y} F{travel_feedrate} {% else %} _KlickyDebug msg="_Park_Toolhead moving to G0 X{parkposition_x} Y{parkposition_y} Z{parkposition_z} F{travel_feedrate}" G0 X{parkposition_x} Y{parkposition_y} Z{parkposition_z} F{travel_feedrate} {% endif %} {% endif %} _exit_point function=Park_Toolhead [gcode_macro _klicky_status_ready] gcode = {% if printer['gcode_macro status_ready'] is defined %} _KlickyDebug msg="_klicky_status_ready activating the LED STATUS_READY" STATUS_READY {% endif %} [gcode_macro _klicky_status_busy] gcode = {% if printer['gcode_macro status_busy'] is defined %} _KlickyDebug msg="_klicky_status_busy activating the LED STATUS_BUSY" STATUS_BUSY {% endif %} [gcode_macro _klicky_status_leveling] gcode = {% if printer['gcode_macro status_leveling'] is defined %} _KlickyDebug msg="_klicky_status_leveling activating the LED STATUS_LEVELING" STATUS_LEVELING {% endif %} [gcode_macro _klicky_status_homing] gcode = {% if printer['gcode_macro status_homing'] is defined %} _KlickyDebug msg="_klicky_status_homing activating the LED STATUS_HOMING" STATUS_HOMING {% endif %} [gcode_macro _klicky_status_cleaning] gcode = {% if printer['gcode_macro status_cleaning'] is defined %} _KlickyDebug msg="_klicky_status_cleaning activating the LED STATUS_CLEANING" STATUS_CLEANING {% endif %} [gcode_macro _klicky_status_meshing] gcode = {% if printer['gcode_macro status_meshing'] is defined %} _KlickyDebug msg="_klicky_status_meshing activating the LED STATUS_MESHING" STATUS_MESHING {% endif %} [gcode_macro _klicky_status_calibrating_z] gcode = {% if printer['gcode_macro status_calibrating_z'] is defined %} _KlickyDebug msg="_klicky_status_calibrating_z activating the LED STATUS_CALIBRATING_Z" STATUS_CALIBRATING_Z {% endif %} [gcode_macro BED_MESH_CALIBRATE] rename_existing = _BED_MESH_CALIBRATE description = Perform Mesh Bed Leveling with klicky automount gcode = {% set V = printer["gcode_macro _User_Variables"].verbose %} {% if V %} { action_respond_info("Bed Mesh Calibrate") } {% endif %} _CheckProbe action=query G90 Attach_Probe _KLICKY_STATUS_MESHING _BED_MESH_CALIBRATE {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} Dock_Probe [gcode_macro Z_TILT_ADJUST] rename_existing = _Z_TILT_ADJUST description = gcode = {% set V = printer["gcode_macro _User_Variables"].verbose %} {% if V %} { action_respond_info("Z Tilt Adjust") } {% endif %} _CheckProbe action=query G90 Attach_Probe _KLICKY_STATUS_LEVELING _Z_TILT_ADJUST {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} Dock_Probe G28 Z0 [mcu] serial = /dev/serial/by-id/usb-Klipper_stm32f446xx_250031000750535556323420-if00 [printer] kinematics = hybrid_corexy max_velocity = 400 max_accel = 3000 max_z_velocity = 5 max_z_accel = 200 [stepper_x] step_pin = PF13 dir_pin = PF12 enable_pin = !PF14 microsteps = 16 rotation_distance = 40 endstop_pin = !PG6 position_endstop = -20 position_min = -20 position_max = 270 homing_speed = 50 [dual_carriage] step_pin = PG0 dir_pin = PG1 enable_pin = !PF15 microsteps = 16 rotation_distance = 40 endstop_pin = !PG9 position_endstop = 350 position_min = 80 position_max = 350 homing_speed = 50 [stepper_y] step_pin = PF11 dir_pin = !PG3 enable_pin = !PG5 microsteps = 16 rotation_distance = 40 endstop_pin = !PG10 position_endstop = 320 position_max = 320 position_min = 0 homing_speed = 50 [stepper_y1] step_pin = PG4 dir_pin = PC1 enable_pin = !PA0 microsteps = 16 rotation_distance = 40 endstop_pin = !PG11 [stepper_z] step_pin = PF9 dir_pin = PF10 enable_pin = !PG2 microsteps = 16 rotation_distance = 2 endstop_pin = probe:z_virtual_endstop position_min = 0 position_max = 200 [stepper_z1] step_pin = PC13 dir_pin = PF0 enable_pin = !PF1 microsteps = 16 rotation_distance = 2 endstop_pin = probe:z_virtual_endstop [stepper_z2] step_pin = PE2 dir_pin = PE3 enable_pin = !PD4 microsteps = 16 rotation_distance = 2 endstop_pin = probe:z_virtual_endstop [extruder] step_pin = PE6 dir_pin = PA14 enable_pin = !PE0 microsteps = 16 full_steps_per_rotation = 200 rotation_distance = 4.637 nozzle_diameter = 0.400 filament_diameter = 1.750 max_extrude_only_distance = 500.0 max_extrude_only_velocity = 120 heater_pin = PA2 sensor_pin = PF4 sensor_type = ATC Semitec 104NT-4-R025H42G min_temp = 0 max_temp = 300 control = pid pid_kp = 32.724 pid_ki = 3.576 pid_kd = 74.855 [probe] pin = PG14 x_offset = 0 y_offset = 25.0 z_offset = 1 speed = 10.0 samples = 3 samples_result = median sample_retract_dist = 3.0 samples_tolerance = 0.006 samples_tolerance_retries = 3 [z_tilt] z_positions = -69, -19 79, 150 69, -19 points = 20, 0 155, 250 250, 0 speed = 50 horizontal_move_z = 15 retries = 10 retry_tolerance = 0.01 [bed_mesh] speed = 120 horizontal_move_z = 15 mesh_min = 50,20 mesh_max = 230,200 probe_count = 5,5 algorithm = bicubic fade_start = 1 fade_end = 10 fade_target = 0 [filament_switch_sensor material_0] switch_pin = !PG12 [filament_switch_sensor material_1] switch_pin = !PG13 [heater_fan fan0] pin = PA8 [fan_generic Part_T0] pin = PE5 [heater_fan fan1] pin = PD12 [fan_generic Part_T1] pin = PD13 [tmc2209 stepper_x] uart_pin = PC4 run_current = 0.8 stealthchop_threshold = 999999 [tmc2209 dual_carriage] uart_pin = PD11 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_y] uart_pin = PC6 run_current = 0.8 stealthchop_threshold = 999999 [tmc2209 stepper_y1] uart_pin = PC7 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_z] uart_pin = PF2 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_z1] uart_pin = PE4 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_z2] uart_pin = PE1 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 extruder] uart_pin = PD3 run_current = 0.850 hold_current = 0.100 stealthchop_threshold = 0 [board_pins] aliases = EXP1_1=PE8, EXP1_2=PE7, EXP1_3=PE9, EXP1_4=PE10, EXP1_5=PE12, EXP1_6=PE13, EXP1_7=PE14, EXP1_8=PE15, EXP1_9=, EXP1_10=<5V>, EXP2_1=PA6, EXP2_2=PA5, EXP2_3=PB1, EXP2_4=PA4, EXP2_5=PB2, EXP2_6=PA7, EXP2_7=PC15, EXP2_8=, EXP2_9=, EXP2_10=PC5 ======================= Extruder max_extrude_ratio=0.266081 mcu 'mcu': Starting serial connect webhooks client 281472854682640: New connection webhooks client 281472854682640: Client info {'program': 'Moonraker', 'version': 'v0.8.0-247-g3008a13'} Loaded MCU 'mcu' 119 commands (v0.11.0-241-gffb5105b / gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2) MCU 'mcu' config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_i2c3=PA8,PC9 BUS_PINS_sdio=PC12,PD2,PC8,PC9,PC10,PC11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi2a=PC2,PC3,PB10 BUS_PINS_spi3=PB4,PB5,PB3 BUS_PINS_spi3a=PC11,PC12,PC10 BUS_PINS_spi4=PE13,PE14,PE12 CLOCK_FREQ=180000000 MCU=stm32f446xx PWM_MAX=255 RESERVE_PINS_USB=PA11,PA12 RESERVE_PINS_crystal=PH0,PH1 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 Sending MCU 'mcu' printer configuration... Configured MCU 'mcu' (1024 moves) bed_mesh: generated points Index | Tool Adjusted | Probe 0 | (50.0, -5.0) | (50.0, 20.0) 1 | (95.0, -5.0) | (95.0, 20.0) 2 | (140.0, -5.0) | (140.0, 20.0) 3 | (185.0, -5.0) | (185.0, 20.0) 4 | (230.0, -5.0) | (230.0, 20.0) 5 | (230.0, 40.0) | (230.0, 65.0) 6 | (185.0, 40.0) | (185.0, 65.0) 7 | (140.0, 40.0) | (140.0, 65.0) 8 | (95.0, 40.0) | (95.0, 65.0) 9 | (50.0, 40.0) | (50.0, 65.0) 10 | (50.0, 85.0) | (50.0, 110.0) 11 | (95.0, 85.0) | (95.0, 110.0) 12 | (140.0, 85.0) | (140.0, 110.0) 13 | (185.0, 85.0) | (185.0, 110.0) 14 | (230.0, 85.0) | (230.0, 110.0) 15 | (230.0, 130.0) | (230.0, 155.0) 16 | (185.0, 130.0) | (185.0, 155.0) 17 | (140.0, 130.0) | (140.0, 155.0) 18 | (95.0, 130.0) | (95.0, 155.0) 19 | (50.0, 130.0) | (50.0, 155.0) 20 | (50.0, 175.0) | (50.0, 200.0) 21 | (95.0, 175.0) | (95.0, 200.0) 22 | (140.0, 175.0) | (140.0, 200.0) 23 | (185.0, 175.0) | (185.0, 200.0) 24 | (230.0, 175.0) | (230.0, 200.0) Starting heater checks for extruder Stats 306.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=3728 bytes_read=7279 bytes_retransmit=9 bytes_invalid=0 send_seq=299 receive_seq=299 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180111071 sysload=0.47 cputime=19.218 memavail=706980 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=0.0 pwm=0.000 webhooks: registering remote method 'shutdown_machine' for connection id: 281472854682640 webhooks: registering remote method 'reboot_machine' for connection id: 281472854682640 webhooks: registering remote method 'pause_job_queue' for connection id: 281472854682640 webhooks: registering remote method 'start_job_queue' for connection id: 281472854682640 Stats 307.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=3742 bytes_read=7325 bytes_retransmit=9 bytes_invalid=0 send_seq=301 receive_seq=301 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180026271 sysload=0.47 cputime=19.279 memavail=707040 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 308.7: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000006 bytes_write=3748 bytes_read=7401 bytes_retransmit=9 bytes_invalid=0 send_seq=302 receive_seq=302 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180009417 sysload=0.47 cputime=19.313 memavail=706880 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 309.7: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000006 bytes_write=3754 bytes_read=7462 bytes_retransmit=9 bytes_invalid=0 send_seq=303 receive_seq=303 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180005076 sysload=0.47 cputime=19.335 memavail=706124 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Stats 310.7: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000006 bytes_write=3760 bytes_read=7538 bytes_retransmit=9 bytes_invalid=0 send_seq=304 receive_seq=304 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180004177 sysload=0.43 cputime=19.360 memavail=706140 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 311.7: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000006 bytes_write=3766 bytes_read=7599 bytes_retransmit=9 bytes_invalid=0 send_seq=305 receive_seq=305 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003589 sysload=0.43 cputime=19.378 memavail=706140 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 312.7: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000006 bytes_write=3772 bytes_read=7660 bytes_retransmit=9 bytes_invalid=0 send_seq=306 receive_seq=306 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003363 sysload=0.43 cputime=19.399 memavail=706148 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 313.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3778 bytes_read=7749 bytes_retransmit=9 bytes_invalid=0 send_seq=307 receive_seq=307 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003330 sysload=0.43 cputime=19.422 memavail=706152 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 314.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3784 bytes_read=7810 bytes_retransmit=9 bytes_invalid=0 send_seq=308 receive_seq=308 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003314 sysload=0.43 cputime=19.440 memavail=706364 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Stats 315.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3790 bytes_read=7871 bytes_retransmit=9 bytes_invalid=0 send_seq=309 receive_seq=309 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003456 sysload=0.48 cputime=19.461 memavail=706416 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 316.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3796 bytes_read=7947 bytes_retransmit=9 bytes_invalid=0 send_seq=310 receive_seq=310 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003415 sysload=0.48 cputime=19.479 memavail=706644 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 317.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3802 bytes_read=8008 bytes_retransmit=9 bytes_invalid=0 send_seq=311 receive_seq=311 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003425 sysload=0.48 cputime=19.502 memavail=706708 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 318.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3808 bytes_read=8082 bytes_retransmit=9 bytes_invalid=0 send_seq=312 receive_seq=312 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003428 sysload=0.48 cputime=19.520 memavail=706908 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 319.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3814 bytes_read=8158 bytes_retransmit=9 bytes_invalid=0 send_seq=313 receive_seq=313 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003410 sysload=0.48 cputime=19.538 memavail=706972 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 320.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3820 bytes_read=8219 bytes_retransmit=9 bytes_invalid=0 send_seq=314 receive_seq=314 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003482 sysload=0.44 cputime=19.561 memavail=706972 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 321.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3826 bytes_read=8280 bytes_retransmit=9 bytes_invalid=0 send_seq=315 receive_seq=315 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003488 sysload=0.44 cputime=19.579 memavail=706972 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 322.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3838 bytes_read=8372 bytes_retransmit=9 bytes_invalid=0 send_seq=317 receive_seq=317 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003494 sysload=0.44 cputime=19.605 memavail=707464 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 323.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3844 bytes_read=8446 bytes_retransmit=9 bytes_invalid=0 send_seq=318 receive_seq=318 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003495 sysload=0.44 cputime=19.623 memavail=707780 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 324.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3850 bytes_read=8507 bytes_retransmit=9 bytes_invalid=0 send_seq=319 receive_seq=319 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003538 sysload=0.44 cputime=19.641 memavail=707780 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 325.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3856 bytes_read=8583 bytes_retransmit=9 bytes_invalid=0 send_seq=320 receive_seq=320 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003611 sysload=0.40 cputime=19.664 memavail=707780 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 326.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3862 bytes_read=8643 bytes_retransmit=9 bytes_invalid=0 send_seq=321 receive_seq=321 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003609 sysload=0.40 cputime=19.681 memavail=707792 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 327.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3868 bytes_read=8700 bytes_retransmit=9 bytes_invalid=0 send_seq=322 receive_seq=322 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003733 sysload=0.40 cputime=19.707 memavail=707792 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 328.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3874 bytes_read=8789 bytes_retransmit=9 bytes_invalid=0 send_seq=323 receive_seq=323 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003709 sysload=0.40 cputime=19.725 memavail=707792 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 329.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3880 bytes_read=8850 bytes_retransmit=9 bytes_invalid=0 send_seq=324 receive_seq=324 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003684 sysload=0.40 cputime=19.744 memavail=707288 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 330.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3886 bytes_read=8911 bytes_retransmit=9 bytes_invalid=0 send_seq=325 receive_seq=325 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003671 sysload=0.45 cputime=19.765 memavail=707296 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 331.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3892 bytes_read=8987 bytes_retransmit=9 bytes_invalid=0 send_seq=326 receive_seq=326 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003663 sysload=0.45 cputime=19.783 memavail=707296 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 332.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3898 bytes_read=9048 bytes_retransmit=9 bytes_invalid=0 send_seq=327 receive_seq=327 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003646 sysload=0.45 cputime=19.803 memavail=707048 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 333.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3904 bytes_read=9138 bytes_retransmit=9 bytes_invalid=0 send_seq=328 receive_seq=328 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003628 sysload=0.45 cputime=19.821 memavail=707048 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 334.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3910 bytes_read=9199 bytes_retransmit=9 bytes_invalid=0 send_seq=329 receive_seq=329 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003625 sysload=0.45 cputime=19.842 memavail=707060 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 335.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3916 bytes_read=9260 bytes_retransmit=9 bytes_invalid=0 send_seq=330 receive_seq=330 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003622 sysload=0.41 cputime=19.859 memavail=707060 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 336.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3922 bytes_read=9336 bytes_retransmit=9 bytes_invalid=0 send_seq=331 receive_seq=331 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003632 sysload=0.41 cputime=19.884 memavail=707060 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 337.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3928 bytes_read=9397 bytes_retransmit=9 bytes_invalid=0 send_seq=332 receive_seq=332 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003625 sysload=0.41 cputime=19.901 memavail=707060 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 338.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3934 bytes_read=9472 bytes_retransmit=9 bytes_invalid=0 send_seq=333 receive_seq=333 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003622 sysload=0.41 cputime=19.920 memavail=707060 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 339.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3940 bytes_read=9548 bytes_retransmit=9 bytes_invalid=0 send_seq=334 receive_seq=334 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003614 sysload=0.41 cputime=19.943 memavail=706564 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 340.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3946 bytes_read=9609 bytes_retransmit=9 bytes_invalid=0 send_seq=335 receive_seq=335 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003608 sysload=0.38 cputime=19.960 memavail=706564 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 341.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3952 bytes_read=9670 bytes_retransmit=9 bytes_invalid=0 send_seq=336 receive_seq=336 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003611 sysload=0.38 cputime=19.978 memavail=706564 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 342.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3958 bytes_read=9746 bytes_retransmit=9 bytes_invalid=0 send_seq=337 receive_seq=337 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003612 sysload=0.38 cputime=19.996 memavail=706568 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 343.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3964 bytes_read=9820 bytes_retransmit=9 bytes_invalid=0 send_seq=338 receive_seq=338 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003613 sysload=0.38 cputime=20.017 memavail=706668 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 344.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3970 bytes_read=9881 bytes_retransmit=9 bytes_invalid=0 send_seq=339 receive_seq=339 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003610 sysload=0.38 cputime=20.034 memavail=706444 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 345.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3976 bytes_read=9957 bytes_retransmit=9 bytes_invalid=0 send_seq=340 receive_seq=340 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003620 sysload=0.43 cputime=20.057 memavail=706456 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 346.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3982 bytes_read=10018 bytes_retransmit=9 bytes_invalid=0 send_seq=341 receive_seq=341 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003626 sysload=0.43 cputime=20.088 memavail=706456 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 347.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3988 bytes_read=10079 bytes_retransmit=9 bytes_invalid=0 send_seq=342 receive_seq=342 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003636 sysload=0.43 cputime=20.118 memavail=706456 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Stats 348.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3994 bytes_read=10168 bytes_retransmit=9 bytes_invalid=0 send_seq=343 receive_seq=343 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003644 sysload=0.43 cputime=20.142 memavail=706456 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 349.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4000 bytes_read=10229 bytes_retransmit=9 bytes_invalid=0 send_seq=344 receive_seq=344 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003640 sysload=0.43 cputime=20.159 memavail=706184 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 350.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4006 bytes_read=10289 bytes_retransmit=9 bytes_invalid=0 send_seq=345 receive_seq=345 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003633 sysload=0.40 cputime=20.181 memavail=706240 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 351.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4012 bytes_read=10360 bytes_retransmit=9 bytes_invalid=0 send_seq=346 receive_seq=346 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003638 sysload=0.40 cputime=20.210 memavail=706240 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 352.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4018 bytes_read=10421 bytes_retransmit=9 bytes_invalid=0 send_seq=347 receive_seq=347 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003637 sysload=0.40 cputime=20.233 memavail=707072 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 353.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4024 bytes_read=10495 bytes_retransmit=9 bytes_invalid=0 send_seq=348 receive_seq=348 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003631 sysload=0.40 cputime=20.250 memavail=707084 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 354.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4030 bytes_read=10571 bytes_retransmit=9 bytes_invalid=0 send_seq=349 receive_seq=349 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003643 sysload=0.40 cputime=20.269 memavail=706580 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.8 pwm=0.000 Stats 355.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4036 bytes_read=10632 bytes_retransmit=9 bytes_invalid=0 send_seq=350 receive_seq=350 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003641 sysload=0.36 cputime=20.286 memavail=706592 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 356.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4042 bytes_read=10693 bytes_retransmit=9 bytes_invalid=0 send_seq=351 receive_seq=351 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003642 sysload=0.36 cputime=20.306 memavail=706592 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 357.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4048 bytes_read=10769 bytes_retransmit=9 bytes_invalid=0 send_seq=352 receive_seq=352 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003643 sysload=0.36 cputime=20.325 memavail=706592 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 358.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4054 bytes_read=10844 bytes_retransmit=9 bytes_invalid=0 send_seq=353 receive_seq=353 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003641 sysload=0.36 cputime=20.345 memavail=706368 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 359.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4060 bytes_read=10905 bytes_retransmit=9 bytes_invalid=0 send_seq=354 receive_seq=354 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003639 sysload=0.36 cputime=20.367 memavail=706532 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 360.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4066 bytes_read=10981 bytes_retransmit=9 bytes_invalid=0 send_seq=355 receive_seq=355 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003637 sysload=0.33 cputime=20.385 memavail=706624 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 361.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4072 bytes_read=11042 bytes_retransmit=9 bytes_invalid=0 send_seq=356 receive_seq=356 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003648 sysload=0.33 cputime=20.405 memavail=706624 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 362.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=4078 bytes_read=11103 bytes_retransmit=9 bytes_invalid=0 send_seq=357 receive_seq=357 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003647 sysload=0.33 cputime=20.423 memavail=706636 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 SET_KINEMATIC_POSITION pos=100.000,100.000,10.000 Stats 795.1: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6712 bytes_read=40782 bytes_retransmit=9 bytes_invalid=0 send_seq=796 receive_seq=796 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003666 sysload=0.15 cputime=28.822 memavail=701812 print_time=491.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 796.1: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6718 bytes_read=40858 bytes_retransmit=9 bytes_invalid=0 send_seq=797 receive_seq=797 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003668 sysload=0.38 cputime=28.849 memavail=701856 print_time=491.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 797.1: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6724 bytes_read=40919 bytes_retransmit=9 bytes_invalid=0 send_seq=798 receive_seq=798 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003668 sysload=0.38 cputime=28.867 memavail=702056 print_time=491.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 798.1: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6730 bytes_read=40980 bytes_retransmit=9 bytes_invalid=0 send_seq=799 receive_seq=799 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003668 sysload=0.38 cputime=28.884 memavail=701856 print_time=491.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 799.1: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6736 bytes_read=41069 bytes_retransmit=9 bytes_invalid=0 send_seq=800 receive_seq=800 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003667 sysload=0.38 cputime=28.903 memavail=701856 print_time=491.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 800.1: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6742 bytes_read=41130 bytes_retransmit=9 bytes_invalid=0 send_seq=801 receive_seq=801 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003665 sysload=0.38 cputime=28.922 memavail=701608 print_time=491.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 801.1: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6748 bytes_read=41191 bytes_retransmit=9 bytes_invalid=0 send_seq=802 receive_seq=802 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003666 sysload=0.35 cputime=28.947 memavail=701616 print_time=491.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 802.1: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6754 bytes_read=41267 bytes_retransmit=9 bytes_invalid=0 send_seq=803 receive_seq=803 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003666 sysload=0.35 cputime=28.965 memavail=701616 print_time=491.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 803.1: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6760 bytes_read=41328 bytes_retransmit=9 bytes_invalid=0 send_seq=804 receive_seq=804 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003669 sysload=0.35 cputime=28.986 memavail=701648 print_time=491.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 804.1: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6766 bytes_read=41402 bytes_retransmit=9 bytes_invalid=0 send_seq=805 receive_seq=805 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003672 sysload=0.35 cputime=29.016 memavail=701648 print_time=491.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 805.1: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6772 bytes_read=41473 bytes_retransmit=9 bytes_invalid=0 send_seq=806 receive_seq=806 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003676 sysload=0.35 cputime=29.040 memavail=702028 print_time=491.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 806.1: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6778 bytes_read=41533 bytes_retransmit=9 bytes_invalid=0 send_seq=807 receive_seq=807 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003675 sysload=0.40 cputime=29.057 memavail=701776 print_time=491.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 807.1: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=6784 bytes_read=41594 bytes_retransmit=9 bytes_invalid=0 send_seq=808 receive_seq=808 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003675 sysload=0.40 cputime=29.080 memavail=702040 print_time=491.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 808.1: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=8366 bytes_read=43046 bytes_retransmit=9 bytes_invalid=0 send_seq=889 receive_seq=889 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003674 sysload=0.40 cputime=29.260 memavail=702040 print_time=504.409 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 809.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=8843 bytes_read=43341 bytes_retransmit=9 bytes_invalid=0 send_seq=905 receive_seq=905 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003672 sysload=0.40 cputime=29.305 memavail=702740 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 810.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=8961 bytes_read=43586 bytes_retransmit=9 bytes_invalid=0 send_seq=914 receive_seq=914 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003668 sysload=0.40 cputime=29.342 memavail=702796 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 811.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=9079 bytes_read=43846 bytes_retransmit=9 bytes_invalid=0 send_seq=923 receive_seq=923 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003668 sysload=0.45 cputime=29.378 memavail=702796 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 812.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=9203 bytes_read=44107 bytes_retransmit=9 bytes_invalid=0 send_seq=933 receive_seq=933 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003668 sysload=0.45 cputime=29.420 memavail=702804 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 813.1: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=9321 bytes_read=44352 bytes_retransmit=9 bytes_invalid=0 send_seq=942 receive_seq=942 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003666 sysload=0.45 cputime=29.457 memavail=703340 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 814.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=9439 bytes_read=44627 bytes_retransmit=9 bytes_invalid=0 send_seq=951 receive_seq=951 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003665 sysload=0.45 cputime=29.512 memavail=703592 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 815.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=9557 bytes_read=44872 bytes_retransmit=9 bytes_invalid=0 send_seq=960 receive_seq=960 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003663 sysload=0.45 cputime=29.567 memavail=703592 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 816.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=9675 bytes_read=45117 bytes_retransmit=9 bytes_invalid=0 send_seq=969 receive_seq=969 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003667 sysload=0.41 cputime=29.608 memavail=703592 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 817.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=9793 bytes_read=45377 bytes_retransmit=9 bytes_invalid=0 send_seq=978 receive_seq=978 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003667 sysload=0.41 cputime=29.650 memavail=703856 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 818.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=9911 bytes_read=45622 bytes_retransmit=9 bytes_invalid=0 send_seq=987 receive_seq=987 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003668 sysload=0.41 cputime=29.688 memavail=704360 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 819.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10029 bytes_read=45882 bytes_retransmit=9 bytes_invalid=0 send_seq=996 receive_seq=996 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003671 sysload=0.41 cputime=29.728 memavail=704360 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 820.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10147 bytes_read=46142 bytes_retransmit=9 bytes_invalid=0 send_seq=1005 receive_seq=1005 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003673 sysload=0.41 cputime=29.789 memavail=704360 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 821.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10265 bytes_read=46387 bytes_retransmit=9 bytes_invalid=0 send_seq=1014 receive_seq=1014 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003673 sysload=0.38 cputime=29.849 memavail=704360 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 822.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10383 bytes_read=46632 bytes_retransmit=9 bytes_invalid=0 send_seq=1023 receive_seq=1023 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003673 sysload=0.38 cputime=29.887 memavail=704368 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 823.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10501 bytes_read=46892 bytes_retransmit=9 bytes_invalid=0 send_seq=1032 receive_seq=1032 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003674 sysload=0.38 cputime=29.927 memavail=704120 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 824.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10619 bytes_read=47152 bytes_retransmit=9 bytes_invalid=0 send_seq=1041 receive_seq=1041 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003672 sysload=0.38 cputime=29.987 memavail=704120 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 825.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10737 bytes_read=47397 bytes_retransmit=9 bytes_invalid=0 send_seq=1050 receive_seq=1050 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003671 sysload=0.38 cputime=30.030 memavail=704124 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 826.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10855 bytes_read=47657 bytes_retransmit=9 bytes_invalid=0 send_seq=1059 receive_seq=1059 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003673 sysload=0.35 cputime=30.071 memavail=703876 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 827.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10973 bytes_read=47902 bytes_retransmit=9 bytes_invalid=0 send_seq=1068 receive_seq=1068 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003672 sysload=0.35 cputime=30.115 memavail=703888 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 828.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11091 bytes_read=48144 bytes_retransmit=9 bytes_invalid=0 send_seq=1077 receive_seq=1077 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003668 sysload=0.35 cputime=30.152 memavail=703888 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 829.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11209 bytes_read=48415 bytes_retransmit=9 bytes_invalid=0 send_seq=1086 receive_seq=1086 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003670 sysload=0.35 cputime=30.205 memavail=703888 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 830.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11327 bytes_read=48660 bytes_retransmit=9 bytes_invalid=0 send_seq=1095 receive_seq=1095 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003666 sysload=0.35 cputime=30.244 memavail=703888 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 831.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11445 bytes_read=48905 bytes_retransmit=9 bytes_invalid=0 send_seq=1104 receive_seq=1104 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003665 sysload=0.32 cputime=30.284 memavail=703888 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 832.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11563 bytes_read=49165 bytes_retransmit=9 bytes_invalid=0 send_seq=1113 receive_seq=1113 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003664 sysload=0.32 cputime=30.330 memavail=703680 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 833.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11681 bytes_read=49410 bytes_retransmit=9 bytes_invalid=0 send_seq=1122 receive_seq=1122 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003664 sysload=0.32 cputime=30.369 memavail=703176 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 834.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11799 bytes_read=49670 bytes_retransmit=9 bytes_invalid=0 send_seq=1131 receive_seq=1131 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003657 sysload=0.32 cputime=30.424 memavail=703392 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 835.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11917 bytes_read=49930 bytes_retransmit=9 bytes_invalid=0 send_seq=1140 receive_seq=1140 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003648 sysload=0.32 cputime=30.462 memavail=703432 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 836.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=12035 bytes_read=50175 bytes_retransmit=9 bytes_invalid=0 send_seq=1149 receive_seq=1149 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003708 sysload=0.29 cputime=30.503 memavail=703180 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 837.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=12153 bytes_read=50420 bytes_retransmit=9 bytes_invalid=0 send_seq=1158 receive_seq=1158 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003713 sysload=0.29 cputime=30.540 memavail=703180 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 838.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=12271 bytes_read=50680 bytes_retransmit=9 bytes_invalid=0 send_seq=1167 receive_seq=1167 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003707 sysload=0.29 cputime=30.578 memavail=703188 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 839.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=12389 bytes_read=50940 bytes_retransmit=9 bytes_invalid=0 send_seq=1176 receive_seq=1176 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003707 sysload=0.29 cputime=30.642 memavail=703192 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 840.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=12507 bytes_read=51200 bytes_retransmit=9 bytes_invalid=0 send_seq=1185 receive_seq=1185 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003706 sysload=0.29 cputime=30.704 memavail=703192 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 841.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=12625 bytes_read=51445 bytes_retransmit=9 bytes_invalid=0 send_seq=1194 receive_seq=1194 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003715 sysload=0.35 cputime=30.767 memavail=703700 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 842.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=12743 bytes_read=51690 bytes_retransmit=9 bytes_invalid=0 send_seq=1203 receive_seq=1203 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003713 sysload=0.35 cputime=30.824 memavail=703700 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 843.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=12861 bytes_read=51950 bytes_retransmit=9 bytes_invalid=0 send_seq=1212 receive_seq=1212 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003709 sysload=0.35 cputime=30.867 memavail=704096 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 844.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=12979 bytes_read=52210 bytes_retransmit=9 bytes_invalid=0 send_seq=1221 receive_seq=1221 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003704 sysload=0.35 cputime=30.906 memavail=704096 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 845.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=13097 bytes_read=52455 bytes_retransmit=9 bytes_invalid=0 send_seq=1230 receive_seq=1230 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003704 sysload=0.35 cputime=30.966 memavail=704796 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 846.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=13215 bytes_read=52715 bytes_retransmit=9 bytes_invalid=0 send_seq=1239 receive_seq=1239 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003698 sysload=0.32 cputime=31.003 memavail=704852 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 847.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=13333 bytes_read=52960 bytes_retransmit=9 bytes_invalid=0 send_seq=1248 receive_seq=1248 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003694 sysload=0.32 cputime=31.043 memavail=704852 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 848.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=13451 bytes_read=53205 bytes_retransmit=9 bytes_invalid=0 send_seq=1257 receive_seq=1257 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003691 sysload=0.32 cputime=31.085 memavail=704104 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 849.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=13569 bytes_read=53480 bytes_retransmit=9 bytes_invalid=0 send_seq=1266 receive_seq=1266 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003687 sysload=0.32 cputime=31.122 memavail=704104 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 850.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=13687 bytes_read=53725 bytes_retransmit=9 bytes_invalid=0 send_seq=1275 receive_seq=1275 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003687 sysload=0.32 cputime=31.161 memavail=704356 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 851.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=13805 bytes_read=53970 bytes_retransmit=9 bytes_invalid=0 send_seq=1284 receive_seq=1284 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003685 sysload=0.30 cputime=31.198 memavail=704356 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 852.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=13923 bytes_read=54227 bytes_retransmit=9 bytes_invalid=0 send_seq=1293 receive_seq=1293 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003682 sysload=0.30 cputime=31.253 memavail=704360 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 853.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14041 bytes_read=54469 bytes_retransmit=9 bytes_invalid=0 send_seq=1302 receive_seq=1302 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003679 sysload=0.30 cputime=31.290 memavail=705184 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 854.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14159 bytes_read=54729 bytes_retransmit=9 bytes_invalid=0 send_seq=1311 receive_seq=1311 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003675 sysload=0.30 cputime=31.333 memavail=705436 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 855.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14277 bytes_read=54989 bytes_retransmit=9 bytes_invalid=0 send_seq=1320 receive_seq=1320 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003672 sysload=0.30 cputime=31.373 memavail=705188 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 856.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14395 bytes_read=55234 bytes_retransmit=9 bytes_invalid=0 send_seq=1329 receive_seq=1329 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003670 sysload=0.27 cputime=31.410 memavail=705388 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 857.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14513 bytes_read=55479 bytes_retransmit=9 bytes_invalid=0 send_seq=1338 receive_seq=1338 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003671 sysload=0.27 cputime=31.464 memavail=705536 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 858.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14631 bytes_read=55739 bytes_retransmit=9 bytes_invalid=0 send_seq=1347 receive_seq=1347 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003683 sysload=0.27 cputime=31.505 memavail=705456 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 859.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14749 bytes_read=55999 bytes_retransmit=9 bytes_invalid=0 send_seq=1356 receive_seq=1356 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003680 sysload=0.27 cputime=31.544 memavail=705016 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 860.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14867 bytes_read=56244 bytes_retransmit=9 bytes_invalid=0 send_seq=1365 receive_seq=1365 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003677 sysload=0.27 cputime=31.580 memavail=705016 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 861.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14985 bytes_read=56504 bytes_retransmit=9 bytes_invalid=0 send_seq=1374 receive_seq=1374 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003673 sysload=0.25 cputime=31.623 memavail=704768 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 862.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=15103 bytes_read=56749 bytes_retransmit=9 bytes_invalid=0 send_seq=1383 receive_seq=1383 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003671 sysload=0.25 cputime=31.660 memavail=704768 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 863.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=15221 bytes_read=56994 bytes_retransmit=9 bytes_invalid=0 send_seq=1392 receive_seq=1392 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003669 sysload=0.25 cputime=31.711 memavail=705108 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 864.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=15339 bytes_read=57269 bytes_retransmit=9 bytes_invalid=0 send_seq=1401 receive_seq=1401 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003666 sysload=0.25 cputime=31.752 memavail=704644 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 865.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=15457 bytes_read=57514 bytes_retransmit=9 bytes_invalid=0 send_seq=1410 receive_seq=1410 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003674 sysload=0.25 cputime=31.795 memavail=704644 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 866.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=15575 bytes_read=57759 bytes_retransmit=9 bytes_invalid=0 send_seq=1419 receive_seq=1419 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003675 sysload=0.23 cputime=31.836 memavail=704644 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 867.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=15693 bytes_read=58019 bytes_retransmit=9 bytes_invalid=0 send_seq=1428 receive_seq=1428 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003673 sysload=0.23 cputime=31.873 memavail=704644 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 868.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=15811 bytes_read=58264 bytes_retransmit=9 bytes_invalid=0 send_seq=1437 receive_seq=1437 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003670 sysload=0.23 cputime=31.912 memavail=704772 print_time=505.690 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 873.1: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=16444 bytes_read=59555 bytes_retransmit=9 bytes_invalid=0 send_seq=1484 receive_seq=1484 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003654 sysload=0.21 cputime=32.121 memavail=704800 print_time=570.728 buffer_time=0.813 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Attempting MCU 'mcu' reset command b'Got EOF when reading from device' webhooks client 281472854682640: Disconnected Restarting printer Start printer at Mon Jan 15 09:05:53 2024 (1705305953.3 875.1) ===== Config file ===== [force_move] enable_force_move = True [virtual_sdcard] path = ~/printer_data/gcodes on_error_gcode = CANCEL_PRINT [pause_resume] [display_status] [respond] [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %} {% set retract = client.cancel_retract|default(5.0)|abs %} {% set park_x = "" if (client.park_at_cancel_x|default(none) is none) else "X=" ~ client.park_at_cancel_x %} {% set park_y = "" if (client.park_at_cancel_y|default(none) is none) else "Y=" ~ client.park_at_cancel_y %} {% set custom_park = park_x|length > 0 or park_y|length > 0 %} {% if printer['gcode_macro RESUME'].restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro RESUME'].restore_idle_timeout} {% endif %} {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %} _CLIENT_RETRACT LENGTH={retract} TURN_OFF_HEATERS M106 S0 {client.user_cancel_macro|default("")} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False SET_PAUSE_NEXT_LAYER ENABLE=0 SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0 CANCEL_PRINT_BASE [gcode_macro PAUSE] description = Pause the actual running print rename_existing = PAUSE_BASE gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set idle_timeout = client.idle_timeout|default(0) %} {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0 %} {% set restore = False if printer.toolhead.extruder == '' else True if params.RESTORE|default(1)|int == 1 else False %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}" {% if idle_timeout > 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout} SET_IDLE_TIMEOUT TIMEOUT={idle_timeout} {% endif %} PAUSE_BASE {client.user_pause_macro|default("")} _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams} [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE variable_last_extruder_temp = {'restore': False, 'temp': 0} variable_restore_idle_timeout = 0 variable_idle_state = False gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} {% set sp_move = client.speed_move|default(velocity) %} {% set runout_resume = True if client.runout_sensor|default("") == "" else True if not printer[client.runout_sensor].enabled else printer[client.runout_sensor].filament_detected %} {% set can_extrude = True if printer.toolhead.extruder == '' else printer[printer.toolhead.extruder].can_extrude %} {% set do_resume = False %} {% set prompt_txt = [] %} {% if printer.idle_timeout.state|upper == "IDLE" or idle_state %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False {% if last_extruder_temp.restore %} RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp.temp) }' M109 S{last_extruder_temp.temp} {% set do_resume = True %} {% elif can_extrude %} {% set do_resume = True %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}' {% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %} {% endif %} {% elif can_extrude %} {% set do_resume = True %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}' {% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %} {% endif %} {% if runout_resume %} {% if do_resume %} {% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %} {client.user_resume_macro|default("")} _CLIENT_EXTRUDE RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)} {% endif %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]}' {% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]) %} {% endif %} {% if not (runout_resume and do_resume) %} RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!" {% for element in prompt_txt %} RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}' {% endfor %} RESPOND TYPE=command MSG="action:prompt_footer_button Ok|RESPOND TYPE=command MSG=action:prompt_end|info" RESPOND TYPE=command MSG="action:prompt_show" {% endif %} [gcode_macro SET_PAUSE_NEXT_LAYER] description = Enable a pause if the next layer is reached gcode = {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %} {% set ENABLE = params.ENABLE|default(1)|int != 0 %} {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %} SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}" [gcode_macro SET_PAUSE_AT_LAYER] description = Enable/disable a pause if a given layer number is reached gcode = {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %} {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined else params.LAYER is defined %} {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %} {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %} SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}" [gcode_macro SET_PRINT_STATS_INFO] rename_existing = SET_PRINT_STATS_INFO_BASE description = Overwrite, to get pause_next_layer and pause_at_layer feature variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" } variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" } gcode = {% if pause_next_layer.enable %} RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}' {pause_next_layer.call} SET_PAUSE_NEXT_LAYER ENABLE=0 {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %} RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}' {pause_at_layer.call} SET_PAUSE_AT_LAYER ENABLE=0 {% endif %} SET_PRINT_STATS_INFO_BASE {rawparams} [gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL] description = Helper: park toolhead used in PAUSE and CANCEL_PRINT gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} {% set use_custom = client.use_custom_pos|default(false)|lower == 'true' %} {% set custom_park_x = client.custom_park_x|default(0.0) %} {% set custom_park_y = client.custom_park_y|default(0.0) %} {% set park_dz = client.custom_park_dz|default(2.0)|abs %} {% set sp_hop = client.speed_hop|default(15) * 60 %} {% set sp_move = client.speed_move|default(velocity) * 60 %} {% set origin = printer.gcode_move.homing_origin %} {% set act = printer.gcode_move.gcode_position %} {% set max = printer.toolhead.axis_maximum %} {% set cone = printer.toolhead.cone_start_z|default(max.z) %} {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch'] else False %} {% set z_min = params.Z_MIN|default(0)|float %} {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %} {% set x_park = params.X if params.X is defined else custom_park_x if use_custom else 0.0 if round_bed else (max.x - 5.0) %} {% set y_park = params.Y if params.Y is defined else custom_park_y if use_custom else (max.y - 5.0) if round_bed and z_park < cone else 0.0 if round_bed else (max.y - 5.0) %} _CLIENT_RETRACT {% if "xyz" in printer.toolhead.homed_axes %} G90 G1 Z{z_park} F{sp_hop} G1 X{x_park} Y{y_park} F{sp_move} {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %} {% else %} RESPOND TYPE=echo MSG='Printer not homed' {% endif %} [gcode_macro _CLIENT_EXTRUDE] description = Extrudes, if the extruder is hot enough gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %} {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %} {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %} {% set absolute_extrude = printer.gcode_move.absolute_extrude %} {% if printer.toolhead.extruder != '' %} {% if printer[printer.toolhead.extruder].can_extrude %} {% if use_fw_retract %} {% if length < 0 %} G10 {% else %} G11 {% endif %} {% else %} M83 G1 E{length} F{(speed|float|abs) * 60} {% if absolute_extrude %} M82 {% endif %} {% endif %} {% else %} RESPOND TYPE=echo MSG='{"\"%s\" not hot enough" % printer.toolhead.extruder}' {% endif %} {% endif %} [gcode_macro _CLIENT_RETRACT] description = Retracts, if the extruder is hot enough gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %} {% set speed = params.SPEED|default(client.speed_retract)|default(35) %} _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs} [gcode_macro _START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(40)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(200)|float %} M140 S{BED_TEMP} M104 S{EXTRUDER_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_PROFILE LOAD=default M220 S100 M221 S100 G92 E0 G1 Z10.0 F3000 G1 X10.1 Y20 F5000.0 M190 S{BED_TEMP} M109 S{EXTRUDER_TEMP} G1 Z0.28 G1 X10.1 Y200.0 Z0.32 F1500.0 E15 G1 X10.4 Y200.0 Z0.32 F5000.0 G1 X10.4 Y20 Z0.32 F1500.0 E30 G92 E0 G1 Z3.0 F3000 [gcode_macro _END_PRINT] gcode = M140 S0 M104 S0 M104 S0 T1 M106 S0 G91 G1 X-2 Y-2 E-3 F300 G1 Z10 F3000 G90 G1 X220Y220 M84 [gcode_macro PARK_extruder] gcode = G90 G1 X{printer['toolhead'].axis_minimum.y} [gcode_macro T0] gcode = PARK_{printer.toolhead.extruder} ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=0 [gcode_macro PARK_extruder1] gcode = G90 G1 X{printer['toolhead'].axis_maximum.y} [gcode_macro T1] gcode = PARK_{printer.toolhead.extruder} ACTIVATE_EXTRUDER EXTRUDER=extruder1 SET_DUAL_CARRIAGE CARRIAGE=1 [gcode_macro ACTIVATE_COPY_MODE] gcode = SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY G1 X0 ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY G1 X{printer['toolhead'].axis_maximum.y/2} SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder [gcode_macro ACTIVATE_MIRROR_MODE] gcode = SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY G1 X0 ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY G1 X{printer['toolhead'].axis_maximum.y} SET_DUAL_CARRIAGE CARRIAGE=1 MODE=MIRROR SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder [gcode_macro UNLOAD_FILAMENT_T0] gcode = M83 G1 E10 F300 G1 E-780 F1800 M82 [gcode_macro LOAD_FILAMENT_T0] gcode = M83 G1 E750 F1800 G1 E30 F300 G1 E15 F150 M82 [gcode_macro UNLOAD_FILAMENT_T1] gcode = M83 G1 E10 F300 G1 E-780 F1800 M82 [gcode_macro LOAD_FILAMENT_T1] gcode = M83 G1 E750 F1800 G1 E30 F300 G1 E15 F150 M82 [gcode_macro DUMP_PARAMETERS] description = Debug: Print all entries of the printer object gcode = {% set parameters = namespace(output = '') %} {% for name1 in printer %} {% for name2 in printer[name1] %} {% set donotwant = ['configfile'] %} {% if name1 is not in donotwant %} {% set param = "printer['%s'].%s = %s" % (name1, name2, printer[name1][name2]) %} {% set parameters.output = parameters.output + param + "\n" %} {% endif %} {% endfor %} {% endfor %} {action_respond_info(parameters.output)} [gcode_macro _User_Variables] variable_verbose = True variable_debug = False variable_travel_speed = 200 variable_move_accel = 1000 variable_dock_speed = 50 variable_release_speed = 75 variable_z_drop_speed = 20 variable_safe_z = 25 variable_enable_z_hop = True variable_max_bed_y = 300 variable_max_bed_x = 300 variable_z_endstop_x = 0 variable_z_endstop_y = 0 variable_docklocation_x = 100 variable_docklocation_y = 320 variable_docklocation_z = -128 variable_enable_dock_servo = False variable_servo_name = 'NAME' variable_servo_deploy = 10 variable_servo_retract = 11 variable_servo_delay = 250 variable_dockmove_x = 50 variable_dockmove_y = 0 variable_dockmove_z = 0 variable_attachmove_x = 0 variable_attachmove_y = 30 variable_attachmove_z = 0 variable_umbilical = False variable_umbilical_x = 15 variable_umbilical_y = 15 variable_park_toolhead = False variable_parkposition_x = 125 variable_parkposition_y = 125 variable_parkposition_z = 30 variable_version = 1 variable_attachmove2_x = 0 variable_attachmove2_y = 0 variable_attachmove2_z = 0 variable_home_backoff_x = 10 variable_home_backoff_y = 10 variable_override_homing = '' variable_dock_on_zhome = True gcode = {% set Mx = printer['configfile'].config["stepper_x"]["position_max"]|float %} {% set My = printer['configfile'].config["stepper_y"]["position_max"]|float %} {% set Ox = printer['configfile'].config["probe"]["x_offset"]|float %} {% set Oy = printer['configfile'].config["probe"]["y_offset"]|float %} {% set Oz = printer['configfile'].config["probe"]["z_offset"]|float %} {% if z_endstop_x != 0 or z_endstop_y != 0 %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_x VALUE={ z_endstop_x } SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_y VALUE={ z_endstop_y } {% else %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_x VALUE={ (Mx * 0.5) - Ox } SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_y VALUE={ (My * 0.5) - Oy } {% endif %} [gcode_macro _Probe_Variables] variable_probe_attached = False variable_probe_state = False variable_probe_lock = False variable_probe_z_homed = False variable_z_endstop_x = 0 variable_z_endstop_y = 0 gcode = [gcode_macro _klicky_check_variables_version] gcode = {% set version = printer["gcode_macro _User_Variables"].version|default(0) %} {% if version != 1 %} { action_raise_error("Please update your klicky variables, there are some functionality changes") } {% endif %} [gcode_macro _KlickyDebug] gcode = {% set message = params.MSG %} {% set debug = printer["gcode_macro _User_Variables"].debug|default(False) %} {% if debug %} { action_respond_info(message) } {% endif %} [gcode_macro _exit_point] gcode = {% set function = 'pre_' ~ params.FUNCTION %} {% set move = params.MOVE|default(0) %} {% set speed = printer["gcode_macro _User_Variables"].travel_speed %} M400 SET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel} SET_VELOCITY_LIMIT ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel} RESTORE_GCODE_STATE NAME={function} MOVE={move} MOVE_SPEED={speed} [gcode_macro _entry_point] gcode = {% set function = 'pre_' ~ params.FUNCTION %} {% set move_accel = printer["gcode_macro _User_Variables"].move_accel|default(1000) %} M400 SAVE_GCODE_STATE NAME={function} SET_GCODE_OFFSET Z=0 G90 SET_VELOCITY_LIMIT ACCEL={move_accel} [gcode_macro _Homing_Variables] gcode = {% set reset = params.RESET|default(0) %} {% if reset %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ False } {% endif %} [gcode_macro Attach_Probe_Lock] description = Attaches Klicky Probe, can only be docked after unlocking gcode = Attach_Probe _Probe_Lock [gcode_macro Dock_Probe_Unlock] description = Docks Klicky Probe even if it was locked gcode = _Probe_Unlock Dock_Probe [gcode_macro _Probe_Unlock] description = Unlocks Klicky Probe state gcode = _KlickyDebug msg="_Probe_Lock setting probe_lock variable to False" SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ False } [gcode_macro _Probe_Lock] description = Locks Klicky Probe state gcode = _KlickyDebug msg="_Probe_Lock setting probe_lock variable to True" SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ True } [gcode_macro _DeployKlickyDock] description = Deploys Klicky servo-controlled dock gcode = {% set enable_dock_servo = printer["gcode_macro _User_Variables"].enable_dock_servo|default(False) %} {% set servo_delay = printer["gcode_macro _User_Variables"].servo_delay|default(1000) %} {% set servo_name = printer["gcode_macro _User_Variables"].servo_name %} {% set servo_deploy = printer["gcode_macro _User_Variables"].servo_deploy|default(360) %} M400 {% if enable_dock_servo != False %} _KlickyDebug msg="_DeployKlickyDock Klicky servo configuration enabled" {% if servo_deploy == 360 %} { action_raise_error("Klicky: servo active on klicky-variables, but no servo deploy angle specified") } {% endif %} _KlickyDebug msg="_DeployKlickyDock SET_SERVO SERVO={servo_name|string} ANGLE={servo_deploy|int}" SET_SERVO SERVO={servo_name|string} ANGLE={servo_deploy|int} M400 G4 P{servo_delay|int} _KlickyDebug msg="_DeployKlickyDock SET_SERVO SERVO={servo_name|string} WIDTH=0" SET_SERVO SERVO={servo_name|string} WIDTH=0 {% elif printer["gcode_macro _DeployDock"] is defined %} _KlickyDebug msg="_DeployKlickyDock calling _DeployDock" _DeployDock {% endif %} [gcode_macro _RetractKlickyDock] description = Retracts Klicky servo-controlled dock gcode = {% set enable_dock_servo = printer["gcode_macro _User_Variables"].enable_dock_servo|default(False) %} {% set servo_delay = printer["gcode_macro _User_Variables"].servo_delay|default(1000) %} {% set servo_name = printer["gcode_macro _User_Variables"].servo_name %} {% set servo_retract = printer["gcode_macro _User_Variables"].servo_retract|default(360) %} M400 {% if enable_dock_servo != False %} _KlickyDebug msg="_RetractKlickyDock Klicky servo configuration enabled" {% if servo_retract == 360 %} { action_raise_error("Klicky: servo active on klicky-variables, but no servo retract angle specified") } {% endif %} _KlickyDebug msg="_RetractKlickyDock SET_SERVO SERVO={servo_name|string} ANGLE={servo_retract|int}" SET_SERVO SERVO={servo_name|string} ANGLE={servo_retract|int} M400 G4 P{servo_delay|int} _KlickyDebug msg="_RetractKlickyDock SET_SERVO SERVO={servo_name|string} WIDTH=0" SET_SERVO SERVO={servo_name|string} WIDTH=0 {% elif printer["gcode_macro _RetractDock"] is defined %} _KlickyDebug msg="_RetractKlickyDock calling _RetractDock" _RetractDock {% endif %} [gcode_macro Attach_Probe] description = Attaches Klicky Probe gcode = {% set goback = params.BACK|default(0) %} {% set probe_attached = printer["gcode_macro _Probe_Variables"].probe_attached %} {% set probe_lock = printer["gcode_macro _Probe_Variables"].probe_lock %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} {% set dockmove_x = printer["gcode_macro _User_Variables"].dockmove_x|default(0) %} {% set dockmove_y = printer["gcode_macro _User_Variables"].dockmove_y|default(0) %} {% set dockmove_z = printer["gcode_macro _User_Variables"].dockmove_z|default(0) %} {% set docklocation_x = printer["gcode_macro _User_Variables"].docklocation_x %} {% set docklocation_y = printer["gcode_macro _User_Variables"].docklocation_y %} {% set docklocation_z = printer["gcode_macro _User_Variables"].docklocation_z %} {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} {% set attachmove2_x = printer["gcode_macro _User_Variables"].attachmove2_x|default(0) %} {% set attachmove2_y = printer["gcode_macro _User_Variables"].attachmove2_y|default(0) %} {% set attachmove2_z = printer["gcode_macro _User_Variables"].attachmove2_z|default(0) %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z %} {% set enable_z_hop = printer["gcode_macro _User_Variables"].enable_z_hop %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set dock_feedrate = printer["gcode_macro _User_Variables"].dock_speed * 60 %} {% set release_feedrate = printer["gcode_macro _User_Variables"].release_speed * 60 %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} _entry_point function=Attach_Probe {% if bypass_probe_docking == False %} {% if not 'xy' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X and Y Axis First!") } _KlickyDebug msg="Attach_Probe Axis homed" {% elif not probe_attached and not probe_lock %} _KlickyDebug msg="Attach_Probe going to attach probe" {% if verbose %} { action_respond_info("Attaching Probe") } {% endif %} _KLICKY_STATUS_BUSY {% if not 'z' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Resetting Z position to zero") } {% endif %} _KlickyDebug msg="Attach_Probe Z not homed, setting position as X=Y=Z=0" SET_KINEMATIC_POSITION Z=0 {% if not enable_z_hop %} _KlickyDebug msg="Attach_Probe z_hop disabled" {% set safe_z = 0 %} {% endif %} {% endif %} {% if printer.gcode_move.gcode_position.z < safe_z %} _KlickyDebug msg="Attach_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if not 'z' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Resetting Z position to zero, duplicate?") } {% endif %} _KlickyDebug msg="Attach_Probe Z not homed, setting position as X=Y=Z=0" SET_KINEMATIC_POSITION Z=0 {% endif %} {% if printer.gcode_move.gcode_position.z < safe_z %} _KlickyDebug msg="Attach_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Umbilical_Path _entry_point function=Attach_Probe_intern _KlickyDebug msg="Attach_Probe moving near the dock with G0 X{docklocation_x|int - attachmove_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove_y|int - attachmove2_y} F{travel_feedrate}" G0 X{docklocation_x|int - attachmove_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove_y|int - attachmove2_y} F{travel_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int - attachmove2_z|int} F{dock_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int - attachmove2_z|int} F{dock_feedrate} _KlickyDebug msg="Attach_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate} {% endif %} _DeployKlickyDock {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving to the dock with G0 Z{docklocation_z} F{dock_feedrate}" G0 Z{docklocation_z} F{dock_feedrate} {% endif %} _KlickyDebug msg="Attach_Probe moving to the dock with G0 X{docklocation_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove2_y} F{dock_feedrate}" G0 X{docklocation_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove2_y} F{dock_feedrate} _KlickyDebug msg="Attach_Probe moving to the dock with G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate}" G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving from the dock to G0 Z{docklocation_z|int - attachmove_z|int} F{z_drop_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int} F{z_drop_feedrate} {% endif %} _KlickyDebug msg="Attach_Probe moving from the dock to G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{release_feedrate}" G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{release_feedrate} _RetractKlickyDock {% if ((printer.gcode_move.gcode_position.z < safe_z) or (docklocation_z != -128 and docklocation_z < safe_z ))%} _KlickyDebug msg="Attach_Probe moving to a safe Z position: G0 Z{safe_z} F{z_drop_feedrate} from {printer.gcode_move.gcode_position.z}" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Park_Toolhead _CheckProbe action=attach _exit_point function=Attach_Probe_intern move={goback} _KLICKY_STATUS_READY {% elif probe_lock %} {% if verbose %} { action_respond_info("Probe locked!") } {% endif %} _KlickyDebug msg="Attach_Probe probe locked not attaching probe" _CheckProbe action=query {% else %} {% if verbose %} { action_respond_info("Probe already attached!") } {% endif %} _KlickyDebug msg="Attach_Probe probe already attached, doing nothing" _CheckProbe action=query {% endif %} _exit_point function=Attach_Probe {% else %} _KlickyDebug msg="Attach_Probe probe docking bypassed, doing nothing" {% endif %} [gcode_macro Dock_Probe] description = Docks Klicky Probe gcode = {% set goback = params.BACK|default(0) %} {% set probe_attached = printer["gcode_macro _Probe_Variables"].probe_attached %} {% set probe_lock = printer["gcode_macro _Probe_Variables"].probe_lock %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} {% set dockmove_x = printer["gcode_macro _User_Variables"].dockmove_x|default(0) %} {% set dockmove_y = printer["gcode_macro _User_Variables"].dockmove_y|default(0) %} {% set dockmove_z = printer["gcode_macro _User_Variables"].dockmove_z|default(0) %} {% set docklocation_x = printer["gcode_macro _User_Variables"].docklocation_x %} {% set docklocation_y = printer["gcode_macro _User_Variables"].docklocation_y %} {% set docklocation_z = printer["gcode_macro _User_Variables"].docklocation_z %} {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set dock_feedrate = printer["gcode_macro _User_Variables"].dock_speed * 60 %} {% set release_feedrate = printer["gcode_macro _User_Variables"].release_speed * 60 %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} {% if bypass_probe_docking == True %} _KlickyDebug msg="Attach_Probe probe docking bypassed, doing nothing" {% endif %} {% if bypass_probe_docking != True %} _entry_point function=Dock_Probe {% if probe_attached and not probe_lock %} _KLICKY_STATUS_BUSY {% if printer.gcode_move.gcode_position.z < safe_z %} _KlickyDebug msg="Dock_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Umbilical_Path _KlickyDebug msg="Dock_Probe moving near the dock with G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{travel_feedrate}" G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{travel_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Dock_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate}" G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate} {% endif %} _DeployKlickyDock _KlickyDebug msg="Dock_Probe moving to the dock with G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate}" G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate} {% if docklocation_z != -128 %} _KlickyDebug msg="Attach_Probe moving to the dock with G0 Z{docklocation_z} F{dock_feedrate}" G0 Z{docklocation_z} F{dock_feedrate} {% endif %} {% if docklocation_z != -128 %} _KlickyDebug msg="Dock_Probe moving from the dock to G0 Z{docklocation_z|int + dockmove_z|int} F{release_feedrate}" G0 Z{docklocation_z|int + dockmove_z|int} F{release_feedrate} {% endif %} _KlickyDebug msg="Dock_Probe moving from the dock to G0 X{docklocation_x|int + dockmove_x|int} Y{docklocation_y|int + dockmove_y|int} F{release_feedrate}" G0 X{docklocation_x|int + dockmove_x|int} Y{docklocation_y|int + dockmove_y|int} F{release_feedrate} _RetractKlickyDock _KlickyDebug msg="Dock_Probe moving away from the dock to G0 X{docklocation_x|int + dockmove_x|int - attachmove_x|int} Y{docklocation_y|int + dockmove_y|int - attachmove_y|int} F{release_feedrate}" G0 X{docklocation_x|int + dockmove_x|int - attachmove_x|int} Y{docklocation_y|int + dockmove_y|int - attachmove_y|int} F{release_feedrate} {% if (printer.gcode_move.gcode_position.z < safe_z) %} _KlickyDebug msg="Dock_Probe moving to a safe Z position: G0 Z{safe_z} F{z_drop_feedrate} from {printer.gcode_move.gcode_position.z}" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _Park_Toolhead G4 P1000 _CheckProbe action=dock _KLICKY_STATUS_READY {% elif probe_lock %} {% if verbose %} { action_respond_info("Probe locked") } {% endif %} _KlickyDebug msg="Dock_Probe probe locked not docking probe" _CheckProbe action=query {% else %} {% if verbose %} { action_respond_info("Probe already docked") } {% endif %} _KlickyDebug msg="Dock_Probe probe already docked, doing nothing" _CheckProbe action=query {% endif %} _exit_point function=Dock_Probe move={goback} {% else %} _KlickyDebug msg="Dock_Probe probe docking bypassed, doing nothing" {% endif %} [gcode_macro PROBE_CALIBRATE] rename_existing = _PROBE_CALIBRATE description = Calibrate the probes z_offset with klicky automount gcode = {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set max_x = printer["gcode_macro _User_Variables"].max_bed_x|float %} {% set max_y = printer["gcode_macro _User_Variables"].max_bed_y|float %} {% set probe_offset_x = printer['configfile'].config["probe"]["x_offset"]|float %} {% set probe_offset_y = printer['configfile'].config["probe"]["y_offset"]|float %} {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} {% if not 'xyz' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X, Y and Z Axis First!") } {% endif %} _KlickyDebug msg="probe_calibrate Axis homed" _KlickyDebug msg="probe_calibrate Variables max_x={max_x},max_y={max_y},probe_offset_x={probe_offset_x},probe_offset_y={probe_offset_y}" {% if printer['gcode_move'].position.y > (max_y - probe_offset_y) or printer['gcode_move'].position.y < - probe_offset_y or printer['gcode_move'].position.x > (max_x - probe_offset_x) or printer['gcode_move'].position.x < - probe_offset_x %} { action_raise_error("Must perform PROBE_CALIBRATE with the probe above the BED, check klicky_variables bed size!") } {% endif %} {% if bypass_probe_docking == False %} _CheckProbe action=query G90 Attach_Probe back=1 _KLICKY_STATUS_CALIBRATING_Z _KlickyDebug msg="probe_calibrate calling klipper probe_calibrate" _PROBE_CALIBRATE {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} M118 moving the toolhead 20 mm from the bed _KlickyDebug msg="probe_calibrate Moving Z up by 20mm" TESTZ Z=20 M118 remove manually the probe and continue calibration _KLICKY_STATUS_READY {% else %} _KLICKY_STATUS_CALIBRATING_Z _KlickyDebug msg="probe_calibrate calling klipper probe_calibrate" _PROBE_CALIBRATE {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} _KLICKY_STATUS_READY {% endif %} [gcode_macro PROBE_ACCURACY] rename_existing = _PROBE_ACCURACY description = Probe Z-height accuracy at current XY position with klicky automount gcode = {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set max_x = printer["gcode_macro _User_Variables"].max_bed_x|float %} {% set max_y = printer["gcode_macro _User_Variables"].max_bed_y|float %} {% set probe_offset_x = printer['configfile'].config["probe"]["x_offset"]|float %} {% set probe_offset_y = printer['configfile'].config["probe"]["y_offset"]|float %} {% if not 'xyz' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X, Y and Z Axis First!") } {% endif %} _KlickyDebug msg="probe_accuracy Axis homed" _KlickyDebug msg="probe_accuracy Variables max_x={max_x},max_y={max_y},probe_offset_x={probe_offset_x},probe_offset_y={probe_offset_y}" _entry_point function=PROBE_ACCURACY {% if printer['gcode_move'].position.y > (max_y - probe_offset_y) or printer['gcode_move'].position.y < - probe_offset_y or printer['gcode_move'].position.x > (max_x - probe_offset_x) or printer['gcode_move'].position.x < - probe_offset_x %} { action_raise_error("Must perform PROBE_ACCURACY with the probe above the BED, check klicky_variables bed size!") } {% endif%} _CheckProbe action=query Attach_Probe back=1 _KlickyDebug msg="probe_accuracy calling klipper probe accuracy" _PROBE_ACCURACY {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} Dock_Probe back=1 _exit_point function=PROBE_ACCURACY move=1 [homing_override] axes = xyz gcode = _User_Variables {% set verbose = printer["gcode_macro _User_Variables"].verbose %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z %} {% set enable_z_hop = printer["gcode_macro _User_Variables"].enable_z_hop %} {% set kinematic_z = 0 %} {% set dock_on_zhome = printer["gcode_macro _User_Variables"].dock_on_zhome|default(True) %} {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set home_backoff_x = printer["gcode_macro _User_Variables"].home_backoff_x|default(0) %} {% set home_backoff_y = printer["gcode_macro _User_Variables"].home_backoff_y|default(0) %} {% set override_homing = printer["gcode_macro _User_Variables"].override_homing|default('') %} _klicky_check_variables_version _CheckProbe action=query {% set home_x, home_y, home_z, leave_probe_attached = False, False, False, False %} {% if 'PROBE_LOCK' in params%} {% if verbose %} { action_respond_info("PROBE_LOCK = True") } {% endif %} {% set leave_probe_attached = True %} {% endif %} {% if not 'X' in params and not 'Y' in params and not 'Z' in params %} {% set home_x, home_y, home_z = True, True, True %} _KlickyDebug msg="homing_override goint to home all axes" {% else %} {% if 'X' in params %} {% set home_x = True %} _KlickyDebug msg="homing_override goint to home X" {% endif %} {% if 'Y' in params %} {% set home_y = True %} _KlickyDebug msg="homing_override goint to home Y" {% endif %} {% if 'Z' in params %} {% set home_z = True %} _KlickyDebug msg="homing_override goint to home Z" {% endif %} {% if 'X' in params and 'Y' in params and 'Z' in params %} _Homing_Variables reset=1 _KlickyDebug msg="homing_override goint to home all axes" {% endif %} {% endif %} _entry_point function=homing_override _KLICKY_STATUS_HOMING {% if 'z' not in printer.toolhead.homed_axes %} {% if enable_z_hop == False %} _KlickyDebug msg="homing_override z_hop disabled" {% set kinematic_z = safe_z %} {% set safe_z = safe_z %} {% endif %} {% endif %} {% if 'x' not in printer.toolhead.homed_axes and 'y' not in printer.toolhead.homed_axes and 'z' not in printer.toolhead.homed_axes%} {% if verbose %} { action_respond_info("No axis homed") } {% endif %} _KlickyDebug msg="homing_override no axis homed, setting position as X=Y=0 Z={kinematic_z}" SET_KINEMATIC_POSITION X=0 Y=0 Z={kinematic_z} M400 _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% if home_z != True %} _KlickyDebug msg="homing_override clearing axis homed state if not already homing Z" M84 {% endif %} {% endif %} {% if home_z %} {% if 'x' not in printer.toolhead.homed_axes and 'y' not in printer.toolhead.homed_axes%} {% if verbose %} { action_respond_info("X or Y not homed, forcing full G28") } {% endif %} {% set home_x, home_y, home_z = True, True, True %} {% endif %} {% endif %} {% if ((attachmove_y == 0 and override_homing == '' ) or (override_homing == 'Y'))%} {% if home_y %} {% if override_homing == 'Y' %} _KlickyDebug msg="homing_override Y homing first override, due to override_homing = Y" {% else %} _KlickyDebug msg="homing_override Y homing first override, due to attachmove_y = 0" {% endif %} {% if verbose %} { action_respond_info("Homing Y") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if printer["gcode_macro _HOME_Y"] is defined %} _KlickyDebug msg="homing_override calling _HOME_Y external script to handle the Y homing" _HOME_Y {% else %} _KlickyDebug msg="homing_override Homing Y G28 Y0" G28 Y0 {% if home_backoff_y != 0 %} {% if (printer.configfile.settings.stepper_y.position_endstop > (printer.configfile.settings.stepper_y.position_min|default(0) + printer.configfile.settings.stepper_y.position_max)/2) %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop-home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate} {% else %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate} {%endif %} {%endif %} {% endif %} {% endif %} {% set home_y = False %} {% endif %} {% if home_x %} {% if verbose %} { action_respond_info("Homing X") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in X homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if printer["gcode_macro _HOME_X"] is defined %} _KlickyDebug msg="homing_override calling _HOME_X external script to handle the X homing" _HOME_X {% else %} _KlickyDebug msg="homing_override Homing X, G28 X0" G28 X0 {% if home_backoff_x != 0 %} {% if (printer.configfile.settings.stepper_x.position_endstop > (printer.configfile.settings.stepper_x.position_min|default(0) + printer.configfile.settings.stepper_x.position_max)/2) %} _KlickyDebug msg="homing_override backing off X endstop, G0 X{printer.configfile.settings.stepper_x.position_endstop - home_backoff_x|int} F{travel_feedrate}" G0 X{printer.configfile.settings.stepper_x.position_endstop - home_backoff_x|int} F{travel_feedrate} {% else %} _KlickyDebug msg="homing_override backing off X endstop, G0 X{printer.configfile.settings.stepper_x.position_endstop + home_backoff_x|int} F{travel_feedrate}" G0 X{printer.configfile.settings.stepper_x.position_endstop + home_backoff_x|int} F{travel_feedrate} {%endif %} {%endif %} {% endif %} {% endif %} {% if home_y %} {% if verbose %} { action_respond_info("Homing Y") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if printer["gcode_macro _HOME_Y"] is defined %} _KlickyDebug msg="homing_override calling _HOME_Y external script to handle the Y homing" _HOME_Y {% else %} _KlickyDebug msg="homing_override Homing Y, G28 Y0" G28 Y0 {% if home_backoff_y != 0 %} {% if (printer.configfile.settings.stepper_y.position_endstop > (printer.configfile.settings.stepper_y.position_min|default(0) + printer.configfile.settings.stepper_y.position_max)/2) %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate} {% else %} _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate}" G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate} {%endif %} {%endif %} {% endif %} {% endif %} {% if home_z %} {% if verbose %} { action_respond_info("Homing Z") } {% endif %} {% if 'z' in printer.toolhead.homed_axes %} _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" {% if verbose %} { action_respond_info("moving to a safe Z distance") } {% endif %} G0 Z{safe_z} F{z_drop_feedrate} {% endif %} {% if 'z_virtual_endstop' in printer['configfile'].config["stepper_z"]["endstop_pin"] %} _KlickyDebug msg="homing_override probe configured as a virtual Z endstop attaching probe" Attach_Probe {% if leave_probe_attached %} _Probe_Lock {% endif %} {% elif dock_on_zhome == True %} Dock_Probe {% endif %} _Home_Z_ {% if 'z_virtual_endstop' in printer['configfile'].config["stepper_z"]["endstop_pin"] %} _KlickyDebug msg="homing_override probe no longer required, docking probe" Dock_Probe {% elif dock_on_zhome == False %} Dock_Probe {% endif %} {% endif %} _CheckProbe action=query _Park_Toolhead _exit_point function=homing_override _KLICKY_STATUS_READY [gcode_macro _Umbilical_Path] gcode = {% set umbilical = printer["gcode_macro _User_Variables"].umbilical %} {% set umbilical_x = printer["gcode_macro _User_Variables"].umbilical_x %} {% set umbilical_y = printer["gcode_macro _User_Variables"].umbilical_y %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% if umbilical %} _entry_point function=Umbilical_Path _KlickyDebug msg="_Umbilical_Path moving to G0 X{umbilical_x} Y{umbilical_y} Z{safe_z} F{travel_feedrate}" G0 X{umbilical_x} Y{umbilical_y} Z{safe_z} F{travel_feedrate} _exit_point function=Umbilical_Path {% endif %} [gcode_macro _Home_Z_] gcode = {% set z_endstop_x = printer["gcode_macro _Probe_Variables"].z_endstop_x %} {% set z_endstop_y = printer["gcode_macro _Probe_Variables"].z_endstop_y %} {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} _entry_point function=Home_Z {% if not 'xy' in printer.toolhead.homed_axes %} { action_raise_error("Must Home X and Y Axis First!") } {% else %} _KlickyDebug msg="_Home_Z_ XY Axis homed" {% if not 'z' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Resetting Z position to zero") } {% endif %} _KlickyDebug msg="_Home_Z_ Z not homed, setting position as X=Y=Z=0" SET_KINEMATIC_POSITION Z=0 {% endif %} _KlickyDebug msg="_Home_Z_ moving to Z endstop position G0 X{z_endstop_x} Y{z_endstop_y} F{travel_feedrate}" G0 X{z_endstop_x} Y{z_endstop_y} F{travel_feedrate} _KlickyDebug msg="_Home_Z_ Homing Z G28 Z" G28 Z0 _KlickyDebug msg="_Home_Z_ toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" G0 Z{safe_z} F{z_drop_feedrate} {% endif %} _exit_point function=Home_Z [gcode_macro _CheckProbe] variable_probe_state = 0 gcode = Query_Probe _SetProbeState action={ params.ACTION } [gcode_macro _SetProbeState] gcode = {% set query_probe_triggered = printer.probe.last_query %} {% set action = params.ACTION|default('') %} {% if query_probe_triggered %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_attached VALUE={ False } {% else %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_attached VALUE={ True } {% endif %} {% if action == 'query' %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_state VALUE={ query_probe_triggered } {% endif %} {% if not query_probe_triggered and action == 'dock' %} { action_raise_error("Probe dock failed!") } {% endif %} {% if query_probe_triggered and action == 'attach' %} { action_raise_error("Probe attach failed!") } {% endif %} [gcode_macro _Park_Toolhead] gcode = {% set park_toolhead = printer["gcode_macro _User_Variables"].park_toolhead %} {% set parkposition_x = printer["gcode_macro _User_Variables"].parkposition_x %} {% set parkposition_y = printer["gcode_macro _User_Variables"].parkposition_y %} {% set parkposition_z = printer["gcode_macro _User_Variables"].parkposition_z %} {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set verbose = printer["gcode_macro _User_Variables"].verbose %} _entry_point function=Park_Toolhead {% if park_toolhead and 'xyz' in printer.toolhead.homed_axes %} {% if verbose %} { action_respond_info("Parking Toolhead") } {% endif %} {% if parkposition_z == -128 %} _KlickyDebug msg="_Park_Toolhead moving to G0 X{parkposition_x} Y{parkposition_y} F{travel_feedrate}" G0 X{parkposition_x} Y{parkposition_y} F{travel_feedrate} {% else %} _KlickyDebug msg="_Park_Toolhead moving to G0 X{parkposition_x} Y{parkposition_y} Z{parkposition_z} F{travel_feedrate}" G0 X{parkposition_x} Y{parkposition_y} Z{parkposition_z} F{travel_feedrate} {% endif %} {% endif %} _exit_point function=Park_Toolhead [gcode_macro _klicky_status_ready] gcode = {% if printer['gcode_macro status_ready'] is defined %} _KlickyDebug msg="_klicky_status_ready activating the LED STATUS_READY" STATUS_READY {% endif %} [gcode_macro _klicky_status_busy] gcode = {% if printer['gcode_macro status_busy'] is defined %} _KlickyDebug msg="_klicky_status_busy activating the LED STATUS_BUSY" STATUS_BUSY {% endif %} [gcode_macro _klicky_status_leveling] gcode = {% if printer['gcode_macro status_leveling'] is defined %} _KlickyDebug msg="_klicky_status_leveling activating the LED STATUS_LEVELING" STATUS_LEVELING {% endif %} [gcode_macro _klicky_status_homing] gcode = {% if printer['gcode_macro status_homing'] is defined %} _KlickyDebug msg="_klicky_status_homing activating the LED STATUS_HOMING" STATUS_HOMING {% endif %} [gcode_macro _klicky_status_cleaning] gcode = {% if printer['gcode_macro status_cleaning'] is defined %} _KlickyDebug msg="_klicky_status_cleaning activating the LED STATUS_CLEANING" STATUS_CLEANING {% endif %} [gcode_macro _klicky_status_meshing] gcode = {% if printer['gcode_macro status_meshing'] is defined %} _KlickyDebug msg="_klicky_status_meshing activating the LED STATUS_MESHING" STATUS_MESHING {% endif %} [gcode_macro _klicky_status_calibrating_z] gcode = {% if printer['gcode_macro status_calibrating_z'] is defined %} _KlickyDebug msg="_klicky_status_calibrating_z activating the LED STATUS_CALIBRATING_Z" STATUS_CALIBRATING_Z {% endif %} [gcode_macro BED_MESH_CALIBRATE] rename_existing = _BED_MESH_CALIBRATE description = Perform Mesh Bed Leveling with klicky automount gcode = {% set V = printer["gcode_macro _User_Variables"].verbose %} {% if V %} { action_respond_info("Bed Mesh Calibrate") } {% endif %} _CheckProbe action=query G90 Attach_Probe _KLICKY_STATUS_MESHING _BED_MESH_CALIBRATE {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} Dock_Probe [gcode_macro Z_TILT_ADJUST] rename_existing = _Z_TILT_ADJUST description = gcode = {% set V = printer["gcode_macro _User_Variables"].verbose %} {% if V %} { action_respond_info("Z Tilt Adjust") } {% endif %} _CheckProbe action=query G90 Attach_Probe _KLICKY_STATUS_LEVELING _Z_TILT_ADJUST {% for p in params %}{'%s=%s ' % (p, params[p])}{% endfor %} Dock_Probe G28 Z0 [mcu] serial = /dev/serial/by-id/usb-Klipper_stm32f446xx_250031000750535556323420-if00 [printer] kinematics = hybrid_corexy max_velocity = 400 max_accel = 3000 max_z_velocity = 5 max_z_accel = 200 [stepper_x] step_pin = PF13 dir_pin = PF12 enable_pin = !PF14 microsteps = 16 rotation_distance = 40 endstop_pin = !PG6 position_endstop = -20 position_min = -20 position_max = 270 homing_speed = 50 [dual_carriage] step_pin = PG0 dir_pin = PG1 enable_pin = !PF15 microsteps = 16 rotation_distance = 40 endstop_pin = !PG9 position_endstop = 350 position_min = 80 position_max = 350 homing_speed = 50 [stepper_y] step_pin = PF11 dir_pin = PG3 enable_pin = !PG5 microsteps = 16 rotation_distance = 40 endstop_pin = !PG10 position_endstop = 320 position_max = 320 position_min = 0 homing_speed = 50 [stepper_y1] step_pin = PG4 dir_pin = !PC1 enable_pin = !PA0 microsteps = 16 rotation_distance = 40 endstop_pin = !PG11 [stepper_z] step_pin = PF9 dir_pin = PF10 enable_pin = !PG2 microsteps = 16 rotation_distance = 2 endstop_pin = probe:z_virtual_endstop position_min = 0 position_max = 200 [stepper_z1] step_pin = PC13 dir_pin = PF0 enable_pin = !PF1 microsteps = 16 rotation_distance = 2 endstop_pin = probe:z_virtual_endstop [stepper_z2] step_pin = PE2 dir_pin = PE3 enable_pin = !PD4 microsteps = 16 rotation_distance = 2 endstop_pin = probe:z_virtual_endstop [extruder] step_pin = PE6 dir_pin = PA14 enable_pin = !PE0 microsteps = 16 full_steps_per_rotation = 200 rotation_distance = 4.637 nozzle_diameter = 0.400 filament_diameter = 1.750 max_extrude_only_distance = 500.0 max_extrude_only_velocity = 120 heater_pin = PA2 sensor_pin = PF4 sensor_type = ATC Semitec 104NT-4-R025H42G min_temp = 0 max_temp = 300 control = pid pid_kp = 32.724 pid_ki = 3.576 pid_kd = 74.855 [probe] pin = PG14 x_offset = 0 y_offset = 25.0 z_offset = 1 speed = 10.0 samples = 3 samples_result = median sample_retract_dist = 3.0 samples_tolerance = 0.006 samples_tolerance_retries = 3 [z_tilt] z_positions = -69, -19 79, 150 69, -19 points = 20, 0 155, 250 250, 0 speed = 50 horizontal_move_z = 15 retries = 10 retry_tolerance = 0.01 [bed_mesh] speed = 120 horizontal_move_z = 15 mesh_min = 50,20 mesh_max = 230,200 probe_count = 5,5 algorithm = bicubic fade_start = 1 fade_end = 10 fade_target = 0 [filament_switch_sensor material_0] switch_pin = !PG12 [filament_switch_sensor material_1] switch_pin = !PG13 [heater_fan fan0] pin = PA8 [fan_generic Part_T0] pin = PE5 [heater_fan fan1] pin = PD12 [fan_generic Part_T1] pin = PD13 [tmc2209 stepper_x] uart_pin = PC4 run_current = 0.8 stealthchop_threshold = 999999 [tmc2209 dual_carriage] uart_pin = PD11 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_y] uart_pin = PC6 run_current = 0.8 stealthchop_threshold = 999999 [tmc2209 stepper_y1] uart_pin = PC7 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_z] uart_pin = PF2 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_z1] uart_pin = PE4 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 stepper_z2] uart_pin = PE1 run_current = 0.800 stealthchop_threshold = 999999 [tmc2209 extruder] uart_pin = PD3 run_current = 0.850 hold_current = 0.100 stealthchop_threshold = 0 [board_pins] aliases = EXP1_1=PE8, EXP1_2=PE7, EXP1_3=PE9, EXP1_4=PE10, EXP1_5=PE12, EXP1_6=PE13, EXP1_7=PE14, EXP1_8=PE15, EXP1_9=, EXP1_10=<5V>, EXP2_1=PA6, EXP2_2=PA5, EXP2_3=PB1, EXP2_4=PA4, EXP2_5=PB2, EXP2_6=PA7, EXP2_7=PC15, EXP2_8=, EXP2_9=, EXP2_10=PC5 ======================= Extruder max_extrude_ratio=0.266081 mcu 'mcu': Starting serial connect webhooks client 281472848610448: New connection webhooks client 281472848610448: Client info {'program': 'Moonraker', 'version': 'v0.8.0-247-g3008a13'} Loaded MCU 'mcu' 119 commands (v0.11.0-241-gffb5105b / gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2) MCU 'mcu' config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_i2c3=PA8,PC9 BUS_PINS_sdio=PC12,PD2,PC8,PC9,PC10,PC11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi2a=PC2,PC3,PB10 BUS_PINS_spi3=PB4,PB5,PB3 BUS_PINS_spi3a=PC11,PC12,PC10 BUS_PINS_spi4=PE13,PE14,PE12 CLOCK_FREQ=180000000 MCU=stm32f446xx PWM_MAX=255 RESERVE_PINS_USB=PA11,PA12 RESERVE_PINS_crystal=PH0,PH1 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 Sending MCU 'mcu' printer configuration... Configured MCU 'mcu' (1024 moves) bed_mesh: generated points Index | Tool Adjusted | Probe 0 | (50.0, -5.0) | (50.0, 20.0) 1 | (95.0, -5.0) | (95.0, 20.0) 2 | (140.0, -5.0) | (140.0, 20.0) 3 | (185.0, -5.0) | (185.0, 20.0) 4 | (230.0, -5.0) | (230.0, 20.0) 5 | (230.0, 40.0) | (230.0, 65.0) 6 | (185.0, 40.0) | (185.0, 65.0) 7 | (140.0, 40.0) | (140.0, 65.0) 8 | (95.0, 40.0) | (95.0, 65.0) 9 | (50.0, 40.0) | (50.0, 65.0) 10 | (50.0, 85.0) | (50.0, 110.0) 11 | (95.0, 85.0) | (95.0, 110.0) 12 | (140.0, 85.0) | (140.0, 110.0) 13 | (185.0, 85.0) | (185.0, 110.0) 14 | (230.0, 85.0) | (230.0, 110.0) 15 | (230.0, 130.0) | (230.0, 155.0) 16 | (185.0, 130.0) | (185.0, 155.0) 17 | (140.0, 130.0) | (140.0, 155.0) 18 | (95.0, 130.0) | (95.0, 155.0) 19 | (50.0, 130.0) | (50.0, 155.0) 20 | (50.0, 175.0) | (50.0, 200.0) 21 | (95.0, 175.0) | (95.0, 200.0) 22 | (140.0, 175.0) | (140.0, 200.0) 23 | (185.0, 175.0) | (185.0, 200.0) 24 | (230.0, 175.0) | (230.0, 200.0) Starting heater checks for extruder Stats 878.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=3743 bytes_read=7294 bytes_retransmit=9 bytes_invalid=0 send_seq=302 receive_seq=302 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=179993838 sysload=0.43 cputime=34.804 memavail=702640 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=0.0 pwm=0.000 webhooks: registering remote method 'shutdown_machine' for connection id: 281472848610448 webhooks: registering remote method 'reboot_machine' for connection id: 281472848610448 webhooks: registering remote method 'pause_job_queue' for connection id: 281472848610448 webhooks: registering remote method 'start_job_queue' for connection id: 281472848610448 Stats 879.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000000 mcu_task_stddev=0.000000 bytes_write=3757 bytes_read=7325 bytes_retransmit=9 bytes_invalid=0 send_seq=304 receive_seq=304 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180000854 sysload=0.43 cputime=34.852 memavail=702768 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=0.0 pwm=0.000 Stats 880.7: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000007 bytes_write=3763 bytes_read=7416 bytes_retransmit=9 bytes_invalid=0 send_seq=305 receive_seq=305 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180002166 sysload=0.43 cputime=34.890 memavail=702544 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 881.7: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000007 bytes_write=3769 bytes_read=7477 bytes_retransmit=9 bytes_invalid=0 send_seq=306 receive_seq=306 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180002754 sysload=0.40 cputime=34.908 memavail=702104 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 882.7: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000007 bytes_write=3775 bytes_read=7538 bytes_retransmit=9 bytes_invalid=0 send_seq=307 receive_seq=307 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003087 sysload=0.40 cputime=34.928 memavail=701656 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 883.7: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000007 bytes_write=3781 bytes_read=7614 bytes_retransmit=9 bytes_invalid=0 send_seq=308 receive_seq=308 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003234 sysload=0.40 cputime=34.946 memavail=702256 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 884.7: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000007 mcu_task_stddev=0.000007 bytes_write=3787 bytes_read=7675 bytes_retransmit=9 bytes_invalid=0 send_seq=309 receive_seq=309 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003352 sysload=0.40 cputime=34.964 memavail=702292 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 SET_KINEMATIC_POSITION pos=100.000,100.000,10.000 Stats 885.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3793 bytes_read=7749 bytes_retransmit=9 bytes_invalid=0 send_seq=310 receive_seq=310 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003445 sysload=0.40 cputime=34.991 memavail=700116 print_time=9.993 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 886.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3799 bytes_read=7825 bytes_retransmit=9 bytes_invalid=0 send_seq=311 receive_seq=311 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003596 sysload=0.45 cputime=35.011 memavail=703780 print_time=9.993 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 887.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=3805 bytes_read=7886 bytes_retransmit=9 bytes_invalid=0 send_seq=312 receive_seq=312 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003550 sysload=0.45 cputime=35.029 memavail=703392 print_time=9.993 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 888.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5382 bytes_read=9318 bytes_retransmit=9 bytes_invalid=0 send_seq=392 receive_seq=392 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003556 sysload=0.45 cputime=35.216 memavail=702972 print_time=13.135 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 889.7: gcodein=0 mcu: mcu_awake=0.000 mcu_task_avg=0.000004 mcu_task_stddev=0.000003 bytes_write=5500 bytes_read=9578 bytes_retransmit=9 bytes_invalid=0 send_seq=401 receive_seq=401 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003542 sysload=0.45 cputime=35.262 memavail=703068 print_time=13.135 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 890.7: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=5977 bytes_read=9873 bytes_retransmit=9 bytes_invalid=0 send_seq=417 receive_seq=417 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003544 sysload=0.45 cputime=35.306 memavail=702372 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 891.7: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=6095 bytes_read=10118 bytes_retransmit=9 bytes_invalid=0 send_seq=426 receive_seq=426 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003537 sysload=0.49 cputime=35.345 memavail=702420 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 892.7: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=6213 bytes_read=10378 bytes_retransmit=9 bytes_invalid=0 send_seq=435 receive_seq=435 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003543 sysload=0.49 cputime=35.385 memavail=702144 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 893.7: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=6331 bytes_read=10623 bytes_retransmit=9 bytes_invalid=0 send_seq=444 receive_seq=444 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003547 sysload=0.49 cputime=35.442 memavail=702120 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 894.7: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000007 mcu_task_stddev=0.000005 bytes_write=6455 bytes_read=10884 bytes_retransmit=9 bytes_invalid=0 send_seq=454 receive_seq=454 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003530 sysload=0.49 cputime=35.480 memavail=701888 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 895.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6573 bytes_read=11159 bytes_retransmit=9 bytes_invalid=0 send_seq=463 receive_seq=463 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003555 sysload=0.49 cputime=35.523 memavail=701952 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 896.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6691 bytes_read=11404 bytes_retransmit=9 bytes_invalid=0 send_seq=472 receive_seq=472 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003573 sysload=0.61 cputime=35.578 memavail=701816 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 897.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6809 bytes_read=11649 bytes_retransmit=9 bytes_invalid=0 send_seq=481 receive_seq=481 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003660 sysload=0.61 cputime=35.624 memavail=701492 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 898.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=6927 bytes_read=11908 bytes_retransmit=9 bytes_invalid=0 send_seq=490 receive_seq=490 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003626 sysload=0.61 cputime=35.665 memavail=701404 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 899.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7045 bytes_read=12149 bytes_retransmit=9 bytes_invalid=0 send_seq=499 receive_seq=499 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003628 sysload=0.61 cputime=35.723 memavail=701716 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 900.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7163 bytes_read=12408 bytes_retransmit=9 bytes_invalid=0 send_seq=508 receive_seq=508 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180004762 sysload=0.61 cputime=35.763 memavail=701816 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 901.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7281 bytes_read=12668 bytes_retransmit=9 bytes_invalid=0 send_seq=517 receive_seq=517 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180004645 sysload=0.81 cputime=35.803 memavail=701852 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 902.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7399 bytes_read=12913 bytes_retransmit=9 bytes_invalid=0 send_seq=526 receive_seq=526 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180004481 sysload=0.81 cputime=35.845 memavail=701228 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 903.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7517 bytes_read=13158 bytes_retransmit=9 bytes_invalid=0 send_seq=535 receive_seq=535 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180004344 sysload=0.81 cputime=35.885 memavail=702524 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 904.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7635 bytes_read=13418 bytes_retransmit=9 bytes_invalid=0 send_seq=544 receive_seq=544 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180004230 sysload=0.81 cputime=35.928 memavail=702376 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 905.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7753 bytes_read=13678 bytes_retransmit=9 bytes_invalid=0 send_seq=553 receive_seq=553 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180004133 sysload=0.81 cputime=35.968 memavail=702392 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 906.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7871 bytes_read=13923 bytes_retransmit=9 bytes_invalid=0 send_seq=562 receive_seq=562 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180004062 sysload=0.74 cputime=36.018 memavail=701928 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 907.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=7989 bytes_read=14183 bytes_retransmit=9 bytes_invalid=0 send_seq=571 receive_seq=571 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003995 sysload=0.74 cputime=36.064 memavail=701852 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 908.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8107 bytes_read=14428 bytes_retransmit=9 bytes_invalid=0 send_seq=580 receive_seq=580 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003959 sysload=0.74 cputime=36.103 memavail=702216 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 909.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8225 bytes_read=14673 bytes_retransmit=9 bytes_invalid=0 send_seq=589 receive_seq=589 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003922 sysload=0.74 cputime=36.157 memavail=702704 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 910.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8343 bytes_read=14948 bytes_retransmit=9 bytes_invalid=0 send_seq=598 receive_seq=598 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003891 sysload=0.74 cputime=36.197 memavail=702860 print_time=14.788 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 911.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8815 bytes_read=15223 bytes_retransmit=9 bytes_invalid=0 send_seq=613 receive_seq=613 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003844 sysload=0.68 cputime=36.238 memavail=702420 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 912.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=8933 bytes_read=15468 bytes_retransmit=9 bytes_invalid=0 send_seq=622 receive_seq=622 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003806 sysload=0.68 cputime=36.280 memavail=702708 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 913.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9051 bytes_read=15728 bytes_retransmit=9 bytes_invalid=0 send_seq=631 receive_seq=631 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003765 sysload=0.68 cputime=36.320 memavail=703956 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 914.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9169 bytes_read=15973 bytes_retransmit=9 bytes_invalid=0 send_seq=640 receive_seq=640 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003733 sysload=0.68 cputime=36.363 memavail=704052 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 915.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=9287 bytes_read=16233 bytes_retransmit=9 bytes_invalid=0 send_seq=649 receive_seq=649 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003707 sysload=0.68 cputime=36.402 memavail=703604 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 916.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=9405 bytes_read=16493 bytes_retransmit=9 bytes_invalid=0 send_seq=658 receive_seq=658 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003700 sysload=0.71 cputime=36.444 memavail=704012 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 917.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=9523 bytes_read=16738 bytes_retransmit=9 bytes_invalid=0 send_seq=667 receive_seq=667 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003680 sysload=0.71 cputime=36.484 memavail=703804 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 918.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=9641 bytes_read=16983 bytes_retransmit=9 bytes_invalid=0 send_seq=676 receive_seq=676 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003659 sysload=0.71 cputime=36.539 memavail=704004 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 919.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=9759 bytes_read=17243 bytes_retransmit=9 bytes_invalid=0 send_seq=685 receive_seq=685 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003643 sysload=0.71 cputime=36.580 memavail=704292 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 920.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9877 bytes_read=17503 bytes_retransmit=9 bytes_invalid=0 send_seq=694 receive_seq=694 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003628 sysload=0.71 cputime=36.618 memavail=704168 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 921.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=9995 bytes_read=17748 bytes_retransmit=9 bytes_invalid=0 send_seq=703 receive_seq=703 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003617 sysload=0.73 cputime=36.660 memavail=704308 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 922.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10113 bytes_read=18007 bytes_retransmit=9 bytes_invalid=0 send_seq=712 receive_seq=712 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003605 sysload=0.73 cputime=36.700 memavail=704404 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 923.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10231 bytes_read=18248 bytes_retransmit=9 bytes_invalid=0 send_seq=721 receive_seq=721 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003621 sysload=0.73 cputime=36.740 memavail=704800 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 924.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10349 bytes_read=18492 bytes_retransmit=9 bytes_invalid=0 send_seq=730 receive_seq=730 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003609 sysload=0.73 cputime=36.778 memavail=704400 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 925.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10467 bytes_read=18767 bytes_retransmit=9 bytes_invalid=0 send_seq=739 receive_seq=739 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003598 sysload=0.73 cputime=36.822 memavail=704872 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 926.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10585 bytes_read=19012 bytes_retransmit=9 bytes_invalid=0 send_seq=748 receive_seq=748 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003589 sysload=0.83 cputime=36.861 memavail=704224 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 927.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10703 bytes_read=19257 bytes_retransmit=9 bytes_invalid=0 send_seq=757 receive_seq=757 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003589 sysload=0.83 cputime=36.914 memavail=704100 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 928.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10821 bytes_read=19517 bytes_retransmit=9 bytes_invalid=0 send_seq=766 receive_seq=766 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003580 sysload=0.83 cputime=36.956 memavail=704068 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 929.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=10939 bytes_read=19762 bytes_retransmit=9 bytes_invalid=0 send_seq=775 receive_seq=775 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003577 sysload=0.83 cputime=36.994 memavail=704428 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 930.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11057 bytes_read=20022 bytes_retransmit=9 bytes_invalid=0 send_seq=784 receive_seq=784 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003570 sysload=0.83 cputime=37.038 memavail=704204 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 931.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11175 bytes_read=20282 bytes_retransmit=9 bytes_invalid=0 send_seq=793 receive_seq=793 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003564 sysload=0.77 cputime=37.078 memavail=703976 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 932.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11293 bytes_read=20527 bytes_retransmit=9 bytes_invalid=0 send_seq=802 receive_seq=802 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003568 sysload=0.77 cputime=37.120 memavail=703864 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 933.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11411 bytes_read=20772 bytes_retransmit=9 bytes_invalid=0 send_seq=811 receive_seq=811 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003564 sysload=0.77 cputime=37.160 memavail=703424 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 934.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11529 bytes_read=21032 bytes_retransmit=9 bytes_invalid=0 send_seq=820 receive_seq=820 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003557 sysload=0.77 cputime=37.203 memavail=703424 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 935.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11647 bytes_read=21292 bytes_retransmit=9 bytes_invalid=0 send_seq=829 receive_seq=829 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003568 sysload=0.77 cputime=37.241 memavail=703528 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 936.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11765 bytes_read=21537 bytes_retransmit=9 bytes_invalid=0 send_seq=838 receive_seq=838 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003569 sysload=0.78 cputime=37.297 memavail=703552 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 937.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=11883 bytes_read=21797 bytes_retransmit=9 bytes_invalid=0 send_seq=847 receive_seq=847 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003567 sysload=0.78 cputime=37.339 memavail=703144 print_time=36.332 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 938.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=12355 bytes_read=22072 bytes_retransmit=9 bytes_invalid=0 send_seq=862 receive_seq=862 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003573 sysload=0.78 cputime=37.381 memavail=703044 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 939.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=12473 bytes_read=22317 bytes_retransmit=9 bytes_invalid=0 send_seq=871 receive_seq=871 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003570 sysload=0.78 cputime=37.445 memavail=703256 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 940.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=12591 bytes_read=22592 bytes_retransmit=9 bytes_invalid=0 send_seq=880 receive_seq=880 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003573 sysload=0.78 cputime=37.491 memavail=703324 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 941.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=12709 bytes_read=22837 bytes_retransmit=9 bytes_invalid=0 send_seq=889 receive_seq=889 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003570 sysload=0.72 cputime=37.530 memavail=703092 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 942.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=12827 bytes_read=23082 bytes_retransmit=9 bytes_invalid=0 send_seq=898 receive_seq=898 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003568 sysload=0.72 cputime=37.586 memavail=703036 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 943.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=12945 bytes_read=23342 bytes_retransmit=9 bytes_invalid=0 send_seq=907 receive_seq=907 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003578 sysload=0.72 cputime=37.630 memavail=702476 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 944.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=13063 bytes_read=23587 bytes_retransmit=9 bytes_invalid=0 send_seq=916 receive_seq=916 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003574 sysload=0.72 cputime=37.667 memavail=702320 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 945.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=13181 bytes_read=23847 bytes_retransmit=9 bytes_invalid=0 send_seq=925 receive_seq=925 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003575 sysload=0.72 cputime=37.710 memavail=702116 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 946.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=13299 bytes_read=24104 bytes_retransmit=9 bytes_invalid=0 send_seq=934 receive_seq=934 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003574 sysload=0.66 cputime=37.749 memavail=702264 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 947.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=13417 bytes_read=24345 bytes_retransmit=9 bytes_invalid=0 send_seq=943 receive_seq=943 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003569 sysload=0.66 cputime=37.806 memavail=702264 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 948.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=13535 bytes_read=24589 bytes_retransmit=9 bytes_invalid=0 send_seq=952 receive_seq=952 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003584 sysload=0.66 cputime=37.845 memavail=701792 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 949.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=13653 bytes_read=24849 bytes_retransmit=9 bytes_invalid=0 send_seq=961 receive_seq=961 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003579 sysload=0.66 cputime=37.884 memavail=702008 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 950.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=13771 bytes_read=25109 bytes_retransmit=9 bytes_invalid=0 send_seq=970 receive_seq=970 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003581 sysload=0.66 cputime=37.927 memavail=702324 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 951.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=13889 bytes_read=25354 bytes_retransmit=9 bytes_invalid=0 send_seq=979 receive_seq=979 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003576 sysload=0.69 cputime=37.966 memavail=702400 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 952.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14007 bytes_read=25614 bytes_retransmit=9 bytes_invalid=0 send_seq=988 receive_seq=988 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003576 sysload=0.69 cputime=38.008 memavail=702712 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 953.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14125 bytes_read=25859 bytes_retransmit=9 bytes_invalid=0 send_seq=997 receive_seq=997 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003571 sysload=0.69 cputime=38.045 memavail=702828 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 954.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14243 bytes_read=26104 bytes_retransmit=9 bytes_invalid=0 send_seq=1006 receive_seq=1006 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003568 sysload=0.69 cputime=38.099 memavail=702828 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 955.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14367 bytes_read=26395 bytes_retransmit=9 bytes_invalid=0 send_seq=1016 receive_seq=1016 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003568 sysload=0.69 cputime=38.142 memavail=703100 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 956.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14485 bytes_read=26640 bytes_retransmit=9 bytes_invalid=0 send_seq=1025 receive_seq=1025 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003564 sysload=0.64 cputime=38.179 memavail=702916 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 957.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14603 bytes_read=26885 bytes_retransmit=9 bytes_invalid=0 send_seq=1034 receive_seq=1034 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003563 sysload=0.64 cputime=38.221 memavail=703180 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=20.9 pwm=0.000 Stats 958.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14721 bytes_read=27145 bytes_retransmit=9 bytes_invalid=0 send_seq=1043 receive_seq=1043 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003556 sysload=0.64 cputime=38.258 memavail=702928 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 959.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14839 bytes_read=27390 bytes_retransmit=9 bytes_invalid=0 send_seq=1052 receive_seq=1052 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003551 sysload=0.64 cputime=38.295 memavail=703180 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 960.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=14957 bytes_read=27650 bytes_retransmit=9 bytes_invalid=0 send_seq=1061 receive_seq=1061 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003547 sysload=0.64 cputime=38.332 memavail=703184 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 961.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=15075 bytes_read=27910 bytes_retransmit=9 bytes_invalid=0 send_seq=1070 receive_seq=1070 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003544 sysload=0.58 cputime=38.376 memavail=703684 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 962.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=15193 bytes_read=28155 bytes_retransmit=9 bytes_invalid=0 send_seq=1079 receive_seq=1079 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003669 sysload=0.58 cputime=38.412 memavail=703696 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 963.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=15311 bytes_read=28415 bytes_retransmit=9 bytes_invalid=0 send_seq=1088 receive_seq=1088 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003663 sysload=0.58 cputime=38.467 memavail=704020 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 964.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=15429 bytes_read=28660 bytes_retransmit=9 bytes_invalid=0 send_seq=1097 receive_seq=1097 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003652 sysload=0.58 cputime=38.504 memavail=704020 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 965.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=15547 bytes_read=28920 bytes_retransmit=9 bytes_invalid=0 send_seq=1106 receive_seq=1106 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003642 sysload=0.58 cputime=38.541 memavail=704020 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 966.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=15665 bytes_read=29180 bytes_retransmit=9 bytes_invalid=0 send_seq=1115 receive_seq=1115 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003636 sysload=0.54 cputime=38.583 memavail=704020 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 967.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=15783 bytes_read=29425 bytes_retransmit=9 bytes_invalid=0 send_seq=1124 receive_seq=1124 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003628 sysload=0.54 cputime=38.621 memavail=704024 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 968.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=15901 bytes_read=29670 bytes_retransmit=9 bytes_invalid=0 send_seq=1133 receive_seq=1133 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003627 sysload=0.54 cputime=38.677 memavail=704724 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 969.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=16019 bytes_read=29930 bytes_retransmit=9 bytes_invalid=0 send_seq=1142 receive_seq=1142 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003623 sysload=0.54 cputime=38.738 memavail=704788 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 970.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=16137 bytes_read=30187 bytes_retransmit=9 bytes_invalid=0 send_seq=1151 receive_seq=1151 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003633 sysload=0.54 cputime=38.796 memavail=704528 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 971.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=16255 bytes_read=30428 bytes_retransmit=9 bytes_invalid=0 send_seq=1160 receive_seq=1160 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003632 sysload=0.65 cputime=38.856 memavail=704320 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 972.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=16373 bytes_read=30688 bytes_retransmit=9 bytes_invalid=0 send_seq=1169 receive_seq=1169 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003629 sysload=0.65 cputime=38.919 memavail=704320 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 973.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=16491 bytes_read=30933 bytes_retransmit=9 bytes_invalid=0 send_seq=1178 receive_seq=1178 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003621 sysload=0.65 cputime=38.957 memavail=704396 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 974.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=16609 bytes_read=31178 bytes_retransmit=9 bytes_invalid=0 send_seq=1187 receive_seq=1187 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003613 sysload=0.65 cputime=38.994 memavail=704396 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 975.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=16727 bytes_read=31453 bytes_retransmit=9 bytes_invalid=0 send_seq=1196 receive_seq=1196 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003606 sysload=0.65 cputime=39.033 memavail=704556 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 976.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=16845 bytes_read=31698 bytes_retransmit=9 bytes_invalid=0 send_seq=1205 receive_seq=1205 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003600 sysload=0.60 cputime=39.070 memavail=704584 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 977.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=16963 bytes_read=31943 bytes_retransmit=9 bytes_invalid=0 send_seq=1214 receive_seq=1214 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003594 sysload=0.60 cputime=39.110 memavail=704584 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 978.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=17081 bytes_read=32203 bytes_retransmit=9 bytes_invalid=0 send_seq=1223 receive_seq=1223 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003589 sysload=0.60 cputime=39.148 memavail=704608 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 979.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=17199 bytes_read=32448 bytes_retransmit=9 bytes_invalid=0 send_seq=1232 receive_seq=1232 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003588 sysload=0.60 cputime=39.187 memavail=704824 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 980.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=17317 bytes_read=32708 bytes_retransmit=9 bytes_invalid=0 send_seq=1241 receive_seq=1241 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003584 sysload=0.60 cputime=39.221 memavail=704864 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 981.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=17435 bytes_read=32968 bytes_retransmit=9 bytes_invalid=0 send_seq=1250 receive_seq=1250 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003581 sysload=0.55 cputime=39.276 memavail=705432 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 982.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=17553 bytes_read=33213 bytes_retransmit=9 bytes_invalid=0 send_seq=1259 receive_seq=1259 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003576 sysload=0.55 cputime=39.318 memavail=705208 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 983.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=17671 bytes_read=33458 bytes_retransmit=9 bytes_invalid=0 send_seq=1268 receive_seq=1268 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003573 sysload=0.55 cputime=39.355 memavail=705036 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 984.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=17789 bytes_read=33718 bytes_retransmit=9 bytes_invalid=0 send_seq=1277 receive_seq=1277 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003573 sysload=0.55 cputime=39.410 memavail=705036 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 985.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=17907 bytes_read=33978 bytes_retransmit=9 bytes_invalid=0 send_seq=1286 receive_seq=1286 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003570 sysload=0.55 cputime=39.452 memavail=705036 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 986.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=18025 bytes_read=34223 bytes_retransmit=9 bytes_invalid=0 send_seq=1295 receive_seq=1295 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003568 sysload=0.51 cputime=39.488 memavail=705036 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 987.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=18143 bytes_read=34483 bytes_retransmit=9 bytes_invalid=0 send_seq=1304 receive_seq=1304 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003569 sysload=0.51 cputime=39.543 memavail=705036 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 988.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=18261 bytes_read=34728 bytes_retransmit=9 bytes_invalid=0 send_seq=1313 receive_seq=1313 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003566 sysload=0.51 cputime=39.581 memavail=704996 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 989.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=18379 bytes_read=34973 bytes_retransmit=9 bytes_invalid=0 send_seq=1322 receive_seq=1322 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003562 sysload=0.51 cputime=39.617 memavail=705076 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 990.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=18497 bytes_read=35248 bytes_retransmit=9 bytes_invalid=0 send_seq=1331 receive_seq=1331 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003560 sysload=0.51 cputime=39.665 memavail=705076 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 991.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=18615 bytes_read=35493 bytes_retransmit=9 bytes_invalid=0 send_seq=1340 receive_seq=1340 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003557 sysload=0.55 cputime=39.701 memavail=705080 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 992.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=18733 bytes_read=35738 bytes_retransmit=9 bytes_invalid=0 send_seq=1349 receive_seq=1349 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003558 sysload=0.55 cputime=39.742 memavail=705080 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 993.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=18851 bytes_read=35998 bytes_retransmit=9 bytes_invalid=0 send_seq=1358 receive_seq=1358 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003554 sysload=0.55 cputime=39.780 memavail=705584 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 994.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=18969 bytes_read=36240 bytes_retransmit=9 bytes_invalid=0 send_seq=1367 receive_seq=1367 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003552 sysload=0.55 cputime=39.831 memavail=705840 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 995.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=19087 bytes_read=36497 bytes_retransmit=9 bytes_invalid=0 send_seq=1376 receive_seq=1376 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003555 sysload=0.55 cputime=39.893 memavail=706044 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 996.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=19205 bytes_read=36757 bytes_retransmit=9 bytes_invalid=0 send_seq=1385 receive_seq=1385 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003556 sysload=0.58 cputime=39.937 memavail=706096 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.0 pwm=0.000 Stats 997.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=19323 bytes_read=37002 bytes_retransmit=9 bytes_invalid=0 send_seq=1394 receive_seq=1394 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003552 sysload=0.58 cputime=39.973 memavail=706544 print_time=63.179 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 SET_KINEMATIC_POSITION pos=100.000,100.000,10.000 Stats 1457.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=73533 bytes_read=153149 bytes_retransmit=9 bytes_invalid=0 send_seq=5533 receive_seq=5533 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003341 sysload=0.22 cputime=59.037 memavail=703088 print_time=582.040 buffer_time=0.238 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1458.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=73651 bytes_read=153409 bytes_retransmit=9 bytes_invalid=0 send_seq=5542 receive_seq=5542 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003341 sysload=0.22 cputime=59.081 memavail=703088 print_time=582.040 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1459.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=73769 bytes_read=153654 bytes_retransmit=9 bytes_invalid=0 send_seq=5551 receive_seq=5551 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003340 sysload=0.22 cputime=59.119 memavail=703400 print_time=582.040 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1460.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=73887 bytes_read=153899 bytes_retransmit=9 bytes_invalid=0 send_seq=5560 receive_seq=5560 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003340 sysload=0.22 cputime=59.161 memavail=703288 print_time=582.040 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1461.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=74005 bytes_read=154174 bytes_retransmit=9 bytes_invalid=0 send_seq=5569 receive_seq=5569 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003339 sysload=0.22 cputime=59.200 memavail=703644 print_time=582.040 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1462.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=74477 bytes_read=154449 bytes_retransmit=9 bytes_invalid=0 send_seq=5584 receive_seq=5584 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003340 sysload=0.28 cputime=59.248 memavail=704032 print_time=586.827 buffer_time=0.021 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1463.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=74595 bytes_read=154694 bytes_retransmit=9 bytes_invalid=0 send_seq=5593 receive_seq=5593 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003340 sysload=0.28 cputime=59.287 memavail=704120 print_time=586.827 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1464.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=75072 bytes_read=154989 bytes_retransmit=9 bytes_invalid=0 send_seq=5609 receive_seq=5609 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003340 sysload=0.28 cputime=59.344 memavail=703456 print_time=588.316 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1465.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=75549 bytes_read=155269 bytes_retransmit=9 bytes_invalid=0 send_seq=5625 receive_seq=5625 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003341 sysload=0.28 cputime=59.392 memavail=703728 print_time=589.546 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1466.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000007 mcu_task_stddev=0.000006 bytes_write=76022 bytes_read=155564 bytes_retransmit=9 bytes_invalid=0 send_seq=5641 receive_seq=5641 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003339 sysload=0.28 cputime=59.438 memavail=702948 print_time=590.665 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1467.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000007 mcu_task_stddev=0.000006 bytes_write=76499 bytes_read=155859 bytes_retransmit=9 bytes_invalid=0 send_seq=5657 receive_seq=5657 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003343 sysload=0.26 cputime=59.497 memavail=703004 print_time=591.898 buffer_time=0.088 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1468.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000007 mcu_task_stddev=0.000006 bytes_write=76617 bytes_read=156104 bytes_retransmit=9 bytes_invalid=0 send_seq=5666 receive_seq=5666 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003342 sysload=0.26 cputime=59.538 memavail=703628 print_time=591.898 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1469.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000007 mcu_task_stddev=0.000006 bytes_write=76735 bytes_read=156349 bytes_retransmit=9 bytes_invalid=0 send_seq=5675 receive_seq=5675 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003341 sysload=0.26 cputime=59.582 memavail=703448 print_time=591.898 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1470.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000007 mcu_task_stddev=0.000006 bytes_write=76853 bytes_read=156609 bytes_retransmit=9 bytes_invalid=0 send_seq=5684 receive_seq=5684 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003343 sysload=0.26 cputime=59.625 memavail=703224 print_time=591.898 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1471.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=76971 bytes_read=156869 bytes_retransmit=9 bytes_invalid=0 send_seq=5693 receive_seq=5693 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003342 sysload=0.26 cputime=59.668 memavail=703224 print_time=591.898 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1472.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=77089 bytes_read=157110 bytes_retransmit=9 bytes_invalid=0 send_seq=5702 receive_seq=5702 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003346 sysload=0.24 cputime=59.708 memavail=703224 print_time=591.898 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1473.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=77207 bytes_read=157367 bytes_retransmit=9 bytes_invalid=0 send_seq=5711 receive_seq=5711 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003345 sysload=0.24 cputime=59.746 memavail=703228 print_time=591.898 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1474.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=77325 bytes_read=157612 bytes_retransmit=9 bytes_invalid=0 send_seq=5720 receive_seq=5720 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003344 sysload=0.24 cputime=59.798 memavail=703824 print_time=591.898 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1475.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000005 bytes_write=77443 bytes_read=157857 bytes_retransmit=9 bytes_invalid=0 send_seq=5729 receive_seq=5729 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003344 sysload=0.24 cputime=59.839 memavail=704104 print_time=591.898 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1476.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=77561 bytes_read=158132 bytes_retransmit=9 bytes_invalid=0 send_seq=5738 receive_seq=5738 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003344 sysload=0.24 cputime=59.880 memavail=703352 print_time=591.898 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 1477.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=77679 bytes_read=158377 bytes_retransmit=9 bytes_invalid=0 send_seq=5747 receive_seq=5747 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003347 sysload=0.22 cputime=59.921 memavail=702740 print_time=591.898 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 1478.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=77797 bytes_read=158622 bytes_retransmit=9 bytes_invalid=0 send_seq=5756 receive_seq=5756 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003346 sysload=0.22 cputime=59.960 memavail=702672 print_time=591.898 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1479.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=77915 bytes_read=158882 bytes_retransmit=9 bytes_invalid=0 send_seq=5765 receive_seq=5765 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003345 sysload=0.22 cputime=60.016 memavail=703048 print_time=591.898 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1480.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=78132 bytes_read=159142 bytes_retransmit=9 bytes_invalid=0 send_seq=5777 receive_seq=5777 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003346 sysload=0.22 cputime=60.061 memavail=702896 print_time=604.215 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1481.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=78345 bytes_read=159417 bytes_retransmit=9 bytes_invalid=0 send_seq=5789 receive_seq=5789 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003345 sysload=0.22 cputime=60.111 memavail=702812 print_time=605.246 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 1482.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=78558 bytes_read=159692 bytes_retransmit=9 bytes_invalid=0 send_seq=5801 receive_seq=5801 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003344 sysload=0.20 cputime=60.157 memavail=703148 print_time=606.173 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1483.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=78772 bytes_read=159952 bytes_retransmit=9 bytes_invalid=0 send_seq=5813 receive_seq=5813 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003345 sysload=0.20 cputime=60.200 memavail=703148 print_time=607.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.3 pwm=0.000 Stats 1484.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=78890 bytes_read=160197 bytes_retransmit=9 bytes_invalid=0 send_seq=5822 receive_seq=5822 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003344 sysload=0.20 cputime=60.241 memavail=703260 print_time=607.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.1 pwm=0.000 Stats 1485.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=79008 bytes_read=160457 bytes_retransmit=9 bytes_invalid=0 send_seq=5831 receive_seq=5831 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003344 sysload=0.20 cputime=60.278 memavail=703300 print_time=607.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1486.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=79126 bytes_read=160717 bytes_retransmit=9 bytes_invalid=0 send_seq=5840 receive_seq=5840 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003346 sysload=0.20 cputime=60.319 memavail=703308 print_time=607.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1487.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=79244 bytes_read=160962 bytes_retransmit=9 bytes_invalid=0 send_seq=5849 receive_seq=5849 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003346 sysload=0.19 cputime=60.356 memavail=703060 print_time=607.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1488.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=79362 bytes_read=161222 bytes_retransmit=9 bytes_invalid=0 send_seq=5858 receive_seq=5858 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003346 sysload=0.19 cputime=60.397 memavail=703828 print_time=607.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1489.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=79480 bytes_read=161467 bytes_retransmit=9 bytes_invalid=0 send_seq=5867 receive_seq=5867 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003351 sysload=0.19 cputime=60.434 memavail=703576 print_time=607.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.3 pwm=0.000 Stats 1490.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=79598 bytes_read=161712 bytes_retransmit=9 bytes_invalid=0 send_seq=5876 receive_seq=5876 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003353 sysload=0.19 cputime=60.484 memavail=703528 print_time=607.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1491.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=79716 bytes_read=161987 bytes_retransmit=9 bytes_invalid=0 send_seq=5885 receive_seq=5885 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003354 sysload=0.19 cputime=60.547 memavail=703276 print_time=607.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1492.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=79834 bytes_read=162232 bytes_retransmit=9 bytes_invalid=0 send_seq=5894 receive_seq=5894 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003352 sysload=0.33 cputime=60.588 memavail=703304 print_time=607.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1493.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=79952 bytes_read=162477 bytes_retransmit=9 bytes_invalid=0 send_seq=5903 receive_seq=5903 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003351 sysload=0.33 cputime=60.627 memavail=703868 print_time=607.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1494.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=80070 bytes_read=162737 bytes_retransmit=9 bytes_invalid=0 send_seq=5912 receive_seq=5912 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003353 sysload=0.33 cputime=60.667 memavail=704152 print_time=607.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000 Stats 1495.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000006 mcu_task_stddev=0.000004 bytes_write=80188 bytes_read=162982 bytes_retransmit=9 bytes_invalid=0 send_seq=5921 receive_seq=5921 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=180003353 sysload=0.33 cputime=60.704 memavail=704408 print_time=607.480 buffer_time=0.000 print_stall=0 extruder: target=0 temp=21.2 pwm=0.000