=============== Log rollover at Sun Oct 1 00:17:18 2023 =============== 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', '/tmp/klippy_uds'] Git version: 'v0.11.0-277-g21b78429' Branch: master Remote: origin Tracked URL: https://github.com/Klipper3d/klipper 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 Sun Oct 1 00:17:19 2023 (1696083440.0 25.3) ===== Config file ===== [delayed_gcode START_LOGO] initial_duration = 0.001 gcode = M117 {% set custom1 = "_my_intro" %} SET_DISPLAY_GROUP GROUP={custom1} UPDATE_DELAYED_GCODE ID=clear_display1 DURATION=4 [delayed_gcode START_INFO] initial_duration = 4 gcode = {% set custom = "_my_info" %} SET_DISPLAY_GROUP GROUP={custom} UPDATE_DELAYED_GCODE ID=clear_display DURATION=4 [delayed_gcode clear_display] gcode = M117 SET_DISPLAY_GROUP GROUP={printer.configfile.settings.display.display_group} [delayed_gcode clear_display1] gcode = M117 [display_data _my_intro intro1] position = 0, 0 text = ~tl~~tl~~l1~~tl~~tl~~l2~~tl~~tl~ [display_data _my_intro intro2] position = 1, 4 text = ~l3~~l4~~l5~~l6~ [display_data _my_intro intro3] position = 2, 4 text = ~l7~~l8~~l9~~l10~ [display_data _my_intro intro4] position = 3, 0 text = ~bl~~bl~~l11~~l12~~l13~~l14~~bl~~bl~ [display_data _my_info info1] position = 0, 0 text = SIMPLICID Δ [display_data _my_info info2] position = 1, 0 text = Klipr:v0.11.0-87 [display_data _my_info info3] position = 2, 0 text = Fluidd:v1.23.0 [display_data _my_info info4] position = 3, 0 text = 26/02/23 [display_glyph tl] data = **************** **************** **************** ................ **************** ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph bl] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph l1] data = **************** **************** **************** ................ **************** ................ .****........... ..****.......... ...****......... ....****........ .....****....... ......****...... .......****..... ........****.... .........****... ..........****.. [display_glyph l2] data = **************** **************** **************** ................ **************** ................ ...........****. ..........****.. .........****... ........****.... .......****..... ......****...... .....****....... ....****........ ...****......... ..****.......... [display_glyph l3] data = ...........****. ............**** .............*** ..............** ...............* ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph l4] data = ................ ................ *............... **.............. ***............. ****............ .****........... ..****.......... ...****......... ....****........ .....****....... ......****...... .......****..... ........****.... .........****... ..........****.. [display_glyph l5] data = ................ ................ ...............* ..............** .............*** ............**** ...........****. ..........****.. .........****... ........****.... .......****..... ......****...... .....****....... ....****........ ...****......... ..****.......... [display_glyph l6] data = .****........... ****............ ***............. **.............. *............... ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph l7] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ..***.....**...* ..***....***...* ..***...***....* ..***..***.....* ..***.***......* ..******.......* ..*****........* [display_glyph l8] data = ...........****. ............**** .............*** ..............** ...............* ...............* ...............* ...............* ...............* *..............* *...************ *...************ *............... *...**.....***** *...**...******* *...**...**....* [display_glyph l9] data = .****........... ****............ ***............. **.............. *............... *............... *............... *............... *............... *............... *............... *............... ................ ......*****..... *...********...* **..**....***.** [display_glyph l10] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ *****.....****.. ******...******. *....**..**..... [display_glyph l11] data = ..***.**.......* ..***.**.......* ..***..**......* ..***..***.....* ..***...***....* ..***....***...* ..***.....**...* ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph l12] data = *...**...**..... *...**...**..... *...**...**..... *...**...**....* *...**...******* *...**...**.**** *...**...**..... .........**..... .........**..... .........**..... ................ **************** ................ **************** **************** **************** [display_glyph l13] data = **..**.....**.** **..**.....**.** **..**.....**.** **..**....***.** *...********...* ....**.****..... ....**.......... ....**.......... ....**.......... ....**.......... ................ **************** ................ **************** **************** **************** [display_glyph l14] data = ......*..**..... *******..**..... ******...**..... .........**..... ******...**..... *****....**..... ................ ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph extruder] data = ................ ................ ..************.. .....******..... ..************.. .....******..... ..************.. ................ ....********.... ....**.**.**.... ....********.... ................ ......****...... .......**....... ................ ................ [display_glyph bed] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [display_glyph bed_heat1] data = ................ ................ ..*....*....*... .*....*....*.... ..*....*....*... ...*....*....*.. ..*....*....*... .*....*....*.... ..*....*....*... ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [display_glyph bed_heat2] data = ................ ................ ..*....*....*... ...*....*....*.. ..*....*....*... .*....*....*.... ..*....*....*... ...*....*....*.. ..*....*....*... ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [mcu] serial = /dev/ttyS0 restart_method = command [printer] kinematics = corexy max_velocity = 500 max_accel = 20000 max_z_velocity = 15 max_z_accel = 30 [stepper_x] step_pin = gpio11 dir_pin = !gpio10 enable_pin = !gpio12 microsteps = 16 rotation_distance = 40 endstop_pin = tmc2209_stepper_x:virtual_endstop homing_retract_dist = 0 position_endstop = 130 position_min = 0 position_max = 130 homing_speed = 20 [tmc2209 stepper_x] uart_pin = gpio9 tx_pin = gpio8 uart_address = 0 run_current = 0.80 stealthchop_threshold = 0 diag_pin = ^gpio4 driver_sgthrs = 30 [stepper_y] step_pin = gpio6 dir_pin = !gpio5 enable_pin = !gpio7 microsteps = 16 rotation_distance = 40 endstop_pin = tmc2209_stepper_y:virtual_endstop homing_retract_dist = 0 position_endstop = 0 position_min = 0 position_max = 130 homing_speed = 20 [tmc2209 stepper_y] uart_pin = gpio9 tx_pin = gpio8 uart_address = 2 run_current = 0.80 stealthchop_threshold = 0 diag_pin = ^gpio3 driver_sgthrs = 30 [stepper_z] step_pin = gpio19 dir_pin = gpio28 enable_pin = !gpio2 microsteps = 16 rotation_distance = 4 position_endstop = 127 endstop_pin = tmc2209_stepper_z:virtual_endstop homing_retract_dist = 0 position_min = -0.0 position_max = 127 homing_speed = 10 [tmc2209 stepper_z] uart_pin = gpio9 tx_pin = gpio8 uart_address = 1 run_current = 0.30 hold_current = 0.20 stealthchop_threshold = 999999 diag_pin = ^gpio25 driver_sgthrs = 10 [extruder] step_pin = gpio14 dir_pin = !gpio13 enable_pin = !gpio15 microsteps = 16 rotation_distance = 7.57 nozzle_diameter = 0.4 filament_diameter = 1.75 heater_pin = gpio23 sensor_type = EPCOS 100K B57560G104F sensor_pin = gpio27 min_temp = -200 max_temp = 300 max_extrude_cross_section = 2 control = pid pid_kp = 35.175 pid_ki = 1.938 pid_kd = 159.607 [tmc2209 extruder] uart_pin = gpio9 tx_pin = gpio8 uart_address = 3 run_current = 0.8 hold_current = 0.500 stealthchop_threshold = 999999 [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 100 [fan] pin = gpio17 [heater_fan hotend_fan] pin = gpio18 heater = extruder heater_temp = 50.0 [temperature_fan banana] pin = gpio20 kick_start_time = 0.8 off_below = 0.3 max_power = 1.0 sensor_type = temperature_host control = pid min_temp = -40 max_temp = 90 pid_kp = 1.0 pid_ki = 0.5 pid_kd = 2.0 min_speed = 0.1 max_speed = 0.9 target_temp = 40 [display] lcd_type = ssd1306 i2c_mcu = mcu i2c_address = 60 contrast = 239 [virtual_sdcard] path = /home/pi/printer_data/gcodes [display_status] [pause_resume] [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 %} [homing_override] gcode = G90 {% set HOME_CUR = 0.70 %} {% set driver_config = printer.configfile.settings['tmc2209 stepper_x'] %} {% set RUN_CUR = driver_config.run_current %} {% set Z_HOME_CUR = 0.20 %} {% set z_driver_config = printer.configfile.settings['tmc2209 stepper_z'] %} {% set Z_RUN_CUR = z_driver_config.run_current %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR} SET_TMC_CURRENT STEPPER=stepper_z CURRENT={Z_HOME_CUR} G28 X0 G1 X128 F5000 G4 P2000 G28 Y0 G1 Y2 F5000 G1 X125 Y5 F5000 G28 Z0 G1 Z10 F5000 SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_z CURRENT={Z_RUN_CUR} [gcode_macro PARKFRONT] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKFRONT G90 G0 X0 Y{printer.toolhead.axis_minimum.y} Z{printer.toolhead.axis_maximum.z} F6000 RESTORE_GCODE_STATE NAME=PARKFRONT [gcode_macro PARKFRONTLOW] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKFRONT G90 G0 X0 Y{printer.toolhead.axis_minimum.y} Z10 F6000 RESTORE_GCODE_STATE NAME=PARKFRONT [gcode_macro PARKREAR] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKREAR G90 G0 X0 Y{printer.toolhead.axis_maximum.y} Z{printer.toolhead.axis_maximum.z} F6000 RESTORE_GCODE_STATE NAME=PARKREAR [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %} G90 SET_GCODE_OFFSET Z=0.0 PARKFRONTLOW M109 S{EXTRUDER_TEMP} [gcode_macro END_PRINT] gcode = M140 S0 M104 S0 M106 S0 G91 G1 X0 Y0 E-3 F2000 G1 Z5 F3000 PARKREAR M84 [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE gcode = {% set E = printer["gcode_macro PAUSE"].extrude|float %} {% if 'VELOCITY' in params|upper %} {% set get_params = ('VELOCITY=' + params.VELOCITY) %} {%else %} {% set get_params = "" %} {% endif %} {% if printer.extruder.can_extrude|lower == 'true' %} G91 G1 E{E} F2100 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} RESUME_BASE {get_params} [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE PARKREAR [gcode_macro TEST_SPEED] gcode = {% set speed = params.SPEED|default(printer.configfile.settings.printer.max_velocity)|int %} {% set iterations = params.ITERATIONS|default(5)|int %} {% set accel = params.ACCEL|default(printer.configfile.settings.printer.max_accel)|int %} {% set bound = params.BOUND|default(10)|int %} {% set smallpatternsize = SMALLPATTERNSIZE|default(20)|int %} {% set x_min = printer.toolhead.axis_minimum.x + bound %} {% set x_max = printer.toolhead.axis_maximum.x - bound %} {% set y_min = printer.toolhead.axis_minimum.y + bound %} {% set y_max = printer.toolhead.axis_maximum.y - bound %} {% set x_center = (printer.toolhead.axis_minimum.x|float + printer.toolhead.axis_maximum.x|float ) / 2 %} {% set y_center = (printer.toolhead.axis_minimum.y|float + printer.toolhead.axis_maximum.y|float ) / 2 %} {% set x_center_min = x_center - (smallpatternsize/2) %} {% set x_center_max = x_center + (smallpatternsize/2) %} {% set y_center_min = y_center - (smallpatternsize/2) %} {% set y_center_max = y_center + (smallpatternsize/2) %} SAVE_GCODE_STATE NAME=TEST_SPEED { action_respond_info("TEST_SPEED: starting %d iterations at speed %d, accel %d" % (iterations, speed, accel)) } G28 X Y {% if printer.configfile.settings.quad_gantry_level %} {% if printer.quad_gantry_level.applied == False %} QUAD_GANTRY_LEVEL G28 Z {% endif %} {% endif %} GET_POSITION G0 X{x_min} Y{y_min} Z{bound + 10} F{speed*60} SET_VELOCITY_LIMIT VELOCITY={speed} ACCEL={accel} ACCEL_TO_DECEL={accel / 2} {% for i in range(iterations) %} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} {% endfor %} SET_VELOCITY_LIMIT VELOCITY={printer.configfile.settings.printer.max_velocity} ACCEL={printer.configfile.settings.printer.max_accel} ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel} G28 X Y G90 G0 X0 Y0 F{30*60} G4 P1000 GET_POSITION RESTORE_GCODE_STATE NAME=TEST_SPEED ======================= Extruder max_extrude_ratio=0.831503 mcu 'mcu': Starting serial connect 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', '/tmp/klippy_uds'] Git version: 'v0.11.0-277-g21b78429' Branch: master Remote: origin Tracked URL: https://github.com/Klipper3d/klipper 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 Sun Oct 1 00:23:32 2023 (1696083812.4 164.1) ===== Config file ===== [delayed_gcode START_LOGO] initial_duration = 0.001 gcode = M117 {% set custom1 = "_my_intro" %} SET_DISPLAY_GROUP GROUP={custom1} UPDATE_DELAYED_GCODE ID=clear_display1 DURATION=4 [delayed_gcode START_INFO] initial_duration = 4 gcode = {% set custom = "_my_info" %} SET_DISPLAY_GROUP GROUP={custom} UPDATE_DELAYED_GCODE ID=clear_display DURATION=4 [delayed_gcode clear_display] gcode = M117 SET_DISPLAY_GROUP GROUP={printer.configfile.settings.display.display_group} [delayed_gcode clear_display1] gcode = M117 [display_data _my_intro intro1] position = 0, 0 text = ~tl~~tl~~l1~~tl~~tl~~l2~~tl~~tl~ [display_data _my_intro intro2] position = 1, 4 text = ~l3~~l4~~l5~~l6~ [display_data _my_intro intro3] position = 2, 4 text = ~l7~~l8~~l9~~l10~ [display_data _my_intro intro4] position = 3, 0 text = ~bl~~bl~~l11~~l12~~l13~~l14~~bl~~bl~ [display_data _my_info info1] position = 0, 0 text = SIMPLICID Δ [display_data _my_info info2] position = 1, 0 text = Klipr:v0.11.0-87 [display_data _my_info info3] position = 2, 0 text = Fluidd:v1.23.0 [display_data _my_info info4] position = 3, 0 text = 26/02/23 [display_glyph tl] data = **************** **************** **************** ................ **************** ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph bl] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph l1] data = **************** **************** **************** ................ **************** ................ .****........... ..****.......... ...****......... ....****........ .....****....... ......****...... .......****..... ........****.... .........****... ..........****.. [display_glyph l2] data = **************** **************** **************** ................ **************** ................ ...........****. ..........****.. .........****... ........****.... .......****..... ......****...... .....****....... ....****........ ...****......... ..****.......... [display_glyph l3] data = ...........****. ............**** .............*** ..............** ...............* ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph l4] data = ................ ................ *............... **.............. ***............. ****............ .****........... ..****.......... ...****......... ....****........ .....****....... ......****...... .......****..... ........****.... .........****... ..........****.. [display_glyph l5] data = ................ ................ ...............* ..............** .............*** ............**** ...........****. ..........****.. .........****... ........****.... .......****..... ......****...... .....****....... ....****........ ...****......... ..****.......... [display_glyph l6] data = .****........... ****............ ***............. **.............. *............... ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph l7] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ..***.....**...* ..***....***...* ..***...***....* ..***..***.....* ..***.***......* ..******.......* ..*****........* [display_glyph l8] data = ...........****. ............**** .............*** ..............** ...............* ...............* ...............* ...............* ...............* *..............* *...************ *...************ *............... *...**.....***** *...**...******* *...**...**....* [display_glyph l9] data = .****........... ****............ ***............. **.............. *............... *............... *............... *............... *............... *............... *............... *............... ................ ......*****..... *...********...* **..**....***.** [display_glyph l10] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ *****.....****.. ******...******. *....**..**..... [display_glyph l11] data = ..***.**.......* ..***.**.......* ..***..**......* ..***..***.....* ..***...***....* ..***....***...* ..***.....**...* ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph l12] data = *...**...**..... *...**...**..... *...**...**..... *...**...**....* *...**...******* *...**...**.**** *...**...**..... .........**..... .........**..... .........**..... ................ **************** ................ **************** **************** **************** [display_glyph l13] data = **..**.....**.** **..**.....**.** **..**.....**.** **..**....***.** *...********...* ....**.****..... ....**.......... ....**.......... ....**.......... ....**.......... ................ **************** ................ **************** **************** **************** [display_glyph l14] data = ......*..**..... *******..**..... ******...**..... .........**..... ******...**..... *****....**..... ................ ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph extruder] data = ................ ................ ..************.. .....******..... ..************.. .....******..... ..************.. ................ ....********.... ....**.**.**.... ....********.... ................ ......****...... .......**....... ................ ................ [display_glyph bed] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [display_glyph bed_heat1] data = ................ ................ ..*....*....*... .*....*....*.... ..*....*....*... ...*....*....*.. ..*....*....*... .*....*....*.... ..*....*....*... ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [display_glyph bed_heat2] data = ................ ................ ..*....*....*... ...*....*....*.. ..*....*....*... .*....*....*.... ..*....*....*... ...*....*....*.. ..*....*....*... ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [mcu] serial = /dev/ttyAMA0 restart_method = command [printer] kinematics = corexy max_velocity = 500 max_accel = 20000 max_z_velocity = 15 max_z_accel = 30 [stepper_x] step_pin = gpio11 dir_pin = !gpio10 enable_pin = !gpio12 microsteps = 16 rotation_distance = 40 endstop_pin = tmc2209_stepper_x:virtual_endstop homing_retract_dist = 0 position_endstop = 130 position_min = 0 position_max = 130 homing_speed = 20 [tmc2209 stepper_x] uart_pin = gpio9 tx_pin = gpio8 uart_address = 0 run_current = 0.80 stealthchop_threshold = 0 diag_pin = ^gpio4 driver_sgthrs = 30 [stepper_y] step_pin = gpio6 dir_pin = !gpio5 enable_pin = !gpio7 microsteps = 16 rotation_distance = 40 endstop_pin = tmc2209_stepper_y:virtual_endstop homing_retract_dist = 0 position_endstop = 0 position_min = 0 position_max = 130 homing_speed = 20 [tmc2209 stepper_y] uart_pin = gpio9 tx_pin = gpio8 uart_address = 2 run_current = 0.80 stealthchop_threshold = 0 diag_pin = ^gpio3 driver_sgthrs = 30 [stepper_z] step_pin = gpio19 dir_pin = gpio28 enable_pin = !gpio2 microsteps = 16 rotation_distance = 4 position_endstop = 127 endstop_pin = tmc2209_stepper_z:virtual_endstop homing_retract_dist = 0 position_min = -0.0 position_max = 127 homing_speed = 10 [tmc2209 stepper_z] uart_pin = gpio9 tx_pin = gpio8 uart_address = 1 run_current = 0.30 hold_current = 0.20 stealthchop_threshold = 999999 diag_pin = ^gpio25 driver_sgthrs = 10 [extruder] step_pin = gpio14 dir_pin = !gpio13 enable_pin = !gpio15 microsteps = 16 rotation_distance = 7.57 nozzle_diameter = 0.4 filament_diameter = 1.75 heater_pin = gpio23 sensor_type = EPCOS 100K B57560G104F sensor_pin = gpio27 min_temp = -200 max_temp = 300 max_extrude_cross_section = 2 control = pid pid_kp = 35.175 pid_ki = 1.938 pid_kd = 159.607 [tmc2209 extruder] uart_pin = gpio9 tx_pin = gpio8 uart_address = 3 run_current = 0.8 hold_current = 0.500 stealthchop_threshold = 999999 [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 100 [fan] pin = gpio17 [heater_fan hotend_fan] pin = gpio18 heater = extruder heater_temp = 50.0 [temperature_fan banana] pin = gpio20 kick_start_time = 0.8 off_below = 0.3 max_power = 1.0 sensor_type = temperature_host control = pid min_temp = -40 max_temp = 90 pid_kp = 1.0 pid_ki = 0.5 pid_kd = 2.0 min_speed = 0.1 max_speed = 0.9 target_temp = 40 [display] lcd_type = ssd1306 i2c_mcu = mcu i2c_address = 60 contrast = 239 [virtual_sdcard] path = /home/pi/printer_data/gcodes [display_status] [pause_resume] [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 %} [homing_override] gcode = G90 {% set HOME_CUR = 0.70 %} {% set driver_config = printer.configfile.settings['tmc2209 stepper_x'] %} {% set RUN_CUR = driver_config.run_current %} {% set Z_HOME_CUR = 0.20 %} {% set z_driver_config = printer.configfile.settings['tmc2209 stepper_z'] %} {% set Z_RUN_CUR = z_driver_config.run_current %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR} SET_TMC_CURRENT STEPPER=stepper_z CURRENT={Z_HOME_CUR} G28 X0 G1 X128 F5000 G4 P2000 G28 Y0 G1 Y2 F5000 G1 X125 Y5 F5000 G28 Z0 G1 Z10 F5000 SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_z CURRENT={Z_RUN_CUR} [gcode_macro PARKFRONT] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKFRONT G90 G0 X0 Y{printer.toolhead.axis_minimum.y} Z{printer.toolhead.axis_maximum.z} F6000 RESTORE_GCODE_STATE NAME=PARKFRONT [gcode_macro PARKFRONTLOW] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKFRONT G90 G0 X0 Y{printer.toolhead.axis_minimum.y} Z10 F6000 RESTORE_GCODE_STATE NAME=PARKFRONT [gcode_macro PARKREAR] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKREAR G90 G0 X0 Y{printer.toolhead.axis_maximum.y} Z{printer.toolhead.axis_maximum.z} F6000 RESTORE_GCODE_STATE NAME=PARKREAR [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %} G90 SET_GCODE_OFFSET Z=0.0 PARKFRONTLOW M109 S{EXTRUDER_TEMP} [gcode_macro END_PRINT] gcode = M140 S0 M104 S0 M106 S0 G91 G1 X0 Y0 E-3 F2000 G1 Z5 F3000 PARKREAR M84 [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE gcode = {% set E = printer["gcode_macro PAUSE"].extrude|float %} {% if 'VELOCITY' in params|upper %} {% set get_params = ('VELOCITY=' + params.VELOCITY) %} {%else %} {% set get_params = "" %} {% endif %} {% if printer.extruder.can_extrude|lower == 'true' %} G91 G1 E{E} F2100 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} RESUME_BASE {get_params} [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE PARKREAR [gcode_macro TEST_SPEED] gcode = {% set speed = params.SPEED|default(printer.configfile.settings.printer.max_velocity)|int %} {% set iterations = params.ITERATIONS|default(5)|int %} {% set accel = params.ACCEL|default(printer.configfile.settings.printer.max_accel)|int %} {% set bound = params.BOUND|default(10)|int %} {% set smallpatternsize = SMALLPATTERNSIZE|default(20)|int %} {% set x_min = printer.toolhead.axis_minimum.x + bound %} {% set x_max = printer.toolhead.axis_maximum.x - bound %} {% set y_min = printer.toolhead.axis_minimum.y + bound %} {% set y_max = printer.toolhead.axis_maximum.y - bound %} {% set x_center = (printer.toolhead.axis_minimum.x|float + printer.toolhead.axis_maximum.x|float ) / 2 %} {% set y_center = (printer.toolhead.axis_minimum.y|float + printer.toolhead.axis_maximum.y|float ) / 2 %} {% set x_center_min = x_center - (smallpatternsize/2) %} {% set x_center_max = x_center + (smallpatternsize/2) %} {% set y_center_min = y_center - (smallpatternsize/2) %} {% set y_center_max = y_center + (smallpatternsize/2) %} SAVE_GCODE_STATE NAME=TEST_SPEED { action_respond_info("TEST_SPEED: starting %d iterations at speed %d, accel %d" % (iterations, speed, accel)) } G28 X Y {% if printer.configfile.settings.quad_gantry_level %} {% if printer.quad_gantry_level.applied == False %} QUAD_GANTRY_LEVEL G28 Z {% endif %} {% endif %} GET_POSITION G0 X{x_min} Y{y_min} Z{bound + 10} F{speed*60} SET_VELOCITY_LIMIT VELOCITY={speed} ACCEL={accel} ACCEL_TO_DECEL={accel / 2} {% for i in range(iterations) %} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} {% endfor %} SET_VELOCITY_LIMIT VELOCITY={printer.configfile.settings.printer.max_velocity} ACCEL={printer.configfile.settings.printer.max_accel} ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel} G28 X Y G90 G0 X0 Y0 F{30*60} G4 P1000 GET_POSITION RESTORE_GCODE_STATE NAME=TEST_SPEED ======================= Extruder max_extrude_ratio=0.831503 mcu 'mcu': Starting serial connect Loaded MCU 'mcu' 112 commands (v0.11.0-277-g21b78429 / 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_i2c0a=gpio0,gpio1 BUS_PINS_i2c0b=gpio4,gpio5 BUS_PINS_i2c0c=gpio8,gpio9 BUS_PINS_i2c0d=gpio12,gpio13 BUS_PINS_i2c0e=gpio16,gpio17 BUS_PINS_i2c0f=gpio20,gpio21 BUS_PINS_i2c0g=gpio24,gpio25 BUS_PINS_i2c0h=gpio28,gpio29 BUS_PINS_i2c1a=gpio2,gpio3 BUS_PINS_i2c1b=gpio6,gpio7 BUS_PINS_i2c1c=gpio10,gpio11 BUS_PINS_i2c1d=gpio14,gpio15 BUS_PINS_i2c1e=gpio18,gpio19 BUS_PINS_i2c1f=gpio22,gpio23 BUS_PINS_i2c1g=gpio26,gpio27 BUS_PINS_spi0a=gpio0,gpio3,gpio2 BUS_PINS_spi0b=gpio4,gpio7,gpio6 BUS_PINS_spi0c=gpio16,gpio19,gpio18 BUS_PINS_spi0d=gpio20,gpio23,gpio22 BUS_PINS_spi1a=gpio8,gpio11,gpio10 BUS_PINS_spi1b=gpio12,gpio15,gpio14 BUS_PINS_spi1c=gpio24,gpio27,gpio26 CLOCK_FREQ=12000000 MCU=rp2040 PWM_MAX=255 RECEIVE_WINDOW=192 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 mcu_temperature 'mcu' nominal base=437.226612 slope=-1917.489831 Sending MCU 'mcu' printer configuration... 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', '/tmp/klippy_uds'] Git version: 'v0.11.0-277-g21b78429' Branch: master Remote: origin Tracked URL: https://github.com/Klipper3d/klipper 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 Sun Oct 1 00:25:03 2023 (1696083903.1 254.8) ===== Config file ===== [delayed_gcode START_LOGO] initial_duration = 0.001 gcode = M117 {% set custom1 = "_my_intro" %} SET_DISPLAY_GROUP GROUP={custom1} UPDATE_DELAYED_GCODE ID=clear_display1 DURATION=4 [delayed_gcode START_INFO] initial_duration = 4 gcode = {% set custom = "_my_info" %} SET_DISPLAY_GROUP GROUP={custom} UPDATE_DELAYED_GCODE ID=clear_display DURATION=4 [delayed_gcode clear_display] gcode = M117 SET_DISPLAY_GROUP GROUP={printer.configfile.settings.display.display_group} [delayed_gcode clear_display1] gcode = M117 [display_data _my_intro intro1] position = 0, 0 text = ~tl~~tl~~l1~~tl~~tl~~l2~~tl~~tl~ [display_data _my_intro intro2] position = 1, 4 text = ~l3~~l4~~l5~~l6~ [display_data _my_intro intro3] position = 2, 4 text = ~l7~~l8~~l9~~l10~ [display_data _my_intro intro4] position = 3, 0 text = ~bl~~bl~~l11~~l12~~l13~~l14~~bl~~bl~ [display_data _my_info info1] position = 0, 0 text = SIMPLICID Δ [display_data _my_info info2] position = 1, 0 text = Klipr:v0.11.0-87 [display_data _my_info info3] position = 2, 0 text = Fluidd:v1.23.0 [display_data _my_info info4] position = 3, 0 text = 26/02/23 [display_glyph tl] data = **************** **************** **************** ................ **************** ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph bl] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph l1] data = **************** **************** **************** ................ **************** ................ .****........... ..****.......... ...****......... ....****........ .....****....... ......****...... .......****..... ........****.... .........****... ..........****.. [display_glyph l2] data = **************** **************** **************** ................ **************** ................ ...........****. ..........****.. .........****... ........****.... .......****..... ......****...... .....****....... ....****........ ...****......... ..****.......... [display_glyph l3] data = ...........****. ............**** .............*** ..............** ...............* ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph l4] data = ................ ................ *............... **.............. ***............. ****............ .****........... ..****.......... ...****......... ....****........ .....****....... ......****...... .......****..... ........****.... .........****... ..........****.. [display_glyph l5] data = ................ ................ ...............* ..............** .............*** ............**** ...........****. ..........****.. .........****... ........****.... .......****..... ......****...... .....****....... ....****........ ...****......... ..****.......... [display_glyph l6] data = .****........... ****............ ***............. **.............. *............... ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph l7] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ..***.....**...* ..***....***...* ..***...***....* ..***..***.....* ..***.***......* ..******.......* ..*****........* [display_glyph l8] data = ...........****. ............**** .............*** ..............** ...............* ...............* ...............* ...............* ...............* *..............* *...************ *...************ *............... *...**.....***** *...**...******* *...**...**....* [display_glyph l9] data = .****........... ****............ ***............. **.............. *............... *............... *............... *............... *............... *............... *............... *............... ................ ......*****..... *...********...* **..**....***.** [display_glyph l10] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ *****.....****.. ******...******. *....**..**..... [display_glyph l11] data = ..***.**.......* ..***.**.......* ..***..**......* ..***..***.....* ..***...***....* ..***....***...* ..***.....**...* ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph l12] data = *...**...**..... *...**...**..... *...**...**..... *...**...**....* *...**...******* *...**...**.**** *...**...**..... .........**..... .........**..... .........**..... ................ **************** ................ **************** **************** **************** [display_glyph l13] data = **..**.....**.** **..**.....**.** **..**.....**.** **..**....***.** *...********...* ....**.****..... ....**.......... ....**.......... ....**.......... ....**.......... ................ **************** ................ **************** **************** **************** [display_glyph l14] data = ......*..**..... *******..**..... ******...**..... .........**..... ******...**..... *****....**..... ................ ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph extruder] data = ................ ................ ..************.. .....******..... ..************.. .....******..... ..************.. ................ ....********.... ....**.**.**.... ....********.... ................ ......****...... .......**....... ................ ................ [display_glyph bed] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [display_glyph bed_heat1] data = ................ ................ ..*....*....*... .*....*....*.... ..*....*....*... ...*....*....*.. ..*....*....*... .*....*....*.... ..*....*....*... ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [display_glyph bed_heat2] data = ................ ................ ..*....*....*... ...*....*....*.. ..*....*....*... .*....*....*.... ..*....*....*... ...*....*....*.. ..*....*....*... ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [mcu] serial = /dev/ttyAMA0 restart_method = command [printer] kinematics = corexy max_velocity = 500 max_accel = 20000 max_z_velocity = 15 max_z_accel = 30 [stepper_x] step_pin = gpio11 dir_pin = !gpio10 enable_pin = !gpio12 microsteps = 16 rotation_distance = 40 endstop_pin = tmc2209_stepper_x:virtual_endstop homing_retract_dist = 0 position_endstop = 130 position_min = 0 position_max = 130 homing_speed = 20 [tmc2209 stepper_x] uart_pin = gpio9 tx_pin = gpio8 uart_address = 0 run_current = 0.80 stealthchop_threshold = 0 diag_pin = ^gpio4 driver_sgthrs = 30 [stepper_y] step_pin = gpio6 dir_pin = !gpio5 enable_pin = !gpio7 microsteps = 16 rotation_distance = 40 endstop_pin = tmc2209_stepper_y:virtual_endstop homing_retract_dist = 0 position_endstop = 0 position_min = 0 position_max = 130 homing_speed = 20 [tmc2209 stepper_y] uart_pin = gpio9 tx_pin = gpio8 uart_address = 2 run_current = 0.80 stealthchop_threshold = 0 diag_pin = ^gpio3 driver_sgthrs = 30 [stepper_z] step_pin = gpio19 dir_pin = gpio28 enable_pin = !gpio2 microsteps = 16 rotation_distance = 4 position_endstop = 127 endstop_pin = tmc2209_stepper_z:virtual_endstop homing_retract_dist = 0 position_min = -0.0 position_max = 127 homing_speed = 10 [tmc2209 stepper_z] uart_pin = gpio9 tx_pin = gpio8 uart_address = 1 run_current = 0.30 hold_current = 0.20 stealthchop_threshold = 999999 diag_pin = ^gpio25 driver_sgthrs = 10 [extruder] step_pin = gpio14 dir_pin = !gpio13 enable_pin = !gpio15 microsteps = 16 rotation_distance = 7.57 nozzle_diameter = 0.4 filament_diameter = 1.75 heater_pin = gpio23 sensor_type = EPCOS 100K B57560G104F sensor_pin = gpio27 min_temp = -200 max_temp = 300 max_extrude_cross_section = 2 control = pid pid_kp = 35.175 pid_ki = 1.938 pid_kd = 159.607 [tmc2209 extruder] uart_pin = gpio9 tx_pin = gpio8 uart_address = 3 run_current = 0.8 hold_current = 0.500 stealthchop_threshold = 999999 [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 100 [fan] pin = gpio17 [heater_fan hotend_fan] pin = gpio18 heater = extruder heater_temp = 50.0 [temperature_fan banana] pin = gpio20 kick_start_time = 0.8 off_below = 0.3 max_power = 1.0 sensor_type = temperature_host control = pid min_temp = -40 max_temp = 90 pid_kp = 1.0 pid_ki = 0.5 pid_kd = 2.0 min_speed = 0.1 max_speed = 0.9 target_temp = 40 [display] lcd_type = ssd1306 i2c_mcu = mcu i2c_address = 60 contrast = 239 [virtual_sdcard] path = /home/pi/printer_data/gcodes [display_status] [pause_resume] [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 %} [homing_override] gcode = G90 {% set HOME_CUR = 0.70 %} {% set driver_config = printer.configfile.settings['tmc2209 stepper_x'] %} {% set RUN_CUR = driver_config.run_current %} {% set Z_HOME_CUR = 0.20 %} {% set z_driver_config = printer.configfile.settings['tmc2209 stepper_z'] %} {% set Z_RUN_CUR = z_driver_config.run_current %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR} SET_TMC_CURRENT STEPPER=stepper_z CURRENT={Z_HOME_CUR} G28 X0 G1 X128 F5000 G4 P2000 G28 Y0 G1 Y2 F5000 G1 X125 Y5 F5000 G28 Z0 G1 Z10 F5000 SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_z CURRENT={Z_RUN_CUR} [gcode_macro PARKFRONT] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKFRONT G90 G0 X0 Y{printer.toolhead.axis_minimum.y} Z{printer.toolhead.axis_maximum.z} F6000 RESTORE_GCODE_STATE NAME=PARKFRONT [gcode_macro PARKFRONTLOW] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKFRONT G90 G0 X0 Y{printer.toolhead.axis_minimum.y} Z10 F6000 RESTORE_GCODE_STATE NAME=PARKFRONT [gcode_macro PARKREAR] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKREAR G90 G0 X0 Y{printer.toolhead.axis_maximum.y} Z{printer.toolhead.axis_maximum.z} F6000 RESTORE_GCODE_STATE NAME=PARKREAR [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %} G90 SET_GCODE_OFFSET Z=0.0 PARKFRONTLOW M109 S{EXTRUDER_TEMP} [gcode_macro END_PRINT] gcode = M140 S0 M104 S0 M106 S0 G91 G1 X0 Y0 E-3 F2000 G1 Z5 F3000 PARKREAR M84 [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE gcode = {% set E = printer["gcode_macro PAUSE"].extrude|float %} {% if 'VELOCITY' in params|upper %} {% set get_params = ('VELOCITY=' + params.VELOCITY) %} {%else %} {% set get_params = "" %} {% endif %} {% if printer.extruder.can_extrude|lower == 'true' %} G91 G1 E{E} F2100 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} RESUME_BASE {get_params} [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE PARKREAR [gcode_macro TEST_SPEED] gcode = {% set speed = params.SPEED|default(printer.configfile.settings.printer.max_velocity)|int %} {% set iterations = params.ITERATIONS|default(5)|int %} {% set accel = params.ACCEL|default(printer.configfile.settings.printer.max_accel)|int %} {% set bound = params.BOUND|default(10)|int %} {% set smallpatternsize = SMALLPATTERNSIZE|default(20)|int %} {% set x_min = printer.toolhead.axis_minimum.x + bound %} {% set x_max = printer.toolhead.axis_maximum.x - bound %} {% set y_min = printer.toolhead.axis_minimum.y + bound %} {% set y_max = printer.toolhead.axis_maximum.y - bound %} {% set x_center = (printer.toolhead.axis_minimum.x|float + printer.toolhead.axis_maximum.x|float ) / 2 %} {% set y_center = (printer.toolhead.axis_minimum.y|float + printer.toolhead.axis_maximum.y|float ) / 2 %} {% set x_center_min = x_center - (smallpatternsize/2) %} {% set x_center_max = x_center + (smallpatternsize/2) %} {% set y_center_min = y_center - (smallpatternsize/2) %} {% set y_center_max = y_center + (smallpatternsize/2) %} SAVE_GCODE_STATE NAME=TEST_SPEED { action_respond_info("TEST_SPEED: starting %d iterations at speed %d, accel %d" % (iterations, speed, accel)) } G28 X Y {% if printer.configfile.settings.quad_gantry_level %} {% if printer.quad_gantry_level.applied == False %} QUAD_GANTRY_LEVEL G28 Z {% endif %} {% endif %} GET_POSITION G0 X{x_min} Y{y_min} Z{bound + 10} F{speed*60} SET_VELOCITY_LIMIT VELOCITY={speed} ACCEL={accel} ACCEL_TO_DECEL={accel / 2} {% for i in range(iterations) %} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} {% endfor %} SET_VELOCITY_LIMIT VELOCITY={printer.configfile.settings.printer.max_velocity} ACCEL={printer.configfile.settings.printer.max_accel} ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel} G28 X Y G90 G0 X0 Y0 F{30*60} G4 P1000 GET_POSITION RESTORE_GCODE_STATE NAME=TEST_SPEED ======================= Extruder max_extrude_ratio=0.831503 mcu 'mcu': Starting serial connect 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', '/tmp/klippy_uds'] Git version: 'v0.11.0-277-g21b78429' Branch: master Remote: origin Tracked URL: https://github.com/Klipper3d/klipper 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 Sun Oct 1 00:25:09 2023 (1696083909.1 260.8) ===== Config file ===== [delayed_gcode START_LOGO] initial_duration = 0.001 gcode = M117 {% set custom1 = "_my_intro" %} SET_DISPLAY_GROUP GROUP={custom1} UPDATE_DELAYED_GCODE ID=clear_display1 DURATION=4 [delayed_gcode START_INFO] initial_duration = 4 gcode = {% set custom = "_my_info" %} SET_DISPLAY_GROUP GROUP={custom} UPDATE_DELAYED_GCODE ID=clear_display DURATION=4 [delayed_gcode clear_display] gcode = M117 SET_DISPLAY_GROUP GROUP={printer.configfile.settings.display.display_group} [delayed_gcode clear_display1] gcode = M117 [display_data _my_intro intro1] position = 0, 0 text = ~tl~~tl~~l1~~tl~~tl~~l2~~tl~~tl~ [display_data _my_intro intro2] position = 1, 4 text = ~l3~~l4~~l5~~l6~ [display_data _my_intro intro3] position = 2, 4 text = ~l7~~l8~~l9~~l10~ [display_data _my_intro intro4] position = 3, 0 text = ~bl~~bl~~l11~~l12~~l13~~l14~~bl~~bl~ [display_data _my_info info1] position = 0, 0 text = SIMPLICID Δ [display_data _my_info info2] position = 1, 0 text = Klipr:v0.11.0-87 [display_data _my_info info3] position = 2, 0 text = Fluidd:v1.23.0 [display_data _my_info info4] position = 3, 0 text = 26/02/23 [display_glyph tl] data = **************** **************** **************** ................ **************** ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph bl] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph l1] data = **************** **************** **************** ................ **************** ................ .****........... ..****.......... ...****......... ....****........ .....****....... ......****...... .......****..... ........****.... .........****... ..........****.. [display_glyph l2] data = **************** **************** **************** ................ **************** ................ ...........****. ..........****.. .........****... ........****.... .......****..... ......****...... .....****....... ....****........ ...****......... ..****.......... [display_glyph l3] data = ...........****. ............**** .............*** ..............** ...............* ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph l4] data = ................ ................ *............... **.............. ***............. ****............ .****........... ..****.......... ...****......... ....****........ .....****....... ......****...... .......****..... ........****.... .........****... ..........****.. [display_glyph l5] data = ................ ................ ...............* ..............** .............*** ............**** ...........****. ..........****.. .........****... ........****.... .......****..... ......****...... .....****....... ....****........ ...****......... ..****.......... [display_glyph l6] data = .****........... ****............ ***............. **.............. *............... ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph l7] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ..***.....**...* ..***....***...* ..***...***....* ..***..***.....* ..***.***......* ..******.......* ..*****........* [display_glyph l8] data = ...........****. ............**** .............*** ..............** ...............* ...............* ...............* ...............* ...............* *..............* *...************ *...************ *............... *...**.....***** *...**...******* *...**...**....* [display_glyph l9] data = .****........... ****............ ***............. **.............. *............... *............... *............... *............... *............... *............... *............... *............... ................ ......*****..... *...********...* **..**....***.** [display_glyph l10] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ *****.....****.. ******...******. *....**..**..... [display_glyph l11] data = ..***.**.......* ..***.**.......* ..***..**......* ..***..***.....* ..***...***....* ..***....***...* ..***.....**...* ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph l12] data = *...**...**..... *...**...**..... *...**...**..... *...**...**....* *...**...******* *...**...**.**** *...**...**..... .........**..... .........**..... .........**..... ................ **************** ................ **************** **************** **************** [display_glyph l13] data = **..**.....**.** **..**.....**.** **..**.....**.** **..**....***.** *...********...* ....**.****..... ....**.......... ....**.......... ....**.......... ....**.......... ................ **************** ................ **************** **************** **************** [display_glyph l14] data = ......*..**..... *******..**..... ******...**..... .........**..... ******...**..... *****....**..... ................ ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph extruder] data = ................ ................ ..************.. .....******..... ..************.. .....******..... ..************.. ................ ....********.... ....**.**.**.... ....********.... ................ ......****...... .......**....... ................ ................ [display_glyph bed] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [display_glyph bed_heat1] data = ................ ................ ..*....*....*... .*....*....*.... ..*....*....*... ...*....*....*.. ..*....*....*... .*....*....*.... ..*....*....*... ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [display_glyph bed_heat2] data = ................ ................ ..*....*....*... ...*....*....*.. ..*....*....*... .*....*....*.... ..*....*....*... ...*....*....*.. ..*....*....*... ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [mcu] serial = /dev/ttyAMA0 restart_method = command [printer] kinematics = corexy max_velocity = 500 max_accel = 20000 max_z_velocity = 15 max_z_accel = 30 [stepper_x] step_pin = gpio11 dir_pin = !gpio10 enable_pin = !gpio12 microsteps = 16 rotation_distance = 40 endstop_pin = tmc2209_stepper_x:virtual_endstop homing_retract_dist = 0 position_endstop = 130 position_min = 0 position_max = 130 homing_speed = 20 [tmc2209 stepper_x] uart_pin = gpio9 tx_pin = gpio8 uart_address = 0 run_current = 0.80 stealthchop_threshold = 0 diag_pin = ^gpio4 driver_sgthrs = 30 [stepper_y] step_pin = gpio6 dir_pin = !gpio5 enable_pin = !gpio7 microsteps = 16 rotation_distance = 40 endstop_pin = tmc2209_stepper_y:virtual_endstop homing_retract_dist = 0 position_endstop = 0 position_min = 0 position_max = 130 homing_speed = 20 [tmc2209 stepper_y] uart_pin = gpio9 tx_pin = gpio8 uart_address = 2 run_current = 0.80 stealthchop_threshold = 0 diag_pin = ^gpio3 driver_sgthrs = 30 [stepper_z] step_pin = gpio19 dir_pin = gpio28 enable_pin = !gpio2 microsteps = 16 rotation_distance = 4 position_endstop = 127 endstop_pin = tmc2209_stepper_z:virtual_endstop homing_retract_dist = 0 position_min = -0.0 position_max = 127 homing_speed = 10 [tmc2209 stepper_z] uart_pin = gpio9 tx_pin = gpio8 uart_address = 1 run_current = 0.30 hold_current = 0.20 stealthchop_threshold = 999999 diag_pin = ^gpio25 driver_sgthrs = 10 [extruder] step_pin = gpio14 dir_pin = !gpio13 enable_pin = !gpio15 microsteps = 16 rotation_distance = 7.57 nozzle_diameter = 0.4 filament_diameter = 1.75 heater_pin = gpio23 sensor_type = EPCOS 100K B57560G104F sensor_pin = gpio27 min_temp = -200 max_temp = 300 max_extrude_cross_section = 2 control = pid pid_kp = 35.175 pid_ki = 1.938 pid_kd = 159.607 [tmc2209 extruder] uart_pin = gpio9 tx_pin = gpio8 uart_address = 3 run_current = 0.8 hold_current = 0.500 stealthchop_threshold = 999999 [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 100 [fan] pin = gpio17 [heater_fan hotend_fan] pin = gpio18 heater = extruder heater_temp = 50.0 [temperature_fan banana] pin = gpio20 kick_start_time = 0.8 off_below = 0.3 max_power = 1.0 sensor_type = temperature_host control = pid min_temp = -40 max_temp = 90 pid_kp = 1.0 pid_ki = 0.5 pid_kd = 2.0 min_speed = 0.1 max_speed = 0.9 target_temp = 40 [display] lcd_type = ssd1306 i2c_mcu = mcu i2c_address = 60 contrast = 239 [virtual_sdcard] path = /home/pi/printer_data/gcodes [display_status] [pause_resume] [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 %} [homing_override] gcode = G90 {% set HOME_CUR = 0.70 %} {% set driver_config = printer.configfile.settings['tmc2209 stepper_x'] %} {% set RUN_CUR = driver_config.run_current %} {% set Z_HOME_CUR = 0.20 %} {% set z_driver_config = printer.configfile.settings['tmc2209 stepper_z'] %} {% set Z_RUN_CUR = z_driver_config.run_current %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR} SET_TMC_CURRENT STEPPER=stepper_z CURRENT={Z_HOME_CUR} G28 X0 G1 X128 F5000 G4 P2000 G28 Y0 G1 Y2 F5000 G1 X125 Y5 F5000 G28 Z0 G1 Z10 F5000 SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_z CURRENT={Z_RUN_CUR} [gcode_macro PARKFRONT] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKFRONT G90 G0 X0 Y{printer.toolhead.axis_minimum.y} Z{printer.toolhead.axis_maximum.z} F6000 RESTORE_GCODE_STATE NAME=PARKFRONT [gcode_macro PARKFRONTLOW] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKFRONT G90 G0 X0 Y{printer.toolhead.axis_minimum.y} Z10 F6000 RESTORE_GCODE_STATE NAME=PARKFRONT [gcode_macro PARKREAR] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKREAR G90 G0 X0 Y{printer.toolhead.axis_maximum.y} Z{printer.toolhead.axis_maximum.z} F6000 RESTORE_GCODE_STATE NAME=PARKREAR [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %} G90 SET_GCODE_OFFSET Z=0.0 PARKFRONTLOW M109 S{EXTRUDER_TEMP} [gcode_macro END_PRINT] gcode = M140 S0 M104 S0 M106 S0 G91 G1 X0 Y0 E-3 F2000 G1 Z5 F3000 PARKREAR M84 [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE gcode = {% set E = printer["gcode_macro PAUSE"].extrude|float %} {% if 'VELOCITY' in params|upper %} {% set get_params = ('VELOCITY=' + params.VELOCITY) %} {%else %} {% set get_params = "" %} {% endif %} {% if printer.extruder.can_extrude|lower == 'true' %} G91 G1 E{E} F2100 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} RESUME_BASE {get_params} [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE PARKREAR [gcode_macro TEST_SPEED] gcode = {% set speed = params.SPEED|default(printer.configfile.settings.printer.max_velocity)|int %} {% set iterations = params.ITERATIONS|default(5)|int %} {% set accel = params.ACCEL|default(printer.configfile.settings.printer.max_accel)|int %} {% set bound = params.BOUND|default(10)|int %} {% set smallpatternsize = SMALLPATTERNSIZE|default(20)|int %} {% set x_min = printer.toolhead.axis_minimum.x + bound %} {% set x_max = printer.toolhead.axis_maximum.x - bound %} {% set y_min = printer.toolhead.axis_minimum.y + bound %} {% set y_max = printer.toolhead.axis_maximum.y - bound %} {% set x_center = (printer.toolhead.axis_minimum.x|float + printer.toolhead.axis_maximum.x|float ) / 2 %} {% set y_center = (printer.toolhead.axis_minimum.y|float + printer.toolhead.axis_maximum.y|float ) / 2 %} {% set x_center_min = x_center - (smallpatternsize/2) %} {% set x_center_max = x_center + (smallpatternsize/2) %} {% set y_center_min = y_center - (smallpatternsize/2) %} {% set y_center_max = y_center + (smallpatternsize/2) %} SAVE_GCODE_STATE NAME=TEST_SPEED { action_respond_info("TEST_SPEED: starting %d iterations at speed %d, accel %d" % (iterations, speed, accel)) } G28 X Y {% if printer.configfile.settings.quad_gantry_level %} {% if printer.quad_gantry_level.applied == False %} QUAD_GANTRY_LEVEL G28 Z {% endif %} {% endif %} GET_POSITION G0 X{x_min} Y{y_min} Z{bound + 10} F{speed*60} SET_VELOCITY_LIMIT VELOCITY={speed} ACCEL={accel} ACCEL_TO_DECEL={accel / 2} {% for i in range(iterations) %} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} {% endfor %} SET_VELOCITY_LIMIT VELOCITY={printer.configfile.settings.printer.max_velocity} ACCEL={printer.configfile.settings.printer.max_accel} ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel} G28 X Y G90 G0 X0 Y0 F{30*60} G4 P1000 GET_POSITION RESTORE_GCODE_STATE NAME=TEST_SPEED ======================= Extruder max_extrude_ratio=0.831503 mcu 'mcu': Starting serial connect mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect MCU error during connect Traceback (most recent call last): File "/home/pi/klipper/klippy/mcu.py", line 800, in _mcu_identify self._serial.connect_uart(self._serialport, self._baud, rts) File "/home/pi/klipper/klippy/serialhdl.py", line 182, in connect_uart self._error("Unable to connect") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Unable to connect During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/pi/klipper/klippy/klippy.py", line 176, in _connect self.send_event("klippy:mcu_identify") File "/home/pi/klipper/klippy/klippy.py", line 263, in send_event return [cb(*params) for cb in self.event_handlers.get(event, [])] File "/home/pi/klipper/klippy/klippy.py", line 263, in return [cb(*params) for cb in self.event_handlers.get(event, [])] File "/home/pi/klipper/klippy/mcu.py", line 805, in _mcu_identify raise error(str(e)) mcu.error: mcu 'mcu': Unable to connect Build file /home/pi/klipper/klippy/../.config(1684): Thu Sep 28 22:20:41 2023 ========= Last MCU build config ========= CONFIG_LOW_LEVEL_OPTIONS=y # CONFIG_MACH_AVR is not set # CONFIG_MACH_ATSAM is not set # CONFIG_MACH_ATSAMD is not set # CONFIG_MACH_LPC176X is not set # CONFIG_MACH_STM32 is not set # CONFIG_MACH_HC32F460 is not set CONFIG_MACH_RP2040=y # CONFIG_MACH_PRU is not set # CONFIG_MACH_AR100 is not set # CONFIG_MACH_LINUX is not set # CONFIG_MACH_SIMU is not set CONFIG_BOARD_DIRECTORY="rp2040" CONFIG_MCU="rp2040" CONFIG_CLOCK_FREQ=12000000 CONFIG_SERIAL=y CONFIG_FLASH_SIZE=0x200000 CONFIG_FLASH_BOOT_ADDRESS=0x10000100 CONFIG_RAM_START=0x20000000 CONFIG_RAM_SIZE=0x42000 CONFIG_STACK_SIZE=512 CONFIG_FLASH_APPLICATION_ADDRESS=0x10000100 CONFIG_RP2040_SELECT=y CONFIG_RP2040_HAVE_STAGE2=y CONFIG_RP2040_FLASH_START_0100=y # CONFIG_RP2040_FLASH_START_4000 is not set CONFIG_RP2040_FLASH_W25Q080=y # CONFIG_RP2040_FLASH_GENERIC_03 is not set CONFIG_RP2040_STAGE2_FILE="boot2_w25q080.S" CONFIG_RP2040_STAGE2_CLKDIV=2 # CONFIG_RP2040_USB is not set CONFIG_RP2040_SERIAL_UART0=y # CONFIG_RP2040_CANBUS is not set # CONFIG_RP2040_USBCANBUS is not set CONFIG_RP2040_CANBUS_GPIO_RX=4 CONFIG_RP2040_CANBUS_GPIO_TX=5 CONFIG_SERIAL_BAUD=250000 CONFIG_USB_VENDOR_ID=0x1d50 CONFIG_USB_DEVICE_ID=0x614e CONFIG_USB_SERIAL_NUMBER="12345" CONFIG_WANT_GPIO_BITBANGING=y CONFIG_WANT_DISPLAYS=y CONFIG_WANT_SENSORS=y CONFIG_WANT_LIS2DW=y CONFIG_WANT_SOFTWARE_I2C=y CONFIG_WANT_SOFTWARE_SPI=y CONFIG_CANBUS_FREQUENCY=1000000 CONFIG_INITIAL_PINS="" CONFIG_HAVE_GPIO=y CONFIG_HAVE_GPIO_ADC=y CONFIG_HAVE_GPIO_SPI=y CONFIG_HAVE_GPIO_I2C=y CONFIG_HAVE_GPIO_HARD_PWM=y CONFIG_HAVE_STRICT_TIMING=y CONFIG_HAVE_CHIPID=y CONFIG_HAVE_STEPPER_BOTH_EDGE=y CONFIG_HAVE_BOOTLOADER_REQUEST=y CONFIG_INLINE_STEPPER_HACK=y ======================= Build file /home/pi/klipper/klippy/../out/klipper.dict(8530): Thu Sep 28 22:19:33 2023 Last MCU build version: v0.11.0-277-g21b78429 Last MCU build tools: 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 Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c0a=gpio0,gpio1 BUS_PINS_i2c0b=gpio4,gpio5 BUS_PINS_i2c0c=gpio8,gpio9 BUS_PINS_i2c0d=gpio12,gpio13 BUS_PINS_i2c0e=gpio16,gpio17 BUS_PINS_i2c0f=gpio20,gpio21 BUS_PINS_i2c0g=gpio24,gpio25 BUS_PINS_i2c0h=gpio28,gpio29 BUS_PINS_i2c1a=gpio2,gpio3 BUS_PINS_i2c1b=gpio6,gpio7 BUS_PINS_i2c1c=gpio10,gpio11 BUS_PINS_i2c1d=gpio14,gpio15 BUS_PINS_i2c1e=gpio18,gpio19 BUS_PINS_i2c1f=gpio22,gpio23 BUS_PINS_i2c1g=gpio26,gpio27 BUS_PINS_spi0a=gpio0,gpio3,gpio2 BUS_PINS_spi0b=gpio4,gpio7,gpio6 BUS_PINS_spi0c=gpio16,gpio19,gpio18 BUS_PINS_spi0d=gpio20,gpio23,gpio22 BUS_PINS_spi1a=gpio8,gpio11,gpio10 BUS_PINS_spi1b=gpio12,gpio15,gpio14 BUS_PINS_spi1c=gpio24,gpio27,gpio26 CLOCK_FREQ=12000000 MCU=rp2040 PWM_MAX=255 RECEIVE_WINDOW=192 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 Build file /home/pi/klipper/klippy/../out/klipper.elf(1456048): Thu Sep 28 22:19:45 2023 mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed 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', '/tmp/klippy_uds'] Git version: 'v0.11.0-277-g21b78429' Branch: master Remote: origin Tracked URL: https://github.com/Klipper3d/klipper 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 Sun Oct 1 00:27:08 2023 (1696084028.5 380.2) ===== Config file ===== [delayed_gcode START_LOGO] initial_duration = 0.001 gcode = M117 {% set custom1 = "_my_intro" %} SET_DISPLAY_GROUP GROUP={custom1} UPDATE_DELAYED_GCODE ID=clear_display1 DURATION=4 [delayed_gcode START_INFO] initial_duration = 4 gcode = {% set custom = "_my_info" %} SET_DISPLAY_GROUP GROUP={custom} UPDATE_DELAYED_GCODE ID=clear_display DURATION=4 [delayed_gcode clear_display] gcode = M117 SET_DISPLAY_GROUP GROUP={printer.configfile.settings.display.display_group} [delayed_gcode clear_display1] gcode = M117 [display_data _my_intro intro1] position = 0, 0 text = ~tl~~tl~~l1~~tl~~tl~~l2~~tl~~tl~ [display_data _my_intro intro2] position = 1, 4 text = ~l3~~l4~~l5~~l6~ [display_data _my_intro intro3] position = 2, 4 text = ~l7~~l8~~l9~~l10~ [display_data _my_intro intro4] position = 3, 0 text = ~bl~~bl~~l11~~l12~~l13~~l14~~bl~~bl~ [display_data _my_info info1] position = 0, 0 text = SIMPLICID Δ [display_data _my_info info2] position = 1, 0 text = Klipr:v0.11.0-87 [display_data _my_info info3] position = 2, 0 text = Fluidd:v1.23.0 [display_data _my_info info4] position = 3, 0 text = 26/02/23 [display_glyph tl] data = **************** **************** **************** ................ **************** ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph bl] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph l1] data = **************** **************** **************** ................ **************** ................ .****........... ..****.......... ...****......... ....****........ .....****....... ......****...... .......****..... ........****.... .........****... ..........****.. [display_glyph l2] data = **************** **************** **************** ................ **************** ................ ...........****. ..........****.. .........****... ........****.... .......****..... ......****...... .....****....... ....****........ ...****......... ..****.......... [display_glyph l3] data = ...........****. ............**** .............*** ..............** ...............* ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph l4] data = ................ ................ *............... **.............. ***............. ****............ .****........... ..****.......... ...****......... ....****........ .....****....... ......****...... .......****..... ........****.... .........****... ..........****.. [display_glyph l5] data = ................ ................ ...............* ..............** .............*** ............**** ...........****. ..........****.. .........****... ........****.... .......****..... ......****...... .....****....... ....****........ ...****......... ..****.......... [display_glyph l6] data = .****........... ****............ ***............. **.............. *............... ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph l7] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ..***.....**...* ..***....***...* ..***...***....* ..***..***.....* ..***.***......* ..******.......* ..*****........* [display_glyph l8] data = ...........****. ............**** .............*** ..............** ...............* ...............* ...............* ...............* ...............* *..............* *...************ *...************ *............... *...**.....***** *...**...******* *...**...**....* [display_glyph l9] data = .****........... ****............ ***............. **.............. *............... *............... *............... *............... *............... *............... *............... *............... ................ ......*****..... *...********...* **..**....***.** [display_glyph l10] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ *****.....****.. ******...******. *....**..**..... [display_glyph l11] data = ..***.**.......* ..***.**.......* ..***..**......* ..***..***.....* ..***...***....* ..***....***...* ..***.....**...* ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph l12] data = *...**...**..... *...**...**..... *...**...**..... *...**...**....* *...**...******* *...**...**.**** *...**...**..... .........**..... .........**..... .........**..... ................ **************** ................ **************** **************** **************** [display_glyph l13] data = **..**.....**.** **..**.....**.** **..**.....**.** **..**....***.** *...********...* ....**.****..... ....**.......... ....**.......... ....**.......... ....**.......... ................ **************** ................ **************** **************** **************** [display_glyph l14] data = ......*..**..... *******..**..... ******...**..... .........**..... ******...**..... *****....**..... ................ ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph extruder] data = ................ ................ ..************.. .....******..... ..************.. .....******..... ..************.. ................ ....********.... ....**.**.**.... ....********.... ................ ......****...... .......**....... ................ ................ [display_glyph bed] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [display_glyph bed_heat1] data = ................ ................ ..*....*....*... .*....*....*.... ..*....*....*... ...*....*....*.. ..*....*....*... .*....*....*.... ..*....*....*... ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [display_glyph bed_heat2] data = ................ ................ ..*....*....*... ...*....*....*.. ..*....*....*... .*....*....*.... ..*....*....*... ...*....*....*.. ..*....*....*... ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [mcu] serial = /dev/AMA0 restart_method = command [printer] kinematics = corexy max_velocity = 500 max_accel = 20000 max_z_velocity = 15 max_z_accel = 30 [stepper_x] step_pin = gpio11 dir_pin = !gpio10 enable_pin = !gpio12 microsteps = 16 rotation_distance = 40 endstop_pin = tmc2209_stepper_x:virtual_endstop homing_retract_dist = 0 position_endstop = 130 position_min = 0 position_max = 130 homing_speed = 20 [tmc2209 stepper_x] uart_pin = gpio9 tx_pin = gpio8 uart_address = 0 run_current = 0.80 stealthchop_threshold = 0 diag_pin = ^gpio4 driver_sgthrs = 30 [stepper_y] step_pin = gpio6 dir_pin = !gpio5 enable_pin = !gpio7 microsteps = 16 rotation_distance = 40 endstop_pin = tmc2209_stepper_y:virtual_endstop homing_retract_dist = 0 position_endstop = 0 position_min = 0 position_max = 130 homing_speed = 20 [tmc2209 stepper_y] uart_pin = gpio9 tx_pin = gpio8 uart_address = 2 run_current = 0.80 stealthchop_threshold = 0 diag_pin = ^gpio3 driver_sgthrs = 30 [stepper_z] step_pin = gpio19 dir_pin = gpio28 enable_pin = !gpio2 microsteps = 16 rotation_distance = 4 position_endstop = 127 endstop_pin = tmc2209_stepper_z:virtual_endstop homing_retract_dist = 0 position_min = -0.0 position_max = 127 homing_speed = 10 [tmc2209 stepper_z] uart_pin = gpio9 tx_pin = gpio8 uart_address = 1 run_current = 0.30 hold_current = 0.20 stealthchop_threshold = 999999 diag_pin = ^gpio25 driver_sgthrs = 10 [extruder] step_pin = gpio14 dir_pin = !gpio13 enable_pin = !gpio15 microsteps = 16 rotation_distance = 7.57 nozzle_diameter = 0.4 filament_diameter = 1.75 heater_pin = gpio23 sensor_type = EPCOS 100K B57560G104F sensor_pin = gpio27 min_temp = -200 max_temp = 300 max_extrude_cross_section = 2 control = pid pid_kp = 35.175 pid_ki = 1.938 pid_kd = 159.607 [tmc2209 extruder] uart_pin = gpio9 tx_pin = gpio8 uart_address = 3 run_current = 0.8 hold_current = 0.500 stealthchop_threshold = 999999 [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 100 [fan] pin = gpio17 [heater_fan hotend_fan] pin = gpio18 heater = extruder heater_temp = 50.0 [temperature_fan banana] pin = gpio20 kick_start_time = 0.8 off_below = 0.3 max_power = 1.0 sensor_type = temperature_host control = pid min_temp = -40 max_temp = 90 pid_kp = 1.0 pid_ki = 0.5 pid_kd = 2.0 min_speed = 0.1 max_speed = 0.9 target_temp = 40 [display] lcd_type = ssd1306 i2c_mcu = mcu i2c_address = 60 contrast = 239 [virtual_sdcard] path = /home/pi/printer_data/gcodes [display_status] [pause_resume] [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 %} [homing_override] gcode = G90 {% set HOME_CUR = 0.70 %} {% set driver_config = printer.configfile.settings['tmc2209 stepper_x'] %} {% set RUN_CUR = driver_config.run_current %} {% set Z_HOME_CUR = 0.20 %} {% set z_driver_config = printer.configfile.settings['tmc2209 stepper_z'] %} {% set Z_RUN_CUR = z_driver_config.run_current %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR} SET_TMC_CURRENT STEPPER=stepper_z CURRENT={Z_HOME_CUR} G28 X0 G1 X128 F5000 G4 P2000 G28 Y0 G1 Y2 F5000 G1 X125 Y5 F5000 G28 Z0 G1 Z10 F5000 SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_z CURRENT={Z_RUN_CUR} [gcode_macro PARKFRONT] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKFRONT G90 G0 X0 Y{printer.toolhead.axis_minimum.y} Z{printer.toolhead.axis_maximum.z} F6000 RESTORE_GCODE_STATE NAME=PARKFRONT [gcode_macro PARKFRONTLOW] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKFRONT G90 G0 X0 Y{printer.toolhead.axis_minimum.y} Z10 F6000 RESTORE_GCODE_STATE NAME=PARKFRONT [gcode_macro PARKREAR] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKREAR G90 G0 X0 Y{printer.toolhead.axis_maximum.y} Z{printer.toolhead.axis_maximum.z} F6000 RESTORE_GCODE_STATE NAME=PARKREAR [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %} G90 SET_GCODE_OFFSET Z=0.0 PARKFRONTLOW M109 S{EXTRUDER_TEMP} [gcode_macro END_PRINT] gcode = M140 S0 M104 S0 M106 S0 G91 G1 X0 Y0 E-3 F2000 G1 Z5 F3000 PARKREAR M84 [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE gcode = {% set E = printer["gcode_macro PAUSE"].extrude|float %} {% if 'VELOCITY' in params|upper %} {% set get_params = ('VELOCITY=' + params.VELOCITY) %} {%else %} {% set get_params = "" %} {% endif %} {% if printer.extruder.can_extrude|lower == 'true' %} G91 G1 E{E} F2100 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} RESUME_BASE {get_params} [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE PARKREAR [gcode_macro TEST_SPEED] gcode = {% set speed = params.SPEED|default(printer.configfile.settings.printer.max_velocity)|int %} {% set iterations = params.ITERATIONS|default(5)|int %} {% set accel = params.ACCEL|default(printer.configfile.settings.printer.max_accel)|int %} {% set bound = params.BOUND|default(10)|int %} {% set smallpatternsize = SMALLPATTERNSIZE|default(20)|int %} {% set x_min = printer.toolhead.axis_minimum.x + bound %} {% set x_max = printer.toolhead.axis_maximum.x - bound %} {% set y_min = printer.toolhead.axis_minimum.y + bound %} {% set y_max = printer.toolhead.axis_maximum.y - bound %} {% set x_center = (printer.toolhead.axis_minimum.x|float + printer.toolhead.axis_maximum.x|float ) / 2 %} {% set y_center = (printer.toolhead.axis_minimum.y|float + printer.toolhead.axis_maximum.y|float ) / 2 %} {% set x_center_min = x_center - (smallpatternsize/2) %} {% set x_center_max = x_center + (smallpatternsize/2) %} {% set y_center_min = y_center - (smallpatternsize/2) %} {% set y_center_max = y_center + (smallpatternsize/2) %} SAVE_GCODE_STATE NAME=TEST_SPEED { action_respond_info("TEST_SPEED: starting %d iterations at speed %d, accel %d" % (iterations, speed, accel)) } G28 X Y {% if printer.configfile.settings.quad_gantry_level %} {% if printer.quad_gantry_level.applied == False %} QUAD_GANTRY_LEVEL G28 Z {% endif %} {% endif %} GET_POSITION G0 X{x_min} Y{y_min} Z{bound + 10} F{speed*60} SET_VELOCITY_LIMIT VELOCITY={speed} ACCEL={accel} ACCEL_TO_DECEL={accel / 2} {% for i in range(iterations) %} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} {% endfor %} SET_VELOCITY_LIMIT VELOCITY={printer.configfile.settings.printer.max_velocity} ACCEL={printer.configfile.settings.printer.max_accel} ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel} G28 X Y G90 G0 X0 Y0 F{30*60} G4 P1000 GET_POSITION RESTORE_GCODE_STATE NAME=TEST_SPEED ======================= Extruder max_extrude_ratio=0.831503 mcu 'mcu': Starting serial connect mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/AMA0: [Errno 2] No such file or directory: '/dev/AMA0' MCU error during connect Traceback (most recent call last): File "/home/pi/klipper/klippy/mcu.py", line 800, in _mcu_identify self._serial.connect_uart(self._serialport, self._baud, rts) File "/home/pi/klipper/klippy/serialhdl.py", line 182, in connect_uart self._error("Unable to connect") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Unable to connect During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/pi/klipper/klippy/klippy.py", line 176, in _connect self.send_event("klippy:mcu_identify") File "/home/pi/klipper/klippy/klippy.py", line 263, in send_event return [cb(*params) for cb in self.event_handlers.get(event, [])] File "/home/pi/klipper/klippy/klippy.py", line 263, in return [cb(*params) for cb in self.event_handlers.get(event, [])] File "/home/pi/klipper/klippy/mcu.py", line 805, in _mcu_identify raise error(str(e)) mcu.error: mcu 'mcu': Unable to connect Build file /home/pi/klipper/klippy/../.config(1684): Thu Sep 28 22:20:41 2023 ========= Last MCU build config ========= CONFIG_LOW_LEVEL_OPTIONS=y # CONFIG_MACH_AVR is not set # CONFIG_MACH_ATSAM is not set # CONFIG_MACH_ATSAMD is not set # CONFIG_MACH_LPC176X is not set # CONFIG_MACH_STM32 is not set # CONFIG_MACH_HC32F460 is not set CONFIG_MACH_RP2040=y # CONFIG_MACH_PRU is not set # CONFIG_MACH_AR100 is not set # CONFIG_MACH_LINUX is not set # CONFIG_MACH_SIMU is not set CONFIG_BOARD_DIRECTORY="rp2040" CONFIG_MCU="rp2040" CONFIG_CLOCK_FREQ=12000000 CONFIG_SERIAL=y CONFIG_FLASH_SIZE=0x200000 CONFIG_FLASH_BOOT_ADDRESS=0x10000100 CONFIG_RAM_START=0x20000000 CONFIG_RAM_SIZE=0x42000 CONFIG_STACK_SIZE=512 CONFIG_FLASH_APPLICATION_ADDRESS=0x10000100 CONFIG_RP2040_SELECT=y CONFIG_RP2040_HAVE_STAGE2=y CONFIG_RP2040_FLASH_START_0100=y # CONFIG_RP2040_FLASH_START_4000 is not set CONFIG_RP2040_FLASH_W25Q080=y # CONFIG_RP2040_FLASH_GENERIC_03 is not set CONFIG_RP2040_STAGE2_FILE="boot2_w25q080.S" CONFIG_RP2040_STAGE2_CLKDIV=2 # CONFIG_RP2040_USB is not set CONFIG_RP2040_SERIAL_UART0=y # CONFIG_RP2040_CANBUS is not set # CONFIG_RP2040_USBCANBUS is not set CONFIG_RP2040_CANBUS_GPIO_RX=4 CONFIG_RP2040_CANBUS_GPIO_TX=5 CONFIG_SERIAL_BAUD=250000 CONFIG_USB_VENDOR_ID=0x1d50 CONFIG_USB_DEVICE_ID=0x614e CONFIG_USB_SERIAL_NUMBER="12345" CONFIG_WANT_GPIO_BITBANGING=y CONFIG_WANT_DISPLAYS=y CONFIG_WANT_SENSORS=y CONFIG_WANT_LIS2DW=y CONFIG_WANT_SOFTWARE_I2C=y CONFIG_WANT_SOFTWARE_SPI=y CONFIG_CANBUS_FREQUENCY=1000000 CONFIG_INITIAL_PINS="" CONFIG_HAVE_GPIO=y CONFIG_HAVE_GPIO_ADC=y CONFIG_HAVE_GPIO_SPI=y CONFIG_HAVE_GPIO_I2C=y CONFIG_HAVE_GPIO_HARD_PWM=y CONFIG_HAVE_STRICT_TIMING=y CONFIG_HAVE_CHIPID=y CONFIG_HAVE_STEPPER_BOTH_EDGE=y CONFIG_HAVE_BOOTLOADER_REQUEST=y CONFIG_INLINE_STEPPER_HACK=y ======================= Build file /home/pi/klipper/klippy/../out/klipper.dict(8530): Thu Sep 28 22:19:33 2023 Last MCU build version: v0.11.0-277-g21b78429 Last MCU build tools: 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 Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c0a=gpio0,gpio1 BUS_PINS_i2c0b=gpio4,gpio5 BUS_PINS_i2c0c=gpio8,gpio9 BUS_PINS_i2c0d=gpio12,gpio13 BUS_PINS_i2c0e=gpio16,gpio17 BUS_PINS_i2c0f=gpio20,gpio21 BUS_PINS_i2c0g=gpio24,gpio25 BUS_PINS_i2c0h=gpio28,gpio29 BUS_PINS_i2c1a=gpio2,gpio3 BUS_PINS_i2c1b=gpio6,gpio7 BUS_PINS_i2c1c=gpio10,gpio11 BUS_PINS_i2c1d=gpio14,gpio15 BUS_PINS_i2c1e=gpio18,gpio19 BUS_PINS_i2c1f=gpio22,gpio23 BUS_PINS_i2c1g=gpio26,gpio27 BUS_PINS_spi0a=gpio0,gpio3,gpio2 BUS_PINS_spi0b=gpio4,gpio7,gpio6 BUS_PINS_spi0c=gpio16,gpio19,gpio18 BUS_PINS_spi0d=gpio20,gpio23,gpio22 BUS_PINS_spi1a=gpio8,gpio11,gpio10 BUS_PINS_spi1b=gpio12,gpio15,gpio14 BUS_PINS_spi1c=gpio24,gpio27,gpio26 CLOCK_FREQ=12000000 MCU=rp2040 PWM_MAX=255 RECEIVE_WINDOW=192 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 Build file /home/pi/klipper/klippy/../out/klipper.elf(1456048): Thu Sep 28 22:19:45 2023 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', '/tmp/klippy_uds'] Git version: 'v0.11.0-277-g21b78429' Branch: master Remote: origin Tracked URL: https://github.com/Klipper3d/klipper 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 Sun Oct 1 00:29:01 2023 (1696084141.2 493.0) ===== Config file ===== [delayed_gcode START_LOGO] initial_duration = 0.001 gcode = M117 {% set custom1 = "_my_intro" %} SET_DISPLAY_GROUP GROUP={custom1} UPDATE_DELAYED_GCODE ID=clear_display1 DURATION=4 [delayed_gcode START_INFO] initial_duration = 4 gcode = {% set custom = "_my_info" %} SET_DISPLAY_GROUP GROUP={custom} UPDATE_DELAYED_GCODE ID=clear_display DURATION=4 [delayed_gcode clear_display] gcode = M117 SET_DISPLAY_GROUP GROUP={printer.configfile.settings.display.display_group} [delayed_gcode clear_display1] gcode = M117 [display_data _my_intro intro1] position = 0, 0 text = ~tl~~tl~~l1~~tl~~tl~~l2~~tl~~tl~ [display_data _my_intro intro2] position = 1, 4 text = ~l3~~l4~~l5~~l6~ [display_data _my_intro intro3] position = 2, 4 text = ~l7~~l8~~l9~~l10~ [display_data _my_intro intro4] position = 3, 0 text = ~bl~~bl~~l11~~l12~~l13~~l14~~bl~~bl~ [display_data _my_info info1] position = 0, 0 text = SIMPLICID Δ [display_data _my_info info2] position = 1, 0 text = Klipr:v0.11.0-87 [display_data _my_info info3] position = 2, 0 text = Fluidd:v1.23.0 [display_data _my_info info4] position = 3, 0 text = 26/02/23 [display_glyph tl] data = **************** **************** **************** ................ **************** ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph bl] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph l1] data = **************** **************** **************** ................ **************** ................ .****........... ..****.......... ...****......... ....****........ .....****....... ......****...... .......****..... ........****.... .........****... ..........****.. [display_glyph l2] data = **************** **************** **************** ................ **************** ................ ...........****. ..........****.. .........****... ........****.... .......****..... ......****...... .....****....... ....****........ ...****......... ..****.......... [display_glyph l3] data = ...........****. ............**** .............*** ..............** ...............* ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph l4] data = ................ ................ *............... **.............. ***............. ****............ .****........... ..****.......... ...****......... ....****........ .....****....... ......****...... .......****..... ........****.... .........****... ..........****.. [display_glyph l5] data = ................ ................ ...............* ..............** .............*** ............**** ...........****. ..........****.. .........****... ........****.... .......****..... ......****...... .....****....... ....****........ ...****......... ..****.......... [display_glyph l6] data = .****........... ****............ ***............. **.............. *............... ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph l7] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ..***.....**...* ..***....***...* ..***...***....* ..***..***.....* ..***.***......* ..******.......* ..*****........* [display_glyph l8] data = ...........****. ............**** .............*** ..............** ...............* ...............* ...............* ...............* ...............* *..............* *...************ *...************ *............... *...**.....***** *...**...******* *...**...**....* [display_glyph l9] data = .****........... ****............ ***............. **.............. *............... *............... *............... *............... *............... *............... *............... *............... ................ ......*****..... *...********...* **..**....***.** [display_glyph l10] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ *****.....****.. ******...******. *....**..**..... [display_glyph l11] data = ..***.**.......* ..***.**.......* ..***..**......* ..***..***.....* ..***...***....* ..***....***...* ..***.....**...* ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph l12] data = *...**...**..... *...**...**..... *...**...**..... *...**...**....* *...**...******* *...**...**.**** *...**...**..... .........**..... .........**..... .........**..... ................ **************** ................ **************** **************** **************** [display_glyph l13] data = **..**.....**.** **..**.....**.** **..**.....**.** **..**....***.** *...********...* ....**.****..... ....**.......... ....**.......... ....**.......... ....**.......... ................ **************** ................ **************** **************** **************** [display_glyph l14] data = ......*..**..... *******..**..... ******...**..... .........**..... ******...**..... *****....**..... ................ ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph extruder] data = ................ ................ ..************.. .....******..... ..************.. .....******..... ..************.. ................ ....********.... ....**.**.**.... ....********.... ................ ......****...... .......**....... ................ ................ [display_glyph bed] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [display_glyph bed_heat1] data = ................ ................ ..*....*....*... .*....*....*.... ..*....*....*... ...*....*....*.. ..*....*....*... .*....*....*.... ..*....*....*... ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [display_glyph bed_heat2] data = ................ ................ ..*....*....*... ...*....*....*.. ..*....*....*... .*....*....*.... ..*....*....*... ...*....*....*.. ..*....*....*... ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [mcu] serial = /dev/ttyAMA0 restart_method = command [printer] kinematics = corexy max_velocity = 500 max_accel = 20000 max_z_velocity = 15 max_z_accel = 30 [stepper_x] step_pin = gpio11 dir_pin = !gpio10 enable_pin = !gpio12 microsteps = 16 rotation_distance = 40 endstop_pin = tmc2209_stepper_x:virtual_endstop homing_retract_dist = 0 position_endstop = 130 position_min = 0 position_max = 130 homing_speed = 20 [tmc2209 stepper_x] uart_pin = gpio9 tx_pin = gpio8 uart_address = 0 run_current = 0.80 stealthchop_threshold = 0 diag_pin = ^gpio4 driver_sgthrs = 30 [stepper_y] step_pin = gpio6 dir_pin = !gpio5 enable_pin = !gpio7 microsteps = 16 rotation_distance = 40 endstop_pin = tmc2209_stepper_y:virtual_endstop homing_retract_dist = 0 position_endstop = 0 position_min = 0 position_max = 130 homing_speed = 20 [tmc2209 stepper_y] uart_pin = gpio9 tx_pin = gpio8 uart_address = 2 run_current = 0.80 stealthchop_threshold = 0 diag_pin = ^gpio3 driver_sgthrs = 30 [stepper_z] step_pin = gpio19 dir_pin = gpio28 enable_pin = !gpio2 microsteps = 16 rotation_distance = 4 position_endstop = 127 endstop_pin = tmc2209_stepper_z:virtual_endstop homing_retract_dist = 0 position_min = -0.0 position_max = 127 homing_speed = 10 [tmc2209 stepper_z] uart_pin = gpio9 tx_pin = gpio8 uart_address = 1 run_current = 0.30 hold_current = 0.20 stealthchop_threshold = 999999 diag_pin = ^gpio25 driver_sgthrs = 10 [extruder] step_pin = gpio14 dir_pin = !gpio13 enable_pin = !gpio15 microsteps = 16 rotation_distance = 7.57 nozzle_diameter = 0.4 filament_diameter = 1.75 heater_pin = gpio23 sensor_type = EPCOS 100K B57560G104F sensor_pin = gpio27 min_temp = -200 max_temp = 300 max_extrude_cross_section = 2 control = pid pid_kp = 35.175 pid_ki = 1.938 pid_kd = 159.607 [tmc2209 extruder] uart_pin = gpio9 tx_pin = gpio8 uart_address = 3 run_current = 0.8 hold_current = 0.500 stealthchop_threshold = 999999 [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 100 [fan] pin = gpio17 [heater_fan hotend_fan] pin = gpio18 heater = extruder heater_temp = 50.0 [temperature_fan banana] pin = gpio20 kick_start_time = 0.8 off_below = 0.3 max_power = 1.0 sensor_type = temperature_host control = pid min_temp = -40 max_temp = 90 pid_kp = 1.0 pid_ki = 0.5 pid_kd = 2.0 min_speed = 0.1 max_speed = 0.9 target_temp = 40 [display] lcd_type = ssd1306 i2c_mcu = mcu i2c_address = 60 contrast = 239 [virtual_sdcard] path = /home/pi/printer_data/gcodes [display_status] [pause_resume] [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 %} [homing_override] gcode = G90 {% set HOME_CUR = 0.70 %} {% set driver_config = printer.configfile.settings['tmc2209 stepper_x'] %} {% set RUN_CUR = driver_config.run_current %} {% set Z_HOME_CUR = 0.20 %} {% set z_driver_config = printer.configfile.settings['tmc2209 stepper_z'] %} {% set Z_RUN_CUR = z_driver_config.run_current %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR} SET_TMC_CURRENT STEPPER=stepper_z CURRENT={Z_HOME_CUR} G28 X0 G1 X128 F5000 G4 P2000 G28 Y0 G1 Y2 F5000 G1 X125 Y5 F5000 G28 Z0 G1 Z10 F5000 SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_z CURRENT={Z_RUN_CUR} [gcode_macro PARKFRONT] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKFRONT G90 G0 X0 Y{printer.toolhead.axis_minimum.y} Z{printer.toolhead.axis_maximum.z} F6000 RESTORE_GCODE_STATE NAME=PARKFRONT [gcode_macro PARKFRONTLOW] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKFRONT G90 G0 X0 Y{printer.toolhead.axis_minimum.y} Z10 F6000 RESTORE_GCODE_STATE NAME=PARKFRONT [gcode_macro PARKREAR] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKREAR G90 G0 X0 Y{printer.toolhead.axis_maximum.y} Z{printer.toolhead.axis_maximum.z} F6000 RESTORE_GCODE_STATE NAME=PARKREAR [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %} G90 SET_GCODE_OFFSET Z=0.0 PARKFRONTLOW M109 S{EXTRUDER_TEMP} [gcode_macro END_PRINT] gcode = M140 S0 M104 S0 M106 S0 G91 G1 X0 Y0 E-3 F2000 G1 Z5 F3000 PARKREAR M84 [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE gcode = {% set E = printer["gcode_macro PAUSE"].extrude|float %} {% if 'VELOCITY' in params|upper %} {% set get_params = ('VELOCITY=' + params.VELOCITY) %} {%else %} {% set get_params = "" %} {% endif %} {% if printer.extruder.can_extrude|lower == 'true' %} G91 G1 E{E} F2100 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} RESUME_BASE {get_params} [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE PARKREAR [gcode_macro TEST_SPEED] gcode = {% set speed = params.SPEED|default(printer.configfile.settings.printer.max_velocity)|int %} {% set iterations = params.ITERATIONS|default(5)|int %} {% set accel = params.ACCEL|default(printer.configfile.settings.printer.max_accel)|int %} {% set bound = params.BOUND|default(10)|int %} {% set smallpatternsize = SMALLPATTERNSIZE|default(20)|int %} {% set x_min = printer.toolhead.axis_minimum.x + bound %} {% set x_max = printer.toolhead.axis_maximum.x - bound %} {% set y_min = printer.toolhead.axis_minimum.y + bound %} {% set y_max = printer.toolhead.axis_maximum.y - bound %} {% set x_center = (printer.toolhead.axis_minimum.x|float + printer.toolhead.axis_maximum.x|float ) / 2 %} {% set y_center = (printer.toolhead.axis_minimum.y|float + printer.toolhead.axis_maximum.y|float ) / 2 %} {% set x_center_min = x_center - (smallpatternsize/2) %} {% set x_center_max = x_center + (smallpatternsize/2) %} {% set y_center_min = y_center - (smallpatternsize/2) %} {% set y_center_max = y_center + (smallpatternsize/2) %} SAVE_GCODE_STATE NAME=TEST_SPEED { action_respond_info("TEST_SPEED: starting %d iterations at speed %d, accel %d" % (iterations, speed, accel)) } G28 X Y {% if printer.configfile.settings.quad_gantry_level %} {% if printer.quad_gantry_level.applied == False %} QUAD_GANTRY_LEVEL G28 Z {% endif %} {% endif %} GET_POSITION G0 X{x_min} Y{y_min} Z{bound + 10} F{speed*60} SET_VELOCITY_LIMIT VELOCITY={speed} ACCEL={accel} ACCEL_TO_DECEL={accel / 2} {% for i in range(iterations) %} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} {% endfor %} SET_VELOCITY_LIMIT VELOCITY={printer.configfile.settings.printer.max_velocity} ACCEL={printer.configfile.settings.printer.max_accel} ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel} G28 X Y G90 G0 X0 Y0 F{30*60} G4 P1000 GET_POSITION RESTORE_GCODE_STATE NAME=TEST_SPEED ======================= Extruder max_extrude_ratio=0.831503 mcu 'mcu': Starting serial connect mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed 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', '/tmp/klippy_uds'] Git version: 'v0.11.0-277-g21b78429' Branch: master Remote: origin Tracked URL: https://github.com/Klipper3d/klipper 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 Sun Oct 1 00:29:12 2023 (1696084152.0 503.8) ===== Config file ===== [delayed_gcode START_LOGO] initial_duration = 0.001 gcode = M117 {% set custom1 = "_my_intro" %} SET_DISPLAY_GROUP GROUP={custom1} UPDATE_DELAYED_GCODE ID=clear_display1 DURATION=4 [delayed_gcode START_INFO] initial_duration = 4 gcode = {% set custom = "_my_info" %} SET_DISPLAY_GROUP GROUP={custom} UPDATE_DELAYED_GCODE ID=clear_display DURATION=4 [delayed_gcode clear_display] gcode = M117 SET_DISPLAY_GROUP GROUP={printer.configfile.settings.display.display_group} [delayed_gcode clear_display1] gcode = M117 [display_data _my_intro intro1] position = 0, 0 text = ~tl~~tl~~l1~~tl~~tl~~l2~~tl~~tl~ [display_data _my_intro intro2] position = 1, 4 text = ~l3~~l4~~l5~~l6~ [display_data _my_intro intro3] position = 2, 4 text = ~l7~~l8~~l9~~l10~ [display_data _my_intro intro4] position = 3, 0 text = ~bl~~bl~~l11~~l12~~l13~~l14~~bl~~bl~ [display_data _my_info info1] position = 0, 0 text = SIMPLICID Δ [display_data _my_info info2] position = 1, 0 text = Klipr:v0.11.0-87 [display_data _my_info info3] position = 2, 0 text = Fluidd:v1.23.0 [display_data _my_info info4] position = 3, 0 text = 26/02/23 [display_glyph tl] data = **************** **************** **************** ................ **************** ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph bl] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph l1] data = **************** **************** **************** ................ **************** ................ .****........... ..****.......... ...****......... ....****........ .....****....... ......****...... .......****..... ........****.... .........****... ..........****.. [display_glyph l2] data = **************** **************** **************** ................ **************** ................ ...........****. ..........****.. .........****... ........****.... .......****..... ......****...... .....****....... ....****........ ...****......... ..****.......... [display_glyph l3] data = ...........****. ............**** .............*** ..............** ...............* ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph l4] data = ................ ................ *............... **.............. ***............. ****............ .****........... ..****.......... ...****......... ....****........ .....****....... ......****...... .......****..... ........****.... .........****... ..........****.. [display_glyph l5] data = ................ ................ ...............* ..............** .............*** ............**** ...........****. ..........****.. .........****... ........****.... .......****..... ......****...... .....****....... ....****........ ...****......... ..****.......... [display_glyph l6] data = .****........... ****............ ***............. **.............. *............... ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph l7] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ..***.....**...* ..***....***...* ..***...***....* ..***..***.....* ..***.***......* ..******.......* ..*****........* [display_glyph l8] data = ...........****. ............**** .............*** ..............** ...............* ...............* ...............* ...............* ...............* *..............* *...************ *...************ *............... *...**.....***** *...**...******* *...**...**....* [display_glyph l9] data = .****........... ****............ ***............. **.............. *............... *............... *............... *............... *............... *............... *............... *............... ................ ......*****..... *...********...* **..**....***.** [display_glyph l10] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ *****.....****.. ******...******. *....**..**..... [display_glyph l11] data = ..***.**.......* ..***.**.......* ..***..**......* ..***..***.....* ..***...***....* ..***....***...* ..***.....**...* ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph l12] data = *...**...**..... *...**...**..... *...**...**..... *...**...**....* *...**...******* *...**...**.**** *...**...**..... .........**..... .........**..... .........**..... ................ **************** ................ **************** **************** **************** [display_glyph l13] data = **..**.....**.** **..**.....**.** **..**.....**.** **..**....***.** *...********...* ....**.****..... ....**.......... ....**.......... ....**.......... ....**.......... ................ **************** ................ **************** **************** **************** [display_glyph l14] data = ......*..**..... *******..**..... ******...**..... .........**..... ******...**..... *****....**..... ................ ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph extruder] data = ................ ................ ..************.. .....******..... ..************.. .....******..... ..************.. ................ ....********.... ....**.**.**.... ....********.... ................ ......****...... .......**....... ................ ................ [display_glyph bed] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [display_glyph bed_heat1] data = ................ ................ ..*....*....*... .*....*....*.... ..*....*....*... ...*....*....*.. ..*....*....*... .*....*....*.... ..*....*....*... ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [display_glyph bed_heat2] data = ................ ................ ..*....*....*... ...*....*....*.. ..*....*....*... .*....*....*.... ..*....*....*... ...*....*....*.. ..*....*....*... ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [mcu] serial = /dev/ttyAMA0 restart_method = command [printer] kinematics = corexy max_velocity = 500 max_accel = 20000 max_z_velocity = 15 max_z_accel = 30 [stepper_x] step_pin = gpio11 dir_pin = !gpio10 enable_pin = !gpio12 microsteps = 16 rotation_distance = 40 endstop_pin = tmc2209_stepper_x:virtual_endstop homing_retract_dist = 0 position_endstop = 130 position_min = 0 position_max = 130 homing_speed = 20 [tmc2209 stepper_x] uart_pin = gpio9 tx_pin = gpio8 uart_address = 0 run_current = 0.80 stealthchop_threshold = 0 diag_pin = ^gpio4 driver_sgthrs = 30 [stepper_y] step_pin = gpio6 dir_pin = !gpio5 enable_pin = !gpio7 microsteps = 16 rotation_distance = 40 endstop_pin = tmc2209_stepper_y:virtual_endstop homing_retract_dist = 0 position_endstop = 0 position_min = 0 position_max = 130 homing_speed = 20 [tmc2209 stepper_y] uart_pin = gpio9 tx_pin = gpio8 uart_address = 2 run_current = 0.80 stealthchop_threshold = 0 diag_pin = ^gpio3 driver_sgthrs = 30 [stepper_z] step_pin = gpio19 dir_pin = gpio28 enable_pin = !gpio2 microsteps = 16 rotation_distance = 4 position_endstop = 127 endstop_pin = tmc2209_stepper_z:virtual_endstop homing_retract_dist = 0 position_min = -0.0 position_max = 127 homing_speed = 10 [tmc2209 stepper_z] uart_pin = gpio9 tx_pin = gpio8 uart_address = 1 run_current = 0.30 hold_current = 0.20 stealthchop_threshold = 999999 diag_pin = ^gpio25 driver_sgthrs = 10 [extruder] step_pin = gpio14 dir_pin = !gpio13 enable_pin = !gpio15 microsteps = 16 rotation_distance = 7.57 nozzle_diameter = 0.4 filament_diameter = 1.75 heater_pin = gpio23 sensor_type = EPCOS 100K B57560G104F sensor_pin = gpio27 min_temp = -200 max_temp = 300 max_extrude_cross_section = 2 control = pid pid_kp = 35.175 pid_ki = 1.938 pid_kd = 159.607 [tmc2209 extruder] uart_pin = gpio9 tx_pin = gpio8 uart_address = 3 run_current = 0.8 hold_current = 0.500 stealthchop_threshold = 999999 [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 100 [fan] pin = gpio17 [heater_fan hotend_fan] pin = gpio18 heater = extruder heater_temp = 50.0 [temperature_fan banana] pin = gpio20 kick_start_time = 0.8 off_below = 0.3 max_power = 1.0 sensor_type = temperature_host control = pid min_temp = -40 max_temp = 90 pid_kp = 1.0 pid_ki = 0.5 pid_kd = 2.0 min_speed = 0.1 max_speed = 0.9 target_temp = 40 [display] lcd_type = ssd1306 i2c_mcu = mcu i2c_address = 60 contrast = 239 [virtual_sdcard] path = /home/pi/printer_data/gcodes [display_status] [pause_resume] [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 %} [homing_override] gcode = G90 {% set HOME_CUR = 0.70 %} {% set driver_config = printer.configfile.settings['tmc2209 stepper_x'] %} {% set RUN_CUR = driver_config.run_current %} {% set Z_HOME_CUR = 0.20 %} {% set z_driver_config = printer.configfile.settings['tmc2209 stepper_z'] %} {% set Z_RUN_CUR = z_driver_config.run_current %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR} SET_TMC_CURRENT STEPPER=stepper_z CURRENT={Z_HOME_CUR} G28 X0 G1 X128 F5000 G4 P2000 G28 Y0 G1 Y2 F5000 G1 X125 Y5 F5000 G28 Z0 G1 Z10 F5000 SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_z CURRENT={Z_RUN_CUR} [gcode_macro PARKFRONT] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKFRONT G90 G0 X0 Y{printer.toolhead.axis_minimum.y} Z{printer.toolhead.axis_maximum.z} F6000 RESTORE_GCODE_STATE NAME=PARKFRONT [gcode_macro PARKFRONTLOW] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKFRONT G90 G0 X0 Y{printer.toolhead.axis_minimum.y} Z10 F6000 RESTORE_GCODE_STATE NAME=PARKFRONT [gcode_macro PARKREAR] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKREAR G90 G0 X0 Y{printer.toolhead.axis_maximum.y} Z{printer.toolhead.axis_maximum.z} F6000 RESTORE_GCODE_STATE NAME=PARKREAR [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %} G90 SET_GCODE_OFFSET Z=0.0 PARKFRONTLOW M109 S{EXTRUDER_TEMP} [gcode_macro END_PRINT] gcode = M140 S0 M104 S0 M106 S0 G91 G1 X0 Y0 E-3 F2000 G1 Z5 F3000 PARKREAR M84 [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE gcode = {% set E = printer["gcode_macro PAUSE"].extrude|float %} {% if 'VELOCITY' in params|upper %} {% set get_params = ('VELOCITY=' + params.VELOCITY) %} {%else %} {% set get_params = "" %} {% endif %} {% if printer.extruder.can_extrude|lower == 'true' %} G91 G1 E{E} F2100 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} RESUME_BASE {get_params} [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE PARKREAR [gcode_macro TEST_SPEED] gcode = {% set speed = params.SPEED|default(printer.configfile.settings.printer.max_velocity)|int %} {% set iterations = params.ITERATIONS|default(5)|int %} {% set accel = params.ACCEL|default(printer.configfile.settings.printer.max_accel)|int %} {% set bound = params.BOUND|default(10)|int %} {% set smallpatternsize = SMALLPATTERNSIZE|default(20)|int %} {% set x_min = printer.toolhead.axis_minimum.x + bound %} {% set x_max = printer.toolhead.axis_maximum.x - bound %} {% set y_min = printer.toolhead.axis_minimum.y + bound %} {% set y_max = printer.toolhead.axis_maximum.y - bound %} {% set x_center = (printer.toolhead.axis_minimum.x|float + printer.toolhead.axis_maximum.x|float ) / 2 %} {% set y_center = (printer.toolhead.axis_minimum.y|float + printer.toolhead.axis_maximum.y|float ) / 2 %} {% set x_center_min = x_center - (smallpatternsize/2) %} {% set x_center_max = x_center + (smallpatternsize/2) %} {% set y_center_min = y_center - (smallpatternsize/2) %} {% set y_center_max = y_center + (smallpatternsize/2) %} SAVE_GCODE_STATE NAME=TEST_SPEED { action_respond_info("TEST_SPEED: starting %d iterations at speed %d, accel %d" % (iterations, speed, accel)) } G28 X Y {% if printer.configfile.settings.quad_gantry_level %} {% if printer.quad_gantry_level.applied == False %} QUAD_GANTRY_LEVEL G28 Z {% endif %} {% endif %} GET_POSITION G0 X{x_min} Y{y_min} Z{bound + 10} F{speed*60} SET_VELOCITY_LIMIT VELOCITY={speed} ACCEL={accel} ACCEL_TO_DECEL={accel / 2} {% for i in range(iterations) %} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} {% endfor %} SET_VELOCITY_LIMIT VELOCITY={printer.configfile.settings.printer.max_velocity} ACCEL={printer.configfile.settings.printer.max_accel} ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel} G28 X Y G90 G0 X0 Y0 F{30*60} G4 P1000 GET_POSITION RESTORE_GCODE_STATE NAME=TEST_SPEED ======================= Extruder max_extrude_ratio=0.831503 mcu 'mcu': Starting serial connect 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', '/tmp/klippy_uds'] Git version: 'v0.11.0-277-g21b78429' Branch: master Remote: origin Tracked URL: https://github.com/Klipper3d/klipper 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 Sun Oct 1 00:29:39 2023 (1696084179.5 25.5) ===== Config file ===== [delayed_gcode START_LOGO] initial_duration = 0.001 gcode = M117 {% set custom1 = "_my_intro" %} SET_DISPLAY_GROUP GROUP={custom1} UPDATE_DELAYED_GCODE ID=clear_display1 DURATION=4 [delayed_gcode START_INFO] initial_duration = 4 gcode = {% set custom = "_my_info" %} SET_DISPLAY_GROUP GROUP={custom} UPDATE_DELAYED_GCODE ID=clear_display DURATION=4 [delayed_gcode clear_display] gcode = M117 SET_DISPLAY_GROUP GROUP={printer.configfile.settings.display.display_group} [delayed_gcode clear_display1] gcode = M117 [display_data _my_intro intro1] position = 0, 0 text = ~tl~~tl~~l1~~tl~~tl~~l2~~tl~~tl~ [display_data _my_intro intro2] position = 1, 4 text = ~l3~~l4~~l5~~l6~ [display_data _my_intro intro3] position = 2, 4 text = ~l7~~l8~~l9~~l10~ [display_data _my_intro intro4] position = 3, 0 text = ~bl~~bl~~l11~~l12~~l13~~l14~~bl~~bl~ [display_data _my_info info1] position = 0, 0 text = SIMPLICID Δ [display_data _my_info info2] position = 1, 0 text = Klipr:v0.11.0-87 [display_data _my_info info3] position = 2, 0 text = Fluidd:v1.23.0 [display_data _my_info info4] position = 3, 0 text = 26/02/23 [display_glyph tl] data = **************** **************** **************** ................ **************** ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph bl] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph l1] data = **************** **************** **************** ................ **************** ................ .****........... ..****.......... ...****......... ....****........ .....****....... ......****...... .......****..... ........****.... .........****... ..........****.. [display_glyph l2] data = **************** **************** **************** ................ **************** ................ ...........****. ..........****.. .........****... ........****.... .......****..... ......****...... .....****....... ....****........ ...****......... ..****.......... [display_glyph l3] data = ...........****. ............**** .............*** ..............** ...............* ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph l4] data = ................ ................ *............... **.............. ***............. ****............ .****........... ..****.......... ...****......... ....****........ .....****....... ......****...... .......****..... ........****.... .........****... ..........****.. [display_glyph l5] data = ................ ................ ...............* ..............** .............*** ............**** ...........****. ..........****.. .........****... ........****.... .......****..... ......****...... .....****....... ....****........ ...****......... ..****.......... [display_glyph l6] data = .****........... ****............ ***............. **.............. *............... ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ [display_glyph l7] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ..***.....**...* ..***....***...* ..***...***....* ..***..***.....* ..***.***......* ..******.......* ..*****........* [display_glyph l8] data = ...........****. ............**** .............*** ..............** ...............* ...............* ...............* ...............* ...............* *..............* *...************ *...************ *............... *...**.....***** *...**...******* *...**...**....* [display_glyph l9] data = .****........... ****............ ***............. **.............. *............... *............... *............... *............... *............... *............... *............... *............... ................ ......*****..... *...********...* **..**....***.** [display_glyph l10] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ *****.....****.. ******...******. *....**..**..... [display_glyph l11] data = ..***.**.......* ..***.**.......* ..***..**......* ..***..***.....* ..***...***....* ..***....***...* ..***.....**...* ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph l12] data = *...**...**..... *...**...**..... *...**...**..... *...**...**....* *...**...******* *...**...**.**** *...**...**..... .........**..... .........**..... .........**..... ................ **************** ................ **************** **************** **************** [display_glyph l13] data = **..**.....**.** **..**.....**.** **..**.....**.** **..**....***.** *...********...* ....**.****..... ....**.......... ....**.......... ....**.......... ....**.......... ................ **************** ................ **************** **************** **************** [display_glyph l14] data = ......*..**..... *******..**..... ******...**..... .........**..... ******...**..... *****....**..... ................ ................ ................ ................ ................ **************** ................ **************** **************** **************** [display_glyph extruder] data = ................ ................ ..************.. .....******..... ..************.. .....******..... ..************.. ................ ....********.... ....**.**.**.... ....********.... ................ ......****...... .......**....... ................ ................ [display_glyph bed] data = ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [display_glyph bed_heat1] data = ................ ................ ..*....*....*... .*....*....*.... ..*....*....*... ...*....*....*.. ..*....*....*... .*....*....*.... ..*....*....*... ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [display_glyph bed_heat2] data = ................ ................ ..*....*....*... ...*....*....*.. ..*....*....*... .*....*....*.... ..*....*....*... ...*....*....*.. ..*....*....*... ................ ................ .*************.. ....*.....*..... ...***...***.... ................ ................ [mcu] serial = /dev/ttyAMA0 restart_method = command [printer] kinematics = corexy max_velocity = 500 max_accel = 20000 max_z_velocity = 15 max_z_accel = 30 [stepper_x] step_pin = gpio11 dir_pin = !gpio10 enable_pin = !gpio12 microsteps = 16 rotation_distance = 40 endstop_pin = tmc2209_stepper_x:virtual_endstop homing_retract_dist = 0 position_endstop = 130 position_min = 0 position_max = 130 homing_speed = 20 [tmc2209 stepper_x] uart_pin = gpio9 tx_pin = gpio8 uart_address = 0 run_current = 0.80 stealthchop_threshold = 0 diag_pin = ^gpio4 driver_sgthrs = 30 [stepper_y] step_pin = gpio6 dir_pin = !gpio5 enable_pin = !gpio7 microsteps = 16 rotation_distance = 40 endstop_pin = tmc2209_stepper_y:virtual_endstop homing_retract_dist = 0 position_endstop = 0 position_min = 0 position_max = 130 homing_speed = 20 [tmc2209 stepper_y] uart_pin = gpio9 tx_pin = gpio8 uart_address = 2 run_current = 0.80 stealthchop_threshold = 0 diag_pin = ^gpio3 driver_sgthrs = 30 [stepper_z] step_pin = gpio19 dir_pin = gpio28 enable_pin = !gpio2 microsteps = 16 rotation_distance = 4 position_endstop = 127 endstop_pin = tmc2209_stepper_z:virtual_endstop homing_retract_dist = 0 position_min = -0.0 position_max = 127 homing_speed = 10 [tmc2209 stepper_z] uart_pin = gpio9 tx_pin = gpio8 uart_address = 1 run_current = 0.30 hold_current = 0.20 stealthchop_threshold = 999999 diag_pin = ^gpio25 driver_sgthrs = 10 [extruder] step_pin = gpio14 dir_pin = !gpio13 enable_pin = !gpio15 microsteps = 16 rotation_distance = 7.57 nozzle_diameter = 0.4 filament_diameter = 1.75 heater_pin = gpio23 sensor_type = EPCOS 100K B57560G104F sensor_pin = gpio27 min_temp = -200 max_temp = 300 max_extrude_cross_section = 2 control = pid pid_kp = 35.175 pid_ki = 1.938 pid_kd = 159.607 [tmc2209 extruder] uart_pin = gpio9 tx_pin = gpio8 uart_address = 3 run_current = 0.8 hold_current = 0.500 stealthchop_threshold = 999999 [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 100 [fan] pin = gpio17 [heater_fan hotend_fan] pin = gpio18 heater = extruder heater_temp = 50.0 [temperature_fan banana] pin = gpio20 kick_start_time = 0.8 off_below = 0.3 max_power = 1.0 sensor_type = temperature_host control = pid min_temp = -40 max_temp = 90 pid_kp = 1.0 pid_ki = 0.5 pid_kd = 2.0 min_speed = 0.1 max_speed = 0.9 target_temp = 40 [display] lcd_type = ssd1306 i2c_mcu = mcu i2c_address = 60 contrast = 239 [virtual_sdcard] path = /home/pi/printer_data/gcodes [display_status] [pause_resume] [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 %} [homing_override] gcode = G90 {% set HOME_CUR = 0.70 %} {% set driver_config = printer.configfile.settings['tmc2209 stepper_x'] %} {% set RUN_CUR = driver_config.run_current %} {% set Z_HOME_CUR = 0.20 %} {% set z_driver_config = printer.configfile.settings['tmc2209 stepper_z'] %} {% set Z_RUN_CUR = z_driver_config.run_current %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR} SET_TMC_CURRENT STEPPER=stepper_z CURRENT={Z_HOME_CUR} G28 X0 G1 X128 F5000 G4 P2000 G28 Y0 G1 Y2 F5000 G1 X125 Y5 F5000 G28 Z0 G1 Z10 F5000 SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CUR} SET_TMC_CURRENT STEPPER=stepper_z CURRENT={Z_RUN_CUR} [gcode_macro PARKFRONT] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKFRONT G90 G0 X0 Y{printer.toolhead.axis_minimum.y} Z{printer.toolhead.axis_maximum.z} F6000 RESTORE_GCODE_STATE NAME=PARKFRONT [gcode_macro PARKFRONTLOW] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKFRONT G90 G0 X0 Y{printer.toolhead.axis_minimum.y} Z10 F6000 RESTORE_GCODE_STATE NAME=PARKFRONT [gcode_macro PARKREAR] gcode = {% if "xyz" not in printer.toolhead.homed_axes %} G28 {% endif %} SAVE_GCODE_STATE NAME=PARKREAR G90 G0 X0 Y{printer.toolhead.axis_maximum.y} Z{printer.toolhead.axis_maximum.z} F6000 RESTORE_GCODE_STATE NAME=PARKREAR [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %} G90 SET_GCODE_OFFSET Z=0.0 PARKFRONTLOW M109 S{EXTRUDER_TEMP} [gcode_macro END_PRINT] gcode = M140 S0 M104 S0 M106 S0 G91 G1 X0 Y0 E-3 F2000 G1 Z5 F3000 PARKREAR M84 [gcode_macro RESUME] description = Resume the actual running print rename_existing = RESUME_BASE gcode = {% set E = printer["gcode_macro PAUSE"].extrude|float %} {% if 'VELOCITY' in params|upper %} {% set get_params = ('VELOCITY=' + params.VELOCITY) %} {%else %} {% set get_params = "" %} {% endif %} {% if printer.extruder.can_extrude|lower == 'true' %} G91 G1 E{E} F2100 {% else %} {action_respond_info("Extruder not hot enough")} {% endif %} RESUME_BASE {get_params} [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE PARKREAR [gcode_macro TEST_SPEED] gcode = {% set speed = params.SPEED|default(printer.configfile.settings.printer.max_velocity)|int %} {% set iterations = params.ITERATIONS|default(5)|int %} {% set accel = params.ACCEL|default(printer.configfile.settings.printer.max_accel)|int %} {% set bound = params.BOUND|default(10)|int %} {% set smallpatternsize = SMALLPATTERNSIZE|default(20)|int %} {% set x_min = printer.toolhead.axis_minimum.x + bound %} {% set x_max = printer.toolhead.axis_maximum.x - bound %} {% set y_min = printer.toolhead.axis_minimum.y + bound %} {% set y_max = printer.toolhead.axis_maximum.y - bound %} {% set x_center = (printer.toolhead.axis_minimum.x|float + printer.toolhead.axis_maximum.x|float ) / 2 %} {% set y_center = (printer.toolhead.axis_minimum.y|float + printer.toolhead.axis_maximum.y|float ) / 2 %} {% set x_center_min = x_center - (smallpatternsize/2) %} {% set x_center_max = x_center + (smallpatternsize/2) %} {% set y_center_min = y_center - (smallpatternsize/2) %} {% set y_center_max = y_center + (smallpatternsize/2) %} SAVE_GCODE_STATE NAME=TEST_SPEED { action_respond_info("TEST_SPEED: starting %d iterations at speed %d, accel %d" % (iterations, speed, accel)) } G28 X Y {% if printer.configfile.settings.quad_gantry_level %} {% if printer.quad_gantry_level.applied == False %} QUAD_GANTRY_LEVEL G28 Z {% endif %} {% endif %} GET_POSITION G0 X{x_min} Y{y_min} Z{bound + 10} F{speed*60} SET_VELOCITY_LIMIT VELOCITY={speed} ACCEL={accel} ACCEL_TO_DECEL={accel / 2} {% for i in range(iterations) %} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_min} Y{y_min} F{speed*60} G0 X{x_min} Y{y_max} F{speed*60} G0 X{x_max} Y{y_max} F{speed*60} G0 X{x_max} Y{y_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_min} F{speed*60} G0 X{x_center_min} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_max} F{speed*60} G0 X{x_center_max} Y{y_center_min} F{speed*60} {% endfor %} SET_VELOCITY_LIMIT VELOCITY={printer.configfile.settings.printer.max_velocity} ACCEL={printer.configfile.settings.printer.max_accel} ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel} G28 X Y G90 G0 X0 Y0 F{30*60} G4 P1000 GET_POSITION RESTORE_GCODE_STATE NAME=TEST_SPEED ======================= Extruder max_extrude_ratio=0.831503 mcu 'mcu': Starting serial connect mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed mcu 'mcu': Timeout on connect mcu 'mcu': Wait for identify_response Traceback (most recent call last): File "/home/pi/klipper/klippy/serialhdl.py", line 68, in _get_identify_data params = self.send_with_response(msg, 'identify_response') File "/home/pi/klipper/klippy/serialhdl.py", line 261, in send_with_response return src.get_response([cmd], self.default_cmd_queue) File "/home/pi/klipper/klippy/serialhdl.py", line 318, in get_response self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock, File "/home/pi/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack self._error("Serial connection closed") File "/home/pi/klipper/klippy/serialhdl.py", line 61, in _error raise error(self.warn_prefix + (msg % params)) serialhdl.error: mcu 'mcu': Serial connection closed