Starting Klippy... Args: ['/home/pi/klipper/klippy/klippy.py', '/home/pi/printer_data/config/printer.cfg', '-I', '/home/pi/printer_data/comms/klippy.serial', '-l', '/home/pi/printer_data/logs/klippy.log', '-a', '/home/pi/printer_data/comms/klippy.sock'] Git version: 'v0.11.0-14-g69f76b3b' CPU: 4 core ARMv7 Processor rev 3 (v7l) Python: '2.7.16 (default, Oct 10 2019, 22:02:15) \n[GCC 8.3.0]' Start printer at Wed Dec 21 08:03:23 2022 (1671606203.7 58545.7) ===== Config file ===== [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE gcode = {% set extrude = printer['gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL'].extrude %} {% if 'VELOCITY' in params|upper %} {% set get_params = ('VELOCITY=' + params.VELOCITY) %} {%else %} {% set get_params = "" %} {% endif %} {% if printer.extruder.can_extrude|lower == 'true' %} M83 G1 E{extrude} F2100 {% if printer.gcode_move.absolute_extrude |lower == 'true' %} M82 {% endif %} {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} RESUME_BASE {get_params} [gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL] description = Helper: park toolhead used in PAUSE and CANCEL_PRINT variable_extrude = 1.0 gcode = {% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %} {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %} {% set z_park_delta = 2.0 %} {% set max_z = printer.toolhead.axis_maximum.z|float %} {% set act_z = printer.toolhead.position.z|float %} {% if act_z < (max_z - z_park_delta) %} {% set z_safe = z_park_delta %} {% else %} {% set z_safe = max_z - act_z %} {% endif %} {% if printer.extruder.can_extrude|lower == 'true' %} M83 G1 E-{extrude} F2100 {% if printer.gcode_move.absolute_extrude |lower == 'true' %} M82 {% endif %} {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} {% if "xyz" in printer.toolhead.homed_axes %} G91 G1 Z{z_safe} F900 G90 G1 X{x_park} Y{y_park} F6000 {% if printer.gcode_move.absolute_coordinates|lower == 'false' %} G91 {% endif %} {% else %} {action_respond_info("Printer not homed")} {% endif %} [mcu] serial = /dev/serial/by-id/usb-Arduino__www.arduino.cc__Arduino_Due_Prog._Port_855313038303510130E0-if00 baud = 250000 restart_method = rpi_usb [input_shaper] shaper_freq_x = 56.2 shaper_type_x = mzv shaper_freq_y = 48.2 shaper_type_y = 3hump_ei [printer] kinematics = limited_cartesian max_velocity = 270 max_x_velocity = 300 max_y_velocity = 200 max_z_velocity = 80 max_accel = 5000 max_x_accel = 4500 max_y_accel = 1500 max_z_accel = 200 scale_xy_accel = False square_corner_velocity = 5.0 [exclude_object] [virtual_sdcard] path = /home/pi/printer_data/gcodes [display] lcd_type = st7920 cs_pin = ar42 sclk_pin = ar44 sid_pin = ar43 encoder_pins = ^ar52, ^ar50 click_pin = ^!ar48 menu_reverse_navigation = 1 display_group = _multiextruder_16x4 [output_pin beeper] pin = ar41 pwm = True value = 1 shutdown_value = 0 cycle_time = 0.001 scale = 4000 [delayed_gcode mutebeeper] initial_duration = 0.1 gcode = M300 [save_variables] filename = ~/printer_data/config/mendelmax3/variables.cfg [display_status] [display_data display printing_time] position = 2, 10 text = {% set ptime = printer["gcode_macro M73"].r %} { "R%02d:%02d" % (ptime // 60, ptime % 60) } [output_pin main_psu] pin = ar40 shutdown_value = 1 value = 0 [board_pins arduino-due] aliases = ar0=PA8, ar1=PA9, ar2=PB25, ar3=PC28, ar4=PA29, ar5=PC25, ar6=PC24, ar7=PC23, ar8=PC22, ar9=PC21, ar10=PA28, ar11=PD7, ar12=PD8, ar13=PB27, ar14=PD4, ar15=PD5, ar16=PA13, ar17=PA12, ar18=PA11, ar19=PA10, ar20=PB12, ar21=PB13, ar22=PB26, ar23=PA14, ar24=PA15, ar25=PD0, ar26=PD1, ar27=PD2, ar28=PD3, ar29=PD6, ar30=PD9, ar31=PA7, ar32=PD10, ar33=PC1, ar34=PC2, ar35=PC3, ar36=PC4, ar37=PC5, ar38=PC6, ar39=PC7, ar40=PC8, ar41=PC9, ar42=PA19, ar43=PA20, ar44=PC19, ar45=PC18, ar46=PC17, ar47=PC16, ar48=PC15, ar49=PC14, ar50=PC13, ar51=PC12, ar52=PB21, ar53=PB14, ar54=PA16, ar55=PA24, ar56=PA23, ar57=PA22, ar58=PA6, ar59=PA4, ar60=PA3, ar61=PA2, ar62=PB17, ar63=PB18, ar64=PB19, ar65=PB20, ar66=PB15, ar67=PB16, ar68=PA1, ar69=PA0, ar70=PA17, ar71=PA18, ar72=PC30, ar73=PA21, ar74=PA25, ar75=PA26, ar76=PA27, ar77=PA28, ar78=PB23, analog0=PA16, analog1=PA24, analog2=PA23, analog3=PA22, analog4=PA6, analog5=PA4, analog6=PA3, analog7=PA2, analog8=PB17, analog9=PB18, analog10=PB19, analog11=PB20 [stepper_x] step_pin = ar24 dir_pin = ar23 enable_pin = ar26 microsteps = 16 rotation_distance = 10.0454 endstop_pin = ^!ar28 position_min = -105 position_max = 235 homing_speed = 180 position_endstop = -97 homing_retract_dist = 5.0 second_homing_speed = 5.0 [dual_carriage] axis = x step_pin = ar51 dir_pin = ar53 enable_pin = ar49 microsteps = 16 rotation_distance = 10.0454 endstop_pin = ^!ar34 position_endstop = 327 position_min = -3 position_max = 335 homing_speed = 180 homing_retract_dist = 5.0 second_homing_speed = 5.0 [stepper_y] step_pin = ar17 dir_pin = ar16 enable_pin = ar22 microsteps = 16 rotation_distance = 16.0414 endstop_pin = ^!ar30 position_endstop = -2 position_min = -12 position_max = 315 homing_speed = 180 homing_retract_dist = 10.0 second_homing_speed = 5.0 [stepper_z] step_pin = ar61 dir_pin = ar60 enable_pin = ar62 microsteps = 16 rotation_distance = 2.0483 endstop_pin = probe:z_virtual_endstop position_min = -2.0 position_max = 208 [stepper_z1] step_pin = ar2 dir_pin = ar3 enable_pin = ar15 microsteps = 16 rotation_distance = 2.0483 [z_tilt] z_positions = -33,110 267,110 points = -20,150 205,150 speed = 100 horizontal_move_z = 4 retries = 7 retry_tolerance = 0.02 [homing_override] axes = xyz set_position_z = 0 gcode = {% set CURRENTLESS = 1 %} {% set PROBE_X = 100 %} {% set PROBE_Y = 150 %} {% set PROBE_XY_SPEED = 500 %} {% set MOVE_TO_PREVIOUS = False %} {% set MOVE_TO_PREV_SPEED = 50 %} {% set HOMING_BOUNCE = 5.0 %} {% set BOUNCE_SPEED = 25 %} {% set Z_HOP = 5 %} {% set Z_HOP_SPEED = 100 %} {% set X_HOMING_CUR = 0.500 %} {% set Y_HOMING_CUR = 0.500 %} {% set HOMING_ACCEL = 500 %} {% set PAUSE = 1000 %} {% set SAFETY_HOP = 5 %} {% set SAFETY_HOP_SPEED = 5 %} {% set cur_accel = printer.toolhead.max_accel %} {% set cur_accel_to_decel = printer.toolhead.max_accel_to_decel %} {% set requested = {'x': False, 'y': False, 'z': False} %} {% if not 'X' in params and not 'Y' in params and not 'Z' in params %} {% set X, Y, Z = True, True, True %} {% else %} {% if 'X' in params %} {% set X = True %} {% set null = requested.update({'x': True}) %} {% endif %} {% if 'Y' in params %} {% set Y = True %} {% set null = requested.update({'y': True}) %} {% endif %} {% if 'Z' in params %} {% set Z = True %} {% set null = requested.update({'z': True}) %} {% endif %} {% endif %} {% if not "xyz" in printer.toolhead.homed_axes %} G1 Z{SAFETY_HOP} F{(SAFETY_HOP_SPEED * 60)} {% endif %} {% if MOVE_TO_PREVIOUS %} SAVE_GCODE_STATE NAME=homing {% endif %} {% if CURRENTLESS != 1 %} {% if X and Y %} SENSORLESS_HOME_ALL X_CUR={X_HOMING_CUR} Y_CUR={Y_HOMING_CUR} ACCEL={HOMING_ACCEL} BOUNCE={HOMING_BOUNCE} BOUNCE_SPEED={BOUNCE_SPEED} PAUSE={PAUSE} {% elif X %} SENSORLESS_HOME_X CURRENT={X_HOMING_CUR} ACCEL={HOMING_ACCEL} BOUNCE={HOMING_BOUNCE} BOUNCE_SPEED={BOUNCE_SPEED} PAUSE={PAUSE} {% elif Y %} SENSORLESS_HOME_Y CURRENT={Y_HOMING_CUR} ACCEL={HOMING_ACCEL} BOUNCE={HOMING_BOUNCE} BOUNCE_SPEED={BOUNCE_SPEED} PAUSE={PAUSE} {% endif %} {% else %} {% if X and Y %} SENSOR_HOME_ALL ACCEL={HOMING_ACCEL} BOUNCE={HOMING_BOUNCE} BOUNCE_SPEED={BOUNCE_SPEED} PAUSE={PAUSE} {% elif X %} SENSOR_HOME_X ACCEL={HOMING_ACCEL} BOUNCE={HOMING_BOUNCE} BOUNCE_SPEED={BOUNCE_SPEED} PAUSE={PAUSE} {% elif Y %} SENSOR_HOME_Y ACCEL={HOMING_ACCEL} BOUNCE={HOMING_BOUNCE} BOUNCE_SPEED={BOUNCE_SPEED} PAUSE={PAUSE} {% endif %} {% endif %} {% if Z %} {% set initialtoolhead = printer.toolhead.extruder %} T0 G1 X{PROBE_X} Y{PROBE_Y} F{(PROBE_XY_SPEED * 60)} G28.6245197 Z G1 Z{Z_HOP} F{(Z_HOP_SPEED * 60)} _PARK_extruder {% if initialtoolhead != "extruder" %} T1 {% endif %} {% endif %} {% if MOVE_TO_PREVIOUS %} {% if MOVE_TO_PREV_SPEED == 0 %} RESTORE_GCODE_STATE NAME=homing MOVE=1 {% else %} RESTORE_GCODE_STATE NAME=homing MOVE=1 MOVE_SPEED={MOVE_TO_PREV_SPEED} {% endif %} {% endif %} {% if printer.toolhead.max_accel != cur_accel %} SET_VELOCITY_LIMIT ACCEL={cur_accel} ACCEL_TO_DECEL={cur_accel_to_decel} {% endif %} [gcode_macro SENSORLESS_HOME_ALL] description = Home XY with modified current gcode = {% set HOME_CUR_X = params.X_CUR|default(0.250)|float %} {% set HOME_CUR_Y = params.Y_CUR|default(0.250)|float %} {% set HOME_ACCEL = params.ACCEL|default(500)|float %} {% set BOUNCE = params.BOUNCE|default(10)|float %} {% set BOUNCE_SPEED = params.BOUNCE_SPEED|default(20)|float %} {% set driver_config_x = printer.configfile.settings['tmc2209 stepper_x'] %} {% set driver_config_y = printer.configfile.settings['tmc2209 stepper_y'] %} {% set RUN_CUR_X = driver_config_x.run_current %} {% set RUN_CUR_Y = driver_config_y.run_current %} {% set PAUSE = params.PAUSE|default(2000)|int %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR_X} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR_Y} SET_VELOCITY_LIMIT ACCEL={HOME_ACCEL} ACCEL_TO_DECEL={(HOME_ACCEL * 0.5)} G4 P{PAUSE} G28.6245197 X0 {% if BOUNCE %} G91 G1 X{BOUNCE} F{(BOUNCE_SPEED * 60)} G90 {% endif %} G28.6245197 Y0 {% if BOUNCE %} G91 G1 Y{BOUNCE} F{(BOUNCE_SPEED * 60)} G90 {% endif %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR_X} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CUR_Y} G4 P{PAUSE} [gcode_macro SENSORLESS_HOME_X] description = Home X with modified current gcode = {% set HOME_CUR = params.CURRENT|default(0.250)|float %} {% set HOME_ACCEL = params.ACCEL|default(500)|float %} {% set BOUNCE = params.BOUNCE|default(10)|float %} {% set BOUNCE_SPEED = params.BOUNCE_SPEED|default(20)|float %} {% set driver_config = printer.configfile.settings['tmc2209 stepper_x'] %} {% set RUN_CUR = driver_config.run_current %} {% set PAUSE = params.PAUSE|default(2000)|int %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} SET_VELOCITY_LIMIT ACCEL={HOME_ACCEL} ACCEL_TO_DECEL={(HOME_ACCEL * 0.5)} G4 P{PAUSE} G28.6245197 X0 {% if BOUNCE %} G91 G1 X{BOUNCE} F{(BOUNCE_SPEED * 60)} G90 {% endif %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} G4 P{PAUSE} [gcode_macro SENSORLESS_HOME_Y] description = Home Y with modified current gcode = {% set HOME_CUR = params.CURRENT|default(0.250)|float %} {% set HOME_ACCEL = params.ACCEL|default(500)|float %} {% set BOUNCE = params.BOUNCE|default(10)|float %} {% set BOUNCE_SPEED = params.BOUNCE_SPEED|default(20)|float %} {% set driver_config = printer.configfile.settings['tmc2209 stepper_y'] %} {% set RUN_CUR = driver_config.run_current %} {% set PAUSE = params.PAUSE|default(2000)|int %} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR} SET_VELOCITY_LIMIT ACCEL={HOME_ACCEL} ACCEL_TO_DECEL={(HOME_ACCEL * 0.5)} G4 P{PAUSE} G28.6245197 Y0 {% if BOUNCE %} G91 G1 Y{BOUNCE} F{(BOUNCE_SPEED * 60)} G90 {% endif %} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CUR} G4 P{PAUSE} [gcode_macro SENSOR_HOME_ALL] description = Home XY gcode = {% set HOME_ACCEL = params.ACCEL|default(500)|float %} {% set BOUNCE = params.BOUNCE|default(10)|float %} {% set BOUNCE_SPEED = params.BOUNCE_SPEED|default(20)|float %} {% set PAUSE = params.PAUSE|default(2000)|int %} SET_VELOCITY_LIMIT ACCEL={HOME_ACCEL} ACCEL_TO_DECEL={(HOME_ACCEL * 0.5)} G4 P{PAUSE} G28.6245197 X0 {% if BOUNCE %} G91 G1 X{BOUNCE} F{(BOUNCE_SPEED * 60)} G90 {% endif %} G28.6245197 Y0 {% if BOUNCE %} G91 G1 Y{BOUNCE} F{(BOUNCE_SPEED * 60)} G90 {% endif %} G4 P{PAUSE} [gcode_macro SENSOR_HOME_X] description = Home X gcode = {% set HOME_ACCEL = params.ACCEL|default(500)|float %} {% set BOUNCE = params.BOUNCE|default(10)|float %} {% set BOUNCE_SPEED = params.BOUNCE_SPEED|default(20)|float %} {% set PAUSE = params.PAUSE|default(2000)|int %} SET_VELOCITY_LIMIT ACCEL={HOME_ACCEL} ACCEL_TO_DECEL={(HOME_ACCEL * 0.5)} G4 P{PAUSE} G28.6245197 X0 {% if BOUNCE %} G91 G1 X{BOUNCE} F{(BOUNCE_SPEED * 60)} G90 {% endif %} G4 P{PAUSE} [gcode_macro SENSOR_HOME_Y] description = Home Y gcode = {% set HOME_ACCEL = params.ACCEL|default(500)|float %} {% set BOUNCE = params.BOUNCE|default(10)|float %} {% set BOUNCE_SPEED = params.BOUNCE_SPEED|default(20)|float %} {% set PAUSE = params.PAUSE|default(2000)|int %} SET_VELOCITY_LIMIT ACCEL={HOME_ACCEL} ACCEL_TO_DECEL={(HOME_ACCEL * 0.5)} G4 P{PAUSE} G28.6245197 Y0 {% if BOUNCE %} G91 G1 Y{BOUNCE} F{(BOUNCE_SPEED * 60)} G90 {% endif %} G4 P{PAUSE} [endstop_phase stepper_x] trigger_phase = 45/64 [endstop_phase dual_carriage] trigger_phase = 47/64 [gcode_macro START_PRINT] description = Inserted by slicer at start of print. Usage: PRINT_START BED= EXTRUDER= [USETOOL=] [CHAMBER=] [MESH_MIN=] [MESH_MAX=] [LAYERS=] [NOZZLE_SIZE=] gcode = {% set X_MAX = printer.toolhead.axis_maximum.x|default(100)|float %} {% set Y_MAX = printer.toolhead.axis_maximum.y|default(100)|float %} {% set Z_MAX = printer.toolhead.axis_maximum.z|default(100)|float %} {% set NOZZLE = printer.extruder.nozzle_diameter|default(0.4)|float %} {% set FILADIA = printer.extruder.filament_diameter|default(1.75)|float %} {% set X_START = 10.0|default(10.0)|float %} {% set Y_START = -5.0|default(0.0)|float %} {% set PRIMER_WIDTH = 1.25 * NOZZLE %} {% set PRIMER_HEIGHT = 1.0 * NOZZLE %} {% set PRIMER_SECT = PRIMER_WIDTH * PRIMER_HEIGHT %} {% set PRIMER_VOL = PRIMER_SECT * (X_MAX - 3 * X_START) %} {% set FILA_SECT = 3.1415 * ( FILADIA / 2.0)**2 %} {% set FILA_LENGTH = 1.55 * PRIMER_VOL / FILA_SECT %} SKEW_PROFILE LOAD=skew_11Nov22 {% set BED_TEMP = params.BED|default(60)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER|default(190)|float %} M80 M140 S{BED_TEMP} G90 SET_DUAL_CARRIAGE CARRIAGE=0 G28 BED_MESH_CALIBRATE BED_MESH_OUTPUT PARK_{printer.toolhead.extruder} M109 S{EXTRUDER_TEMP} M190 S{BED_TEMP} G92 E0 G1 X{X_START} Y{Y_START} Z{PRIMER_HEIGHT} F6000.0 G1 X{X_MAX - 2 * X_START -50} Y{Y_START} Z{PRIMER_HEIGHT} E{FILA_LENGTH} F2000.0 G1 X{X_MAX - 2 * X_START -50} Y{Y_START + PRIMER_WIDTH} Z{PRIMER_HEIGHT} E{FILA_LENGTH} G1 X{X_START} Y{Y_START + PRIMER_WIDTH} Z{PRIMER_HEIGHT} E{FILA_LENGTH} F2000.0 G92 E0 G1 Z2.0 F600 G1 Z0.2 F600 G1 Z2.0 F600 [gcode_macro END_PRINT] gcode = SET_SKEW CLEAR=1 {% set x_park = printer.toolhead.axis_minimum.x|float - 5.0 %} {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %} M140 S0 M104 S0 M106 S0 G91 G1 X-2 Y-2 E-3 F300 G1 Z10 F3000 G90 G1 X{x_park} Y{y_park} F6000 M300 M84 BED_MESH_CLEAR [gcode_macro PAUSE] description = Pause the actual running print rename_existing = PAUSE_BASE variable_extrude = 1.0 gcode = {% set E = printer["gcode_macro PAUSE"].extrude|float %} {% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %} {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %} {% set max_z = printer.toolhead.axis_maximum.z|float %} {% set act_z = printer.toolhead.position.z|float %} {% if act_z < (max_z - 2.0) %} {% set z_safe = 2.0 %} {% else %} {% set z_safe = max_z - act_z %} {% endif %} PAUSE_BASE G91 {% if printer.extruder.can_extrude|lower == 'true' %} G1 E-{E} F2100 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} {% if "xyz" in printer.toolhead.homed_axes %} G1 Z{z_safe} F900 G90 G1 X{x_park} Y{y_park} F6000 {% else %} {action_respond_info("Printer not homed")} {% endif %} [gcode_macro _PARK_extruder] gcode = {% if "x" in printer.toolhead.homed_axes %} SAVE_GCODE_STATE NAME=park0 {% if printer["gcode_macro M106"].swap_speed != -1 %} SET_FAN_SPEED FAN=fan_extruder SPEED=0 {% endif %} G90 {% set x_park = printer.configfile.settings.stepper_x.position_min|float + 5.0 %} G1 X{x_park} F7200 RESTORE_GCODE_STATE NAME=park0 {% endif %} [gcode_macro _PARK_extruder1] gcode = {% if "x" in printer.toolhead.homed_axes %} SAVE_GCODE_STATE NAME=park1 {% if printer["gcode_macro M106"].swap_speed != -1 %} SET_FAN_SPEED FAN=fan_extruder1 SPEED=0 {% endif %} G90 printer.configfile.config.dual_carriage.position_max {% set x_park = printer.configfile.config.dual_carriage.position_max|float - 5.0 %} G1 X{x_park} F7200 RESTORE_GCODE_STATE NAME=park1 {% endif %} [gcode_macro T0] gcode = {% set svv = printer.save_variables.variables %} {% set fan_speed = printer["gcode_macro M106"].swap_speed %} {% if fan_speed != -1 %} SET_FAN_SPEED FAN=fan_{printer.toolhead.extruder} SPEED={fan_speed} {% else %} M106.1 S{printer["fan_generic fan_"+printer.toolhead.extruder].speed * 255} {% endif %} _PARK_{printer.toolhead.extruder} ACTIVATE_EXTRUDER EXTRUDER=extruder SET_DUAL_CARRIAGE CARRIAGE=0 SET_GCODE_OFFSET X=0 Y=0 Z=0 MOVE=1 [gcode_macro T1] gcode = {% set svv = printer.save_variables.variables %} {% set fan_speed = printer["gcode_macro M106"].swap_speed %} {% if fan_speed != -1 %} SET_FAN_SPEED FAN=fan_{printer.toolhead.extruder} SPEED={fan_speed} {% else %} M106.1 S{printer["fan_generic fan_"+printer.toolhead.extruder].speed * 255} {% endif %} _PARK_{printer.toolhead.extruder} ACTIVATE_EXTRUDER EXTRUDER=extruder1 SET_DUAL_CARRIAGE CARRIAGE=1 SET_GCODE_OFFSET X={ svv.xoffset } Y={ svv.yoffset } Z={ svv.zoffset } MOVE=1 [extruder] step_pin = ar64 dir_pin = !ar63 enable_pin = ar65 microsteps = 16 rotation_distance = 3.855421687 full_steps_per_rotation = 200 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = ar13 sensor_type = EPCOS 100K B57560G104F sensor_pin = analog0 control = pid pid_kp = 12.872 pid_ki = 0.508 pid_kd = 81.578 min_extrude_temp = 0 min_temp = 0 max_temp = 275 pressure_advance_smooth_time = 0.040 max_extrude_cross_section = 100 max_extrude_only_distance = 100.0 [gcode_macro extruder_settings] variable_purge = -2 gcode = [filament_switch_sensor fila_sensor_left] switch_pin = ^!ar36 pause_on_runout = false runout_gcode = M600 M300 P200 S600 M300 P200 S600 insert_gcode = M117 Filament left inserted M118 Filament left inserted M300 event_delay = 3.0 pause_delay = 0.0001 [extruder1] step_pin = PC3 dir_pin = PC1 enable_pin = !PC5 microsteps = 16 rotation_distance = 15.42168675 full_steps_per_rotation = 200 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = ar12 sensor_type = EPCOS 100K B57560G104F sensor_pin = analog1 control = pid pid_kp = 12.872 pid_ki = 0.508 pid_kd = 81.578 min_extrude_temp = 0 min_temp = 0 max_temp = 275 pressure_advance_smooth_time = 0.040 max_extrude_cross_section = 100 max_extrude_only_distance = 100.0 [gcode_macro extruder1_settings] variable_purge = -4 gcode = [filament_switch_sensor fila_sensor_right] switch_pin = ^!ar38 pause_on_runout = false runout_gcode = M600 M300 P200 S600 M300 P200 S600 insert_gcode = M117 Filament right inserted M118 Filament right inserted M300 event_delay = 3.0 pause_delay = 0.0001 [verify_heater extruder] max_error = 200 check_gain_time = 40 hysteresis = 5 [heater_bed] heater_pin = ar7 sensor_type = EPCOS 100K B57560G104F sensor_pin = analog4 control = pid pid_kp = 49.037 pid_ki = 1.083 pid_kd = 555.347 min_temp = 0 max_temp = 120 [bed_mesh] speed = 150 horizontal_move_z = 5 mesh_min = 5,0 mesh_max = 240,300 probe_count = 3,3 mesh_pps = 2,2 algorithm = lagrange [fan_generic fan_extruder] pin = ar4 [fan_generic fan_extruder1] pin = ar10 [gcode_macro M106] rename_existing = M106.1 variable_swap_speed = -1 gcode = {% set s = [[params.S|default(255)|int, 255]|min, 0]|max %} {% set p = params.P|default(-1)|int %} {% set speed = s / 255 %} SET_GCODE_VARIABLE MACRO=M106 VARIABLE=swap_speed VALUE=-1 {% if p == -1 %} {% if speed == 0 %} SET_FAN_SPEED FAN=fan_extruder SPEED=0 SET_FAN_SPEED FAN=fan_extruder1 SPEED=0 {% else %} SET_GCODE_VARIABLE MACRO=M106 VARIABLE=swap_speed VALUE={speed} SET_FAN_SPEED FAN=fan_{printer.toolhead.extruder} SPEED={speed} {% endif %} {% else %} {% if p == 0 %} SET_FAN_SPEED FAN=fan_extruder SPEED={speed} {% else %} SET_FAN_SPEED FAN=fan_extruder1 SPEED={speed} {% endif %} {% endif %} M106.1 S{s} [gcode_macro M107] rename_existing = M107.1 gcode = {% set p = params.P|default(-1)|int %} M106 S0 P{p} [fan] pin = ar9 max_power = 1.0 shutdown_speed = 0 [heater_fan nozzle_cooling_fan] pin = ar8 heater = extruder, extruder1 heater_temp = 50.0 fan_speed = 1.0 [controller_fan board_fan] pin = ar11 max_power = 0.55 fan_speed = 1.0 idle_timeout = 300 idle_speed = .8 heater = extruder,extruder1 [gcode_macro MOVE_TO_ZPROBEPOINT] description = search for items in the printer object gcode = G1 X100 Y150 Z1.1 [gcode_macro SEARCH_VARS] description = search for items in the printer object gcode = {% set search = params.S|lower %} {% set ns = namespace() %} {% for item in printer %} {% if ' ' in item %} {% set ns.path = ['printer', "['%s']" % (item), ''] %} {% else %} {% set ns.path = ['printer.', item, ''] %} {% endif %} {% if search in ns.path|lower %} { action_respond_info(ns.path|join) } {% endif %} {% if printer[item].items() %} {% for childkey, child in printer[item].items() recursive %} {% set ns.path = ns.path[:loop.depth|int + 1] %} {% if ' ' in childkey %} {% set null = ns.path.append("['%s']" % (childkey)) %} {% else %} {% set null = ns.path.append(".%s" % (childkey)) %} {% endif %} {% if child is mapping %} { loop(child.items()) } {% else %} {% if search in ns.path|lower %} { action_respond_info("%s : %s" % (ns.path|join, child)) } {% endif %} {% endif %} {% endfor %} {% endif %} {% endfor %} [pause_resume] [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE [gcode_macro M600.1] description = Filament Change. This macro will pause the printer, move the tool to the change position, and retract the filament 50mm. Adjust the retraction settings for your own extruder. After filament has been changed, the print can be resumed from its previous position with the "RESUME" gcode. gcode = {% set X = params.X|default(50)|float %} {% set Y = params.Y|default(0)|float %} {% set Z = params.Z|default(10)|float %} SAVE_GCODE_STATE NAME=M600_state PAUSE G91 G1 E-.8 F2700 G1 Z{Z} G90 G1 X{X} Y{Y} F3000 G91 G1 E-50 F1000 RESTORE_GCODE_STATE NAME=M600_state [gcode_macro M80] description = Power ON gcode = SET_PIN PIN=main_psu VALUE=0 [gcode_macro M81] description = Power OFF gcode = SET_PIN PIN=main_psu VALUE=1 [sdcard_loop] [gcode_macro M808] description = 'Marlin' style M808 compatibility macro for SDCard looping gcode = {% if params.K is not defined and params.L is defined %}SDCARD_LOOP_BEGIN COUNT={params.L|int}{% endif %} {% if params.K is not defined and params.L is not defined %}SDCARD_LOOP_END{% endif %} {% if params.K is defined and params.L is not defined %}SDCARD_LOOP_DESIST{% endif %} [gcode_macro REDUCE_TEMP] description = Reduce Extruder Temp by x degrees. Helper function for Slicer gcode = {% set TOOL = params.TOOL|default(-1)|int %} {% if params.TOOL is not defined %} {% set currentTool = printer.toolhead.extruder %} {% set TOOL = [currentTool, 'extruder', '']|default(0)|int %} {% if TOOL == "" %} {% set TOOL = 0 %} {% endif %} {% endif %} {% set TEMP = params.TEMP|default(-1)|float %} {% set REDUCEBY = params.REDUCEBY|default(-1)|float %} {% set WAIT = params.WAIT|default(-1)|int %} {% if params.WAIT == "1" %} {% set gCodeCommand = "M109" %} {% else %} {% set gCodeCommand = "M104" %} {% endif %} {% if TOOL >= 0 and TEMP >= 0 and REDUCEBY >=0 %} { gCodeCommand } T{ TOOL } S{ TEMP - REDUCEBY } M118 Macro REDUCE_TEMP: { gCodeCommand } T{ TOOL } S{ TEMP - REDUCEBY } {% else %} M118 Macro REDUCE_TEMP requires TEMP and REDUCEBY parameters. {% endif %} [gcode_macro _km_options] gcode = variable_beep_duration = 60 variable_load_length = 70.0 variable_load_speed = 300 variable_load_priming_length = 25.0 variable_load_priming_speed = 150 variable_menu_show_octoprint = 1 variable_menu_show_sdcard = 1 variable_menu_temperature = [ {'name' : 'PLA', 'extruder' : 200, 'bed' : 60}, {'name' : 'PETG', 'extruder' : 230, 'bed' : 85}, {'name' : 'ABS', 'extruder' : 245, 'bed' : 110}] variable_pressure_advance_scale = -1.0 variable_probe_mesh_padding = 5.0 variable_probe_min_count = 3 variable_probe_count_scale = 1.0 variable_start_extruder_preheat_scale = 0.5 variable_start_bed_heat_delay = 2000 variable_start_bed_heat_overshoot = 2.0 variable_start_level_bed_at_temp = 1 variable_start_clear_adjustments_at_end = 1 variable_travel_speed_xy = 3000 variable_travel_speed_z = 600 variable_velocity_decel_scale = 0.5 [gcode_macro bed_mesh_calibrate_fast] description = Wraps BED_MESH_CALIBRATE, scaling probe count to specified area. Usage: See Klipper documentation. gcode = {% set km = printer["gcode_macro _km_globals"] %} {% set probe_mesh_padding = km.probe_mesh_padding %} {% set probe_min_count = km.probe_min_count %} {% set probe_count_scale = km.probe_count_scale %} {% set bed_mesh = printer.configfile.config.bed_mesh %} {%if "mesh_radius" not in bed_mesh and "MESH_RADIUS" not in params and "relative_reference_index" not in bed_mesh and "RELATIVE_REFERENCE_INDEX" not in params %} {% set safe_min_x = bed_mesh.mesh_min.split(",")[0]|float %} {% set safe_min_y = bed_mesh.mesh_min.split(",")[1]|float %} {% set safe_max_x = bed_mesh.mesh_max.split(",")[0]|float %} {% set safe_max_y = bed_mesh.mesh_max.split(",")[1]|float %} {% if "MESH_MIN" in params %} {% set mesh_min_x = (params.MESH_MIN.split(",")[0]|float - probe_mesh_padding, safe_min_x)|max %} {% set mesh_min_y = (params.MESH_MIN.split(",")[1]|float - probe_mesh_padding, safe_min_y)|max %} {% else %} {% set mesh_min_x = safe_min_x %} {% set mesh_min_y = safe_min_y %} {% endif %} {% if "MESH_MAX" in params %} {% set mesh_max_x = (params.MESH_MAX.split(",")[0]|float + probe_mesh_padding, safe_max_x)|min %} {% set mesh_max_y = (params.MESH_MAX.split(",")[1]|float + probe_mesh_padding, safe_max_y)|min %} {% else %} {% set mesh_max_x = safe_max_x %} {% set mesh_max_y = safe_max_y %} {% endif %} {% set probe_count = (params.PROBE_COUNT | default(bed_mesh.probe_count)).split(",") %} {% if "PROBE_COUNT" not in params %} {% set max_x_probes = probe_count[0]|int %} {% set max_y_probes = probe_count[1]|default(max_x_probes)|int %} {% set x_probes = (max_x_probes * (mesh_max_x - mesh_min_x) / (safe_max_x - safe_min_x) * probe_count_scale) | round(0) | int %} {% set x_probes = ((x_probes, probe_min_count)|max, max_x_probes)|min %} {% set y_probes = (max_y_probes * (mesh_max_y - mesh_min_y ) / (safe_max_y - safe_min_y) * probe_count_scale ) | round(0) | int %} {% set y_probes = ((y_probes, probe_min_count)|max, max_y_probes)|min %} {% set probe_count = [x_probes,y_probes] %} {% endif %} {% set dummy = params.__setitem__("MESH_MIN", mesh_min_x~","~mesh_min_y) %} {% set dummy = params.__setitem__("MESH_MAX", mesh_max_x~","~mesh_max_y) %} {% set dummy = params.__setitem__("PROBE_COUNT", probe_count|join(',')) %} {% endif %} {% if printer["gcode_macro bed_mesh_calibrate"].km_override|default(False) %} {% set calibrate_cmd = "_km_bed_mesh_calibrate_base" %} {% else %} {% set calibrate_cmd = "BED_MESH_CALIBRATE" %} {% endif %} BED_MESH_CHECK {calibrate_cmd}{%for k in params%}{' '~k~'="'~params[k]~'"'}{%endfor%} [gcode_macro bed_mesh_check] description = Warns if bed_mesh config may generate an invalid mesh. Usage: See Klipper documentation. gcode = {% if printer.bed_mesh is defined %} {% set x_min = printer.configfile.settings.stepper_x.position_min %} {% set y_min = printer.configfile.settings.stepper_y.position_min %} {% set x_max = printer.configfile.settings.stepper_x.position_max %} {% set y_max = printer.configfile.settings.stepper_y.position_max %} {% set mesh_min_x = printer.configfile.settings.bed_mesh.mesh_min[0] %} {% set mesh_min_y = printer.configfile.settings.bed_mesh.mesh_min[1] %} {% set mesh_max_x = printer.configfile.settings.bed_mesh.mesh_max[0] %} {% set mesh_max_y = printer.configfile.settings.bed_mesh.mesh_max[1] %} {% if "bltouch" in printer.configfile.settings %} {% set x_offset = printer.configfile.settings.bltouch.x_offset %} {% set y_offset = printer.configfile.settings.bltouch.y_offset %} {% set probe = "bltouch" %} {% elif "probe" in printer.configfile.settings %} {% set x_offset = printer.configfile.settings.probe.x_offset %} {% set y_offset = printer.configfile.settings.probe.y_offset %} {% set probe = "probe" %} {% else %} {% set x_offset = 0.0 %} {% set y_offset = 0.0 %} {% endif %} {% set output = [] %} {% set warn = "* bed_mesh.mesh_%s (%f, %f) does not account for " ~ probe ~ ".%s_offset (%f) and can move out of range for " "stepper_%s.position_%s (%f)." %} {% if x_offset > 0 and (mesh_min_x - x_offset) < x_min %} {% set dummy = output.append(warn % ('min', mesh_min_x, mesh_min_y, 'x', x_offset, 'x', 'min', x_min)) %} {% elif x_offset < 0 and (mesh_max_x - x_offset) > x_max %} {% set dummy = output.append(warn % ('max', mesh_max_x, mesh_max_y, 'x', x_offset, 'x', 'max', x_max)) %} {% endif %} {% if y_offset > 0 and (mesh_min_y - y_offset) < y_min %} {% set dummy = output.append(warn % ('min', mesh_min_x, mesh_min_y, 'y', y_offset, 'y', 'min', y_min)) %} {% elif y_offset < 0 and (mesh_max_y - y_offset) > y_max %} {% set dummy = output.append(warn % ('max', mesh_max_x, mesh_max_y, 'y', y_offset, 'y', 'max', y_max)) %} {% endif %} {% if output %} { action_respond_info( "Warning: The following issue(s) were detected in your [bed_mesh] " " config:\n" ~ output|join("\n")) } {% endif %} {% endif %} [gcode_macro _apply_bed_surface_offset] gcode = {% set surfaces = printer.save_variables.variables.bed_surfaces %} {% if surfaces.active %} SET_SURFACE_ACTIVE SURFACE={surfaces.active} {% endif %} [gcode_macro _init_surfaces] gcode = {% set km = printer["gcode_macro _km_globals"] %} {% if "bed_surfaces" in printer.save_variables.variables %} {% set old_surfaces = printer.save_variables.variables.bed_surfaces %} {% else %} {% set old_surfaces = { 'active' : '', 'available' : {} } %} {% endif %} {% set settings = printer.configfile.settings %} {% set new_probe_z = (settings.probe | default(settings.bltouch) | default(settings.smart_effector) | default({}) ).z_offset|default(0.0)|float %} {% set new_endstop_z = (settings.stepper_z | default({})).position_endstop | default(0.0)|float %} {% if 'endstop_z' not in old_surfaces %} {% set dummy = old_surfaces.__setitem__('endstop_z', new_endstop_z) %} {% endif %} {% if 'probe_z' not in old_surfaces %} {% set dummy = old_surfaces.__setitem__('probe_z', new_probe_z) %} {% endif %} {% set surfaces = { 'active' : '', 'available' : {}, 'endstop_z' : old_surfaces.endstop_z, 'probe_z' : old_surfaces.probe_z } %} {% for s in km.bed_surfaces %} {% set s = s.split()|join(' ')|lower %} {% if s|length > km.bed_surface_max_name_length or s|list|select("in", " \r\n\"\'")|list %} {action_raise_error('Invalid surface name "%s". Name must be 10 or fewer ' 'characters and must not include space or quotation characters' | format(s))} {% endif %} {% if s in old_surfaces.available %} {% set dummy = surfaces.available.__setitem__(s, old_surfaces.available[s]) %} {% else %} {% set dummy = surfaces.available.__setitem__(s, {'offset' : 0.0}) %} {% endif %} {% endfor %} {% if old_surfaces.active in surfaces.available %} {% set dummy = surfaces.__setitem__('active', old_surfaces.active) %} {% elif km.bed_surfaces %} {% set dummy = surfaces.__setitem__('active', km.bed_surfaces[0]|lower) %} {% endif %} SAVE_VARIABLE VARIABLE=bed_surfaces VALUE="{surfaces}" _APPLY_BED_SURFACE_OFFSET {% if new_probe_z != surfaces.probe_z or new_endstop_z != surfaces.endstop_z %} { action_respond_info( 'Z probe offset or endstop position changed. Run ADJUST_SURFACE_OFFSETS ' 'to adjust the offset for all saved surfaces by the change differential, ' 'or run ADJUST_SURFACE_OFFSETS IGNORE to hide this message without ' 'making changes.') } {% endif %} [gcode_macro adjust_surface_offsets] description = Adjusts surface offsets to account for changes in the Z endstop position or probe Z offset. Usage: ADJUST_SURFACE_OFFSETS [IGNORE] gcode = {% set surfaces = printer.save_variables.variables.bed_surfaces %} {% set settings = printer.configfile.settings %} {% set new_probe_z = (settings.probe | default(settings.bltouch) | default(settings.smart_effector) | default({}) ).z_offset|default(0.0)|float %} {% set new_endstop_z = (settings.stepper_z | default({})).position_endstop | default(0.0)|float %} {% set diff = (surfaces.probe_z - new_probe_z + surfaces.endstop_z - new_endstop_z)|round(6) %} {% if not params.IGNORE|default(0)|int %} {% for s in surfaces.available %} {% set offset = (surfaces.available[s].offset - diff)|round(6) %} {% set dummy = surfaces.available.__setitem__(s, {'offset' : offset}) %} {% endfor %} { action_respond_info("All bed surfaces now adjusted by %1.4f"| format(diff))} {% elif diff != 0 %} { action_respond_info("Status cleared without adjustment") } {% endif %} {% set dummy = surfaces.__setitem__('endstop_z', new_endstop_z| round(6)) %} {% set dummy = surfaces.__setitem__('probe_z', new_probe_z|round(6)) %} SAVE_VARIABLE VARIABLE=bed_surfaces VALUE="{surfaces}" [gcode_macro set_surface_offset] description = Sets the offset for a surface and moves the toolhead (if homed). Usage: SET_SURFACE_OFFSET [OFFSET=] [SURFACE=] gcode = {% set surfaces = printer.save_variables.variables.bed_surfaces %} {% set SURFACE = params.SURFACE|default(surfaces.active)|lower %} {% if SURFACE not in surfaces.available %} { action_raise_error("Bed surface %s does not exist." | format(SURFACE)) } {% endif %} {% set active = surfaces.available[SURFACE] %} {% set OFFSET = params.OFFSET|default(active.offset)|float %} {% if OFFSET != active.offset %} {% set dummy = surfaces.available[SURFACE].__setitem__("offset", OFFSET) %} SAVE_VARIABLE VARIABLE=bed_surfaces VALUE="{surfaces}" {% if SURFACE == surfaces.active %} _km_set_gcode_offset_base Z="{OFFSET}" MOVE={ 1 if printer.toolhead.homed_axes == 'xyz' else 0} {% endif %} {% endif %} { action_respond_info("Bed surface: %s Offset: %.3f" | format(SURFACE, OFFSET)) } {% set dummy = None if True else " {% set dummy = params.SURFACE|default(active surface) %} {% set dummy = params.OFFSET|default(none)|float %} " %} [gcode_macro set_surface_active] description = Sets the active bed surface and moves the toolhead (if homed). If no SURFACE argument is present the available surfaces are listed and the active one is preceded by a "*". Usage: SET_SURFACE_ACTIVE [SURFACE=] gcode = {% set surfaces = printer.save_variables.variables.bed_surfaces %} {% if "SURFACE" in params %} {% set SURFACE = params.SURFACE|lower %} {% if SURFACE not in surfaces.available %} { action_raise_error("Bed surface %s does not exist." | format(SURFACE)) } {% endif %} {% if SURFACE != surfaces.active %} {% set dummy = surfaces.__setitem__("active", SURFACE) %} SAVE_VARIABLE VARIABLE=bed_surfaces VALUE="{surfaces}" {% endif %} {% if surfaces.available[SURFACE].offset != printer.gcode_move.homing_origin.z %} _km_set_gcode_offset_base Z="{surfaces.available[SURFACE].offset }" MOVE={1 if printer.toolhead.homed_axes == 'xyz' else 0} {% endif %} {action_respond_info("Active bed surface: %s; offset: %.3f" | format(SURFACE, surfaces.available[SURFACE].offset))} {% else %} {% set output = [] %} {% for s in surfaces.available|list|sort %} {% set dummy = output.append("%s %s - offset: %.3f" | format("*" if s == surfaces.active else " ", s, surfaces.available[s].offset)) %} {% endfor %} {action_respond_info(output|join('\n'))} {% endif %} {% set dummy = None if True else " {% set dummy = params.SURFACE|default(none) %} " %} [gcode_macro set_gcode_offset] description = Wraps SET_GCODE_OFFSET to update the current bed sheet offset. Usage: SET_GCODE_OFFSET [X=|X_ADJUST=] [Y=|Y_ADJUST=] [Z=|Z_ADJUST=] [MOVE=1 [MOVE_SPEED=]] rename_existing = _KM_SET_GCODE_OFFSET_BASE gcode = {% set surfaces = printer.save_variables.variables.bed_surfaces %} {% if surfaces.active and not printer["gcode_macro _km_save_state"].is_ephemeral %} {% set Z = params.Z|default(0.0)|float|round(6) %} {% set Z_ADJUST = params.Z_ADJUST|default(0.0)|float %} {% if 'Z' in params and Z != surfaces.available[surfaces.active].offset %} {% set dummy = surfaces.available[surfaces.active].__setitem__("offset", Z) %} SAVE_VARIABLE VARIABLE=bed_surfaces VALUE="{surfaces}" {% elif Z_ADJUST != 0.0 %} {% set dummy = surfaces.available[surfaces.active].__setitem__( "offset", (Z_ADJUST + printer.gcode_move.homing_origin.z)|round(6)) %} SAVE_VARIABLE VARIABLE=bed_surfaces VALUE="{surfaces}" {% endif %} {% endif %} _km_set_gcode_offset_base{% for k in params%}{' '~k~'="'~params[k]~'"' }{% endfor %} [gcode_macro m300] description = Emits and audible beep. Usage: M300 [P] [S] gcode = {% set km = printer["gcode_macro _km_globals"] %} {% if "output_pin beeper" in printer %} {% set P = (params.P|default(km.beep_duration)|int, 0)|max %} {% set S = (params.S|default(km.beep_frequency)|int, 1)|max %} SET_PIN PIN=beeper VALUE={ printer.configfile.settings["output_pin beeper"].scale * 0.5 } CYCLE_TIME={ 1.0 / S } G4 P{P} SET_PIN PIN=beeper VALUE=0 {% else %} {action_respond_info( "M300 is disabled. To enable create an [output_pin beeper] config.")} {% endif %} [gcode_macro set_draw_params] description = Sets the default parameters used by DRAW_LINE_TO. Usage: SET_DRAW_PARAMS [HEIGHT=] [WIDTH=] [FEEDRATE=] variable_height = 0.2 variable_width = 0.0 variable_feedrate = 1200 gcode = {% set dparams = printer["gcode_macro set_draw_params"] %} {% for k in params %} {% set kl = k|lower %} {% if kl in dparams %} {% if dparams[kl] is float %} {% set v = params[k]|float %} {% elif dparams[kl] is integer %} {% set v = params[k]|int %} {% endif %} SET_GCODE_VARIABLE MACRO=set_draw_params VARIABLE={kl} VALUE="{v}" {% endif %} {% endfor %} [gcode_macro draw_line_to] description = Extrudes a line of filament at the specified height and width from the current coordinate to the supplied XY coordinate. (The height is used only to calculate the extrusion volume.) Usage: DRAW_LINE_TO [X=] [Y=] [HEIGHT=] [WIDTH=] [FEEDRATE=] gcode = {% set dparams = printer["gcode_macro set_draw_params"] %} {% set position = printer.gcode_move.position %} {% set X = params.X|default(position.x)|float %} {% set Y = params.Y|default(position.y)|float %} {% set HEIGHT = params.HEIGHT|default(dparams.height)|float %} {% set WIDTH = params.WIDTH|default(dparams.width)|float %} {% set FEEDRATE = params.FEEDRATE|default(dparams.feedrate)|int %} {% set distance = ((X - position.x) ** 2 + (Y - position.y) ** 2) ** 0.5 %} {% set filament_area = 3.14159 * (printer.configfile.settings[ printer.toolhead.extruder].filament_diameter ** 2) / 4 %} {% set E = distance * ((WIDTH * HEIGHT) / filament_area) %} _KM_SAVE_GCODE_STATE NAME=_KM_PURGE G90 G92 E0.0 G1 X{"%.3f" % X} Y{"%.3f" % Y} E{"%.5f" % E} F{FEEDRATE} _KM_RESTORE_GCODE_STATE NAME=_KM_PURGE MOVE=0 [gcode_macro draw_purge_line] description = Purges the specified length of filament as a line (or rows of lines) in front of the supplied print area. If no print area is specified the purge lines are drawn at the front edge of the maximum printable area. If no printable area is set it defaults to the XY axis limits. Usage: DRAW_PURGE_LINE [PRINT_MIN=] [PRINT_MAX=] [HEIGHT=] [WIDTH=] [LENGTH=] gcode = {% set km = printer["gcode_macro _km_globals"] %} {% if "PRINT_MIN" in params %} {% set PRINT_MIN = ( (params.PRINT_MIN.split(",")[0]|float, km.print_min[0])|max, (params.PRINT_MIN.split(",")[1]|float, km.print_min[1])|max ) %} {% else %} {% set PRINT_MIN = km.print_min %} {% endif %} {% if "PRINT_MAX" in params %} {% set PRINT_MAX = ( (params.PRINT_MAX.split(",")[0]|float, km.print_max[0])|min, (params.PRINT_MAX.split(",")[1]|float, km.print_max[1])|min ) %} {% else %} {% set PRINT_MAX = km.print_max %} {% endif %} {% set extruder = printer.toolhead.extruder|string %} {% set HEIGHT = params.HEIGHT|default( printer.configfile.settings[extruder].nozzle_diameter * 0.625)|float %} {% set WIDTH = params.WIDTH|default( printer.configfile.settings[extruder].nozzle_diameter * 1.25)|float %} {% set LENGTH = params.LENGTH|default(km.start_purge_length)|float %} {% set dparams = printer["gcode_macro set_draw_params"] %} {% set filament_area = 3.14159 * (printer.configfile.settings[extruder].filament_diameter ** 2) / 4 %} {% set purge_length = (LENGTH * filament_area) / (WIDTH * HEIGHT) %} {% set printable_length = PRINT_MAX[0] - PRINT_MIN[0] %} {% set purge_rows = (purge_length / printable_length)|round(0,'ceil')|int %} {% set printable_inset = (printable_length - purge_length / purge_rows) / 2 %} {% set PRINT_MIN = (PRINT_MIN[0] + printable_inset, PRINT_MIN[1]) %} {% set PRINT_MAX = (PRINT_MAX[0] - printable_inset, PRINT_MAX[1]) %} {% set y_start = (km.print_min[1], PRINT_MIN[1] - km.start_purge_clearance - (purge_rows + 0.5) * WIDTH )|max %} G90 G92 E0.0 G1 X{"%.3f" % PRINT_MIN[0]} Y{"%.3f" % y_start} Z{"%.4f" % HEIGHT} F{ km.travel_speed_xy} {% for n in range(purge_rows - 1) %} {% set x_pos = PRINT_MIN[0] if n % 2 else PRINT_MAX[0] %} DRAW_LINE_TO HEIGHT="{HEIGHT}" WIDTH="{WIDTH}" X="{x_pos}" Y="{ WIDTH * n + y_start}" DRAW_LINE_TO HEIGHT="{HEIGHT}" WIDTH="{WIDTH}" X="{x_pos}" Y="{ WIDTH * (n + 1) + y_start}" {% endfor %} {% set x_pos = PRINT_MAX[0] if purge_rows % 2 else PRINT_MIN[0] %} DRAW_LINE_TO HEIGHT="{HEIGHT}" WIDTH="{WIDTH}" X="{x_pos}" Y="{ WIDTH * (purge_rows - 1) + y_start}" G92 E0.0 [gcode_macro _check_fan_params] gcode = {% set MAXIMUM = params.MAXIMUM|default( printer["gcode_macro set_fan_scaling"].maximum)|int %} {% set MINIMUM = params.MINIMUM|default( printer["gcode_macro set_fan_scaling"].minimum)|int %} {% if params.SCALE and params.SCALE|float <= 0 %} { action_raise_error("SCALE must be a positive value.") } {% elif MINIMUM < 0 or MINIMUM > 255 %} { action_raise_error("MINIMUM must be between 0 and 255.") } {% elif MAXIMUM < 0 or MAXIMUM > 255 %} { action_raise_error("MAXIMUM must be between 0 and 255.") } {% elif params.SPEED and (params.SPEED|int < 0 or params.SPEED|int > 255) %} { action_raise_error("SPEED must be between 0 and 255.") } {% elif params.BOOST and (params.BOOST|int < 0 or params.BOOST|int > 255) %} { action_raise_error("BOOST must be between 0 and 255.") } {% elif MINIMUM > MAXIMUM %} { action_raise_error("MINIMUM must be less than or equal to MAXIMUM.") } {% endif %} [gcode_macro set_fan_scaling] description = Sets fan scaling factors applied to M106 command. If a speed is provided it will be adjusted according to the scaling parameters. Usage: SET_FAN_SCALING [SCALE=] [BOOST=] [MAXIMUM=] [MINIMUM=] [SPEED=] variable_scale = 1.0 variable_boost = 0 variable_minimum = 0 variable_maximum = 255 variable_real_speed = 0 gcode = _CHECK_FAN_PARAMS{% for k in params %}{' '~k~'='~params[k]}{% endfor %} {% set SCALE = params.SCALE|default(scale)|float %} {% set BOOST = params.BOOST|default(boost)|float %} {% set MAXIMUM = params.MAXIMUM|default(maximum)|int %} {% set MINIMUM = params.MINIMUM|default(minimum)|int %} {% set SPEED = params.SPEED|default(real_speed)|int %} {% if SCALE != 1.0 or BOOST != 0 or MAXIMUM != 255 or MINIMUM != 0 %} {action_respond_info("Fan: Scale: %.2f Minimum:%i Maximum: %i Speed: %i"| format(SCALE, MINIMUM, MAXIMUM, SPEED))} {% endif %} {% if params|length > 0 %} SET_GCODE_VARIABLE MACRO=set_fan_scaling VARIABLE=scale VALUE="{SCALE}" SET_GCODE_VARIABLE MACRO=set_fan_scaling VARIABLE=boost VALUE="{BOOST}" SET_GCODE_VARIABLE MACRO=set_fan_scaling VARIABLE=minimum VALUE="{MINIMUM}" SET_GCODE_VARIABLE MACRO=set_fan_scaling VARIABLE=maximum VALUE="{MAXIMUM}" M106 S{SPEED} {% endif %} {% set dummy = None if True else " {% set dummy = params.SCALE|default(1.0)|float %} {% set dummy = params.BUMP|default(0)|int %} {% set dummy = params.MAXIMUM|default(255)|int %} {% set dummy = params.MINIMUM|default(0)|int %} {% set dummy = params.SPEED|default(current speed)|int %} " %} [gcode_macro reset_fan_scaling] description = Clears all fan scaling factors. Usage: RESET_FAN_SCALING gcode = SET_FAN_SCALING SCALE=1.0 BOOST=0 MAXIMUM=255 MINIMUM=0 [gcode_macro m106] description = Wraps M106 to implement scaling overrides. rename_existing = M106.6245197 gcode = {% set S = params.S|default(255)|int %} {% if S > 255 or S < 0 %} { action_raise_error("S[%i] out of range.") | format(S) } {% endif %} {% set scale = printer["gcode_macro set_fan_scaling"] %} SET_GCODE_VARIABLE MACRO=set_fan_scaling VARIABLE=real_speed VALUE="{S}" M106.6245197 S{((((S + scale.boost) * scale.scale) | round | int, scale.minimum) | max, scale.maximum) | min} [gcode_macro _load_unload] variable_is_printing = 1 gcode = SET_GCODE_VARIABLE MACRO=_load_unload VARIABLE=is_printing VALUE="{1}" {% set saved_extruder = printer.toolhead.extruder %} {% set EXTRUDER = params.EXTRUDER|default(saved_extruder)|lower %} {% if 'MINIMUM' in params %} {% set MINIMUM = params.MINIMUM %} {% elif printer.pause_resume.is_paused and printer[EXTRUDER].target == 0 and printer["gcode_macro resume"].saved_extruder_temp %} {% set MINIMUM = printer["gcode_macro resume"].saved_extruder_temp %} {% else %} {% set MINIMUM = printer.configfile.settings[EXTRUDER].min_extrude_temp + 5.0 %} {% endif %} {% if MINIMUM < printer.configfile.settings[EXTRUDER].min_extrude_temp %} { action_raise_error("Extrude below minimum temp.") } {% elif printer.pause_resume.is_paused %} SET_GCODE_VARIABLE MACRO=resume VARIABLE=saved_e VALUE="{0.0}" {% elif printer.idle_timeout.state == "Printing" and is_printing %} { action_raise_error("Command not valid during printing.") } {% endif %} {% set km = printer["gcode_macro _km_globals"] %} {% set SPEED = params.SPEED|default(km.load_speed) %} {% set priming_length = km.load_priming_length %} {% set LENGTH = params.LENGTH|default(km.load_length)|float - priming_length%} {% if LENGTH < 0 %} {% set priming_length = (priming_length + LENGTH, 0)|max %} {% set LENGTH = 0 %} {% endif %} SAVE_GCODE_STATE NAME=_KM_LOAD_UNLOAD {% if EXTRUDER != saved_extruder%} ACTIVATE_EXTRUDER EXTRUDER={EXTRUDER} {% endif %} {% if printer[EXTRUDER].target < MINIMUM %} M109 S{MINIMUM} {% endif %} M83 {% if params.LOAD|int %} G1 E{LENGTH} F{SPEED} G1 E{priming_length} F{(km.load_priming_speed, SPEED)|min} G1 E{'%.4f' % -printer["gcode_macro resume"].saved_e} F{km.load_speed} {% else %} G1 E3.0 F{SPEED} G4 P500 G1 E{'%.4f' % -priming_length} F{(km.load_priming_speed, SPEED)|min} G1 E{'%.4f' % -LENGTH} F{SPEED} {% endif %} RESTORE_GCODE_STATE NAME=_KM_LOAD_UNLOAD [gcode_macro load_filament] description = Loads filament to the extruder. Usage: LOAD_FILAMENT [LENGTH=] [SPEED=] [EXTRUDER=] [MINIMUM=] gcode = _LOAD_UNLOAD LOAD=1{% for k in params %}{' '~k~'="'~params[k]~'"'}{% endfor %} {% set dummy = None if True else " {% set dummy = params.LENGTH|default(variable_load_length)|float %} {% set dummy = params.SPEED|default(variable_load_speed)|float %} {% set dummy = params.EXTRUDER|default(current extruder) %} {% set dummy = params.MINIMUM|default(min_extrude_temp)|int %} " %} [gcode_macro unload_filament] description = Unloads filament from the extruder. Usage: UNLOAD_FILAMENT [LENGTH=] [SPEED=] [EXTRUDER=] [MINIMUM=] gcode = _LOAD_UNLOAD LOAD=0{% for k in params %}{' '~k~'="'~params[k]~'"'}{% endfor %} {% set dummy = None if True else " {% set dummy = params.LENGTH|default(variable_load_length)|float %} {% set dummy = params.SPEED|default(variable_load_speed)|float %} {% set dummy = params.EXTRUDER|default(default extruder) %} {% set dummy = params.MINIMUM|default(min_extrude_temp)|int %} " %} [gcode_macro _pause_inner_m700] gcode = {% set extruder = "extruder" ~ params.T|replace('0', '') if "T" in params else printer.toolhead.extruder %} {% if extruder != printer.toolhead.extruder%} ACTIVATE_EXTRUDER EXTRUDER={extruder} {% endif %} {% set z_param = (' Z="%f"' % params.Z) if 'Z' in params else "" %} {% if printer.idle_timeout.state|string == "Printing" %} PAUSE P=2{z_param} {% elif not printer.pause_resume.is_paused%} SET_GCODE_VARIABLE MACRO=_load_unload VARIABLE=is_printing VALUE="{0}" PARK P=2{z_param} {% endif %} [gcode_macro m701] description = Pauses/parks the toolhead then loads filament to the extruder. Usage: M701 [L] [Z] [T] gcode = {% if 'U' in params %} {% if not 'L' in params %} RESPOND TYPE=error MSG="Argument \"U\" substituted for missing \"L\"." {% set dummy = params.__setitem__("L", params.U) %} {% else %} RESPOND TYPE=error MSG="Invalid argument \"U\" ignored." {% endif %} {% endif %} _PAUSE_INNER_M700 {% for k in params %}{' '~k~'="'~params[k]~'"'}{% endfor %} LOAD_FILAMENT LENGTH={ params.L|default(printer["gcode_macro _km_globals"].load_length)|float} [gcode_macro m702] description = Pauses/parks the toolhead then unloads filament from the extruder. Usage: M702 [U] [Z] [T] gcode = {% if 'L' in params %} {% if not 'U' in params %} RESPOND TYPE=error MSG="Argument \"L\" substituted for missing \"U\"." {% set dummy = params.__setitem__("U", params.L) %} {% else %} RESPOND TYPE=error MSG="Invalid argument \"L\" ignored." {% endif %} {% endif %} _PAUSE_INNER_M700 {% for k in params %}{' '~k~'="'~params[k]~'"'}{% endfor %} UNLOAD_FILAMENT LENGTH={ params.U|default(printer["gcode_macro _km_globals"].load_length)|float} [gcode_macro _km_globals] variable_bed_surface_max_name_length = 10 variable_bed_surfaces = [] variable_beep_frequency = 1000 variable_beep_duration = 100 variable_load_length = 90.0 variable_load_speed = 300 variable_load_priming_length = 25.0 variable_load_priming_speed = 150 variable_menu_show_octoprint = True variable_menu_show_sdcard = True variable_menu_temperature = [ {'name' : 'PLA', 'extruder' : 200, 'bed' : 60}, {'name' : 'PETG', 'extruder' : 230, 'bed' : 85}, {'name' : 'ABS', 'extruder' : 245, 'bed' : 110}] variable_park_x = 0.0 variable_park_y = 0.0 variable_park_z = 20.0 variable_print_min = None variable_print_max = None variable_pressure_advance_scale = -1.0 variable_probe_mesh_padding = 5.0 variable_probe_min_count = 3 variable_probe_count_scale = 1.0 variable_start_extruder_preheat_scale = 0.5 variable_start_bed_heat_delay = 2000 variable_start_bed_heat_overshoot = 2.0 variable_start_level_bed_at_temp = True variable_start_clear_adjustments_at_end = True variable_start_purge_length = 0.0 variable_start_purge_clearance = 5.0 variable_travel_speed_xy = 3000 variable_travel_speed_z = 600 variable_velocity_decel_scale = 0.5 description = Initializes our globals, including any _km_options overrides. gcode = {% set required_sections = {"heater_bed" : None, "extruder" : None, "gcode_macro _km_options" : None, "idle_timeout" : ("gcode", "_KM_IDLE_TIMEOUT"), "pause_resume" : None, "respond" : None, "save_variables" : None, "virtual_sdcard" : None } %} {% set output = [] %} {% for s in required_sections %} {% set f = required_sections[s][0] if required_sections[s] else None %} {% set v = required_sections[s][1] if required_sections[s] else None %} {% if s not in printer.configfile.config %} {% set dummy = output.append("Missing [%s] section.\n" | format(s)) %} {% elif f and (v not in printer.configfile.config[s][f]|default("")|upper) %} {% set dummy = output.append("Missing %s in %s for [%s] section.\n" | format(v, f, s)) %} {% endif %} {% endfor %} {% if output %} { action_emergency_stop( "required printer.cfg section(s) missing:\n" ~ output | join("\n")) ~ "See readme: https://github.com/jschuh/" } {% endif %} SET_GCODE_VARIABLE MACRO=_km_globals VARIABLE=start_level_bed_at_temp VALUE="{ 1 if printer.bed_mesh is defined else 0}" BED_MESH_CHECK {% set settings = printer.configfile.settings %} {% if "stepper_x" in settings and "stepper_y" in settings %} SET_GCODE_VARIABLE MACRO=_km_globals VARIABLE=print_min VALUE="{ (settings.stepper_x.position_min, settings.stepper_y.position_min)}" SET_GCODE_VARIABLE MACRO=_km_globals VARIABLE=print_max VALUE="{ (settings.stepper_x.position_max, settings.stepper_y.position_max)}" {% endif %} {% set options = printer["gcode_macro _km_options"] %} {% set km = printer["gcode_macro _km_globals"] %} {% for k in options %} {% if k not in km %} {action_raise_error("%s is not valid for _KM_OPTIONS." | format(k))} {% endif %} {% if km[k] is string %} SET_GCODE_VARIABLE MACRO=_km_globals VARIABLE={k } VALUE="'{options[k]|replace('\\','\\\\')|replace('\'','\\\'') |replace('\"','\\\"')}'" {% elif km[k] is float %} SET_GCODE_VARIABLE MACRO=_km_globals VARIABLE={k } VALUE="{options[k]|float}" {% elif km[k] is integer or km[k] is boolean %} SET_GCODE_VARIABLE MACRO=_km_globals VARIABLE={k} VALUE="{options[k]|int}" {% elif km[k] is mapping %} {% if options[k] is not mapping %} {action_raise_error("%s requires a mapping type." | format(k))} {% endif %} SET_GCODE_VARIABLE MACRO=_km_globals VARIABLE={k } VALUE="{options[k]|replace('\"','\\\"')}" {% elif km[k] is sequence %} {% if options[k] is not sequence %} {action_raise_error("%s requires a sequence type." | format(k))} {% endif %} SET_GCODE_VARIABLE MACRO=_km_globals VARIABLE={k } VALUE="{options[k]|replace('\"','\\\"')}" {% else %} {action_raise_error("%s is not a valid type for _KM_OPTIONS."|format(k))} {% endif %} {% endfor %} M400 [delayed_gcode INIT_GLOBALS] initial_duration = 0.0001 gcode = _KM_GLOBALS _CHECK_GLOBALS _INIT_SURFACES SET_DRAW_PARAMS WIDTH="{printer.configfile.settings.extruder.nozzle_diameter}" _KM_OPTIONS [gcode_macro _check_globals] description = Checks global variables and stops printer on an invalid value. gcode = {% set km = printer["gcode_macro _km_globals"] %} {% set toolhead = printer.toolhead %} {% set output = [] %} {% if km.park_x > toolhead.axis_maximum.x or km.park_x < toolhead.axis_minimum.x %} {% set dummy = output.append("park_x is invalid.") %} {% endif %} {% if km.park_y > toolhead.axis_maximum.y or km.park_y < toolhead.axis_minimum.y %} {% set dummy = output.append("park_y is invalid.") %} {% endif %} {% if km.park_z > toolhead.axis_maximum.z or km.park_z < toolhead.axis_minimum.z %} {% set dummy = output.append("park_z is invalid.") %} {% endif %} {% if km.start_extruder_preheat_scale > 1.0 or km.start_extruder_preheat_scale < 0.0 %} {% set dummy = output.append("extruder_preheat_scale is invalid.") %} {% endif %} {% if km.load_length > printer.configfile.settings["extruder"].max_extrude_only_distance %} {% set dummy = output.append( "load_length exceeds max_extrude_only_distance.") %} {% endif %} {% if km.load_length < km.load_priming_length %} {% set dummy = output.append( "load_length is shorter than load_priming_length.") %} {% endif %} {% if km.load_length < 0.0 %} {% set dummy = output.append("load_length is negative.") %} {% endif %} {% if km.load_priming_length < 0.0 %} {% set dummy = output.append("load_priming_length is negative.") %} {% endif %} {% if output %} { action_raise_error(output|sort|join('\n')) } {% endif %} M400 [gcode_macro kmvars] description = Lists global variables used by klipper-macros. Usage: KMVARS [SEARCH=] gcode = {% set SEARCH = params.SEARCH|default(params.S|default(""))|lower %} {% set km = printer["gcode_macro _km_globals"] %} {% set output = [] %} {% for k in km %} {% if SEARCH in k %} {% set dummy = output.append(k ~ ": " ~ km[k]) %} {% endif %} {% endfor %} { action_respond_info(output|sort|join('\n')) } [gcode_macro check_macro_docs] description = Lists macros lacking proper documentation. Usage: CHECK_MACRO_DOCS [USAGE=<0|1>] [HIDDEN=<1|0>] [RENAMED=<1|0>] gcode = {% set USAGE = params.USAGE|default(0)|int %} {% set HIDDEN = params.HIDDEN|default(0)|int %} {% set RENAMED = params.RENAMED|default(0)|int %} {% set output = [] %} {%set config = printer.configfile.config %} {% for k in config|sort %} {% if k.startswith("gcode_macro") %} {% set name = k.split()[1] %} {% set desc = config[k].description|default("") %} {% set is_renamed = config[k].rename_existing|default("") %} {% if (not desc or (USAGE and not "Usage: "~name.upper() in desc)) and (HIDDEN or not name.startswith('_')) and (RENAMED or is_renamed) %} {% set dummy = output.append("%s %s: missing %s." | format("*" if is_renamed else " ", name, "description" if not desc else "usage")) %} {% endif %} {% endif %} {% endfor %} {action_respond_info(output|join("\n"))} [gcode_macro listvars] description = Lists per-macro variables with a name containing SEARCH. This is useful for debugging macros by allowing you to probe printer state. Be very careful, however, as an overly broad SEARCH parameter can take a long time to process and potentially hang or crash klipper. Usage: LISTVARS SEARCH= gcode = {% if 'SEARCH' not in params and 'S' not in params %} { action_raise_error("Must provide a SEARCH parameter.") } {% endif %} {% set SEARCH = params.SEARCH|default(params.S)|lower %} {% set ns = namespace() %} {% set output = [] %} {% for item in printer %} {% if ' ' in item %} {% set ns.path = ['printer', "['%s']" % (item), ''] %} {% else %} {% set ns.path = ['printer.', item, ''] %} {% endif %} {% if SEARCH in ns.path|lower %} {% set dummy = output.append(ns.path|join) %} {% endif %} {% if printer[item].items() %} {% for childkey, child in printer[item].items() recursive %} {% set ns.path = ns.path[:loop.depth|int + 1] %} {% if ' ' in childkey %} {% set null = ns.path.append("['%s']" % (childkey)) %} {% else %} {% set null = ns.path.append(".%s" % (childkey)) %} {% endif %} {% if child is mapping %} {loop(child.items())} {% else %} {% if SEARCH in ns.path|lower %} {% set dummy = output.append("%s : %s" % (ns.path|join, child)) %} {% endif %} {% endif %} {% endfor %} {% endif %} {% endfor %} { action_respond_info(output|join("\n")) } [gcode_macro set_heater_temperature_scaled] gcode = {% set HEATER = params.HEATER.lower() %} {% set TARGET = params.TARGET|default(0.0)|float %} {% set scaled_heaters = printer["gcode_macro set_heater_scaling"].scaled_heaters %} {% if HEATER in scaled_heaters %} {% set scales = scaled_heaters[HEATER] %} {% set dummy = scales.__setitem__("real_target", TARGET) %} {%if TARGET > 0.0 %} {% set TARGET = (((TARGET + scales.bump) * scales.scale, scales.minimum) | max, scales.maximum)|min %} {% endif %} {% endif %} SET_HEATER_TEMPERATURE HEATER="{HEATER}" TARGET={TARGET} [gcode_macro temperature_wait_scaled] gcode = {% set SENSOR = params.SENSOR.lower() %} {% set heater = SENSOR if not SENSOR.startswith("heater_generic") else SENSOR.split()[1] %} {% set scaled_heaters = printer["gcode_macro set_heater_scaling"].scaled_heaters %} {% if heater in scaled_heaters %} {% set scales = scaled_heaters[heater] %} {% if "MINIMUM" in params and MINIMUM > 0.0 %} {% set MINIMUM = (((MINIMUM + scales.bump) * scales.scale, scales.minimum) | max, scales.maximum)|min %} {% endif %} {% if "MAXIMUM" in params and MINIMUM > 0.0 %} {% set MAXIMUM = (((MAXIMUM + scales.bump) * scales.scale, scales.minimum) | max, scales.maximum)|min %} {% endif %} {% else %} {% set settings = printer.configfile.settings[SENSOR] %} {% set MINIMUM = params.MINIMUM|default(settings.min_temp) %} {% set MAXIMUM = params.MAXIMUM|default(settings.max_temp) %} {% endif %} {% if printer[sensor].temperature < MINIMUM or printer[sensor].temperature > MAXIMUM %} TEMPERATURE_WAIT SENSOR="{SENSOR}" MINIMUM={MINIMUM} MAXIMUM={MAXIMUM} {% endif %} [gcode_macro _gcode_wait_wrapper_inner] gcode = {% set sensor = params.HEATER if params.HEATER in printer.heaters.available_heaters else ("heater_generic " ~ params.HEATER) %} {% set target = printer[sensor].target %} {% if 'R' in params and target > 0.0 %} {% set T = params.T|default("") %} M{params.M}.6245197 S{target} { (" T"~T) if T else "" } {% elif printer[sensor].temperature < target %} TEMPERATURE_WAIT SENSOR="{sensor}" MINIMUM={target} {% endif %} [gcode_macro _gcode_wait_wrapper] gcode = {% set target = params.S | default(params.R | default(0))| float %} SET_HEATER_TEMPERATURE_SCALED HEATER="{params.HEATER}" TARGET={target} _GCODE_WAIT_WRAPPER_INNER{% for k in params %}{' '~k~'="'~params[k]~'"'}{% endfor %} [gcode_macro m109] rename_existing = M109.6245197 gcode = {% set extruder = "extruder" ~ params.T|replace('0', '') if "T" in params else printer.toolhead.extruder %} _GCODE_WAIT_WRAPPER HEATER={extruder}{% for k in params %}{' '~k~'="'~params[k]~'"'}{% endfor %} [gcode_macro m190] rename_existing = M190.6245197 gcode = _GCODE_WAIT_WRAPPER HEATER=heater_bed {% for k in params %}{' '~k~'="'~params[k]~'"'}{% endfor %} [gcode_macro m191] description = Sets chamber temperature (with wait for heating). Usage: M191 [S] gcode = {% if "R" in params %} {% set dummy = params.__setitem__("S", params.R) %} {% endif %} _GCODE_WAIT_WRAPPER HEATER=chamber {% for k in params %}{' '~k~'="'~params[k]~'"'}{% endfor %} [gcode_macro m104] rename_existing = M104.6245197 gcode = {% set extruder = "extruder" ~ params.T|replace('0', '') if "T" in params else printer.toolhead.extruder %} SET_HEATER_TEMPERATURE_SCALED HEATER={extruder} TARGET={params.S|default(0)} [gcode_macro m140] rename_existing = M140.6245197 gcode = SET_HEATER_TEMPERATURE_SCALED HEATER=heater_bed TARGET={params.S|default(0)} [gcode_macro m141] description = Sets chamber temperature. Usage: M141 [S] gcode = SET_HEATER_TEMPERATURE_SCALED HEATER=chamber TARGET={params.S|default(0)} [gcode_macro _check_heater_params] gcode = {% set HEATER = params.HEATER|lower %} {% set sensor = params.HEATER %} {% if HEATER not in printer.heaters.available_heaters %} {% set sensor = "heater_generic " ~ HEATER %} {% if sensor not in printer.heaters.available_heaters %} { action_raise_error("The value '%s' is not valid for HEATER" | format(HEATER)) } {% endif %} {% endif %} {% set settings = printer.configfile.settings[sensor] %} {% set scaled_heaters = printer["gcode_macro set_heater_scaling"].scaled_heaters %} {% if HEATER is in scaled_heaters %} {% set scales = scaled_heaters[HEATER] %} {% else %} {% set scales = { "scale": 1.0, "bump": 0.0, "minimum": settings.min_temp, "maximum": settings.max_temp, "real_target": printer[sensor].target} %} {% endif %} {% set SCALE = params.SCALE|default(scales.scale)|float %} {% set BUMP = params.BUMP|default(scales.bump)|float %} {% set MINIMUM = params.MINIMUM|default(scales.minimum)|float %} {% set MAXIMUM = params.MAXIMUM|default(scales.maximum)|float %} {% if SCALE <= 0 %} { action_raise_error("SCALE must be a positive value.") } {% elif MINIMUM < settings.min_temp or MINIMUM > settings.max_temp %} { action_raise_error("MINIMUM must be between %.1f and %.1f" | format(settings.min_temp, settings.max_temp)) } {% elif MAXIMUM < settings.min_temp or MAXIMUM > settings.max_temp %} { action_raise_error("MAXIMUM must be between %.1f and %.1f" | format(settings.min_temp, settings.max_temp)) } {% elif MINIMUM >= MAXIMUM %} { action_raise_error("MINIMUM must be less than MAXIMUM.") } {% elif "TARGET" in params and (params.TARGET|float < MINIMUM or params.TARGET|float > MAXIMUM) %} { action_raise_error("TARGET must be between %.1f and %.1f" | format(settings.min_temp, settings.max_temp)) } {% endif %} [gcode_macro set_heater_scaling] description = Sets scaling parameters for heater. If a new target temperature is passed it will be adjusted to the scaling parameters. Usage: SET_HEATER_SCALING [HEATER=] [SCALE=] [BUMP=] [MAXIMUM=] [MINIMUM=] [TARGET=] variable_scaled_heaters = {} gcode = {% if "HEATER" is not in params %} {% set output = [] %} {% for h in scaled_heaters %} {% set dummy = output.append( "%s: Scale: %.2f Bump: %.1f Minimum:%.1f Maximum: %.1f" | format(h, scaled_heaters[h].scale, scaled_heaters[h].bump, scaled_heaters[h].minimum, scaled_heaters[h].maximum)) %} {% endfor %} {% if output %}}{action_respond_info(output|join('\n'))}{% endif %} {% else %} {% set HEATER = params.HEATER.lower() %} {% set settings = printer.configfile.settings[HEATER] %} {% if HEATER is not in scaled_heaters %} {% set dummy = scaled_heaters.__setitem__(HEATER, {"scale": 1.0, "bump": 0.0, "minimum": settings.min_temp, "maximum": settings.max_temp, "real_target": printer[HEATER].target}) %} {% endif %} _CHECK_HEATER_PARAMS{% for k in params %}{' '~k~'='~params[k]}{% endfor %} {% set scales = scaled_heaters[HEATER] %} {% set SCALE = params.SCALE|default(scales.scale)|float %} {% set BUMP = params.BUMP|default(scales.bump)|float %} {% set MAXIMUM = params.MAXIMUM|default(scales.maximum)|float %} {% set MINIMUM = params.MINIMUM|default(scales.minimum)|float %} {% set TARGET = params.TARGET|default(scales.real_target)|float %} {% set dummy = scales.__setitem__("scale", SCALE) %} {% set dummy = scales.__setitem__("bump", BUMP) %} {% set dummy = scales.__setitem__("maximum", MAXIMUM) %} {% set dummy = scales.__setitem__("minimum", MINIMUM) %} {% set dummy = scales.__setitem__("real_target", TARGET) %} {% set settings = printer.configfile.settings[HEATER] %} {% if SCALE != 1.0 or BUMP != 0.0 or MINIMUM != settings.min_temp or MAXIMUM != settings.max_temp %} {% set dummy = scaled_heaters.__setitem__(HEATER, scales) %} {% else %} {% set dummy = scaled_heaters.__delitem__(HEATER) %} {% endif %} SET_HEATER_TEMPERATURE_SCALED HEATER={HEATER} TARGET={TARGET} {action_respond_info( "%s: Scale: %.2f Bump: %.1f Minimum:%.1f Maximum: %.1f Target: %.1f" | format(HEATER, SCALE, BUMP, MINIMUM, MAXIMUM, TARGET))} {% endif %} {% set dummy = None if True else " {% set dummy = params.HEATER|default(e.g. extruder) %} {% set dummy = params.SCALE|default(1.0)|float %} {% set dummy = params.BUMP|default(0.0)|float %} {% set dummy = params.MAXIMUM|default(max_temp)|float %} {% set dummy = params.MINIMUM|default(min_temp)|float %} {% set dummy = params.TARGET|default(current target)|float %} " %} [gcode_macro reset_heater_scaling] description = Clears scaling for heater (or all heaters if none specified). Usage: RESET_HEATER_SCALING [HEATER=] gcode = {% if "HEATER" in params %} {% set HEATER = params.HEATER.lower() %} {% if HEATER not in printer.heaters.available_heaters %} { action_raise_error("The value '%s' is not valid for HEATER" | format(HEATER)) } {% endif %} {% set settings = printer.configfile.settings[HEATER] %} SET_HEATER_SCALING HEATER={HEATER } SCALE=1.0 BUMP=0.0 MINIMUM={settings.min_temp } MAXIMUM={settings.max_temp} {% else %} SET_GCODE_VARIABLE MACRO=set_heater_scaling VARIABLE=scaled_heaters VALUE={ "{}"} {% endif %} [gcode_macro _km_idle_timeout] gcode = {% if printer.pause_resume.is_paused %} {action_respond_info("Extruder powered down on idle timeout.")} SET_GCODE_VARIABLE MACRO=resume VARIABLE=saved_extruder_temp VALUE="{ printer[printer.toolhead.extruder].target}" M104; Turn off extruder but leave the bed on. {% else %} TURN_OFF_HEATERS M107; turn off fan M84 {% endif %} [gcode_macro _check_kinematic_limits] gcode = {% set toolhead = printer.toolhead %} {% if params.X and (params.X|float < toolhead.axis_minimum.x or params.X|float > toolhead.axis_maximum.x) %} {action_raise_error("X[%.3f] must be between %.3f and %.3f." | format(params.X|float, toolhead.axis_minimum.x, toolhead.axis_maximum.x))} {% elif params.Y and (params.Y|float < toolhead.axis_minimum.y or params.Y|float > toolhead.axis_maximum.y) %} {action_raise_error("Y[%.3f] must be between %.3f and %.3f." | format(params.Y|float, toolhead.axis_minimum.y, toolhead.axis_maximum.y))} {% elif params.Z and (params.Z|float < toolhead.axis_minimum.z or params.Z|float > toolhead.axis_maximum.z) %} {action_raise_error("Z[%.3f] must be between %.3f and %.3f." | format(params.Z|float, toolhead.axis_minimum.z, toolhead.axis_maximum.z))} {% elif params.E and (params.E|float|abs > printer.configfile.settings[ "extruder"].max_extrude_only_distance) %} {action_raise_error("E[%.4f] exceeds max_extrude_only_distance[%.4f]." | format(params.E|float|abs, printer.configfile.settings[ "extruder"].max_extrude_only_distance))} {% endif %} [gcode_macro g28] description = Wraps the G28 command to add the Marlin "O" parameter so that already homed axes will not be homed again. See the Klipper documentation on G28 for the behavior of the other parameters. Usage: G28 [O] ... rename_existing = G28.6245197 gcode = {% set do_homing = True %} {% if 'O' in params %} {% if params|select('in', 'XYZ')|list|length == 0 %} {% for k in 'XYZ' %} {% set dummy = params.__setitem__(k, '') %} {% endfor %} {% endif %} {% for k in params|select('in', 'XYZ')|list %} {% if k|lower in printer.toolhead.homed_axes %} {% set dummy = params.__delitem__(k) %} {% endif %} {% endfor %} {% set dummy = params.__delitem__('O') %} {% set do_homing = params|select('in', 'XYZ')|list|length > 0 %} {% else %} {% endif %} {% if do_homing %} G28.6245197{% for k in params %}{' ' ~ k ~ params[k]}{% endfor %} {% endif %} [gcode_macro before_layer_change] description = Add this to the "before layer change" input box in the slicer. Usage: BEFORE_LAYER_CHANGE HEIGHT= LAYER= gcode = {% set height = params.HEIGHT|default(printer.toolhead.position.z)|float %} {% set layer = params.LAYER|default(-1)|int + 1 %} {% if height >= 0.0 %} SET_PRINT_STATS_INFO CURRENT_LAYER="{layer}" SET_GCODE_VARIABLE MACRO=_km_layer_run VARIABLE=cur_height VALUE="{height}" {% if printer["gcode_macro _km_layer_run"].clearance_z < height %} SET_GCODE_VARIABLE MACRO=_km_layer_run VARIABLE=clearance_z VALUE="{ height}" {% endif %} {% endif %} _KM_LAYER_RUN BEFORE=1 [gcode_macro after_layer_change] description = Add this to the "after layer change" input box in the slicer. Usage: AFTER_LAYER_CHANGE gcode = _KM_LAYER_RUN BEFORE=0 [gcode_macro gcode_at_layer] description = Schedules the specified g-code command to be run at the specified layer. LAYER=next will cause the command to run at the next layer change. Usage: GCODE_AT_LAYER { HEIGHT= | LAYER= } COMMAND= [BEFORE=<0|1>] [ALLOW_DUPLICATE=<0|1>] gcode = {% set commands = printer["gcode_macro _km_layer_run"].commands %} {% set tot_layers = printer.print_stats.info.total_layer %} {% if params|length > 0 %} {% if not printer.pause_resume.is_paused and printer.idle_timeout.state|string != "Printing" %} {action_raise_error("No active print.")} {% endif %} {% set when = "before" if (params.BEFORE|default(0)|int) else "after" %} {% if "LAYER" in params %} {% set cur_layer = printer.print_stats.info.current_layer %} {% if "HEIGHT" in params %} {action_raise_error("Conflicting HEIGHT and LAYER arguments provided.")} {% elif params.LAYER|string|lower == "next" %} {% set LAYER = cur_layer + 1 %} {% else %} {% set LAYER = params.LAYER|int %} {% endif %} {% if LAYER <= cur_layer %} {action_raise_error("LAYER[%i] must be above current print layer[%i]." | format(LAYER, cur_layer))} {% elif tot_layers and LAYER >= tot_layers %} {action_raise_error("LAYER[%i] must be below top layer[%i]." | format(LAYER, tot_layers))} {% endif %} {% set key = "%12i_layer_%s"|format(LAYER, when)%} {% elif "HEIGHT" in params %} {% set HEIGHT = params.HEIGHT|float %} {% set cur_height = printer["gcode_macro _km_layer_run"].cur_height %} {% if HEIGHT <= cur_height %} {action_raise_error( "HEIGHT[%.3f] must be above current print height[%.3f].") | format(HEIGHT, cur_height)} {% elif HEIGHT >= printer.toolhead.axis_maximum.z %} {action_raise_error( "HEIGHT[%.3f] must be below maximum Z height[%.3f].") | format(HEIGHT, printer.toolhead.axis_maximum.z)} {% endif %} {% set key = "%12.3f_height_%s"|format(HEIGHT, when)%} {% else %} {action_raise_error("No HEIGHT or LAYER argument provided.")} {% endif %} {% set COMMAND = params.COMMAND %} {% if key not in commands %} {% set dummy = commands.__setitem__(key, []) %} {% endif %} {% if COMMAND in commands[key] or params.ALLOW_DUPLICATE|default(0)|int %} {action_raise_error("Duplicate command previously scheduled.")} {% else %} {% set dummy = commands[key].append(COMMAND) %} SET_GCODE_VARIABLE MACRO=_km_layer_run VARIABLE=commands VALUE="{ commands|replace('\"','\\\"')}" {% set args = key.split('_') %} {% set pos = ("%i"|format(args[0]|int)) if args[1] == "layer" else ("%.3fmm"|format(args[0]|float)) %} {action_respond_info("%s %s (%s):\n* %s" | format(args[1], pos, args[2], COMMAND))} {% endif %} {% else %} {% set layers = [] %} {% set heights = [] %} {% for k in commands|list|sort %} {% set args = k.split('_') %} {% if args[1] == "layer" %} {% set dummy = layers.append("layer %i (%s):" | format(args[0]|int, args[2])) %} {% for c in commands[k] %} {% set dummy = layers.append("* %s" | format(c)) %} {% endfor %} {% else %} {% set dummy = heights.append("height %.3fmm (%s):" | format(args[0]|float, args[2])) %} {% for c in commands[k] %} {% set dummy = heights.append("* %s" | format(c)) %} {% endfor %} {% endif %} {% endfor %} {% set dummy = layers.extend(heights) %} {action_respond_info(layers|join('\n'))} {% endif %} [gcode_macro init_layer_gcode] description = Clears scheduled gcode commands and state for all layers. Usage: INIT_LAYER_GCODE LAYERS= gcode = SET_PRINT_STATS_INFO TOTAL_LAYER="{params.LAYERS|int}" SET_GCODE_VARIABLE MACRO=_km_layer_run VARIABLE=cur_height VALUE="{0.0}" SET_GCODE_VARIABLE MACRO=_km_layer_run VARIABLE=clearance_z VALUE="{0.0}" SET_GCODE_VARIABLE MACRO=_km_layer_run VARIABLE=commands VALUE="{{}}" [gcode_macro _reset_layer_gcode] description = Clears scheduled gcode commands and state for all layers. Usage: _RESET_LAYER_GCODE gcode = SET_PRINT_STATS_INFO TOTAL_LAYER="0" SET_GCODE_VARIABLE MACRO=_km_layer_run VARIABLE=cur_height VALUE="{0.0}" SET_GCODE_VARIABLE MACRO=_km_layer_run VARIABLE=clearance_z VALUE="{0.0}" SET_GCODE_VARIABLE MACRO=_km_layer_run VARIABLE=commands VALUE="{{}}" [gcode_macro cancel_all_layer_gcode] description = Clears all scheduled gcode commands. Usage: CANCEL_ALL_LAYER_GCODE gcode = SET_GCODE_VARIABLE MACRO=_km_layer_run VARIABLE=commands VALUE="{{}}" [gcode_macro pause_next_layer] description = Convenience macro to schedule the current print to pause at the next layer change. See PAUSE for additional arguments. Usage: PAUSE_NEXT_LAYER ... gcode = _CHECK_KINEMATIC_LIMITS{% for k in params%}{' ' ~k~ '=' ~ params[k] }{% endfor %} GCODE_AT_LAYER LAYER=NEXT COMMAND="PAUSE{% for k in params %}{ ' ' ~ k ~ '=' ~ params[k]}{% endfor %}" [gcode_macro _km_layer_run] description = Runs pending commands for the current layer change. Usage: _KM_LAYER_RUN BEFORE=<0|1> variable_cur_height = 0.0 variable_clearance_z = 0.0 variable_commands = {} gcode = {% set BEFORE = params.BEFORE|int %} {% set cur_layer = printer.print_stats.info.current_layer %} {% for k in commands | list | sort %} {% set args = k.split('_') %} {% set cmd_pos = args[0]|float %} {% set cmd_type = args[1] %} {% set cmd_before = 1 if args[2] == "before" else 0 %} {% if cmd_before == BEFORE and ( (cmd_type == "layer" and cmd_pos|int <= cur_layer) or (cmd_type == "height" and cmd_pos <= cur_height)) %} {action_respond_info("Executing scheduled commands at %s %s:\n%s" | format(args[1], args[0].strip(), commands[k]|join('\n')))} {% for c in commands[k] %} {c} {% endfor %} {% set dummy = commands.__delitem__(k) %} {% endif %} {% endfor %} SET_GCODE_VARIABLE MACRO=_km_layer_run VARIABLE=commands VALUE="{ commands|replace('\"','\\\"')}" [gcode_macro pause_at_layer] description = Convenience macro to schedule the current print to pause at the specified layer change. LAYER=next will cause the command to run at the next layer change. See PAUSE for additional arguments. Usage: PAUSE_AT_LAYER { HEIGHT= | LAYER= } ... gcode = {% set dummy = None if True else " {% set dummy = params.LAYER|default(layer number)|float %} {% set dummy = params.HEIGHT|default(Z height)|int %} " %} {% set filtered_params = params|reject('in',['HEIGHT','LAYER'])|list|sort %} _CHECK_KINEMATIC_LIMITS{% for k in filtered_params%}{' ' ~k~ '=' ~ params[k] }{% endfor %} GCODE_AT_LAYER {% for k in params|select('in',['HEIGHT','LAYER'])|list %}{ ' ' ~ k ~ '=' ~ params[k] }{% endfor %} COMMAND="PAUSE{% for k in filtered_params %}{ ' ' ~ k ~ '=' ~ params[k]}{% endfor %}" [gcode_macro speed_at_layer] description = Convenience macro to schedule a feedrate adjustment at the specified layer change. LAYER=next will cause the command to run at the next layer change. (SPEED parameter behaves the same as the M220 S parameter.) Usage: SPEED_AT_LAYER { HEIGHT= | LAYER= } SPEED= gcode = {% set SPEED = params.SPEED|default(0)|int %} {% if SPEED < 1 or SPEED > 500 %} {action_raise_error("SPEED[%i] parameter between 1 and 500 is required." % SPEED)} {% endif %} GCODE_AT_LAYER {% for k in params|select('in',['HEIGHT','LAYER'])|list %}{ ' ' ~ k ~ '=' ~ params[k] }{% endfor %} COMMAND="M220 S{SPEED|int}" {% set dummy = None if True else " {% set dummy = params.LAYER|default(layer number)|float %} {% set dummy = params.HEIGHT|default(Z height)|int %} {% set dummy = params.SPEED|default(percentage)|int %} " %} [gcode_macro flow_at_layer] description = Convenience macro to schedule a flow percentage adjustment at the specified layer change. LAYER=next will cause the command to run at the next layer change. (FLOW parameter behaves the same as the M221 S parameter.) Usage: FLOW_AT_LAYER { HEIGHT= | LAYER= } FLOW= gcode = {% set FLOW = params.FLOW|default(0)|int %} {% if FLOW < 1 or FLOW > 500 %} {action_raise_error("FLOW[%i] parameter between 1 and 500 is required." % FLOW)} {% endif %} GCODE_AT_LAYER {% for k in params|select('in',['HEIGHT','LAYER'])|list %}{ ' ' ~ k ~ '=' ~ params[k] }{% endfor %} COMMAND="M221 S{FLOW|int}" {% set dummy = None if True else " {% set dummy = params.LAYER|default(layer number)|float %} {% set dummy = params.HEIGHT|default(Z height)|int %} {% set dummy = params.FLOW|default(percentage)|int %} " %} [gcode_macro fan_at_layer] description = Convenience macro to schedule a fan adjustment at the specified layer change. LAYER=next will cause the command to run at the next layer change. See SET_FAN_SCALING for additional arguments. Usage: FAN_AT_LAYER { HEIGHT= | LAYER= } ... gcode = {% set dummy = None if True else " {% set dummy = params.LAYER|default(layer number)|float %} {% set dummy = params.HEIGHT|default(Z height)|int %} {% set dummy = params.SCALE|default(1.0)|float %} {% set dummy = params.BUMP|default(0)|int %} {% set dummy = params.MAXIMUM|default(0)|int %} {% set dummy = params.MINIMUM|default(255)|int %} {% set dummy = params.SPEED|default(current speed)|int %} " %} {% set filtered_params = params|reject('in',['HEIGHT','LAYER'])|list|sort %} {% if filtered_params|length == 0 %} {action_raise_error("No fan parameters provided.")} {% endif %} _CHECK_FAN_PARAMS{% for k in filtered_params %}{' '~k~'='~params[k] }{% endfor %} GCODE_AT_LAYER {% for k in params|select('in',['HEIGHT','LAYER'])|list %}{ ' ' ~ k ~ '=' ~ params[k] }{% endfor %} COMMAND="SET_FAN_SCALING{% for k in filtered_params %}{ ' ' ~ k ~ '=' ~ params[k]}{% endfor %}" [gcode_macro heater_at_layer] description = Convenience macro to schedule a heater adjustment at the specified layer change. LAYER=next will cause the command to run at the next layer change. See SET_HEATER_SCALING for additional arguments. Usage: HEATER_AT_LAYER { HEIGHT= | LAYER= } ... gcode = {% set dummy = None if True else " {% set dummy = params.LAYER|default(layer number)|float %} {% set dummy = params.HEIGHT|default(Z height)|int %} {% set dummy = params.HEATER|default(e.g. extruder) %} {% set dummy = params.SCALE|default(1.0)|float %} {% set dummy = params.BUMP|default(0.0)|float %} {% set dummy = params.MAXIMUM|default(max_temp)|float %} {% set dummy = params.MINIMUM|default(min_temp)|float %} {% set dummy = params.TARGET|default(current target)|float %} " %} {% set filtered_params = params|reject('in',['HEIGHT','LAYER'])|list|sort %} _CHECK_HEATER_PARAMS{% for k in filtered_params%}{' ' ~ k ~ '=' ~ params[k] }{% endfor %} GCODE_AT_LAYER{% for k in params|select('in',['HEIGHT','LAYER'])|list %}{ ' ' ~ k ~ '=' ~ params[k] }{% endfor %} COMMAND="SET_HEATER_SCALING{% for k in filtered_params %}{ ' ' ~ k ~ '=\\\"' ~ params[k]|replace('\\','\\\\')|replace('\'','\\\'') |replace('\"','\\\"') ~ '\\\"' }{% endfor %}" [gcode_macro park] description = Park the toolhead Usage: PARK [P=<0|1|2>] [X=] [Y=] [Z=] [LAZY=<1|0>] gcode = {% set km = printer["gcode_macro _km_globals"] %} {% set LAZY = params.LAZY|default(1)|int %} {% if printer.toolhead.homed_axes != "xyz" %} {% if LAZY %} G28 O {% else %} {action_raise_error("Must home axes first.")} {% endif %} {% endif %} {% set P = (params.P|default(2))|int %} {% set X = params.X|default(km.park_x)|float %} {% set Y = params.Y|default(km.park_y)|float %} {% set Z = params.Z|default(km.park_z)|float %} _CHECK_KINEMATIC_LIMITS X="{X}" Y="{Y}" Z="{Z}" _PARK_INNER X="{X}" Y="{Y}" Z="{Z}" P="{P}" LAZY="{LAZY}" {% set dummy = None if True else " {% set dummy = params.P|default(mode=<0|1|2>)|int %} {% set dummy = params.X|default(X position)|int %} {% set dummy = params.Y|default(Y position)|int %} {% set dummy = params.Z|default(Z position)|int %} " %} [gcode_macro _park_inner] gcode = {% set km = printer["gcode_macro _km_globals"] %} {% set travel_speed_xy = km.travel_speed_xy %} {% set travel_speed_z = km.travel_speed_z %} {% set position = printer.gcode_move.gcode_position %} {% set clearance_z = (printer["gcode_macro _km_layer_run"].clearance_z, position.z) | max %} {% set P = params.P|int %} {% set X = params.X|float %} {% set Y = params.Y|float %} {% set Z = params.Z|float %} {% set LAZY = params.LAZY|int %} {% if P == 0 %} {% if clearance_z > Z %} {% set Z = clearance_z %} {% endif %} {% elif P == 2 %} {% set Z = Z + clearance_z %} {% elif P != 1 %} {action_raise_error("Invalid parameter P=%i. Value must be 0, 1, or 2." | format(P)) } {% endif %} {% set Z = ((Z, printer.toolhead.axis_maximum.z)|min, printer.toolhead.axis_minimum.z)|max %} {% if (not LAZY) or P != 2 or X != position.x or Y != position.y or Z < clearance_z %} SAVE_GCODE_STATE NAME=_KM_PARK G90 G0 Z{Z} F{travel_speed_z} G0 X{X} Y{Y} F{travel_speed_xy} RESTORE_GCODE_STATE NAME=_KM_PARK MOVE=0 {% endif %} [gcode_macro g27] description = Parks the toolhead. Usage: G27 [P=<0|1|2>] gcode = PARK P={params.P|default(0)} {% for k in params|reject("in", "GP") %}{ ' '~k~'="'~params[k]~'"' }{% endfor %} [gcode_macro pause] description = Pauses the current print. Usage: PAUSE [X=] [Y=] [Z=] [E=] [B=] rename_existing = _KM_PAUSE_BASE gcode = {% set km = printer["gcode_macro _km_globals"] %} {% set E = (params.E|default(5))|float %} {% set B = (params.B|default(10))|float %} {% if printer.virtual_sdcard.is_active %} {% set position = printer.gcode_move.gcode_position %} SET_GCODE_VARIABLE MACRO=resume VARIABLE=saved_x VALUE="{position.x}" SET_GCODE_VARIABLE MACRO=resume VARIABLE=saved_y VALUE="{position.y}" SET_GCODE_VARIABLE MACRO=resume VARIABLE=saved_z VALUE="{position.z}" SET_GCODE_VARIABLE MACRO=resume VARIABLE=saved_e VALUE="{E}" SAVE_GCODE_STATE NAME=_KM_PAUSE_OVERRIDE_STATE _KM_PAUSE_BASE M83 G1 E{'%.4f' % -E} F{km.load_speed} PARK P=2{% for k in params|select("in", "XYZ") %} {' '~k~'="'~params[k]~'"'} {% endfor %} {% if "output_pin beeper" in printer %} {% for i in range(B|int) %} M300 P100 G4 P200 {% endfor %} {% endif %} {% else %} { action_respond_info("Print from SD card is not in progress.") } {% endif %} [gcode_macro m600] description = Pauses the current print. Usage: M600 [B] [E] [L] [R] [U] [X] [Y] [Z] gcode = PAUSE P=2{% for k in params|select("in", "BEXYZ") %}{ ' '~k~'="'~params[k]~'"'}{% endfor %} UNLOAD_FILAMENT{% if 'U' in params %} LENGTH={params.U}{% endif %} {% if 'R' in params %}M109 S{params.R}{% endif %} [gcode_macro m601] description = Pauses the current print. Usage: M601 gcode = PAUSE [gcode_macro m602] description = Resumes the currently paused print. Usage: M602 gcode = RESUME [gcode_macro m24] rename_existing = M24.6245197 gcode = {% if printer.pause_resume.is_paused %} RESUME {% else %} M24.6245197 {% endif %} [gcode_macro m25] rename_existing = M25.6245197 gcode = PAUSE [gcode_macro resume] description = Resumes the currently paused print. Usage: RESUME [E] rename_existing = _KM_RESUME_BASE variable_saved_extruder_temp = 0 variable_saved_x = 0.0 variable_saved_y = 0.0 variable_saved_z = 0.0 variable_saved_e = 0.0 gcode = {% if printer.pause_resume.is_paused %} {% set km = printer["gcode_macro _km_globals"] %} {% set extruder = printer[printer.toolhead.extruder] %} {% if extruder.target <= printer.configfile.settings[ printer.toolhead.extruder].min_temp | float + 0.5 %} M109 S{saved_extruder_temp} {% endif %} {% if 'E' not in params and not saved_e %} {% set saved_e = 5.0 %} G1 E{'%.4f' % -saved_e } F{km.load_speed} {% endif %} SET_GCODE_VARIABLE MACRO=resume VARIABLE=saved_extruder_temp VALUE="{0}" G90 G0 X{saved_x} Y{saved_y} F{km.travel_speed_xy} G0 Z{saved_z} F{km.travel_speed_z} G91 G1 E{'%.4f' % (params.E|default(saved_e))} F{km.load_speed} RESTORE_GCODE_STATE NAME=_KM_PAUSE_OVERRIDE_STATE MOVE=1 _KM_RESUME_BASE {% else %} { action_respond_info("Printer is not paused.") } {% endif %} [gcode_macro cancel_print] description = Cancels the current print. Usage: CANCEL_PRINT rename_existing = _KM_CANCEL_PRINT_BASE gcode = {% set was_paused = printer.pause_resume.is_paused %} {% if was_paused or printer.idle_timeout.state|string == "Printing" %} PRINT_END SDCARD_RESET_FILE {% else %} { action_respond_info("No print from SD card in progress.") } {% endif %} _KM_CANCEL_PRINT_BASE {% if was_paused %} RESTORE_GCODE_STATE NAME=_KM_PAUSE_OVERRIDE_STATE MOVE=0 {% endif %} CLEAR_PAUSE [gcode_macro clear_pause] description = Clears the current pause state. Usage: CLEAR_PAUSE rename_existing = _KM_CLEAR_PAUSE gcode = SET_GCODE_VARIABLE MACRO=resume VARIABLE=saved_e VALUE="{0.0}" SET_GCODE_VARIABLE MACRO=resume VARIABLE=saved_extruder_temp VALUE="{0}" _KM_CLEAR_PAUSE [gcode_macro print_start] description = Inserted by slicer at start of print. Usage: PRINT_START BED= EXTRUDER= [USETOOL=] [CHAMBER=] [MESH_MIN=] [MESH_MAX=] [LAYERS=] [NOZZLE_SIZE=] gcode = CLEAR_PAUSE {% set USETOOL = params.USETOOL|default(0)|int %} {% set BED = params.BED|default(params.BED_TEMP)|float %} {% set EXTRUDER = params.EXTRUDER|default(params.EXTRUDER_TEMP)|float %} {% set CHAMBER = params.CHAMBER|default(0)|float if "chamber" in printer.heaters.available_heaters else 0.0 %} {% set settings = printer["gcode_macro print_start_set"].settings %} {% set MESH_MIN = params.MESH_MIN|default(settings.MESH_MIN)|default(None) %} {% set MESH_MAX = params.MESH_MAX|default(settings.MESH_MAX)|default(None) %} {% set LAYERS = params.LAYERS|default(settings.LAYERS)|default(-1)|int %} {% set NOZZLE_SIZE = params.NOZZLE_SIZE|default(settings.NOZZLE_SIZE)| default(printer.configfile.settings.extruder.nozzle_diameter)|float %} {% set km = printer["gcode_macro _km_globals"] %} {% if USETOOL > 0 %} ACTIVATE_EXTRUDER EXTRUDER=extruder{ USETOOL } SET_DUAL_CARRIAGE CARRIAGE={ USETOOL } {% else %} ACTIVATE_EXTRUDER EXTRUDER=extruder1 SET_DUAL_CARRIAGE CARRIAGE=1 {% endif %} INIT_LAYER_GCODE LAYERS="{LAYERS}" {% if CHAMBER > 0.0 %} M141 S{CHAMBER} {% endif %} M140 S{BED} {% if km.start_level_bed_at_temp %} M104 S{(km.start_extruder_preheat_scale * EXTRUDER)|round(0,'ceil')|int} {% else %} M104 S{EXTRUDER} {% endif %} G28 G90 {% if BED > 0.0 %} M190 S{(BED + km.start_bed_heat_overshoot, printer.configfile.settings.heater_bed.max_temp)|min} G4 P{km.start_bed_heat_delay / 2} M190 R{BED} G4 P{km.start_bed_heat_delay / 2} {% endif %} {% if km.start_level_bed_at_temp %} G28 Z BED_MESH_CALIBRATE_FAST{% if MESH_MIN %} MESH_MIN={MESH_MIN}{% endif %}{% if MESH_MAX %} MESH_MAX={MESH_MAX}{% endif %} {% endif %} {% if CHAMBER > 0.0 %} M191 S{CHAMBER} {% endif %} M109 S{EXTRUDER} _APPLY_BED_SURFACE_OFFSET {% if km.start_purge_length > 0.0 %} DRAW_PURGE_LINE WIDTH="{NOZZLE_SIZE * 1.25}" HEIGHT="{NOZZLE_SIZE * 0.625 }"{% if MESH_MIN %} PRINT_MIN={MESH_MIN}{% endif %}{% if MESH_MAX %} PRINT_MAX={MESH_MAX}{% endif %} {% endif %} [gcode_macro print_start_set] description = Inserted by slicer to set values used by PRINT_START. Usage: PRINT_START_SET = variable_settings = {} gcode = {%for k in params %} {% set dummy = settings.__setitem__(k|upper, params[k]) %} {% endfor %} [gcode_macro print_end] description = Inserted by slicer at end of print. Usage: PRINT_END gcode = M400 G92 E0 G1 E-5.0 F3600 {% set km = printer["gcode_macro _km_globals"] %} {% set toolhead = printer.toolhead %} {% set max_x = toolhead.axis_maximum.x %} {% set max_y = toolhead.axis_maximum.y %} {% set max_z = toolhead.axis_maximum.z %} {% set x_safe = (max_x - toolhead.position.x, 5.0)|min %} {% set y_safe = (max_y - toolhead.position.y, 5.0)|min %} {% set z_safe = (max_z - toolhead.position.z, 2.0)|min %} {% if not printer.pause_resume.is_paused %} G91 G0 Z{z_safe} F{km.travel_speed_z * 2} ; move nozzle up G0 X{x_safe} Y{y_safe} F{km.travel_speed_xy} ; remove stringing {% endif %} {% if km.start_clear_adjustments_at_end != 0 %} RESET_HEATER_SCALING RESET_FAN_SCALING M220 S100 M221 S100 {% endif %} _RESET_LAYER_GCODE _RESET_VELOCITY_LIMITS TURN_OFF_HEATERS M107; turn off fan PARK Y={max_y} M84 ; disable steppers CLEAR_PAUSE [gcode_macro _km_save_state] description = Tracks gcode state. variable_state_set = {} variable_is_ephemeral = 0 gcode = {% if params.SAVE|int %} {% set dummy = state_set.__setitem__(params.NAME, None) %} {% else %} {% set dummy = state_set.__delitem__(params.NAME) %} {% endif %} SET_GCODE_VARIABLE MACRO=_km_save_state VARIABLE=is_ephemeral VALUE="{ 1 if state_set|length > 0 else 0 }" [gcode_macro save_gcode_state] description = Wraps SAVE_GCODE_STATE to track persistence state. Usage: See Klipper documentation rename_existing = _KM_SAVE_GCODE_STATE gcode = _KM_SAVE_GCODE_STATE {rawparams} {% set NAME = params.NAME|default("default") %} _km_save_state NAME={NAME} SAVE=1 [gcode_macro restore_gcode_state] description = Wraps RESTORE_GCODE_STATE to track persistence state. Usage: See Klipper documentation rename_existing = _KM_RESTORE_GCODE_STATE gcode = _KM_RESTORE_GCODE_STATE {rawparams} {% set NAME = params.NAME|default("default") %} _km_save_state NAME={NAME} SAVE=0 [gcode_macro m201] description = Sets maximum accelleration. Usage: M201 [X] [Y] variable_max_accel = 1.7976931348623157e+308 gcode = {% set km = printer["gcode_macro _km_globals"] %} {% if 'X' in params or 'Y' in params %} {% set accel = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_GCODE_VARIABLE MACRO=m201 VARIABLE=max_accel VALUE="{accel}" {% if accel < printer.toolhead.max_accel %} SET_VELOCITY_LIMIT ACCEL="{accel }" ACCEL_TO_DECEL="{accel * km.velocity_decel_scale}" {% endif %} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro m203] description = Sets maximum velocity. Usage: M203 [X] [Y] gcode = {% if 'X' in params or 'Y' in params %} {% set velocity = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT VELOCITY="{velocity}" {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro m204] description = Sets maximum accelleration. Usage: M204 [S] [P T] rename_existing = M204.6245197 gcode = {% set km = printer["gcode_macro _km_globals"] %} {% set max_accel = printer["gcode_macro m201"].max_accel %} {% set accel = 0.0 %} {% if 'S' in params %} {% set accel = (params.S|float, max_accel)|min %} {% elif 'P' in params %} {% set accel = (params.P|float, params.T|default(params.P)|float, max_accel)|min %} {% endif %} {% if accel %} SET_VELOCITY_LIMIT ACCEL="{accel }" ACCEL_TO_DECEL="{accel * km.velocity_decel_scale}" {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro m205] description = Sets square corner velocity. Usage: M203 [X] [Y] gcode = {% if 'X' in params or 'Y' in params %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY="{ (params.X|default(0)|float, params.Y|default(0)|float)|min}" {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro m900] description = Sets pressure advance. Usage: M900 [K] [T] gcode = {% set km = printer["gcode_macro _km_globals"] %} {% if km.pressure_advance_scale > 0.0 %} {% set extruder = "extruder" ~ params.T|replace('0', '') if "T" in params else printer.toolhead.extruder %} {% if 'K' in params %} SET_PRESSURE_ADVANCE EXTRUDER="{extruder}" ADVANCE="{ params.K|float * km.pressure_advance_scale}" {% endif %} {% endif %} [gcode_macro _reset_velocity_limits] description = Sets maximum accelleration. Usage: M204 [S] [P T] gcode = SET_GCODE_VARIABLE MACRO=m201 VARIABLE=max_accel VALUE="{1.7976931348623157e+308}" [menu __main __octoprint] type = list name = OctoPrint enable = {printer["gcode_macro _km_globals"].menu_show_octoprint} [menu __main __sdcard] type = list enable = {'virtual_sdcard' in printer and printer["gcode_macro _km_globals"].menu_show_sdcard} name = SD Card [menu __main __sdcard __start] type = command enable = {printer.virtual_sdcard.file_path and not printer.virtual_sdcard.is_active and printer.print_stats.state != "printing" and printer.print_stats.state != "paused"} name = Print: {printer.virtual_sdcard.file_path.split('/')|last} gcode = M24 {menu.back()} [menu __main __sdcard __select] type = vsdlist enable = {not printer.virtual_sdcard.is_active and printer.print_stats.state != "printing" and printer.print_stats.state != "paused"} name = Select file index = 1 [menu __main __sdcard __select __start] type = command enable = {printer.virtual_sdcard.file_path and not printer.virtual_sdcard.is_active} name = Print: {printer.virtual_sdcard.file_path.split('/')|last} gcode = M24 {menu.back()} [menu __main __setup __calib __delta_calib_auto] type = command enable = {'delta_calibrate' in printer.configfile.settings and not printer.idle_timeout.state == "Printing"} name = Delta cal. auto gcode = G28 DELTA_CALIBRATE [menu __main __setup __calib __delta_calib_man] type = list enable = {'delta_calibrate' in printer.configfile.settings and not printer.idle_timeout.state == "Printing"} name = Delta cal. man [menu __main __control __disable] type = command name = Steppers off enable = {printer.idle_timeout.state != "Printing"} gcode = M84 M18 [menu __main __control __disable_printing] type = list index = 3 enable = {printer.idle_timeout.state == "Printing"} name = Steppers off [menu __my_main __control __disable_printing __confirm] type = command name = Confirm steppers off gcode = M84 M18 {menu.back()} [menu __main __control __park] type = command name = Park toolhead enable = {printer.idle_timeout.state != "Printing" or printer.pause_resume.is_paused} index = 1 gcode = G28 O ; Lazy home first. PARK [menu __main __octoprint __abort] type = list enable = {printer.idle_timeout.state == "Printing"} name = Abort printing [menu __main __octoprint __abort __confirm] type = command name = Confirm abort printing gcode = {action_respond_info('action:cancel')} {menu.back()} [menu __main __sdcard __cancel] type = list enable = {('virtual_sdcard' in printer) and (printer.print_stats.state == "printing" or printer.print_stats.state == "paused")} name = Cancel printing [menu __main __sdcard __cancel __confirm] type = command name = Confirm cancel printing gcode = {% if 'pause_resume' in printer %} CANCEL_PRINT {% else %} M25 M27 M26 S0 TURN_OFF_HEATERS G91 G0 Z{(printer.toolhead.position.z, printer.toolhead.axis_maximum.z - 5)|min } F1000 G90 {% endif %} {menu.back()} [menu __main __setup __restart] type = list name = Restart/Shutdown [menu __main __setup __restart __reboot] type = command name = Reboot host gcode = M117 Rebooting host M118 Rebooting host {menu.exit()} G4 S2 ; Let the user see the console message. {action_call_remote_method("reboot_machine")} ; Try Moonraker. G4 S1 ; give Moonraker a chance to finish. {action_respond_info('action:poweroff')} ; Try Octoprint. [menu __main __setup __restart __shutdown] type = command name = Shutdown host gcode = M117 Shutting down M118 Shutting down {menu.exit()} G4 S2 ; Let the user see the console message. {action_call_remote_method("shutdown_machine")} ; Try Moonraker. G4 S1 ; give Moonraker a chance to finish. {action_respond_info('action:poweroff')} ; Try Octoprint. [menu __main __setup __speed] type = input name = Speed: {'%3d' % (menu.input*100)}% input = {printer.gcode_move.speed_factor} input_min = 0.01 input_max = 5 input_step = 0.01 realtime = True index = 4 gcode = M220 S{'%d' % (menu.input*100)} [menu __main __setup __flow] type = input name = Flow: {'%3d' % (menu.input*100)}% input = {printer.gcode_move.extrude_factor} input_min = 0.01 input_max = 2 input_step = 0.01 realtime = True index = 5 gcode = M221 S{'%d' % (menu.input*100)} [menu __main __filament] type = list name = Filament enable = {printer.idle_timeout.state != "Printing" or printer.pause_resume.is_paused} [menu __main __filament __loadf] type = command name = Load Fil. fast enable = False [menu __main __filament __loads] type = command name = Load Fil. slow enable = False [menu __main __filament __unloadf] type = command name = Unload Fil.fast enable = False [menu __main __filament __unloads] type = command name = Unload Fil.slow enable = False [menu __main __filament __load] type = command index = 1 name = Load Filament gcode = LOAD_FILAMENT [menu __main __filament __unload] type = command index = 2 name = Unload Filament gcode = UNLOAD_FILAMENT [menu __main __filament __feed] type = input name = Feed: {'%.1f' % menu.input} input = 0.0 input_min = -50.0 input_max = 50.0 input_step = 1.0 gcode = SAVE_GCODE_STATE NAME=_KM_FILAMENT_LOAD M83 G1 E{'%.1f' % menu.input } F{printer["gcode_macro _km_globals"].load_priming_speed} RESTORE_GCODE_STATE NAME=_KM_FILAMENT_LOAD [menu __main __sdcard __pause_layer] type = input index = 4 enable = {('virtual_sdcard' in printer) and printer.print_stats.state == "printing"} name = Pause {% set layer = printer["gcode_macro _km_layer_run"].cur_layer %}{% if layer >= menu.input|int %}layer{% elif layer + 1 == menu.input|int %}at: next{% else %}at: {menu.input|int}{% endif %} input = {printer["gcode_macro _km_layer_run"].cur_layer} input_min = {printer["gcode_macro _km_layer_run"].cur_layer} input_max = {printer["gcode_macro _km_layer_run"].tot_layers} input_step = 1 gcode = {% set layers = printer["gcode_macro _km_layer_run"] %} {% if menu.input|int > layers.cur_layer %} PAUSE_AT_LAYER LAYER={menu.input} {% endif %} [menu __main __octoprint __pause_layer] type = input index = 1 enable = {printer.idle_timeout.state == "Printing"} name = Pause {% set layer = printer["gcode_macro _km_layer_run"].cur_layer %}{% if layer >= menu.input|int %}layer{% elif layer + 1 == menu.input|int + 1 %}at: next{% else %}at: {menu.input|int}{% endif %} input = {printer["gcode_macro _km_layer_run"].cur_layer} input_min = {printer["gcode_macro _km_layer_run"].cur_layer} input_max = {printer["gcode_macro _km_layer_run"].tot_layers} input_step = 1 gcode = {% set layers = printer["gcode_macro _km_layer_run"] %} {% if menu.input|int > layers.cur_layer %} GCODE_AT_LAYER LAYER={menu.input|int } COMMAND="RESPOND TYPE=command MSG=action:pause" {% endif %} [menu __main __setup __bed_surface] type = input name = Bed: {(printer.save_variables.variables.bed_surfaces.available | list | sort)[menu.input|int]} input = {% set surfaces = printer.save_variables.variables.bed_surfaces %}{(surfaces.available | list | sort).index(surfaces.active) | int} input_min = 0 input_max = {((printer.save_variables.variables.bed_surfaces.available | length) - 1)} input_step = 1 index = 4 gcode = SET_SURFACE_ACTIVE SURFACE={ (printer.save_variables.variables.bed_surfaces.available | list | sort)[menu.input|int]} [menu __main __setup __offsetz] type = input name = Offset Z:{ '%05.3f' % menu.input } input = {% set surfaces = printer.save_variables.variables.bed_surfaces %}{ surfaces.available[surfaces.active].offset | float } input_min = -5 input_max = 5 input_step = 0.005 index = 5 realtime = True gcode = SET_SURFACE_OFFSET OFFSET={menu.input} [menu __main __tune __offsetz] type = input name = Offset Z:{ '%05.3f' % menu.input } input = { printer.gcode_move.homing_origin.z } input_min = -5 input_max = 5 input_step = 0.005 realtime = True gcode = SET_SURFACE_OFFSET OFFSET={menu.input} [menu __main __temp] type = list name = Temperature enable = False [menu __main __temp_km] type = list name = Temperature index = 4 [menu __main __temp_km __hotend0_target] type = input enable = {'extruder' in printer} name = {"Ex0:%3.0f (%4.0f)" % (menu.input, printer.extruder.temperature)} input = {printer.extruder.target} input_min = 0 input_max = {printer.configfile.config.extruder.max_temp} input_step = 1 gcode = SET_HEATER_TEMPERATURE HEATER=extruder TARGET={'%.0f' % menu.input} [menu __main __temp_km __hotend1_target] type = input enable = {'extruder1' in printer} name = {"Ex1:%3.0f (%4.0f)" % (menu.input, printer.extruder1.temperature)} input = {printer.extruder1.target} input_min = 0 input_max = {printer.configfile.config.extruder1.max_temp} input_step = 1 gcode = SET_HEATER_TEMPERATURE HEATER=extruder1 TARGET={'%.0f' % menu.input} [menu __main __temp_km __hotbed_target] type = input enable = {'heater_bed' in printer} name = {"Bed:%3.0f (%4.0f)" % (menu.input, printer.heater_bed.temperature)} input = {printer.heater_bed.target} input_min = 0 input_max = {printer.configfile.config.heater_bed.max_temp} input_step = 1 gcode = SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={'%.0f' % menu.input} [menu __main __temp_km __preheat_0] type = list name = Preheat {printer["gcode_macro _km_globals"].menu_temperature[0].name} enable = {printer.idle_timeout.state != "Printing" and printer["gcode_macro _km_globals"].menu_temperature|length > 0} [menu __main __temp_km __preheat_0 __all] type = command enable = {printer["gcode_macro _km_globals"].menu_temperature[0] | list | select('in', ['extruder', 'bed', 'chamber']) | list | length > 1 and (('extruder' in printer) + ('heater_bed' in printer) + ('heater_generic chamber' in printer.heaters.available_heaters)) > 1} name = Preheat all gcode = {% set targets = printer["gcode_macro _km_globals"].menu_temperature[0] %} {% if 'chamber' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER=chamber TARGET={targets.chamber} {% endif %} {% if 'bed' in targets and 'heater_bed' in printer %} SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={targets.bed} {% endif %} {% if 'extruder' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ targets.extruder} {% endif %} [menu __main __temp_km __preheat_0 __hotend] type = command enable = {'extruder' in printer and 'extruder' in printer["gcode_macro _km_globals"].menu_temperature[0]} name = Preheat hotend gcode = SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ printer["gcode_macro _km_globals"].menu_temperature[0].extruder} [menu __main __temp_km __preheat_0 __hotbed] type = command enable = {'heater_bed' in printer and 'bed' in printer["gcode_macro _km_globals"].menu_temperature[0]} name = Preheat bed gcode = SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={ printer["gcode_macro _km_globals"].menu_temperature[0].bed} [menu __main __temp_km __preheat_0 __chamber] type = command enable = {'heater_generic chamber' in printer.heaters.available_heaters and 'chamber' in printer["gcode_macro _km_globals"].menu_temperature[0]} name = Preheat chamber gcode = SET_HEATER_TEMPERATURE HEATER=chamber TARGET={ printer["gcode_macro _km_globals"].menu_temperature[0].chamber} [menu __main __temp_km __preheat_1] type = list name = Preheat {printer["gcode_macro _km_globals"].menu_temperature[1].name} enable = {printer.idle_timeout.state != "Printing" and printer["gcode_macro _km_globals"].menu_temperature|length > 1} [menu __main __temp_km __preheat_1 __all] type = command enable = {printer["gcode_macro _km_globals"].menu_temperature[1] | list | select('in', ['extruder', 'bed', 'chamber']) | list | length > 1 and (('extruder' in printer) + ('heater_bed' in printer) + ('heater_generic chamber' in printer.heaters.available_heaters)) > 1} name = Preheat all gcode = {% set targets = printer["gcode_macro _km_globals"].menu_temperature[1] %} {% if 'chamber' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER=chamber TARGET={targets.chamber} {% endif %} {% if 'bed' in targets and 'heater_bed' in printer %} SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={targets.bed} {% endif %} {% if 'extruder' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ targets.extruder} {% endif %} [menu __main __temp_km __preheat_1 __hotend] type = command enable = {'extruder' in printer and 'extruder' in printer["gcode_macro _km_globals"].menu_temperature[1]} name = Preheat hotend gcode = SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ printer["gcode_macro _km_globals"].menu_temperature[1].extruder} [menu __main __temp_km __preheat_1 __hotbed] type = command enable = {'heater_bed' in printer and 'bed' in printer["gcode_macro _km_globals"].menu_temperature[1]} name = Preheat bed gcode = SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={ printer["gcode_macro _km_globals"].menu_temperature[1].bed} [menu __main __temp_km __preheat_1 __chamber] type = command enable = {'heater_generic chamber' in printer.heaters.available_heaters and 'chamber' in printer["gcode_macro _km_globals"].menu_temperature[1]} name = Preheat chamber gcode = SET_HEATER_TEMPERATURE HEATER=chamber TARGET={ printer["gcode_macro _km_globals"].menu_temperature[1].chamber} [menu __main __temp_km __preheat_2] type = list name = Preheat {printer["gcode_macro _km_globals"].menu_temperature[2].name} enable = {printer.idle_timeout.state != "Printing" and printer["gcode_macro _km_globals"].menu_temperature|length > 2} [menu __main __temp_km __preheat_2 __all] type = command enable = {printer["gcode_macro _km_globals"].menu_temperature[2] | list | select('in', ['extruder', 'bed', 'chamber']) | list | length > 1 and (('extruder' in printer) + ('heater_bed' in printer) + ('heater_generic chamber' in printer.heaters.available_heaters)) > 1} name = Preheat all gcode = {% set targets = printer["gcode_macro _km_globals"].menu_temperature[2] %} {% if 'chamber' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER=chamber TARGET={targets.chamber} {% endif %} {% if 'bed' in targets and 'heater_bed' in printer %} SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={targets.bed} {% endif %} {% if 'extruder' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ targets.extruder} {% endif %} [menu __main __temp_km __preheat_2 __hotend] type = command enable = {'extruder' in printer and 'extruder' in printer["gcode_macro _km_globals"].menu_temperature[2]} name = Preheat hotend gcode = SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ printer["gcode_macro _km_globals"].menu_temperature[2].extruder} [menu __main __temp_km __preheat_2 __hotbed] type = command enable = {'heater_bed' in printer and 'bed' in printer["gcode_macro _km_globals"].menu_temperature[2]} name = Preheat bed gcode = SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={ printer["gcode_macro _km_globals"].menu_temperature[2].bed} [menu __main __temp_km __preheat_2 __chamber] type = command enable = {'heater_generic chamber' in printer.heaters.available_heaters and 'chamber' in printer["gcode_macro _km_globals"].menu_temperature[2]} name = Preheat chamber gcode = SET_HEATER_TEMPERATURE HEATER=chamber TARGET={ printer["gcode_macro _km_globals"].menu_temperature[2].chamber} [menu __main __temp_km __preheat_3] type = list name = Preheat {printer["gcode_macro _km_globals"].menu_temperature[3].name} enable = {printer.idle_timeout.state != "Printing" and printer["gcode_macro _km_globals"].menu_temperature|length > 3} [menu __main __temp_km __preheat_3 __all] type = command enable = {printer["gcode_macro _km_globals"].menu_temperature[3] | list | select('in', ['extruder', 'bed', 'chamber']) | list | length > 1 and (('extruder' in printer) + ('heater_bed' in printer) + ('heater_generic chamber' in printer.heaters.available_heaters)) > 1} name = Preheat all gcode = {% set targets = printer["gcode_macro _km_globals"].menu_temperature[3] %} {% if 'chamber' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER=chamber TARGET={targets.chamber} {% endif %} {% if 'bed' in targets and 'heater_bed' in printer %} SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={targets.bed} {% endif %} {% if 'extruder' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ targets.extruder} {% endif %} [menu __main __temp_km __preheat_3 __hotend] type = command enable = {'extruder' in printer and 'extruder' in printer["gcode_macro _km_globals"].menu_temperature[3]} name = Preheat hotend gcode = SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ printer["gcode_macro _km_globals"].menu_temperature[3].extruder} [menu __main __temp_km __preheat_3 __hotbed] type = command enable = {'heater_bed' in printer and 'bed' in printer["gcode_macro _km_globals"].menu_temperature[3]} name = Preheat bed gcode = SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={ printer["gcode_macro _km_globals"].menu_temperature[3].bed} [menu __main __temp_km __preheat_3 __chamber] type = command enable = {'heater_generic chamber' in printer.heaters.available_heaters and 'chamber' in printer["gcode_macro _km_globals"].menu_temperature[3]} name = Preheat chamber gcode = SET_HEATER_TEMPERATURE HEATER=chamber TARGET={ printer["gcode_macro _km_globals"].menu_temperature[3].chamber} [menu __main __temp_km __preheat_4] type = list name = Preheat {printer["gcode_macro _km_globals"].menu_temperature[4].name} enable = {printer.idle_timeout.state != "Printing" and printer["gcode_macro _km_globals"].menu_temperature|length > 4} [menu __main __temp_km __preheat_4 __all] type = command enable = {printer["gcode_macro _km_globals"].menu_temperature[4] | list | select('in', ['extruder', 'bed', 'chamber']) | list | length > 1 and (('extruder' in printer) + ('heater_bed' in printer) + ('heater_generic chamber' in printer.heaters.available_heaters)) > 1} name = Preheat all gcode = {% set targets = printer["gcode_macro _km_globals"].menu_temperature[4] %} {% if 'chamber' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER=chamber TARGET={targets.chamber} {% endif %} {% if 'bed' in targets and 'heater_bed' in printer %} SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={targets.bed} {% endif %} {% if 'extruder' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ targets.extruder} {% endif %} [menu __main __temp_km __preheat_4 __hotend] type = command enable = {'extruder' in printer and 'extruder' in printer["gcode_macro _km_globals"].menu_temperature[4]} name = Preheat hotend gcode = SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ printer["gcode_macro _km_globals"].menu_temperature[4].extruder} [menu __main __temp_km __preheat_4 __hotbed] type = command enable = {'heater_bed' in printer and 'bed' in printer["gcode_macro _km_globals"].menu_temperature[4]} name = Preheat bed gcode = SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={ printer["gcode_macro _km_globals"].menu_temperature[4].bed} [menu __main __temp_km __preheat_4 __chamber] type = command enable = {'heater_generic chamber' in printer.heaters.available_heaters and 'chamber' in printer["gcode_macro _km_globals"].menu_temperature[4]} name = Preheat chamber gcode = SET_HEATER_TEMPERATURE HEATER=chamber TARGET={ printer["gcode_macro _km_globals"].menu_temperature[4].chamber} [menu __main __temp_km __preheat_5] type = list name = Preheat {printer["gcode_macro _km_globals"].menu_temperature[5].name} enable = {printer.idle_timeout.state != "Printing" and printer["gcode_macro _km_globals"].menu_temperature|length > 5} [menu __main __temp_km __preheat_5 __all] type = command enable = {printer["gcode_macro _km_globals"].menu_temperature[5] | list | select('in', ['extruder', 'bed', 'chamber']) | list | length > 1 and (('extruder' in printer) + ('heater_bed' in printer) + ('heater_generic chamber' in printer.heaters.available_heaters)) > 1} name = Preheat all gcode = {% set targets = printer["gcode_macro _km_globals"].menu_temperature[5] %} {% if 'chamber' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER=chamber TARGET={targets.chamber} {% endif %} {% if 'bed' in targets and 'heater_bed' in printer %} SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={targets.bed} {% endif %} {% if 'extruder' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ targets.extruder} {% endif %} [menu __main __temp_km __preheat_5 __hotend] type = command enable = {'extruder' in printer and 'extruder' in printer["gcode_macro _km_globals"].menu_temperature[5]} name = Preheat hotend gcode = SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ printer["gcode_macro _km_globals"].menu_temperature[5].extruder} [menu __main __temp_km __preheat_5 __hotbed] type = command enable = {'heater_bed' in printer and 'bed' in printer["gcode_macro _km_globals"].menu_temperature[5]} name = Preheat bed gcode = SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={ printer["gcode_macro _km_globals"].menu_temperature[5].bed} [menu __main __temp_km __preheat_5 __chamber] type = command enable = {'heater_generic chamber' in printer.heaters.available_heaters and 'chamber' in printer["gcode_macro _km_globals"].menu_temperature[5]} name = Preheat chamber gcode = SET_HEATER_TEMPERATURE HEATER=chamber TARGET={ printer["gcode_macro _km_globals"].menu_temperature[5].chamber} [menu __main __temp_km __preheat_6] type = list name = Preheat {printer["gcode_macro _km_globals"].menu_temperature[6].name} enable = {printer.idle_timeout.state != "Printing" and printer["gcode_macro _km_globals"].menu_temperature|length > 6} [menu __main __temp_km __preheat_6 __all] type = command enable = {printer["gcode_macro _km_globals"].menu_temperature[6] | list | select('in', ['extruder', 'bed', 'chamber']) | list | length > 1 and (('extruder' in printer) + ('heater_bed' in printer) + ('heater_generic chamber' in printer.heaters.available_heaters)) > 1} name = Preheat all gcode = {% set targets = printer["gcode_macro _km_globals"].menu_temperature[6] %} {% if 'chamber' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER=chamber TARGET={targets.chamber} {% endif %} {% if 'bed' in targets and 'heater_bed' in printer %} SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={targets.bed} {% endif %} {% if 'extruder' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ targets.extruder} {% endif %} [menu __main __temp_km __preheat_6 __hotend] type = command enable = {'extruder' in printer and 'extruder' in printer["gcode_macro _km_globals"].menu_temperature[6]} name = Preheat hotend gcode = SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ printer["gcode_macro _km_globals"].menu_temperature[6].extruder} [menu __main __temp_km __preheat_6 __hotbed] type = command enable = {'heater_bed' in printer and 'bed' in printer["gcode_macro _km_globals"].menu_temperature[6]} name = Preheat bed gcode = SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={ printer["gcode_macro _km_globals"].menu_temperature[6].bed} [menu __main __temp_km __preheat_6 __chamber] type = command enable = {'heater_generic chamber' in printer.heaters.available_heaters and 'chamber' in printer["gcode_macro _km_globals"].menu_temperature[6]} name = Preheat chamber gcode = SET_HEATER_TEMPERATURE HEATER=chamber TARGET={ printer["gcode_macro _km_globals"].menu_temperature[6].chamber} [menu __main __temp_km __preheat_7] type = list name = Preheat {printer["gcode_macro _km_globals"].menu_temperature[7].name} enable = {printer.idle_timeout.state != "Printing" and printer["gcode_macro _km_globals"].menu_temperature|length > 7} [menu __main __temp_km __preheat_7 __all] type = command enable = {printer["gcode_macro _km_globals"].menu_temperature[7] | list | select('in', ['extruder', 'bed', 'chamber']) | list | length > 1 and (('extruder' in printer) + ('heater_bed' in printer) + ('heater_generic chamber' in printer.heaters.available_heaters)) > 1} name = Preheat all gcode = {% set targets = printer["gcode_macro _km_globals"].menu_temperature[7] %} {% if 'chamber' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER=chamber TARGET={targets.chamber} {% endif %} {% if 'bed' in targets and 'heater_bed' in printer %} SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={targets.bed} {% endif %} {% if 'extruder' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ targets.extruder} {% endif %} [menu __main __temp_km __preheat_7 __hotend] type = command enable = {'extruder' in printer and 'extruder' in printer["gcode_macro _km_globals"].menu_temperature[7]} name = Preheat hotend gcode = SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ printer["gcode_macro _km_globals"].menu_temperature[7].extruder} [menu __main __temp_km __preheat_7 __hotbed] type = command enable = {'heater_bed' in printer and 'bed' in printer["gcode_macro _km_globals"].menu_temperature[7]} name = Preheat bed gcode = SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={ printer["gcode_macro _km_globals"].menu_temperature[7].bed} [menu __main __temp_km __preheat_7 __chamber] type = command enable = {'heater_generic chamber' in printer.heaters.available_heaters and 'chamber' in printer["gcode_macro _km_globals"].menu_temperature[7]} name = Preheat chamber gcode = SET_HEATER_TEMPERATURE HEATER=chamber TARGET={ printer["gcode_macro _km_globals"].menu_temperature[7].chamber} [menu __main __temp_km __preheat_8] type = list name = Preheat {printer["gcode_macro _km_globals"].menu_temperature[8].name} enable = {printer.idle_timeout.state != "Printing" and printer["gcode_macro _km_globals"].menu_temperature|length > 8} [menu __main __temp_km __preheat_8 __all] type = command enable = {printer["gcode_macro _km_globals"].menu_temperature[8] | list | select('in', ['extruder', 'bed', 'chamber']) | list | length > 1 and (('extruder' in printer) + ('heater_bed' in printer) + ('heater_generic chamber' in printer.heaters.available_heaters)) > 1} name = Preheat all gcode = {% set targets = printer["gcode_macro _km_globals"].menu_temperature[8] %} {% if 'chamber' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER=chamber TARGET={targets.chamber} {% endif %} {% if 'bed' in targets and 'heater_bed' in printer %} SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={targets.bed} {% endif %} {% if 'extruder' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ targets.extruder} {% endif %} [menu __main __temp_km __preheat_8 __hotend] type = command enable = {'extruder' in printer and 'extruder' in printer["gcode_macro _km_globals"].menu_temperature[8]} name = Preheat hotend gcode = SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ printer["gcode_macro _km_globals"].menu_temperature[8].extruder} [menu __main __temp_km __preheat_8 __hotbed] type = command enable = {'heater_bed' in printer and 'bed' in printer["gcode_macro _km_globals"].menu_temperature[8]} name = Preheat bed gcode = SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={ printer["gcode_macro _km_globals"].menu_temperature[8].bed} [menu __main __temp_km __preheat_8 __chamber] type = command enable = {'heater_generic chamber' in printer.heaters.available_heaters and 'chamber' in printer["gcode_macro _km_globals"].menu_temperature[8]} name = Preheat chamber gcode = SET_HEATER_TEMPERATURE HEATER=chamber TARGET={ printer["gcode_macro _km_globals"].menu_temperature[8].chamber} [menu __main __temp_km __preheat_9] type = list name = Preheat {printer["gcode_macro _km_globals"].menu_temperature[9].name} enable = {printer.idle_timeout.state != "Printing" and printer["gcode_macro _km_globals"].menu_temperature|length > 9} [menu __main __temp_km __preheat_9 __all] type = command enable = {printer["gcode_macro _km_globals"].menu_temperature[9] | list | select('in', ['extruder', 'bed', 'chamber']) | list | length > 1 and (('extruder' in printer) + ('heater_bed' in printer) + ('heater_generic chamber' in printer.heaters.available_heaters)) > 1} name = Preheat all gcode = {% set targets = printer["gcode_macro _km_globals"].menu_temperature[9] %} {% if 'chamber' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER=chamber TARGET={targets.chamber} {% endif %} {% if 'bed' in targets and 'heater_bed' in printer %} SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={targets.bed} {% endif %} {% if 'extruder' in targets and 'extruder' in printer %} SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ targets.extruder} {% endif %} [menu __main __temp_km __preheat_9 __hotend] type = command enable = {'extruder' in printer and 'extruder' in printer["gcode_macro _km_globals"].menu_temperature[9]} name = Preheat hotend gcode = SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET={ printer["gcode_macro _km_globals"].menu_temperature[9].extruder} [menu __main __temp_km __preheat_9 __hotbed] type = command enable = {'heater_bed' in printer and 'bed' in printer["gcode_macro _km_globals"].menu_temperature[9]} name = Preheat bed gcode = SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={ printer["gcode_macro _km_globals"].menu_temperature[9].bed} [menu __main __temp_km __preheat_9 __chamber] type = command enable = {'heater_generic chamber' in printer.heaters.available_heaters and 'chamber' in printer["gcode_macro _km_globals"].menu_temperature[9]} name = Preheat chamber gcode = SET_HEATER_TEMPERATURE HEATER=chamber TARGET={ printer["gcode_macro _km_globals"].menu_temperature[9].chamber} [menu __main __temp_km __cooldown_all] type = command enable = {printer.idle_timeout.state != "Printing" and (('extruder' in printer) + ('heater_bed' in printer) + ('heater_generic chamber' in printer.heaters.available_heaters)) > 1} name = Cooldown all gcode = {% if 'heater_generic chamber' in printer.heaters.available_heaters %} SET_HEATER_TEMPERATURE HEATER=chamber TARGET=0 {% endif %} {% if 'heater_bed' in printer %} SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=0 {% endif %} {% if 'extruder' in printer%} SET_HEATER_TEMPERATURE HEATER={printer.toolhead.extruder} TARGET=0 {% endif %} [menu __main __temp_km __cooldown_hotend] type = command enable = {printer.idle_timeout.state != "Printing" and 'extruder' in printer} name = Cooldown hotend gcode = M104 S0 [menu __main __temp_km __cooldown_hotbed] type = command enable = {printer.idle_timeout.state != "Printing" and 'heater_bed' in printer} name = Cooldown bed gcode = M140 S0 [menu __main __temp_km __cooldown_chamber] type = command enable = {printer.idle_timeout.state != "Printing" and 'heater_generic chamber' in printer.heaters.available_heaters} name = Cooldown chamber gcode = M141 S0 [gcode_macro bed_mesh_calibrate] rename_existing = _KM_BED_MESH_CALIBRATE_BASE variable_km_override = True description = Wraps BED_MESH_CALIBRATE, scaling probe count to specified area. Usage: See Klipper documentation. gcode = BED_MESH_CALIBRATE_FAST{%for k in params%}{' '~k~'="'~params[k]~'"'}{%endfor%} [gcode_macro g29] gcode = BED_MESH_CALIBRATE [idle_timeout] gcode = _KM_IDLE_TIMEOUT [respond] [gcode_macro _USE_INFILL_SQV] gcode = {% set svv = printer.save_variables.variables %} {% set sqv = svv.infill_sqv | default(printer.configfile.settings.printer.square_corner_velocity, true) %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={ sqv } [gcode_macro _USE_NORMAL_SQV] gcode = {% set sqv = printer.configfile.settings.printer.square_corner_velocity %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={ sqv } [gcode_macro SET_INFILL_SQV] gcode = {% set svv = printer.save_variables.variables %} {% set val = params.SQV|default(svv.infill_sqv|default(printer.configfile.settings.printer.square_corner_velocity, true), true) | int %} SAVE_VARIABLE VARIABLE=infill_sqv VALUE={val} [menu __main __tune __square_corner_velocity] type = input name = SQV: {menu.input} input = {printer.toolhead.square_corner_velocity} input_step = 1 input_min = 1 input_max = 50 gcode = SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={menu.input} [menu __main __tune __square_corner_velocity_infill] type = input name = In SQV: {menu.input} input = {printer.save_variables.variables.infill_sqv | default(printer.configfile.settings.printer.square_corner_velocity, true) } input_step = 1 input_min = 1 input_max = 50 gcode = SET_INFILL_SQV SQV={menu.input} [gcode_macro GET_TIMELAPSE_SETUP] description = Print the Timelapse setup gcode = {% set tl = printer['gcode_macro TIMELAPSE_TAKE_FRAME'] %} {% set output_txt = ["Timelapse Setup:"] %} {% set _dummy = output_txt.append("enable: %s" % tl.enable) %} {% set _dummy = output_txt.append("park: %s" % tl.park.enable) %} {% if tl.park.enable %} {% set _dummy = output_txt.append("park position: %s time: %s s" % (tl.park.pos, tl.park.time)) %} {% set _dummy = output_txt.append("park cord x:%s y:%s dz:%s" % (tl.park.coord.x, tl.park.coord.y, tl.park.coord.dz)) %} {% set _dummy = output_txt.append("travel speed: %s mm/s" % tl.speed.travel) %} {% endif %} {% set _dummy = output_txt.append("fw_retract: %s" % tl.extruder.fw_retract) %} {% if not tl.extruder.fw_retract %} {% set _dummy = output_txt.append("retract: %s mm speed: %s mm/s" % (tl.extruder.retract, tl.speed.retract)) %} {% set _dummy = output_txt.append("extrude: %s mm speed: %s mm/s" % (tl.extruder.extrude, tl.speed.extrude)) %} {% endif %} {% set _dummy = output_txt.append("verbose: %s" % tl.verbose) %} {action_respond_info(output_txt|join("\n"))} [gcode_macro _SET_TIMELAPSE_SETUP] description = Set user parameters for timelapse gcode = {% set tl = printer['gcode_macro TIMELAPSE_TAKE_FRAME'] %} {% set min = printer.toolhead.axis_minimum %} {% set max = printer.toolhead.axis_maximum %} {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch'] else False %} {% set park = {'min' : {'x': (min.x / 1.42)|round(3) if round_bed else min.x|round(3), 'y': (min.y / 1.42)|round(3) if round_bed else min.y|round(3)}, 'max' : {'x': (max.x / 1.42)|round(3) if round_bed else max.x|round(3), 'y': (max.y / 1.42)|round(3) if round_bed else max.y|round(3)}, 'center': {'x': (max.x-(max.x-min.x)/2)|round(3), 'y': (max.y-(max.y-min.y)/2)|round(3)}} %} {% if params.ENABLE %} {% if params.ENABLE|lower is in ['true', 'false'] %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=enable VALUE={True if params.ENABLE|lower == 'true' else False} {% else %} {action_raise_error("ENABLE=%s not supported. Allowed values are [True, False]" % params.ENABLE|capitalize)} {% endif %} {% endif %} {% if params.VERBOSE %} {% if params.VERBOSE|lower is in ['true', 'false'] %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=verbose VALUE={True if params.VERBOSE|lower == 'true' else False} {% else %} {action_raise_error("VERBOSE=%s not supported. Allowed values are [True, False]" % params.VERBOSE|capitalize)} {% endif %} {% endif %} {% if params.CUSTOM_POS_X %} {% if params.CUSTOM_POS_X|float >= min.x and params.CUSTOM_POS_X|float <= max.x %} {% set _dummy = tl.park.custom.update({'x':params.CUSTOM_POS_X|float|round(3)}) %} {% else %} {action_raise_error("CUSTOM_POS_X=%s must be within [%s - %s]" % (params.CUSTOM_POS_X, min.x, max.x))} {% endif %} {% endif %} {% if params.CUSTOM_POS_Y %} {% if params.CUSTOM_POS_Y|float >= min.y and params.CUSTOM_POS_Y|float <= max.y %} {% set _dummy = tl.park.custom.update({'y':params.CUSTOM_POS_Y|float|round(3)}) %} {% else %} {action_raise_error("CUSTOM_POS_Y=%s must be within [%s - %s]" % (params.CUSTOM_POS_Y, min.y, max.y))} {% endif %} {% endif %} {% if params.CUSTOM_POS_DZ %} {% if params.CUSTOM_POS_DZ|float >= min.z and params.CUSTOM_POS_DZ|float <= max.z %} {% set _dummy = tl.park.custom.update({'dz':params.CUSTOM_POS_DZ|float|round(3)}) %} {% else %} {action_raise_error("CUSTOM_POS_DZ=%s must be within [%s - %s]" % (params.CUSTOM_POS_DZ, min.z, max.z))} {% endif %} {% endif %} {% if params.PARK_ENABLE %} {% if params.PARK_ENABLE|lower is in ['true', 'false'] %} {% set _dummy = tl.park.update({'enable':True if params.PARK_ENABLE|lower == 'true' else False}) %} {% else %} {action_raise_error("PARK_ENABLE=%s not supported. Allowed values are [True, False]" % params.PARK_ENABLE|capitalize)} {% endif %} {% endif %} {% if params.PARK_POS %} {% if params.PARK_POS|lower is in ['center','front_left','front_right','back_left','back_right','custom'] %} {% set dic = {'center' : {'x': park.center.x , 'y': park.center.y , 'dz': 1 }, 'front_left' : {'x': park.min.x , 'y': park.min.y , 'dz': 0 }, 'front_right': {'x': park.max.x , 'y': park.min.y , 'dz': 0 }, 'back_left' : {'x': park.min.x , 'y': park.max.y , 'dz': 0 }, 'back_right' : {'x': park.max.x , 'y': park.max.y , 'dz': 0 }, 'custom' : {'x': tl.park.custom.x, 'y': tl.park.custom.y, 'dz': tl.park.custom.dz}} %} {% set _dummy = tl.park.update({'pos':params.PARK_POS|lower}) %} {% set _dummy = tl.park.update({'coord':dic[tl.park.pos]}) %} {% else %} {action_raise_error("PARK_POS=%s not supported. Allowed values are [CENTER, FRONT_LEFT, FRONT_RIGHT, BACK_LEFT, BACK_RIGHT, CUSTOM]" % params.PARK_POS|upper)} {% endif %} {% endif %} {% if params.PARK_TIME %} {% if params.PARK_TIME|float >= 0.0 %} {% set _dummy = tl.park.update({'time':params.PARK_TIME|float|round(3)}) %} {% else %} {action_raise_error("PARK_TIME=%s must be a positive number" % params.PARK_TIME)} {% endif %} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=park VALUE="{tl.park}" {% if params.TRAVEL_SPEED %} {% if params.TRAVEL_SPEED|float > 0.0 %} {% set _dummy = tl.speed.update({'travel':params.TRAVEL_SPEED|float|round(3)}) %} {% else %} {action_raise_error("TRAVEL_SPEED=%s must be larger than 0" % params.TRAVEL_SPEED)} {% endif %} {% endif %} {% if params.RETRACT_SPEED %} {% if params.RETRACT_SPEED|float > 0.0 %} {% set _dummy = tl.speed.update({'retract':params.RETRACT_SPEED|float|round(3)}) %} {% else %} {action_raise_error("RETRACT_SPEED=%s must be larger than 0" % params.RETRACT_SPEED)} {% endif %} {% endif %} {% if params.EXTRUDE_SPEED %} {% if params.EXTRUDE_SPEED|float > 0.0 %} {% set _dummy = tl.speed.update({'extrude':params.EXTRUDE_SPEED|float|round(3)}) %} {% else %} {action_raise_error("EXTRUDE_SPEED=%s must be larger than 0" % params.EXTRUDE_SPEED)} {% endif %} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=speed VALUE="{tl.speed}" {% if params.EXTRUDE_DISTANCE %} {% if params.EXTRUDE_DISTANCE|float >= 0.0 %} {% set _dummy = tl.extruder.update({'extrude':params.EXTRUDE_DISTANCE|float|round(3)}) %} {% else %} {action_raise_error("EXTRUDE_DISTANCE=%s must be specified as positiv number" % params.EXTRUDE_DISTANCE)} {% endif %} {% endif %} {% if params.RETRACT_DISTANCE %} {% if params.RETRACT_DISTANCE|float >= 0.0 %} {% set _dummy = tl.extruder.update({'retract':params.RETRACT_DISTANCE|float|round(3)}) %} {% else %} {action_raise_error("RETRACT_DISTANCE=%s must be specified as positiv number" % params.RETRACT_DISTANCE)} {% endif %} {% endif %} {% if params.FW_RETRACT %} {% if params.FW_RETRACT|lower is in ['true', 'false'] %} {% if 'firmware_retraction' in printer.configfile.settings %} {% set _dummy = tl.extruder.update({'fw_retract': True if params.FW_RETRACT|lower == 'true' else False}) %} {% else %} {% set _dummy = tl.extruder.update({'fw_retract':False}) %} {% if params.FW_RETRACT|capitalize == 'True' %} {action_raise_error("[firmware_retraction] not defined in printer.cfg. Can not enable fw_retract")} {% endif %} {% endif %} {% else %} {action_raise_error("FW_RETRACT=%s not supported. Allowed values are [True, False]" % params.FW_RETRACT|capitalize)} {% endif %} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=extruder VALUE="{tl.extruder}" {% if printer.configfile.settings['gcode_macro pause'] is defined %} {% set _dummy = tl.macro.update({'pause': printer.configfile.settings['gcode_macro pause'].rename_existing}) %} {% endif %} {% if printer.configfile.settings['gcode_macro resume'] is defined %} {% set _dummy = tl.macro.update({'resume': printer.configfile.settings['gcode_macro resume'].rename_existing}) %} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=macro VALUE="{tl.macro}" [gcode_macro TIMELAPSE_TAKE_FRAME] description = Take Timelapse shoot variable_enable = False variable_takingframe = False variable_park = {'enable': False, 'pos' : 'center', 'time' : 0.1, 'custom': {'x': 0, 'y': 0, 'dz': 0}, 'coord' : {'x': 0, 'y': 0, 'dz': 0}} variable_extruder = {'fw_retract': False, 'retract': 1.0, 'extrude': 1.0} variable_speed = {'travel': 100, 'retract': 15, 'extrude': 15} variable_verbose = True variable_restore = {'absolute': {'coordinates': True, 'extrude': True}, 'speed': 1500, 'e':0, 'factor': {'speed': 1.0, 'extrude': 1.0}} variable_macro = {'pause': 'PAUSE', 'resume': 'RESUME'} variable_is_paused = False gcode = {% set hyperlapse = True if params.HYPERLAPSE and params.HYPERLAPSE|lower =='true' else False %} {% if enable %} {% if (hyperlapse and printer['gcode_macro HYPERLAPSE'].run) or (not hyperlapse and not printer['gcode_macro HYPERLAPSE'].run) %} {% if park.enable %} {% set pos = {'x': park.coord.x, 'y': park.coord.y, 'z': [printer.gcode_move.gcode_position.z + park.coord.dz, printer.toolhead.axis_maximum.z]|min} %} {% set restore = {'absolute': {'coordinates': printer.gcode_move.absolute_coordinates, 'extrude' : printer.gcode_move.absolute_extrude}, 'speed' : printer.gcode_move.speed, 'e' : printer.gcode_move.gcode_position.e, 'factor' : {'speed' : printer.gcode_move.speed_factor, 'extrude': printer.gcode_move.extrude_factor}} %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=restore VALUE="{restore}" {% if not printer[printer.toolhead.extruder].can_extrude %} {% if verbose %}{action_respond_info("Timelapse: Warning, minimum extruder temperature not reached!")}{% endif %} {% else %} {% if extruder.fw_retract %} G10 {% else %} M83 ; insure relative extrusion G0 E-{extruder.retract} F{speed.retract * 60} {% endif %} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=True {macro.pause} ; execute the klipper PAUSE command SET_GCODE_OFFSET X=0 Y=0 ; this will insure that the head parks always at the same position in a multi setup G90 ; insure absolute move {% if "xyz" not in printer.toolhead.homed_axes %} {% if verbose %}{action_respond_info("Timelapse: Warning, axis not homed yet!")}{% endif %} {% else %} G0 X{pos.x} Y{pos.y} Z{pos.z} F{speed.travel * 60} {% endif %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=takingframe VALUE=True UPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION=0.5 M400 {% endif %} _TIMELAPSE_NEW_FRAME HYPERLAPSE={hyperlapse} {% endif %} {% else %} {% if verbose %}{action_respond_info("Timelapse: disabled, take frame ignored")}{% endif %} {% endif %} [gcode_macro _TIMELAPSE_NEW_FRAME] description = action call for timelapse shoot. must be a seperate macro gcode = {action_call_remote_method("timelapse_newframe", macropark=printer['gcode_macro TIMELAPSE_TAKE_FRAME'].park, hyperlapse=params.HYPERLAPSE)} [delayed_gcode _WAIT_TIMELAPSE_TAKE_FRAME] gcode = {% set tl = printer['gcode_macro TIMELAPSE_TAKE_FRAME'] %} {% set factor = {'speed': printer.gcode_move.speed_factor, 'extrude': printer.gcode_move.extrude_factor} %} {% if tl.takingframe %} UPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_TAKE_FRAME DURATION=0.5 {% else %} {tl.macro.resume} VELOCITY={tl.speed.travel} ; execute the klipper RESUME command SET_GCODE_VARIABLE MACRO=TIMELAPSE_TAKE_FRAME VARIABLE=is_paused VALUE=False {% if not printer[printer.toolhead.extruder].can_extrude %} {action_respond_info("Timelapse: Warning minimum extruder temperature not reached!")} {% else %} {% if tl.extruder.fw_retract %} G11 {% else %} G0 E{tl.extruder.extrude} F{tl.speed.extrude * 60} G0 F{tl.restore.speed} {% if tl.restore.absolute.extrude %} M82 G92 E{tl.restore.e} {% endif %} {% endif %} {% endif %} {% if tl.restore.factor.speed != factor.speed %} M220 S{(factor.speed*100)|round(0)} {% endif %} {% if tl.restore.factor.extrude != factor.extrude %} M221 S{(factor.extrude*100)|round(0)} {% endif %} {% if not tl.restore.absolute.coordinates %} G91 {% endif %} {% endif %} [gcode_macro HYPERLAPSE] description = Start/Stop a hyperlapse recording variable_cycle = 0 variable_run = False gcode = {% set cycle = params.CYCLE|default(30)|int %} {% if params.ACTION and params.ACTION|lower == 'start' %} {action_respond_info("Hyperlapse: frames started (Cycle %d sec)" % cycle)} SET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=True SET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=cycle VALUE={cycle} UPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={cycle} TIMELAPSE_TAKE_FRAME HYPERLAPSE=True {% elif params.ACTION and params.ACTION|lower == 'stop' %} {% if run %}{action_respond_info("Hyperlapse: frames stopped")}{% endif %} SET_GCODE_VARIABLE MACRO=HYPERLAPSE VARIABLE=run VALUE=False UPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION=0 {% else %} {action_raise_error("Hyperlapse: No valid input parameter Use: - HYPERLAPSE ACTION=START [CYCLE=time] - HYPERLAPSE ACTION=STOP")} {% endif %} [delayed_gcode _HYPERLAPSE_LOOP] gcode = UPDATE_DELAYED_GCODE ID=_HYPERLAPSE_LOOP DURATION={printer["gcode_macro HYPERLAPSE"].cycle} TIMELAPSE_TAKE_FRAME HYPERLAPSE=True [gcode_macro TIMELAPSE_RENDER] description = Render Timelapse video and wait for the result variable_render = False variable_run_identifier = 0 gcode = {action_respond_info("Timelapse: Rendering started")} {action_call_remote_method("timelapse_render", byrendermacro="True")} SET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=render VALUE=True {printer.configfile.settings['gcode_macro pause'].rename_existing} ; execute the klipper PAUSE command UPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5 [delayed_gcode _WAIT_TIMELAPSE_RENDER] gcode = {% set ri = printer['gcode_macro TIMELAPSE_RENDER'].run_identifier % 4 %} SET_GCODE_VARIABLE MACRO=TIMELAPSE_RENDER VARIABLE=run_identifier VALUE={ri + 1} {% if printer['gcode_macro TIMELAPSE_RENDER'].render %} M117 Rendering {['-','\\','|','/'][ri]} UPDATE_DELAYED_GCODE ID=_WAIT_TIMELAPSE_RENDER DURATION=0.5 {% else %} {action_respond_info("Timelapse: Rendering finished")} M117 {printer.configfile.settings['gcode_macro resume'].rename_existing} ; execute the klipper RESUME command {% endif %} [gcode_macro TEST_STREAM_DELAY] description = Helper macro to find stream and park delay gcode = {% set min = printer.toolhead.axis_minimum %} {% set max = printer.toolhead.axis_maximum %} {% set act = printer.toolhead.position %} {% set tl = printer['gcode_macro TIMELAPSE_TAKE_FRAME'] %} {% if act.z > 5.0 %} G0 X{min.x + 5.0} F{tl.speed.travel|int * 60} G0 X{(max.x-min.x)/2} G4 P{tl.park.time|float * 1000} _TIMELAPSE_NEW_FRAME HYPERLAPSE=FALSE G0 X{max.x - 5.0} {% else %} {action_raise_error("Toolhead z %.3f to low. Please place head above z = 5.0" % act.z)} {% endif %} [gcode_macro DUMP_PARAMETER] description = Debug: Print entries of the printer object gcode = {% set config = True if params.C or params.S else False %} {% set path = 'config' if params.C else 'settings' if params.S %} {% set search = params.C if params.C else params.S if params.S else params.P if params.P %} {% set out = [] %} {% for name1 in printer|sort %} {% if config %} ; print the searched printer.configfile[path] parameter {% if name1 is in ['configfile'] %} {% for name2 in printer[name1][path]|sort %} {% if name2 is in [search] %} {% for name3, value in printer[name1][path][name2].items()|sort %} {% set _dummy = out.append("printer.configfile.%s['%s'].%s = %s" % (path, name2, name3, value)) %} {% endfor %} {% endif %} {% endfor %} {% endif %} {% else %} {% for name2, value in printer[name1].items()|sort %} ; search for anything expext printer.configfile {% if search is not defined and name1 is not in ['configfile'] %} ; print all printer. parameter {% set _dummy = out.append("printer['%s'].%s = %s" % (name1, name2, value)) %} {% elif search is defined and name1 is in [search] %} ; print the searched printer. parameter {% set _dummy = out.append("printer['%s'].%s = %s" % (name1, name2, value)) %} {% endif %} {% endfor %} {% endif %} {% endfor %} {% if out|length > 0 %} {action_respond_info(out|join("\n"))} {% else %} {action_respond_info("Nothing found for \"DUMP_PARAMETER %s\"" % rawparams)} {% endif %} [gcode_macro DUMP_PRINT_AREA_LIMITS] description = Debug: Print information about print volume and probeable area gcode = {% set min = printer.toolhead.axis_minimum %} {% set max = printer.toolhead.axis_maximum %} {% set probe_offset = {'x' : printer.configfile.settings.probe.x_offset, 'y' : printer.configfile.settings.probe.y_offset} %} {% set probe_area = {'min' : {'x' : [min.x,(min.x-probe_offset.x)]|max, 'y' : [min.y,(min.y-probe_offset.y)]|max}, 'max' : {'x' : [max.x,(max.x-probe_offset.x)]|min, 'y' : [max.y,(max.y-probe_offset.y)]|min}} %} {action_respond_info("Print Volume Limits: Min X:%7.1f, Y:%7.1f, Z:%7.1f Max X:%7.1f, Y:%7.1f, Z:%7.1f Probe Area Limits: Min X:%7.1f, Y:%7.1f Max X:%7.1f, Y:%7.1f" % (min.x,min.y,min.z,max.x,max.y,max.z,probe_area.min.x,probe_area.min.y, probe_area.max.x,probe_area.max.y))} [gcode_macro MOVE_TO_CALIBRATION_CAM] description = Move active extruder to cam position (front left of bed) gcode = {% set svv = printer.save_variables.variables %} {% set camX = svv.controlpointx|default(80.0)|float %} {% set camY = svv.controlpointy|default(0.0)|float %} {% set camZ = svv.controlpointz|default(0.0)|float %} {% if camZ == 0.0 %} M118 ERROR: No calibration points found in [save_variables] file {% else %} SAVE_GCODE_STATE NAME=calibcam G90 G1 X{ camX } Y{ camY } Z{ camZ } RESTORE_GCODE_STATE NAME=calibcam {% endif %} [gcode_macro SET_CONTROLPOINT] description = Set controlpoint for calibration cam / TAMV gcode = {% set svv = printer.save_variables.variables %} {% if params.X is defined %} SAVE_VARIABLE VARIABLE=controlpointx VALUE={ params.X|float } M118 set controlpointx { params.X } {% endif %} {% if params.Y is defined %} SAVE_VARIABLE VARIABLE=controlpointy VALUE={ params.Y|float } M118 set controlpointy { params.Y } {% endif %} {% if params.Z is defined %} SAVE_VARIABLE VARIABLE=controlpointz VALUE={ params.Z|float } M118 set controlpointz { params.Z } {% endif %} [gcode_macro SET_SEPARATION] gcode = {% set svv = printer.save_variables.variables %} {% set oldX = svv.xoffset|default(0.0)|float %} {% set oldY = svv.yoffset|default(0.0)|float %} {% set oldZ = svv.zoffset|default(0.0)|float %} {% if params.X is defined %} SAVE_VARIABLE VARIABLE=xoffset VALUE={ params.X|float } {% endif %} {% if params.Y is defined %} SAVE_VARIABLE VARIABLE=yoffset VALUE={ params.Y|float } {% endif %} {% if params.Z is defined %} SAVE_VARIABLE VARIABLE=zoffset VALUE={ params.Z|float } {% endif %} {% if params.X_ADJUST is defined %} {% set newX = params.X_ADJUST|float + oldX %} SAVE_VARIABLE VARIABLE=xoffset VALUE={ newX } {% endif %} {% if params.Y_ADJUST is defined %} {% set newY = params.Y_ADJUST|float + oldY %} SAVE_VARIABLE VARIABLE=yoffset VALUE={ newY } {% endif %} {% if params.Z_ADJUST is defined %} {% set newZ = params.Z_ADJUST|float + oldZ %} SAVE_VARIABLE VARIABLE=zoffset VALUE={ newZ } {% endif %} [gcode_macro GET_SEPARATION] gcode = {% set svv = printer.save_variables.variables %} {% set svvX = svv.xoffset|default(0.0)|float %} {% set svvY = svv.yoffset|default(0.0)|float %} {% set svvZ = svv.zoffset|default(0.0)|float %} M118 xoffset: { svvX } yoffset: { svvY } zoffset: { svvZ } [gcode_macro CALIBRATE_SEPARATION] gcode = {% set Y_MAX = printer.toolhead.axis_maximum.y|default(100)|float %} T1 M104 S150 ; set extruder temp below melting point T0 M104 S150 ; set extruder temp below melting point M140 S50 ; set bed temp M190 S50 ; wait for bed temp G28 G90 M83 G1 Z30 F1800 T0 M109 S205 ; wait for extruder temp G1 E10 F120 T1 M109 S205 ; wait for extruder temp G1 E10 F120 T0 ; test T0 G1 E5 F120 G1 X120 Y130 F4800 G1 Z.3 F1800 G1 Y70 E10 G1 Y130 G1 Z30 G1 E-2 F1800 T1 ; test T1 G1 E5 F120 G1 X120 Y10 F4800 G1 Z.3 F1800 G1 Y70 E10 G1 Y10 G1 Z30 G1 E-2 F1800 T0 ; test T0 G1 E5 F120 G1 X10 Y150 Z.3 F4800 G1 Z.3 F1800 G1 X70 E10 G1 X10 G1 Z30 G1 E-2 F1800 T1 ; test T1 G1 E5 F120 G1 X130 Y150 F4800 G1 Z.3 F1800 G1 X70 E10 G1 X130 G1 Z30 G1 E-2 F1800 G1 Y{Y_MAX} [bltouch] x_offset = 30.0 y_offset = 0.0 speed = 5.0 samples = 3 sample_retract_dist = 3.0 lift_speed = 100.0 samples_result = average samples_tolerance = 0.07 samples_tolerance_retries = 3 sensor_pin = ar32 control_pin = ar5 pin_move_time = 0.2 z_offset = 0.780 [skew_correction] [bed_mesh default] version = 1 points = -0.157463, -0.370614, -0.278014 0.117137, -0.041179, 0.122685 2.019069, 1.570790, 1.969355 tension = 0.2 min_x = 5.0 algo = lagrange y_count = 3 mesh_y_pps = 2 min_y = 0.0 x_count = 3 max_y = 300.0 mesh_x_pps = 2 max_x = 240.0 [skew_correction skew_11Nov22] xy_skew = -0.00248625312873 xz_skew = 0.0 yz_skew = 0.0 ======================= Declaration of '__main __octoprint' hides previous menuitem declaration Declaration of '__main __sdcard' hides previous menuitem declaration Declaration of '__main __sdcard __start' hides previous menuitem declaration Declaration of '__main __setup __calib __delta_calib_auto' hides previous menuitem declaration Declaration of '__main __setup __calib __delta_calib_man' hides previous menuitem declaration Declaration of '__main __control __disable' hides previous menuitem declaration Declaration of '__main __octoprint __abort' hides previous menuitem declaration Declaration of '__main __sdcard __cancel' hides previous menuitem declaration Declaration of '__main __setup __restart' hides previous menuitem declaration Declaration of '__main __filament' hides previous menuitem declaration Declaration of '__main __filament __loadf' hides previous menuitem declaration Declaration of '__main __filament __loads' hides previous menuitem declaration Declaration of '__main __filament __unloadf' hides previous menuitem declaration Declaration of '__main __filament __unloads' hides previous menuitem declaration Declaration of '__main __filament __feed' hides previous menuitem declaration Declaration of '__main __tune __offsetz' hides previous menuitem declaration Declaration of '__main __temp' hides previous menuitem declaration Extruder max_extrude_ratio=41.575169 Extruder max_extrude_ratio=41.575169 mcu 'mcu': Starting serial connect webhooks client 3039721592: New connection webhooks client 3039721592: Client info {'program': 'Moonraker', 'version': 'v0.7.1-780-gdde9bcc'} mcu 'mcu': got {'#receive_time': 58553.257884673, u'next_clock': 1446973376, u'oid': 19, u'value': 31652, '#name': u'analog_in_state', '#sent_time': 58553.249606451} mcu 'mcu': got {'#receive_time': 58553.388547969, u'next_clock': 1457893376, u'oid': 32, u'value': 31656, '#name': u'analog_in_state', '#sent_time': 58553.362786006} mcu 'mcu': got {'#receive_time': 58553.41746484, u'next_clock': 1460413376, u'oid': 35, u'value': 31712, '#name': u'analog_in_state', '#sent_time': 58553.362786006} mcu 'mcu': got {'#receive_time': 58553.556420358, u'next_clock': 1472173376, u'oid': 19, u'value': 31645, '#name': u'analog_in_state', '#sent_time': 58553.522307266} Loaded MCU 'mcu' 105 commands (v0.10.0-626-g5e34b450 / gcc: (15:7-2018-q2-6) 7.3.1 20180622 (release) [ARM/embedded-7-branch revision 261907] binutils: (2.31.1-11+rpi1+11) 2.31.1) MCU 'mcu' config: BUS_PINS_twi1=PB13,PB12 BUS_PINS_twi0=PA18,PA17 CLOCK_FREQ=84000000 SERIAL_BAUD=250000 BUS_PINS_usart0=PA10,PA11,PA17 BUS_PINS_usart2=PB21,PB20,PB24 ADC_MAX=4095 BUS_PINS_usart1=PA12,PA13,PA16 PWM_MAX=255 RESERVE_PINS_serial=PA8,PA9 BUS_PINS_spi0=PA25,PA26,PA27 RECEIVE_WINDOW=192 MCU=sam3x8e STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 Configured MCU 'mcu' (1024 moves) Starting heater checks for extruder Starting heater checks for heater_bed bed_mesh: generated points Index | Tool Adjusted | Probe 0 | (-25.0, 0.0) | (5.0, 0.0) 1 | (92.5, 0.0) | (122.5, 0.0) 2 | (210.0, 0.0) | (240.0, 0.0) 3 | (210.0, 150.0) | (240.0, 150.0) 4 | (92.5, 150.0) | (122.5, 150.0) 5 | (-25.0, 150.0) | (5.0, 150.0) 6 | (-25.0, 300.0) | (5.0, 300.0) 7 | (92.5, 300.0) | (122.5, 300.0) 8 | (210.0, 300.0) | (240.0, 300.0) Starting heater checks for extruder1 Z probe offset or endstop position changed. Run ADJUST_SURFACE_OFFSETS to adjust the offset for all saved surfaces by the change differential, or run ADJUST_SURFACE_OFFSETS IGNORE to hide this message without making changes. webhooks: registering remote method 'shutdown_machine' for connection id: 3039721592 webhooks: registering remote method 'reboot_machine' for connection id: 3039721592 webhooks: registering remote method 'pause_job_queue' for connection id: 3039721592 webhooks: registering remote method 'start_job_queue' for connection id: 3039721592 webhooks: registering remote method 'timelapse_newframe' for connection id: 3039721592 webhooks: registering remote method 'timelapse_saveFrames' for connection id: 3039721592 webhooks: registering remote method 'timelapse_render' for connection id: 3039721592 Stats 58555.2: gcodein=0 mcu: mcu_awake=0.061 mcu_task_avg=0.000200 mcu_task_stddev=0.000409 bytes_write=4066 bytes_read=4707 bytes_retransmit=9 bytes_invalid=17 send_seq=184 receive_seq=184 retransmit_seq=2 srtt=0.004 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83993851 heater_bed: target=0 temp=19.2 pwm=0.000 sysload=1.46 cputime=7.712 memavail=1258364 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=0.0 pwm=0.000 extruder1: target=0 temp=0.0 pwm=0.000 Stats 58556.2: gcodein=0 mcu: mcu_awake=0.061 mcu_task_avg=0.000200 mcu_task_stddev=0.000409 bytes_write=4143 bytes_read=4888 bytes_retransmit=9 bytes_invalid=17 send_seq=188 receive_seq=188 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83994585 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.46 cputime=7.781 memavail=1259716 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 58557.2: gcodein=0 mcu: mcu_awake=0.061 mcu_task_avg=0.000200 mcu_task_stddev=0.000409 bytes_write=4149 bytes_read=5054 bytes_retransmit=9 bytes_invalid=17 send_seq=189 receive_seq=189 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83995376 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.46 cputime=7.803 memavail=1258312 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.6 pwm=0.000 extruder1: target=0 temp=17.2 pwm=0.000 Stats 58558.2: gcodein=0 mcu: mcu_awake=0.061 mcu_task_avg=0.000200 mcu_task_stddev=0.000409 bytes_write=4155 bytes_read=5220 bytes_retransmit=9 bytes_invalid=17 send_seq=190 receive_seq=190 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83996010 heater_bed: target=0 temp=19.0 pwm=0.000 sysload=1.58 cputime=7.829 memavail=1259012 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.2 pwm=0.000 Stats 58559.2: gcodein=0 mcu: mcu_awake=0.061 mcu_task_avg=0.000200 mcu_task_stddev=0.000409 bytes_write=4161 bytes_read=5401 bytes_retransmit=9 bytes_invalid=17 send_seq=191 receive_seq=191 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83996476 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=1.58 cputime=7.854 memavail=1257668 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 58560.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000029 mcu_task_stddev=0.000105 bytes_write=4167 bytes_read=5567 bytes_retransmit=9 bytes_invalid=17 send_seq=192 receive_seq=192 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83996603 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=1.58 cputime=7.881 memavail=1257520 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 58561.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000029 mcu_task_stddev=0.000105 bytes_write=4173 bytes_read=5733 bytes_retransmit=9 bytes_invalid=17 send_seq=193 receive_seq=193 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83996801 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=1.58 cputime=7.908 memavail=1258476 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 58562.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000029 mcu_task_stddev=0.000105 bytes_write=4179 bytes_read=5914 bytes_retransmit=9 bytes_invalid=17 send_seq=194 receive_seq=194 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83996918 heater_bed: target=0 temp=19.1 pwm=0.000 sysload=1.58 cputime=7.935 memavail=1259328 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.6 pwm=0.000 Stats 58563.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000029 mcu_task_stddev=0.000105 bytes_write=4185 bytes_read=6065 bytes_retransmit=9 bytes_invalid=17 send_seq=195 receive_seq=195 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997049 heater_bed: target=0 temp=18.9 pwm=0.000 sysload=1.54 cputime=7.958 memavail=1258968 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 58564.2: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000029 mcu_task_stddev=0.000105 bytes_write=4191 bytes_read=6231 bytes_retransmit=9 bytes_invalid=17 send_seq=196 receive_seq=196 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997192 heater_bed: target=0 temp=18.0 pwm=0.000 sysload=1.54 cputime=7.987 memavail=1258788 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 58565.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000012 bytes_write=4230 bytes_read=6441 bytes_retransmit=9 bytes_invalid=17 send_seq=200 receive_seq=200 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997247 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.54 cputime=8.019 memavail=1258632 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 58566.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000012 bytes_write=4236 bytes_read=6592 bytes_retransmit=9 bytes_invalid=17 send_seq=201 receive_seq=201 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997323 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=1.54 cputime=8.043 memavail=1257740 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 58567.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000012 bytes_write=4261 bytes_read=6768 bytes_retransmit=9 bytes_invalid=17 send_seq=204 receive_seq=204 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997373 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.54 cputime=8.071 memavail=1258156 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.8 pwm=0.000 Stats 58568.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000012 bytes_write=4267 bytes_read=6949 bytes_retransmit=9 bytes_invalid=17 send_seq=205 receive_seq=205 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997416 heater_bed: target=0 temp=18.9 pwm=0.000 sysload=1.58 cputime=8.096 memavail=1257512 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.7 pwm=0.000 Stats 58569.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000012 bytes_write=4273 bytes_read=7100 bytes_retransmit=9 bytes_invalid=17 send_seq=206 receive_seq=206 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997449 heater_bed: target=0 temp=18.3 pwm=0.000 sysload=1.58 cputime=8.122 memavail=1259432 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 58570.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000019 bytes_write=4298 bytes_read=7291 bytes_retransmit=9 bytes_invalid=17 send_seq=209 receive_seq=209 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997499 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.58 cputime=8.148 memavail=1258940 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 58571.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000019 bytes_write=4323 bytes_read=7482 bytes_retransmit=9 bytes_invalid=17 send_seq=212 receive_seq=212 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997536 heater_bed: target=0 temp=19.3 pwm=0.000 sysload=1.58 cputime=8.175 memavail=1258752 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.1 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 58572.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000019 bytes_write=4343 bytes_read=7638 bytes_retransmit=9 bytes_invalid=17 send_seq=214 receive_seq=214 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997594 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=1.58 cputime=8.199 memavail=1258852 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 58573.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000019 bytes_write=4349 bytes_read=7804 bytes_retransmit=9 bytes_invalid=17 send_seq=215 receive_seq=215 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997651 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=1.45 cputime=8.226 memavail=1258232 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.2 pwm=0.000 Stats 58574.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000019 bytes_write=4355 bytes_read=7985 bytes_retransmit=9 bytes_invalid=17 send_seq=216 receive_seq=216 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997659 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.45 cputime=8.251 memavail=1258984 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 58575.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000017 bytes_write=4361 bytes_read=8151 bytes_retransmit=9 bytes_invalid=17 send_seq=217 receive_seq=217 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997672 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=1.45 cputime=8.275 memavail=1258988 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 58576.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000017 bytes_write=4367 bytes_read=8317 bytes_retransmit=9 bytes_invalid=17 send_seq=218 receive_seq=218 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997685 heater_bed: target=0 temp=18.1 pwm=0.000 sysload=1.45 cputime=8.299 memavail=1258700 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 58577.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000017 bytes_write=4411 bytes_read=8518 bytes_retransmit=9 bytes_invalid=17 send_seq=223 receive_seq=223 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997699 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=1.45 cputime=8.327 memavail=1259236 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 58578.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000017 bytes_write=4417 bytes_read=8669 bytes_retransmit=9 bytes_invalid=17 send_seq=224 receive_seq=224 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997709 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=1.49 cputime=8.352 memavail=1257964 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 58579.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000017 bytes_write=4448 bytes_read=8861 bytes_retransmit=9 bytes_invalid=17 send_seq=228 receive_seq=228 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997747 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.49 cputime=8.376 memavail=1258640 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.7 pwm=0.000 Stats 58580.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000017 bytes_write=4454 bytes_read=9057 bytes_retransmit=9 bytes_invalid=17 send_seq=229 receive_seq=229 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997759 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.49 cputime=8.401 memavail=1258488 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.1 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 58581.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000017 bytes_write=4479 bytes_read=9218 bytes_retransmit=9 bytes_invalid=17 send_seq=232 receive_seq=232 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997760 heater_bed: target=0 temp=18.9 pwm=0.000 sysload=1.49 cputime=8.426 memavail=1258792 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.1 pwm=0.000 Stats 58582.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000017 bytes_write=4485 bytes_read=9384 bytes_retransmit=9 bytes_invalid=17 send_seq=233 receive_seq=233 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997767 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=1.49 cputime=8.452 memavail=1259016 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 58583.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000017 bytes_write=4491 bytes_read=9565 bytes_retransmit=9 bytes_invalid=17 send_seq=234 receive_seq=234 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997777 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=1.45 cputime=8.476 memavail=1257904 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 58584.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000017 bytes_write=4516 bytes_read=9726 bytes_retransmit=9 bytes_invalid=17 send_seq=237 receive_seq=237 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997790 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=1.45 cputime=8.502 memavail=1257944 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 58585.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000015 bytes_write=4522 bytes_read=9906 bytes_retransmit=9 bytes_invalid=17 send_seq=238 receive_seq=238 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997838 heater_bed: target=0 temp=18.3 pwm=0.000 sysload=1.45 cputime=8.527 memavail=1256584 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 58586.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000015 bytes_write=4584 bytes_read=10107 bytes_retransmit=9 bytes_invalid=17 send_seq=243 receive_seq=243 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997837 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.45 cputime=8.555 memavail=1259200 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.1 pwm=0.000 Stats 58587.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000015 bytes_write=4604 bytes_read=10254 bytes_retransmit=9 bytes_invalid=17 send_seq=245 receive_seq=245 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997847 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.45 cputime=8.578 memavail=1258980 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 58588.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000015 bytes_write=4610 bytes_read=10409 bytes_retransmit=9 bytes_invalid=17 send_seq=246 receive_seq=246 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997846 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.42 cputime=8.609 memavail=1258524 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 58589.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000015 bytes_write=4616 bytes_read=10578 bytes_retransmit=9 bytes_invalid=17 send_seq=247 receive_seq=247 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997855 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.42 cputime=8.634 memavail=1258864 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 58590.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000031 bytes_write=4636 bytes_read=10746 bytes_retransmit=9 bytes_invalid=17 send_seq=249 receive_seq=249 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997854 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=1.42 cputime=8.663 memavail=1258944 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 58591.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000031 bytes_write=4661 bytes_read=10922 bytes_retransmit=9 bytes_invalid=17 send_seq=252 receive_seq=252 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997858 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.42 cputime=8.686 memavail=1258924 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.8 pwm=0.000 Stats 58592.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000031 bytes_write=4686 bytes_read=11113 bytes_retransmit=9 bytes_invalid=17 send_seq=255 receive_seq=255 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997869 heater_bed: target=0 temp=18.9 pwm=0.000 sysload=1.42 cputime=8.710 memavail=1259008 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.1 pwm=0.000 Stats 58593.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000031 bytes_write=4711 bytes_read=11274 bytes_retransmit=9 bytes_invalid=17 send_seq=258 receive_seq=258 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997868 heater_bed: target=0 temp=19.0 pwm=0.000 sysload=1.46 cputime=8.736 memavail=1257912 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 58594.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000031 bytes_write=4736 bytes_read=11450 bytes_retransmit=9 bytes_invalid=17 send_seq=261 receive_seq=261 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997878 heater_bed: target=0 temp=18.2 pwm=0.000 sysload=1.46 cputime=8.764 memavail=1257264 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 58595.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000023 bytes_write=4761 bytes_read=11656 bytes_retransmit=9 bytes_invalid=17 send_seq=264 receive_seq=264 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997887 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.46 cputime=8.791 memavail=1258088 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 58596.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000023 bytes_write=4786 bytes_read=11817 bytes_retransmit=9 bytes_invalid=17 send_seq=267 receive_seq=267 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997888 heater_bed: target=0 temp=18.3 pwm=0.000 sysload=1.46 cputime=8.820 memavail=1257476 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 58597.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000023 bytes_write=4811 bytes_read=11993 bytes_retransmit=9 bytes_invalid=17 send_seq=270 receive_seq=270 retransmit_seq=2 srtt=0.004 rttvar=0.002 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997897 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=1.46 cputime=8.845 memavail=1257976 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 58598.2: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000023 bytes_write=4831 bytes_read=12179 bytes_retransmit=9 bytes_invalid=17 send_seq=272 receive_seq=272 retransmit_seq=2 srtt=0.004 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997900 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=1.51 cputime=8.869 memavail=1257880 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.7 pwm=0.000 Stats 58599.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000023 bytes_write=4879 bytes_read=12345 bytes_retransmit=9 bytes_invalid=17 send_seq=276 receive_seq=276 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997900 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.51 cputime=8.898 memavail=1258620 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.1 pwm=0.000 Stats 58600.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000029 bytes_write=4885 bytes_read=12526 bytes_retransmit=9 bytes_invalid=17 send_seq=277 receive_seq=277 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997905 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=1.51 cputime=8.922 memavail=1258896 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.2 pwm=0.000 Stats 58601.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000029 bytes_write=4891 bytes_read=12707 bytes_retransmit=9 bytes_invalid=17 send_seq=278 receive_seq=278 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997902 heater_bed: target=0 temp=18.2 pwm=0.000 sysload=1.51 cputime=8.947 memavail=1258720 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 58602.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000029 bytes_write=4897 bytes_read=12858 bytes_retransmit=9 bytes_invalid=17 send_seq=279 receive_seq=279 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997916 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.51 cputime=8.969 memavail=1258716 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 58603.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000029 bytes_write=4903 bytes_read=13024 bytes_retransmit=9 bytes_invalid=17 send_seq=280 receive_seq=280 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997918 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=1.47 cputime=8.998 memavail=1257024 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 58604.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000029 bytes_write=4909 bytes_read=13205 bytes_retransmit=9 bytes_invalid=17 send_seq=281 receive_seq=281 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997929 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.47 cputime=9.023 memavail=1258116 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.6 pwm=0.000 Stats 58605.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000009 bytes_write=4915 bytes_read=13370 bytes_retransmit=9 bytes_invalid=17 send_seq=282 receive_seq=282 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997928 heater_bed: target=0 temp=18.2 pwm=0.000 sysload=1.47 cputime=9.055 memavail=1257644 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 58606.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000009 bytes_write=4921 bytes_read=13536 bytes_retransmit=9 bytes_invalid=17 send_seq=283 receive_seq=283 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997934 heater_bed: target=0 temp=18.3 pwm=0.000 sysload=1.47 cputime=9.082 memavail=1257800 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.2 pwm=0.000 Stats 58607.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000009 bytes_write=4960 bytes_read=13732 bytes_retransmit=9 bytes_invalid=17 send_seq=287 receive_seq=287 retransmit_seq=2 srtt=0.004 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997937 heater_bed: target=0 temp=18.3 pwm=0.000 sysload=1.47 cputime=9.109 memavail=1258136 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 58608.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000009 bytes_write=4985 bytes_read=13893 bytes_retransmit=9 bytes_invalid=17 send_seq=290 receive_seq=290 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997934 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.51 cputime=9.132 memavail=1256700 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.8 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 58609.3: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000013 mcu_task_stddev=0.000009 bytes_write=5038 bytes_read=14079 bytes_retransmit=9 bytes_invalid=17 send_seq=295 receive_seq=295 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997932 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=1.51 cputime=9.161 memavail=1256968 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 58610.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000028 bytes_write=5044 bytes_read=14275 bytes_retransmit=9 bytes_invalid=17 send_seq=296 receive_seq=296 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997933 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=1.51 cputime=9.188 memavail=1258468 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 58611.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000028 bytes_write=5050 bytes_read=14441 bytes_retransmit=9 bytes_invalid=17 send_seq=297 receive_seq=297 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997939 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=1.51 cputime=9.213 memavail=1258592 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.2 pwm=0.000 Stats 58612.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000028 bytes_write=5056 bytes_read=14592 bytes_retransmit=9 bytes_invalid=17 send_seq=298 receive_seq=298 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997935 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=1.51 cputime=9.236 memavail=1257476 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.6 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 58613.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000028 bytes_write=5062 bytes_read=14773 bytes_retransmit=9 bytes_invalid=17 send_seq=299 receive_seq=299 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997934 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=1.47 cputime=9.261 memavail=1257668 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 58614.3: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000028 bytes_write=5068 bytes_read=14939 bytes_retransmit=9 bytes_invalid=17 send_seq=300 receive_seq=300 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997931 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=1.47 cputime=9.286 memavail=1258780 print_time=58511.765 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59155.7: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000024 mcu_task_stddev=0.000034 bytes_write=15495 bytes_read=109368 bytes_retransmit=9 bytes_invalid=17 send_seq=1496 receive_seq=1496 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998005 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=1.65 cputime=22.503 memavail=1196860 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.6 pwm=0.000 Stats 59156.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000019 bytes_write=15515 bytes_read=109549 bytes_retransmit=9 bytes_invalid=17 send_seq=1498 receive_seq=1497 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998003 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.65 cputime=22.528 memavail=1195232 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59157.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000019 bytes_write=15521 bytes_read=109705 bytes_retransmit=9 bytes_invalid=17 send_seq=1499 receive_seq=1499 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.65 cputime=22.547 memavail=1196336 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59158.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000019 bytes_write=15527 bytes_read=109886 bytes_retransmit=9 bytes_invalid=17 send_seq=1500 receive_seq=1500 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998000 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.65 cputime=22.568 memavail=1196556 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59159.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000019 bytes_write=15533 bytes_read=110052 bytes_retransmit=9 bytes_invalid=17 send_seq=1501 receive_seq=1501 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.67 cputime=22.589 memavail=1193880 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59160.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000019 bytes_write=15539 bytes_read=110203 bytes_retransmit=9 bytes_invalid=17 send_seq=1502 receive_seq=1502 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998004 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.67 cputime=22.607 memavail=1193820 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59161.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000015 bytes_write=15545 bytes_read=110398 bytes_retransmit=9 bytes_invalid=17 send_seq=1503 receive_seq=1503 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998004 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=1.67 cputime=22.626 memavail=1193544 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.2 pwm=0.000 Stats 59162.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000015 bytes_write=15560 bytes_read=110564 bytes_retransmit=9 bytes_invalid=17 send_seq=1505 receive_seq=1504 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=5 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=1.67 cputime=22.645 memavail=1193576 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.9 pwm=0.000 Stats 59163.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000015 bytes_write=15576 bytes_read=110740 bytes_retransmit=9 bytes_invalid=17 send_seq=1507 receive_seq=1507 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998003 heater_bed: target=0 temp=19.0 pwm=0.000 sysload=1.67 cputime=22.667 memavail=1188436 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59164.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000015 bytes_write=15596 bytes_read=110911 bytes_retransmit=9 bytes_invalid=17 send_seq=1509 receive_seq=1509 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.94 cputime=22.687 memavail=1188576 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59165.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000014 mcu_task_stddev=0.000015 bytes_write=15602 bytes_read=111077 bytes_retransmit=9 bytes_invalid=17 send_seq=1510 receive_seq=1510 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.94 cputime=22.707 memavail=1188524 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59166.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000017 bytes_write=15608 bytes_read=111258 bytes_retransmit=9 bytes_invalid=17 send_seq=1511 receive_seq=1511 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997999 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.94 cputime=22.728 memavail=1188048 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59167.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000017 bytes_write=15614 bytes_read=111424 bytes_retransmit=9 bytes_invalid=17 send_seq=1512 receive_seq=1512 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.94 cputime=22.751 memavail=1185796 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59168.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000017 bytes_write=15629 bytes_read=111590 bytes_retransmit=9 bytes_invalid=17 send_seq=1514 receive_seq=1513 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=5 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.94 cputime=22.771 memavail=1185988 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.8 pwm=0.000 Stats 59169.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000017 bytes_write=15664 bytes_read=111776 bytes_retransmit=9 bytes_invalid=17 send_seq=1518 receive_seq=1518 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=18.9 pwm=0.000 sysload=1.87 cputime=22.793 memavail=1186036 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59170.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000017 bytes_write=15689 bytes_read=111952 bytes_retransmit=9 bytes_invalid=17 send_seq=1521 receive_seq=1521 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998003 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=1.87 cputime=22.816 memavail=1186004 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59171.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000016 mcu_task_stddev=0.000017 bytes_write=15723 bytes_read=112128 bytes_retransmit=9 bytes_invalid=17 send_seq=1525 receive_seq=1524 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=5 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=1.87 cputime=22.840 memavail=1183936 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.6 pwm=0.000 Stats 59172.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000018 mcu_task_stddev=0.000019 bytes_write=15758 bytes_read=112329 bytes_retransmit=9 bytes_invalid=17 send_seq=1529 receive_seq=1529 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997998 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.87 cputime=22.862 memavail=1182456 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.6 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59173.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000018 mcu_task_stddev=0.000019 bytes_write=15792 bytes_read=112500 bytes_retransmit=9 bytes_invalid=17 send_seq=1532 receive_seq=1531 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998000 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.87 cputime=22.883 memavail=1182456 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59174.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000018 mcu_task_stddev=0.000019 bytes_write=15826 bytes_read=112681 bytes_retransmit=9 bytes_invalid=17 send_seq=1536 receive_seq=1535 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=5 stalled_bytes=0 freq=83997998 heater_bed: target=0 temp=18.0 pwm=0.000 sysload=2.12 cputime=22.903 memavail=1181888 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59175.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000018 mcu_task_stddev=0.000019 bytes_write=15861 bytes_read=112867 bytes_retransmit=9 bytes_invalid=17 send_seq=1540 receive_seq=1540 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997997 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=2.12 cputime=22.924 memavail=1182044 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.2 pwm=0.000 Stats 59176.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000018 mcu_task_stddev=0.000019 bytes_write=15895 bytes_read=113043 bytes_retransmit=9 bytes_invalid=17 send_seq=1544 receive_seq=1543 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=5 stalled_bytes=0 freq=83997995 heater_bed: target=0 temp=18.3 pwm=0.000 sysload=2.12 cputime=22.946 memavail=1179700 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59177.7: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000022 mcu_task_stddev=0.000026 bytes_write=15930 bytes_read=113244 bytes_retransmit=9 bytes_invalid=17 send_seq=1548 receive_seq=1548 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997999 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.12 cputime=22.967 memavail=1179740 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59178.7: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000022 mcu_task_stddev=0.000026 bytes_write=15955 bytes_read=113420 bytes_retransmit=9 bytes_invalid=17 send_seq=1551 receive_seq=1551 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997997 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=2.12 cputime=22.987 memavail=1180332 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59179.7: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000022 mcu_task_stddev=0.000026 bytes_write=15980 bytes_read=113596 bytes_retransmit=9 bytes_invalid=17 send_seq=1554 receive_seq=1554 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997995 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=2.03 cputime=23.008 memavail=1180292 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.6 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59180.7: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000022 mcu_task_stddev=0.000026 bytes_write=16005 bytes_read=113772 bytes_retransmit=9 bytes_invalid=17 send_seq=1557 receive_seq=1557 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997995 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.03 cputime=23.031 memavail=1180060 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.9 pwm=0.000 Stats 59181.7: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000022 mcu_task_stddev=0.000026 bytes_write=16030 bytes_read=113948 bytes_retransmit=9 bytes_invalid=17 send_seq=1560 receive_seq=1560 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997998 heater_bed: target=0 temp=19.2 pwm=0.000 sysload=2.03 cputime=23.052 memavail=1180844 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.6 pwm=0.000 Stats 59182.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000022 bytes_write=16074 bytes_read=114149 bytes_retransmit=9 bytes_invalid=17 send_seq=1565 receive_seq=1565 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997996 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=2.03 cputime=23.076 memavail=1180820 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59183.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000022 bytes_write=16080 bytes_read=114315 bytes_retransmit=9 bytes_invalid=17 send_seq=1566 receive_seq=1566 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997998 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.03 cputime=23.096 memavail=1180348 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.6 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59184.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000022 bytes_write=16086 bytes_read=114481 bytes_retransmit=9 bytes_invalid=17 send_seq=1567 receive_seq=1567 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997999 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.94 cputime=23.123 memavail=1176816 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.7 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59185.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000022 bytes_write=16092 bytes_read=114647 bytes_retransmit=9 bytes_invalid=17 send_seq=1568 receive_seq=1568 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997998 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=1.94 cputime=23.142 memavail=1175544 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59186.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000022 bytes_write=16098 bytes_read=114813 bytes_retransmit=9 bytes_invalid=17 send_seq=1569 receive_seq=1569 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997996 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.94 cputime=23.165 memavail=1175852 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59187.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000014 bytes_write=16104 bytes_read=114993 bytes_retransmit=9 bytes_invalid=17 send_seq=1570 receive_seq=1570 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997998 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=1.94 cputime=23.184 memavail=1176072 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59188.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000014 bytes_write=16110 bytes_read=115159 bytes_retransmit=9 bytes_invalid=17 send_seq=1571 receive_seq=1571 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997997 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=1.94 cputime=23.206 memavail=1176132 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.7 pwm=0.000 Stats 59189.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000014 bytes_write=16136 bytes_read=115346 bytes_retransmit=9 bytes_invalid=17 send_seq=1574 receive_seq=1574 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997994 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=2.03 cputime=23.227 memavail=1176172 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.6 pwm=0.000 Stats 59190.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000014 bytes_write=16156 bytes_read=115517 bytes_retransmit=9 bytes_invalid=17 send_seq=1576 receive_seq=1576 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997993 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=2.03 cputime=23.249 memavail=1176252 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59191.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000015 mcu_task_stddev=0.000014 bytes_write=16181 bytes_read=115693 bytes_retransmit=9 bytes_invalid=17 send_seq=1579 receive_seq=1579 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997993 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.03 cputime=23.272 memavail=1175472 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59192.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000021 bytes_write=16187 bytes_read=115874 bytes_retransmit=9 bytes_invalid=17 send_seq=1580 receive_seq=1580 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997994 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=2.03 cputime=23.298 memavail=1174304 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.6 pwm=0.000 Stats 59193.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000021 bytes_write=16207 bytes_read=116045 bytes_retransmit=9 bytes_invalid=17 send_seq=1582 receive_seq=1582 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997993 heater_bed: target=0 temp=18.2 pwm=0.000 sysload=2.03 cputime=23.319 memavail=1173296 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.7 pwm=0.000 Stats 59194.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000021 bytes_write=16227 bytes_read=116216 bytes_retransmit=9 bytes_invalid=17 send_seq=1584 receive_seq=1584 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997991 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.95 cputime=23.341 memavail=1174272 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.8 pwm=0.000 Stats 59195.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000021 bytes_write=16233 bytes_read=116382 bytes_retransmit=9 bytes_invalid=17 send_seq=1585 receive_seq=1585 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997990 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=1.95 cputime=23.363 memavail=1174276 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.1 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59196.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000021 bytes_write=16253 bytes_read=116553 bytes_retransmit=9 bytes_invalid=17 send_seq=1587 receive_seq=1587 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997991 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.95 cputime=23.385 memavail=1173760 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59197.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000022 bytes_write=16287 bytes_read=116744 bytes_retransmit=9 bytes_invalid=17 send_seq=1590 receive_seq=1590 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997993 heater_bed: target=0 temp=19.0 pwm=0.000 sysload=1.95 cputime=23.409 memavail=1175296 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59198.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000022 bytes_write=16293 bytes_read=116910 bytes_retransmit=9 bytes_invalid=17 send_seq=1591 receive_seq=1591 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997998 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.95 cputime=23.431 memavail=1171568 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59199.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000022 bytes_write=16299 bytes_read=117076 bytes_retransmit=9 bytes_invalid=17 send_seq=1592 receive_seq=1592 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=18.0 pwm=0.000 sysload=2.03 cputime=23.452 memavail=1170764 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59200.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000022 bytes_write=16324 bytes_read=117243 bytes_retransmit=9 bytes_invalid=17 send_seq=1595 receive_seq=1595 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998000 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.03 cputime=23.473 memavail=1170988 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59201.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000017 mcu_task_stddev=0.000022 bytes_write=16358 bytes_read=117408 bytes_retransmit=9 bytes_invalid=17 send_seq=1598 receive_seq=1598 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997998 heater_bed: target=0 temp=18.2 pwm=0.000 sysload=2.03 cputime=23.495 memavail=1170512 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.7 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59202.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000021 mcu_task_stddev=0.000031 bytes_write=16392 bytes_read=117602 bytes_retransmit=9 bytes_invalid=17 send_seq=1601 receive_seq=1601 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.03 cputime=23.520 memavail=1171272 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59203.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000021 mcu_task_stddev=0.000031 bytes_write=16412 bytes_read=117755 bytes_retransmit=9 bytes_invalid=17 send_seq=1603 receive_seq=1603 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998000 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=2.03 cputime=23.544 memavail=1170448 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59204.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000021 mcu_task_stddev=0.000031 bytes_write=16418 bytes_read=117921 bytes_retransmit=9 bytes_invalid=17 send_seq=1604 receive_seq=1604 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998005 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.11 cputime=23.566 memavail=1173224 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59205.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000021 mcu_task_stddev=0.000031 bytes_write=16424 bytes_read=118102 bytes_retransmit=9 bytes_invalid=17 send_seq=1605 receive_seq=1605 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998007 heater_bed: target=0 temp=18.2 pwm=0.000 sysload=2.11 cputime=23.590 memavail=1172992 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.9 pwm=0.000 Stats 59206.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000021 mcu_task_stddev=0.000031 bytes_write=16486 bytes_read=118273 bytes_retransmit=9 bytes_invalid=17 send_seq=1610 receive_seq=1610 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998005 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=2.11 cputime=23.613 memavail=1169316 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59207.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000033 bytes_write=16520 bytes_read=118464 bytes_retransmit=9 bytes_invalid=17 send_seq=1613 receive_seq=1613 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998004 heater_bed: target=0 temp=19.1 pwm=0.000 sysload=2.11 cputime=23.637 memavail=1167812 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.6 pwm=0.000 Stats 59208.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000033 bytes_write=16540 bytes_read=118650 bytes_retransmit=9 bytes_invalid=17 send_seq=1615 receive_seq=1615 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998007 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.11 cputime=23.659 memavail=1167952 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.7 pwm=0.000 Stats 59209.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000033 bytes_write=16546 bytes_read=118801 bytes_retransmit=9 bytes_invalid=17 send_seq=1616 receive_seq=1616 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998005 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.02 cputime=23.682 memavail=1166964 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59210.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000033 bytes_write=16585 bytes_read=118982 bytes_retransmit=9 bytes_invalid=17 send_seq=1620 receive_seq=1620 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998004 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=2.02 cputime=23.708 memavail=1168648 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59211.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000033 bytes_write=16610 bytes_read=119173 bytes_retransmit=9 bytes_invalid=17 send_seq=1623 receive_seq=1623 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.02 cputime=23.731 memavail=1167468 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59212.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000026 bytes_write=16635 bytes_read=119349 bytes_retransmit=9 bytes_invalid=17 send_seq=1626 receive_seq=1626 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998000 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.02 cputime=23.755 memavail=1168500 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.6 pwm=0.000 Stats 59213.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000026 bytes_write=16655 bytes_read=119520 bytes_retransmit=9 bytes_invalid=17 send_seq=1628 receive_seq=1628 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.02 cputime=23.777 memavail=1168216 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.7 pwm=0.000 Stats 59214.7: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000020 mcu_task_stddev=0.000026 bytes_write=16680 bytes_read=119711 bytes_retransmit=9 bytes_invalid=17 send_seq=1631 receive_seq=1631 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997999 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.26 cputime=23.799 memavail=1168468 print_time=59112.705 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 toolhead: max_velocity: 270.000000 max_accel: 500.000000 max_accel_to_decel: 250.000000 square_corner_velocity: 5.000000 Stats 59238.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000021 mcu_task_stddev=0.000028 bytes_write=17451 bytes_read=123944 bytes_retransmit=9 bytes_invalid=17 send_seq=1690 receive_seq=1690 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=37 stalled_bytes=0 freq=83997999 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=1.97 cputime=24.320 memavail=1158468 print_time=59197.606 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59239.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000021 mcu_task_stddev=0.000028 bytes_write=17530 bytes_read=124110 bytes_retransmit=9 bytes_invalid=17 send_seq=1694 receive_seq=1694 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997998 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=2.13 cputime=24.343 memavail=1158436 print_time=59197.606 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.2 pwm=0.000 Stats 59240.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000021 mcu_task_stddev=0.000028 bytes_write=18082 bytes_read=124432 bytes_retransmit=9 bytes_invalid=17 send_seq=1712 receive_seq=1712 retransmit_seq=2 srtt=0.003 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998000 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=2.13 cputime=24.376 memavail=1158436 print_time=59198.139 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59241.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000021 mcu_task_stddev=0.000028 bytes_write=18558 bytes_read=124875 bytes_retransmit=9 bytes_invalid=17 send_seq=1740 receive_seq=1740 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=2.13 cputime=24.419 memavail=1158408 print_time=59198.993 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59242.8: gcodein=0 mcu: mcu_awake=0.006 mcu_task_avg=0.000027 mcu_task_stddev=0.000050 bytes_write=19325 bytes_read=125333 bytes_retransmit=9 bytes_invalid=17 send_seq=1774 receive_seq=1774 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.13 cputime=24.457 memavail=1158404 print_time=59199.992 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59243.8: gcodein=0 mcu: mcu_awake=0.006 mcu_task_avg=0.000027 mcu_task_stddev=0.000050 bytes_write=19893 bytes_read=125814 bytes_retransmit=9 bytes_invalid=17 send_seq=1807 receive_seq=1807 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=2.13 cputime=24.499 memavail=1159780 print_time=59201.043 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59244.8: gcodein=0 mcu: mcu_awake=0.006 mcu_task_avg=0.000027 mcu_task_stddev=0.000050 bytes_write=20587 bytes_read=126262 bytes_retransmit=9 bytes_invalid=17 send_seq=1839 receive_seq=1839 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997999 heater_bed: target=0 temp=18.2 pwm=0.000 sysload=2.12 cputime=24.545 memavail=1156560 print_time=59201.993 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.7 pwm=0.000 Stats 59245.8: gcodein=0 mcu: mcu_awake=0.006 mcu_task_avg=0.000027 mcu_task_stddev=0.000050 bytes_write=21254 bytes_read=126681 bytes_retransmit=9 bytes_invalid=17 send_seq=1870 receive_seq=1868 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=18.3 pwm=0.000 sysload=2.12 cputime=24.588 memavail=1153152 print_time=59203.012 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.6 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59246.8: gcodein=0 mcu: mcu_awake=0.006 mcu_task_avg=0.000027 mcu_task_stddev=0.000050 bytes_write=21639 bytes_read=127147 bytes_retransmit=9 bytes_invalid=17 send_seq=1903 receive_seq=1901 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.12 cputime=24.625 memavail=1152980 print_time=59204.012 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.6 pwm=0.000 extruder1: target=0 temp=17.1 pwm=0.000 Extruder extruder already active Stats 59247.8: gcodein=0 mcu: mcu_awake=0.008 mcu_task_avg=0.000025 mcu_task_stddev=0.000030 bytes_write=23976 bytes_read=127833 bytes_retransmit=9 bytes_invalid=17 send_seq=1969 receive_seq=1966 retransmit_seq=2 srtt=0.003 rttvar=0.002 rto=0.025 ready_bytes=1591 stalled_bytes=26 freq=83997998 heater_bed: target=0 temp=18.1 pwm=0.000 sysload=2.12 cputime=24.719 memavail=1153172 print_time=59208.101 buffer_time=3.310 print_stall=0 extruder: target=0 temp=18.6 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59248.8: gcodein=0 mcu: mcu_awake=0.008 mcu_task_avg=0.000025 mcu_task_stddev=0.000030 bytes_write=25736 bytes_read=128139 bytes_retransmit=9 bytes_invalid=17 send_seq=1998 receive_seq=1998 retransmit_seq=2 srtt=0.003 rttvar=0.002 rto=0.025 ready_bytes=0 stalled_bytes=26 freq=83998025 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.12 cputime=24.746 memavail=1154372 print_time=59208.101 buffer_time=2.308 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59249.8: gcodein=0 mcu: mcu_awake=0.008 mcu_task_avg=0.000025 mcu_task_stddev=0.000030 bytes_write=25761 bytes_read=128315 bytes_retransmit=9 bytes_invalid=17 send_seq=2001 receive_seq=2001 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=26 freq=83998023 heater_bed: target=0 temp=18.9 pwm=0.000 sysload=2.35 cputime=24.771 memavail=1154164 print_time=59208.101 buffer_time=1.308 print_stall=0 extruder: target=0 temp=18.0 pwm=0.000 extruder1: target=0 temp=17.1 pwm=0.000 Stats 59250.8: gcodein=0 mcu: mcu_awake=0.008 mcu_task_avg=0.000025 mcu_task_stddev=0.000030 bytes_write=25773 bytes_read=128512 bytes_retransmit=9 bytes_invalid=17 send_seq=2003 receive_seq=2003 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=26 freq=83998016 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.35 cputime=24.799 memavail=1154372 print_time=59208.101 buffer_time=0.307 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 extruder1: target=0 temp=17.7 pwm=0.000 Stats 59251.8: gcodein=0 mcu: mcu_awake=0.008 mcu_task_avg=0.000025 mcu_task_stddev=0.000030 bytes_write=26135 bytes_read=128838 bytes_retransmit=9 bytes_invalid=17 send_seq=2025 receive_seq=2025 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998014 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=2.35 cputime=24.833 memavail=1153116 print_time=59208.998 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.6 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59252.8: gcodein=0 mcu: mcu_awake=0.009 mcu_task_avg=0.000029 mcu_task_stddev=0.000044 bytes_write=26647 bytes_read=129288 bytes_retransmit=9 bytes_invalid=17 send_seq=2056 receive_seq=2056 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998013 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=2.35 cputime=24.873 memavail=1154372 print_time=59209.998 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.6 pwm=0.000 extruder1: target=0 temp=17.7 pwm=0.000 Stats 59253.8: gcodein=0 mcu: mcu_awake=0.009 mcu_task_avg=0.000029 mcu_task_stddev=0.000044 bytes_write=27266 bytes_read=129830 bytes_retransmit=9 bytes_invalid=17 send_seq=2098 receive_seq=2097 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=8 freq=83998009 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.35 cputime=24.919 memavail=1154108 print_time=59211.036 buffer_time=0.240 print_stall=0 extruder: target=0 temp=18.7 pwm=0.000 extruder1: target=0 temp=17.8 pwm=0.000 Stats 59254.8: gcodein=0 mcu: mcu_awake=0.009 mcu_task_avg=0.000029 mcu_task_stddev=0.000044 bytes_write=27778 bytes_read=130174 bytes_retransmit=9 bytes_invalid=17 send_seq=2117 receive_seq=2117 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=8 freq=83998009 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.24 cputime=24.958 memavail=1150780 print_time=59212.662 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.6 pwm=0.000 Stats 59255.8: gcodein=0 mcu: mcu_awake=0.009 mcu_task_avg=0.000029 mcu_task_stddev=0.000044 bytes_write=28054 bytes_read=130428 bytes_retransmit=9 bytes_invalid=17 send_seq=2130 receive_seq=2130 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998007 heater_bed: target=0 temp=18.2 pwm=0.000 sysload=2.24 cputime=24.987 memavail=1151168 print_time=59213.012 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.0 pwm=0.000 extruder1: target=0 temp=18.2 pwm=0.000 Stats 59256.8: gcodein=0 mcu: mcu_awake=0.009 mcu_task_avg=0.000029 mcu_task_stddev=0.000044 bytes_write=28633 bytes_read=130914 bytes_retransmit=9 bytes_invalid=17 send_seq=2164 receive_seq=2164 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998004 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=2.24 cputime=25.032 memavail=1150876 print_time=59214.012 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.0 pwm=0.000 Stats 59257.8: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000025 mcu_task_stddev=0.000024 bytes_write=29258 bytes_read=131469 bytes_retransmit=9 bytes_invalid=17 send_seq=2201 receive_seq=2201 retransmit_seq=2 srtt=0.003 rttvar=0.000 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998005 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.24 cputime=25.078 memavail=1151452 print_time=59214.906 buffer_time=0.106 print_stall=0 extruder: target=0 temp=18.6 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59258.8: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000025 mcu_task_stddev=0.000024 bytes_write=32149 bytes_read=131972 bytes_retransmit=9 bytes_invalid=17 send_seq=2256 receive_seq=2256 retransmit_seq=2 srtt=0.004 rttvar=0.002 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998007 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=2.24 cputime=25.151 memavail=1151088 print_time=59217.818 buffer_time=2.016 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59259.8: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000025 mcu_task_stddev=0.000024 bytes_write=32498 bytes_read=132193 bytes_retransmit=9 bytes_invalid=17 send_seq=2265 receive_seq=2265 retransmit_seq=2 srtt=0.004 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998004 heater_bed: target=0 temp=19.2 pwm=0.000 sysload=2.14 cputime=25.190 memavail=1158180 print_time=59218.968 buffer_time=2.165 print_stall=0 extruder: target=0 temp=18.7 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59260.8: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000025 mcu_task_stddev=0.000024 bytes_write=32579 bytes_read=132369 bytes_retransmit=9 bytes_invalid=17 send_seq=2268 receive_seq=2268 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=2.14 cputime=25.218 memavail=1164308 print_time=59219.068 buffer_time=1.265 print_stall=0 extruder: target=0 temp=17.9 pwm=0.000 extruder1: target=0 temp=18.0 pwm=0.000 Stats 59261.8: gcodein=0 mcu: mcu_awake=0.007 mcu_task_avg=0.000025 mcu_task_stddev=0.000024 bytes_write=33487 bytes_read=132590 bytes_retransmit=9 bytes_invalid=17 send_seq=2283 receive_seq=2283 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998005 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=2.14 cputime=25.253 memavail=1168584 print_time=59219.989 buffer_time=1.185 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59262.8: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000040 mcu_task_stddev=0.000082 bytes_write=33531 bytes_read=132806 bytes_retransmit=9 bytes_invalid=17 send_seq=2288 receive_seq=2288 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998007 heater_bed: target=0 temp=19.3 pwm=0.000 sysload=2.14 cputime=25.279 memavail=1170524 print_time=59219.989 buffer_time=0.184 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Activating extruder extruder1 Stats 59263.8: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000040 mcu_task_stddev=0.000082 bytes_write=34708 bytes_read=133067 bytes_retransmit=9 bytes_invalid=17 send_seq=2310 receive_seq=2308 retransmit_seq=2 srtt=0.003 rttvar=0.002 rto=0.025 ready_bytes=46 stalled_bytes=0 freq=83998005 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.14 cputime=25.343 memavail=1203772 print_time=59222.735 buffer_time=1.930 print_stall=0 extruder: target=0 temp=17.9 pwm=0.000 extruder1: target=0 temp=17.6 pwm=0.000 Stats 59264.8: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000040 mcu_task_stddev=0.000082 bytes_write=35355 bytes_read=133293 bytes_retransmit=9 bytes_invalid=17 send_seq=2324 receive_seq=2324 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=44 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=2.29 cputime=25.368 memavail=1204348 print_time=59222.899 buffer_time=1.092 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59265.8: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000040 mcu_task_stddev=0.000082 bytes_write=35443 bytes_read=133494 bytes_retransmit=9 bytes_invalid=17 send_seq=2329 receive_seq=2329 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998000 heater_bed: target=0 temp=18.2 pwm=0.000 sysload=2.29 cputime=25.392 memavail=1203096 print_time=59222.899 buffer_time=0.090 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.2 pwm=0.000 Stats 59266.8: gcodein=0 mcu: mcu_awake=0.012 mcu_task_avg=0.000040 mcu_task_stddev=0.000082 bytes_write=35477 bytes_read=133670 bytes_retransmit=9 bytes_invalid=17 send_seq=2332 receive_seq=2332 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998003 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.29 cputime=25.414 memavail=1207780 print_time=59222.899 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.6 pwm=0.000 extruder1: target=0 temp=17.8 pwm=0.000 Stats 59267.8: gcodein=0 mcu: mcu_awake=0.006 mcu_task_avg=0.000034 mcu_task_stddev=0.000058 bytes_write=35544 bytes_read=133856 bytes_retransmit=9 bytes_invalid=17 send_seq=2337 receive_seq=2337 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998005 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=2.29 cputime=25.437 memavail=1208372 print_time=59222.899 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59268.8: gcodein=0 mcu: mcu_awake=0.006 mcu_task_avg=0.000034 mcu_task_stddev=0.000058 bytes_write=35569 bytes_read=134047 bytes_retransmit=9 bytes_invalid=17 send_seq=2340 receive_seq=2340 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998004 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.29 cputime=25.459 memavail=1208652 print_time=59222.899 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59269.8: gcodein=0 mcu: mcu_awake=0.006 mcu_task_avg=0.000034 mcu_task_stddev=0.000058 bytes_write=35613 bytes_read=134233 bytes_retransmit=9 bytes_invalid=17 send_seq=2345 receive_seq=2345 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=2.19 cputime=25.482 memavail=1206424 print_time=59222.899 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59270.8: gcodein=0 mcu: mcu_awake=0.006 mcu_task_avg=0.000034 mcu_task_stddev=0.000058 bytes_write=35619 bytes_read=134384 bytes_retransmit=9 bytes_invalid=17 send_seq=2346 receive_seq=2346 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=18.0 pwm=0.000 sysload=2.19 cputime=25.508 memavail=1206612 print_time=59222.899 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59271.8: gcodein=0 mcu: mcu_awake=0.006 mcu_task_avg=0.000034 mcu_task_stddev=0.000058 bytes_write=36833 bytes_read=134675 bytes_retransmit=9 bytes_invalid=17 send_seq=2369 receive_seq=2369 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.19 cputime=25.543 memavail=1206900 print_time=59230.806 buffer_time=1.991 print_stall=0 extruder: target=0 temp=18.6 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59272.8: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000028 mcu_task_stddev=0.000050 bytes_write=36839 bytes_read=134856 bytes_retransmit=9 bytes_invalid=17 send_seq=2370 receive_seq=2370 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=18.2 pwm=0.000 sysload=2.19 cputime=25.564 memavail=1206708 print_time=59230.806 buffer_time=0.990 print_stall=0 extruder: target=0 temp=18.1 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59273.8: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000028 mcu_task_stddev=0.000050 bytes_write=36873 bytes_read=135017 bytes_retransmit=9 bytes_invalid=17 send_seq=2373 receive_seq=2373 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998005 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=2.19 cputime=25.587 memavail=1202376 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=17.9 pwm=0.000 extruder1: target=0 temp=17.2 pwm=0.000 Stats 59274.8: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000028 mcu_task_stddev=0.000050 bytes_write=36926 bytes_read=135213 bytes_retransmit=9 bytes_invalid=17 send_seq=2377 receive_seq=2377 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.17 cputime=25.609 memavail=1203428 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59275.8: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000028 mcu_task_stddev=0.000050 bytes_write=36932 bytes_read=135379 bytes_retransmit=9 bytes_invalid=17 send_seq=2378 receive_seq=2378 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998000 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=2.17 cputime=25.631 memavail=1203660 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59276.8: gcodein=0 mcu: mcu_awake=0.004 mcu_task_avg=0.000028 mcu_task_stddev=0.000050 bytes_write=36957 bytes_read=135540 bytes_retransmit=9 bytes_invalid=17 send_seq=2381 receive_seq=2381 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997998 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.17 cputime=25.653 memavail=1197936 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.8 pwm=0.000 Stats 59277.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000023 mcu_task_stddev=0.000052 bytes_write=36963 bytes_read=135736 bytes_retransmit=9 bytes_invalid=17 send_seq=2382 receive_seq=2382 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=2.17 cputime=25.675 memavail=1199064 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.6 pwm=0.000 Stats 59278.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000023 mcu_task_stddev=0.000052 bytes_write=36969 bytes_read=135902 bytes_retransmit=9 bytes_invalid=17 send_seq=2383 receive_seq=2383 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997999 heater_bed: target=0 temp=18.3 pwm=0.000 sysload=2.17 cputime=25.695 memavail=1199280 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 extruder1: target=0 temp=17.2 pwm=0.000 Stats 59279.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000023 mcu_task_stddev=0.000052 bytes_write=37003 bytes_read=136063 bytes_retransmit=9 bytes_invalid=17 send_seq=2386 receive_seq=2386 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997998 heater_bed: target=0 temp=18.3 pwm=0.000 sysload=2.08 cputime=25.715 memavail=1199316 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.4 pwm=0.000 Stats 59280.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000023 mcu_task_stddev=0.000052 bytes_write=37056 bytes_read=136264 bytes_retransmit=9 bytes_invalid=17 send_seq=2391 receive_seq=2391 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998003 heater_bed: target=0 temp=18.1 pwm=0.000 sysload=2.08 cputime=25.739 memavail=1196332 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.1 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59281.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000023 mcu_task_stddev=0.000052 bytes_write=37090 bytes_read=136440 bytes_retransmit=9 bytes_invalid=17 send_seq=2394 receive_seq=2394 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=19.0 pwm=0.000 sysload=2.08 cputime=25.759 memavail=1195284 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=19.0 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59282.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000025 mcu_task_stddev=0.000038 bytes_write=37152 bytes_read=136626 bytes_retransmit=9 bytes_invalid=17 send_seq=2399 receive_seq=2399 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998000 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=2.08 cputime=25.782 memavail=1195220 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.8 pwm=0.000 extruder1: target=0 temp=17.9 pwm=0.000 Stats 59283.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000025 mcu_task_stddev=0.000038 bytes_write=37195 bytes_read=136817 bytes_retransmit=9 bytes_invalid=17 send_seq=2402 receive_seq=2402 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997997 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.08 cputime=25.802 memavail=1191468 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.8 pwm=0.000 Stats 59284.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000025 mcu_task_stddev=0.000038 bytes_write=37201 bytes_read=136983 bytes_retransmit=9 bytes_invalid=17 send_seq=2403 receive_seq=2403 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=1.99 cputime=25.825 memavail=1191548 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59285.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000025 mcu_task_stddev=0.000038 bytes_write=37226 bytes_read=137144 bytes_retransmit=9 bytes_invalid=17 send_seq=2406 receive_seq=2406 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997999 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=1.99 cputime=25.846 memavail=1193316 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59286.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000025 mcu_task_stddev=0.000038 bytes_write=37251 bytes_read=137335 bytes_retransmit=9 bytes_invalid=17 send_seq=2409 receive_seq=2409 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997996 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=1.99 cputime=25.870 memavail=1192064 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59287.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000031 bytes_write=37257 bytes_read=137516 bytes_retransmit=9 bytes_invalid=17 send_seq=2410 receive_seq=2410 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998000 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.99 cputime=25.892 memavail=1188860 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59288.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000031 bytes_write=37282 bytes_read=137677 bytes_retransmit=9 bytes_invalid=17 send_seq=2413 receive_seq=2413 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=1.99 cputime=25.913 memavail=1189228 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.6 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59289.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000031 bytes_write=37335 bytes_read=137878 bytes_retransmit=9 bytes_invalid=17 send_seq=2418 receive_seq=2418 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997998 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.23 cputime=25.936 memavail=1189412 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.6 pwm=0.000 extruder1: target=0 temp=17.3 pwm=0.000 Stats 59290.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000031 bytes_write=37379 bytes_read=138064 bytes_retransmit=9 bytes_invalid=17 send_seq=2423 receive_seq=2423 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.23 cputime=25.959 memavail=1189256 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.7 pwm=0.000 extruder1: target=0 temp=17.6 pwm=0.000 Stats 59291.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000031 bytes_write=37423 bytes_read=138250 bytes_retransmit=9 bytes_invalid=17 send_seq=2428 receive_seq=2428 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998000 heater_bed: target=0 temp=19.0 pwm=0.000 sysload=2.23 cputime=25.981 memavail=1186144 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59292.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000022 mcu_task_stddev=0.000028 bytes_write=37429 bytes_read=138431 bytes_retransmit=9 bytes_invalid=17 send_seq=2429 receive_seq=2429 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=2.23 cputime=26.003 memavail=1184604 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.7 pwm=0.000 Stats 59293.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000022 mcu_task_stddev=0.000028 bytes_write=37435 bytes_read=138597 bytes_retransmit=9 bytes_invalid=17 send_seq=2430 receive_seq=2430 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998001 heater_bed: target=0 temp=19.1 pwm=0.000 sysload=2.23 cputime=26.022 memavail=1186152 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.7 pwm=0.000 Stats 59294.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000022 mcu_task_stddev=0.000028 bytes_write=37441 bytes_read=138763 bytes_retransmit=9 bytes_invalid=17 send_seq=2431 receive_seq=2431 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997999 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=2.13 cputime=26.042 memavail=1187276 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.7 pwm=0.000 Stats 59295.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000022 mcu_task_stddev=0.000028 bytes_write=37494 bytes_read=138949 bytes_retransmit=9 bytes_invalid=17 send_seq=2436 receive_seq=2436 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998003 heater_bed: target=0 temp=18.2 pwm=0.000 sysload=2.13 cputime=26.063 memavail=1187160 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.6 pwm=0.000 Stats 59296.8: gcodein=0 mcu: mcu_awake=0.003 mcu_task_avg=0.000022 mcu_task_stddev=0.000028 bytes_write=37500 bytes_read=139115 bytes_retransmit=9 bytes_invalid=17 send_seq=2437 receive_seq=2437 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998005 heater_bed: target=0 temp=18.9 pwm=0.000 sysload=2.13 cputime=26.084 memavail=1181312 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=18.2 pwm=0.000 Stats 59297.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000018 mcu_task_stddev=0.000026 bytes_write=37520 bytes_read=139301 bytes_retransmit=9 bytes_invalid=17 send_seq=2439 receive_seq=2439 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.13 cputime=26.106 memavail=1182884 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.7 pwm=0.000 extruder1: target=0 temp=17.8 pwm=0.000 Stats 59298.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000018 mcu_task_stddev=0.000026 bytes_write=37540 bytes_read=139472 bytes_retransmit=9 bytes_invalid=17 send_seq=2441 receive_seq=2441 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998000 heater_bed: target=0 temp=18.8 pwm=0.000 sysload=2.13 cputime=26.126 memavail=1182108 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.8 pwm=0.000 Stats 59299.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000018 mcu_task_stddev=0.000026 bytes_write=37560 bytes_read=139643 bytes_retransmit=9 bytes_invalid=17 send_seq=2443 receive_seq=2443 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998003 heater_bed: target=0 temp=18.4 pwm=0.000 sysload=2.36 cputime=26.149 memavail=1183972 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.2 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59300.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000018 mcu_task_stddev=0.000026 bytes_write=37566 bytes_read=139809 bytes_retransmit=9 bytes_invalid=17 send_seq=2444 receive_seq=2444 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998000 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.36 cputime=26.167 memavail=1182672 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.7 pwm=0.000 Stats 59301.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000018 mcu_task_stddev=0.000026 bytes_write=37572 bytes_read=139975 bytes_retransmit=9 bytes_invalid=17 send_seq=2445 receive_seq=2445 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998000 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=2.36 cputime=26.194 memavail=1180472 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000 Stats 59302.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000018 mcu_task_stddev=0.000026 bytes_write=37625 bytes_read=140155 bytes_retransmit=9 bytes_invalid=17 send_seq=2450 receive_seq=2450 retransmit_seq=2 srtt=0.002 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83998002 heater_bed: target=0 temp=18.3 pwm=0.000 sysload=2.36 cputime=26.214 memavail=1178748 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.7 pwm=0.000 extruder1: target=0 temp=17.6 pwm=0.000 Stats 59303.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000028 bytes_write=37650 bytes_read=140335 bytes_retransmit=9 bytes_invalid=17 send_seq=2453 receive_seq=2453 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997998 heater_bed: target=0 temp=18.7 pwm=0.000 sysload=2.36 cputime=26.238 memavail=1178860 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 extruder1: target=0 temp=17.7 pwm=0.000 Stats 59304.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000028 bytes_write=37712 bytes_read=140510 bytes_retransmit=9 bytes_invalid=17 send_seq=2458 receive_seq=2458 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997997 heater_bed: target=0 temp=18.3 pwm=0.000 sysload=2.25 cputime=26.260 memavail=1178952 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.0 pwm=0.000 extruder1: target=0 temp=17.8 pwm=0.000 Stats 59305.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000028 bytes_write=37718 bytes_read=140669 bytes_retransmit=9 bytes_invalid=17 send_seq=2459 receive_seq=2459 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997997 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.25 cputime=26.284 memavail=1178988 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.9 pwm=0.000 Stats 59306.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000028 bytes_write=37724 bytes_read=140835 bytes_retransmit=9 bytes_invalid=17 send_seq=2460 receive_seq=2460 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997995 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.25 cputime=26.304 memavail=1178696 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.3 pwm=0.000 extruder1: target=0 temp=17.9 pwm=0.000 Stats 59307.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000028 bytes_write=37730 bytes_read=141001 bytes_retransmit=9 bytes_invalid=17 send_seq=2461 receive_seq=2461 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997997 heater_bed: target=0 temp=18.3 pwm=0.000 sysload=2.25 cputime=26.329 memavail=1179780 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.5 pwm=0.000 extruder1: target=0 temp=17.8 pwm=0.000 Stats 59308.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000030 bytes_write=37774 bytes_read=141202 bytes_retransmit=9 bytes_invalid=17 send_seq=2466 receive_seq=2466 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997995 heater_bed: target=0 temp=18.5 pwm=0.000 sysload=2.25 cputime=26.353 memavail=1181924 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.9 pwm=0.000 extruder1: target=0 temp=17.8 pwm=0.000 Stats 59309.8: gcodein=0 mcu: mcu_awake=0.002 mcu_task_avg=0.000019 mcu_task_stddev=0.000030 bytes_write=37818 bytes_read=141388 bytes_retransmit=9 bytes_invalid=17 send_seq=2471 receive_seq=2471 retransmit_seq=2 srtt=0.003 rttvar=0.001 rto=0.025 ready_bytes=0 stalled_bytes=0 freq=83997992 heater_bed: target=0 temp=18.6 pwm=0.000 sysload=2.15 cputime=26.376 memavail=1178040 print_time=59230.806 buffer_time=0.000 print_stall=0 extruder: target=0 temp=18.4 pwm=0.000 extruder1: target=0 temp=17.5 pwm=0.000