Starting Klippy... Args: ['/home/custer/klipper/klippy/klippy.py', '/home/custer/printer_data/config/printer.cfg', '-l', '/home/custer/printer_data/logs/klippy.log', '-I', '/home/custer/printer_data/comms/klippy.serial', '-a', '/home/custer/printer_data/comms/klippy.sock'] Git version: 'v0.12.0-68-g447a88eb' Branch: master Remote: origin Tracked URL: https://github.com/Klipper3d/klipper.git CPU: 4 core ARMv7 Processor rev 4 (v7l) Python: '3.9.2 (default, Mar 12 2021, 04:06:34) \n[GCC 10.2.1 20210110]' Start printer at Tue Jan 23 22:23:27 2024 (1706048607.1 3071.0) ===== Config file ===== [virtual_sdcard] path = ~/printer_data/gcodes on_error_gcode = CANCEL_PRINT [pause_resume] [display_status] [respond] [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %} {% set retract = client.cancel_retract|default(5.0)|abs %} {% set park_x = "" if (client.park_at_cancel_x|default(none) is none) else "X=" ~ client.park_at_cancel_x %} {% set park_y = "" if (client.park_at_cancel_y|default(none) is none) else "Y=" ~ client.park_at_cancel_y %} {% set custom_park = park_x|length > 0 or park_y|length > 0 %} {% if printer['gcode_macro RESUME'].restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro RESUME'].restore_idle_timeout} {% endif %} {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %} _CLIENT_RETRACT LENGTH={retract} TURN_OFF_HEATERS M106 S0 {client.user_cancel_macro|default("")} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False SET_PAUSE_NEXT_LAYER ENABLE=0 SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0 CANCEL_PRINT_BASE [gcode_macro PAUSE] description = Pause the actual running print rename_existing = PAUSE_BASE gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set idle_timeout = client.idle_timeout|default(0) %} {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0 %} {% set restore = False if printer.toolhead.extruder == '' else True if params.RESTORE|default(1)|int == 1 else False %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}" {% if idle_timeout > 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout} SET_IDLE_TIMEOUT TIMEOUT={idle_timeout} {% endif %} PAUSE_BASE {client.user_pause_macro|default("")} _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams} [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE variable_last_extruder_temp = {'restore': False, 'temp': 0} variable_restore_idle_timeout = 0 variable_idle_state = False gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} {% set sp_move = client.speed_move|default(velocity) %} {% set runout_resume = True if client.runout_sensor|default("") == "" else True if not printer[client.runout_sensor].enabled else printer[client.runout_sensor].filament_detected %} {% set can_extrude = True if printer.toolhead.extruder == '' else printer[printer.toolhead.extruder].can_extrude %} {% set do_resume = False %} {% set prompt_txt = [] %} {% if printer.idle_timeout.state|upper == "IDLE" or idle_state %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False {% if last_extruder_temp.restore %} RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp.temp) }' M109 S{last_extruder_temp.temp} {% set do_resume = True %} {% elif can_extrude %} {% set do_resume = True %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}' {% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %} {% endif %} {% elif can_extrude %} {% set do_resume = True %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}' {% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %} {% endif %} {% if runout_resume %} {% if do_resume %} {% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %} {client.user_resume_macro|default("")} _CLIENT_EXTRUDE RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)} {% endif %} {% else %} RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]}' {% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]) %} {% endif %} {% if not (runout_resume and do_resume) %} RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!" {% for element in prompt_txt %} RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}' {% endfor %} RESPOND TYPE=command MSG="action:prompt_footer_button Ok|RESPOND TYPE=command MSG=action:prompt_end|info" RESPOND TYPE=command MSG="action:prompt_show" {% endif %} [gcode_macro SET_PAUSE_NEXT_LAYER] description = Enable a pause if the next layer is reached gcode = {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %} {% set ENABLE = params.ENABLE|default(1)|int != 0 %} {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %} SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}" [gcode_macro SET_PAUSE_AT_LAYER] description = Enable/disable a pause if a given layer number is reached gcode = {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %} {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined else params.LAYER is defined %} {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %} {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %} SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}" [gcode_macro SET_PRINT_STATS_INFO] rename_existing = SET_PRINT_STATS_INFO_BASE description = Overwrite, to get pause_next_layer and pause_at_layer feature variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" } variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" } gcode = {% if pause_next_layer.enable %} RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}' {pause_next_layer.call} SET_PAUSE_NEXT_LAYER ENABLE=0 {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %} RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}' {pause_at_layer.call} SET_PAUSE_AT_LAYER ENABLE=0 {% endif %} SET_PRINT_STATS_INFO_BASE {rawparams} [gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL] description = Helper: park toolhead used in PAUSE and CANCEL_PRINT gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %} {% set use_custom = client.use_custom_pos|default(false)|lower == 'true' %} {% set custom_park_x = client.custom_park_x|default(0.0) %} {% set custom_park_y = client.custom_park_y|default(0.0) %} {% set park_dz = client.custom_park_dz|default(2.0)|abs %} {% set sp_hop = client.speed_hop|default(15) * 60 %} {% set sp_move = client.speed_move|default(velocity) * 60 %} {% set origin = printer.gcode_move.homing_origin %} {% set act = printer.gcode_move.gcode_position %} {% set max = printer.toolhead.axis_maximum %} {% set cone = printer.toolhead.cone_start_z|default(max.z) %} {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch'] else False %} {% set z_min = params.Z_MIN|default(0)|float %} {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %} {% set x_park = params.X if params.X is defined else custom_park_x if use_custom else 0.0 if round_bed else (max.x - 5.0) %} {% set y_park = params.Y if params.Y is defined else custom_park_y if use_custom else (max.y - 5.0) if round_bed and z_park < cone else 0.0 if round_bed else (max.y - 5.0) %} _CLIENT_RETRACT {% if "xyz" in printer.toolhead.homed_axes %} G90 G1 Z{z_park} F{sp_hop} G1 X{x_park} Y{y_park} F{sp_move} {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %} {% else %} RESPOND TYPE=echo MSG='Printer not homed' {% endif %} [gcode_macro _CLIENT_EXTRUDE] description = Extrudes, if the extruder is hot enough gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %} {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %} {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %} {% set absolute_extrude = printer.gcode_move.absolute_extrude %} {% if printer.toolhead.extruder != '' %} {% if printer[printer.toolhead.extruder].can_extrude %} {% if use_fw_retract %} {% if length < 0 %} G10 {% else %} G11 {% endif %} {% else %} M83 G1 E{length} F{(speed|float|abs) * 60} {% if absolute_extrude %} M82 {% endif %} {% endif %} {% else %} RESPOND TYPE=echo MSG='{"\"%s\" not hot enough" % printer.toolhead.extruder}' {% endif %} {% endif %} [gcode_macro _CLIENT_RETRACT] description = Retracts, if the extruder is hot enough gcode = {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %} {% set speed = params.SPEED|default(client.speed_retract)|default(35) %} _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs} [stepper_x] step_pin = PD4 dir_pin = !PD3 enable_pin = !PD6 microsteps = 16 rotation_distance = 40 endstop_pin = ^PC1 position_endstop = 350 position_max = 355 homing_speed = 50 [tmc2209 stepper_x] uart_pin = PD5 run_current = 0.8 stealthchop_threshold = 999999 [stepper_y] step_pin = PA15 dir_pin = !PA8 enable_pin = !PD1 microsteps = 16 rotation_distance = 40 endstop_pin = ^PC3 position_endstop = 350 position_min = 0 position_max = 355 homing_speed = 50 [tmc2209 stepper_y] uart_pin = PD0 run_current = 0.8 stealthchop_threshold = 999999 [stepper_z] step_pin = PE2 dir_pin = !PE3 enable_pin = !PE0 microsteps = 16 rotation_distance = 4 endstop_pin = probe:z_virtual_endstop position_max = 350 position_min = -5 homing_speed = 10.0 [tmc2209 stepper_z] uart_pin = PE1 run_current = .8 stealthchop_threshold = 999999 [stepper_z1] step_pin = PD11 dir_pin = !PD10 enable_pin = !PD13 microsteps = 256 rotation_distance = 4 [tmc2209 stepper_z1] uart_pin = PD12 run_current = 0.800 stealthchop_threshold = 999999 [extruder] step_pin = PD15 dir_pin = !PD14 enable_pin = !PC7 microsteps = 16 rotation_distance = 62.564 nozzle_diameter = 0.600 filament_diameter = 1.750 heater_pin = PB3 sensor_type = PT1000 sensor_pin = PA2 min_temp = 10 max_temp = 300 min_extrude_temp = 150 max_extrude_cross_section = 1.44 instantaneous_corner_velocity = 1.000 max_extrude_only_distance = 50.0 max_extrude_only_velocity = 200 max_extrude_only_accel = 200 pressure_advance = 0.30 pressure_advance_smooth_time = 0.020 control = pid pid_kp = 26.076 pid_ki = 1.437 pid_kd = 118.320 [safe_z_home] home_xy_position = 180, 180 speed = 100 z_hop = 10 z_hop_speed = 5 [bltouch] sensor_pin = ^PC13 control_pin = PE5 pin_move_time = 0.675 stow_on_each_sample = false probe_with_touch_mode = true x_offset = -45 y_offset = 0 speed = 3.0 pin_up_touch_mode_reports_triggered = False z_offset = 4.125 [bed_mesh] speed = 100 horizontal_move_z = 8 algorithm = bicubic mesh_min = 0,0 mesh_max = 305, 350 probe_count = 5, 5 [heater_bed] heater_pin = PD7 sensor_type = EPCOS 100K B57560G104F sensor_pin = PA1 min_temp = 0 max_temp = 130 control = pid pid_kp = 64.179 pid_ki = 0.724 pid_kd = 1422.360 [fan] pin = PB7 max_power = 1.0 cycle_time = 0.0001 hardware_pwm = false kick_start_time = 0.333 off_below = 0.05 [heater_fan hotend_fan] pin = PB6 max_power = 1.0 fan_speed = 1.0 heater = extruder heater_temp = 50.0 [mcu] serial = /dev/serial/by-id/usb-Klipper_stm32h743xx_460025001751303232383230-if00 [filament_switch_sensor filament_sensor] switch_pin = PE4 [printer] kinematics = cartesian max_velocity = 300 max_accel = 2500 max_z_velocity = 5 max_z_accel = 100 [board_pins] aliases = EXP1_1=PC5, EXP1_3=PB1, EXP1_5=PE9, EXP1_7=PE11, EXP1_9=, EXP1_2=PB0, EXP1_4=PE8, EXP1_6=PE10, EXP1_8=PE12, EXP1_10=<5V>, EXP2_1=PA6, EXP2_3=PE7, EXP2_5=PB2, EXP2_7=PC4, EXP2_9=, EXP2_2=PA5, EXP2_4=PA4, EXP2_6=PA7, EXP2_8=, EXP2_10= [bed_mesh 1/20/24] version = 1 points = 0.426250, 0.475000, 0.317500, 0.157500, -0.051250 0.318750, 0.310000, 0.175000, 0.002500, -0.188750 0.255000, 0.216250, 0.075000, -0.088750, -0.305000 0.271250, 0.205000, 0.062500, -0.113750, -0.342500 0.303750, 0.226250, 0.063750, -0.127500, -0.340000 x_count = 5 y_count = 5 mesh_x_pps = 2 mesh_y_pps = 2 algo = bicubic tension = 0.2 min_x = 0.0 max_x = 250.0 min_y = 0.0 max_y = 250.0 [bed_mesh 1/21/24] version = 1 points = 0.652500, 0.636250, 0.437500, 0.161250, -0.203750 0.320000, 0.210000, 0.021250, -0.211250, -0.526250 0.325000, 0.135000, -0.091250, -0.332500, -0.623750 0.411250, 0.218750, -0.008750, -0.298750, -0.588750 0.632500, 0.543750, 0.288750, -0.057500, -0.475000 x_count = 5 y_count = 5 mesh_x_pps = 2 mesh_y_pps = 2 algo = bicubic tension = 0.2 min_x = 0.0 max_x = 305.0 min_y = 0.0 max_y = 350.0 ======================= Extruder max_extrude_ratio=0.598682 mcu 'mcu': Starting serial connect webhooks client 1965316344: New connection webhooks client 1965316344: Client info {'program': 'Moonraker', 'version': 'v0.8.0-267-g66de18f'} mcu 'mcu': got {'oid': 25, 'next_clock': 1394320640, 'value': 8850, '#name': 'analog_in_state', '#sent_time': 3072.057913047, '#receive_time': 3072.082499766} mcu 'mcu': got {'oid': 16, 'next_clock': 1478320640, 'value': 25669, '#name': 'analog_in_state', '#sent_time': 3072.265482735, '#receive_time': 3072.291879401} mcu 'mcu': got {'oid': 25, 'next_clock': 1514320640, 'value': 8842, '#name': 'analog_in_state', '#sent_time': 3072.370701276, '#receive_time': 3072.382234245} Loaded MCU 'mcu' 105 commands (v0.11.0-205-g5f0d252b / gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.34-4+rpi1+14) 2.34) MCU 'mcu' config: ADC_MAX=4095 BUS_PINS_i2c1_PB6_PB7=PB6,PB7 BUS_PINS_i2c1_PB8_PB9=PB8,PB9 BUS_PINS_i2c2_PB10_PB11=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi2a=PC2,PC3,PB10 BUS_PINS_spi2b=PI2,PI3,PI1 BUS_PINS_spi3a=PC11,PC12,PC10 BUS_PINS_spi4=PE13,PE14,PE12 BUS_PINS_spi5=PF8,PF9,PF7 BUS_PINS_spi5a=PH7,PF11,PH6 BUS_PINS_spi6=PG12,PG14,PG13 CLOCK_FREQ=400000000 MCU=stm32h743xx PWM_MAX=255 RESERVE_PINS_USB=PA11,PA12 RESERVE_PINS_crystal=PH0,PH1 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 Configured MCU 'mcu' (1024 moves) bed_mesh: generated points Index | Tool Adjusted | Probe 0 | (45.0, 0.0) | (0.0, 0.0) 1 | (121.2, 0.0) | (76.2, 0.0) 2 | (197.5, 0.0) | (152.5, 0.0) 3 | (273.8, 0.0) | (228.8, 0.0) 4 | (350.0, 0.0) | (305.0, 0.0) 5 | (350.0, 87.5) | (305.0, 87.5) 6 | (273.8, 87.5) | (228.8, 87.5) 7 | (197.5, 87.5) | (152.5, 87.5) 8 | (121.2, 87.5) | (76.2, 87.5) 9 | (45.0, 87.5) | (0.0, 87.5) 10 | (45.0, 175.0) | (0.0, 175.0) 11 | (121.2, 175.0) | (76.2, 175.0) 12 | (197.5, 175.0) | (152.5, 175.0) 13 | (273.8, 175.0) | (228.8, 175.0) 14 | (350.0, 175.0) | (305.0, 175.0) 15 | (350.0, 262.5) | (305.0, 262.5) 16 | (273.8, 262.5) | (228.8, 262.5) 17 | (197.5, 262.5) | (152.5, 262.5) 18 | (121.2, 262.5) | (76.2, 262.5) 19 | (45.0, 262.5) | (0.0, 262.5) 20 | (45.0, 350.0) | (0.0, 350.0) 21 | (121.2, 350.0) | (76.2, 350.0) 22 | (197.5, 350.0) | (152.5, 350.0) 23 | (273.8, 350.0) | (228.8, 350.0) 24 | (350.0, 350.0) | (305.0, 350.0) Starting heater checks for heater_bed Starting heater checks for extruder webhooks: registering remote method 'shutdown_machine' for connection id: 1965316344 webhooks: registering remote method 'reboot_machine' for connection id: 1965316344 webhooks: registering remote method 'pause_job_queue' for connection id: 1965316344 webhooks: registering remote method 'start_job_queue' for connection id: 1965316344 Stats 3074.8: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000002 mcu_task_stddev=0.000001 bytes_write=2405 bytes_read=5976 bytes_retransmit=9 bytes_invalid=0 send_seq=204 receive_seq=204 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=400010302 heater_bed: target=0 temp=69.7 pwm=0.000 sysload=0.11 cputime=1.797 memavail=754316 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=191.7 pwm=0.000 Stats 3075.8: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000002 mcu_task_stddev=0.000001 bytes_write=2427 bytes_read=6098 bytes_retransmit=9 bytes_invalid=0 send_seq=206 receive_seq=206 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=400011319 heater_bed: target=0 temp=69.7 pwm=0.000 sysload=0.11 cputime=1.822 memavail=753816 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=190.5 pwm=0.000 Stats 3076.8: gcodein=0 mcu: mcu_awake=0.001 mcu_task_avg=0.000002 mcu_task_stddev=0.000001 bytes_write=2433 bytes_read=6201 bytes_retransmit=9 bytes_invalid=0 send_seq=207 receive_seq=207 retransmit_seq=2 srtt=0.001 rttvar=0.000 rto=0.025 ready_bytes=0 upcoming_bytes=0 freq=400011690 heater_bed: target=0 temp=69.6 pwm=0.000 sysload=0.10 cputime=1.842 memavail=753820 print_time=0.000 buffer_time=0.000 print_stall=0 extruder: target=0 temp=189.6 pwm=0.000