Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Starting Klippy...
- Args: ['/home/pi/klipper/klippy/klippy.py', '/home/pi/printer_data/config/printer.cfg', '-l', '/home/pi/printer_data/logs/klippy.log', '-I', '/home/pi/printer_data/comms/klippy.serial', '-a', '/home/pi/printer_data/comms/klippy.sock']
- Git version: 'v0.13.0-112-g82f540bb'
- Branch: master
- Remote: origin
- Tracked URL: https://github.com/Klipper3d/klipper.git
- CPU: 4 core ?
- Python: '3.9.2 (default, Mar 20 2025, 02:07:39) \n[GCC 10.2.1 20210110]'
- Start printer at Thu May 15 21:08:11 2025 (1747357691.9 30.9)
- ===== Config file =====
- [gcode_macro G29]
- gcode =
- G28
- BED_MESH_CALIBRATE
- BED_MESH_PROFILE SAVE=p1
- G1 X175 Y175 Z5 F4000
- [virtual_sdcard]
- path = ~/printer_data/gcodes
- on_error_gcode = CANCEL_PRINT
- [pause_resume]
- [display_status]
- [respond]
- [gcode_macro CANCEL_PRINT]
- description = Cancel the actual running print
- rename_existing = CANCEL_PRINT_BASE
- gcode =
- {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
- {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
- {% set retract = client.cancel_retract|default(5.0)|abs %}
- {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
- else "X=" ~ client.park_at_cancel_x %}
- {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
- else "Y=" ~ client.park_at_cancel_y %}
- {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
- {% if printer['gcode_macro RESUME'].restore_idle_timeout > 0 %}
- SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro RESUME'].restore_idle_timeout}
- {% endif %}
- {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
- _CLIENT_RETRACT LENGTH={retract}
- TURN_OFF_HEATERS
- M106 S0
- {client.user_cancel_macro|default("")}
- SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False
- SET_PAUSE_NEXT_LAYER ENABLE=0
- SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
- CANCEL_PRINT_BASE
- [gcode_macro PAUSE]
- description = Pause the actual running print
- rename_existing = PAUSE_BASE
- gcode =
- {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
- {% set idle_timeout = client.idle_timeout|default(0) %}
- {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0 %}
- {% set restore = False if printer.toolhead.extruder == ''
- else True if params.RESTORE|default(1)|int == 1 else False %}
- SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
- {% if idle_timeout > 0 %}
- SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
- SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
- {% endif %}
- PAUSE_BASE
- {client.user_pause_macro|default("")}
- _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}
- [gcode_macro RESUME]
- description = Resume the actual running print
- rename_existing = RESUME_BASE
- variable_last_extruder_temp = {'restore': False, 'temp': 0}
- variable_restore_idle_timeout = 0
- variable_idle_state = False
- gcode =
- {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
- {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
- {% set sp_move = client.speed_move|default(velocity) %}
- {% set runout_resume = True if client.runout_sensor|default("") == ""
- else True if not printer[client.runout_sensor].enabled
- else printer[client.runout_sensor].filament_detected %}
- {% set can_extrude = True if printer.toolhead.extruder == ''
- else printer[printer.toolhead.extruder].can_extrude %}
- {% set do_resume = False %}
- {% set prompt_txt = [] %}
- {% if printer.idle_timeout.state|upper == "IDLE" or idle_state %}
- SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False
- {% if last_extruder_temp.restore %}
- RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp.temp) }'
- M109 S{last_extruder_temp.temp}
- {% set do_resume = True %}
- {% elif can_extrude %}
- {% set do_resume = True %}
- {% else %}
- RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
- {% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
- {% endif %}
- {% elif can_extrude %}
- {% set do_resume = True %}
- {% else %}
- RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
- {% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
- {% endif %}
- {% if runout_resume %}
- {% if do_resume %}
- {% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %}
- {client.user_resume_macro|default("")}
- _CLIENT_EXTRUDE
- RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}
- {% endif %}
- {% else %}
- RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]}'
- {% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % (client.runout_sensor.split(" "))[1]) %}
- {% endif %}
- {% if not (runout_resume and do_resume) %}
- RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!"
- {% for element in prompt_txt %}
- RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}'
- {% endfor %}
- RESPOND TYPE=command MSG="action:prompt_footer_button Ok|RESPOND TYPE=command MSG=action:prompt_end|info"
- RESPOND TYPE=command MSG="action:prompt_show"
- {% endif %}
- [gcode_macro SET_PAUSE_NEXT_LAYER]
- description = Enable a pause if the next layer is reached
- gcode =
- {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
- {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
- {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
- SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"
- [gcode_macro SET_PAUSE_AT_LAYER]
- description = Enable/disable a pause if a given layer number is reached
- gcode =
- {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
- {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
- else params.LAYER is defined %}
- {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
- {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
- SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"
- [gcode_macro SET_PRINT_STATS_INFO]
- rename_existing = SET_PRINT_STATS_INFO_BASE
- description = Overwrite, to get pause_next_layer and pause_at_layer feature
- variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
- variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
- gcode =
- {% if pause_next_layer.enable %}
- RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
- {pause_next_layer.call}
- SET_PAUSE_NEXT_LAYER ENABLE=0
- {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
- RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
- {pause_at_layer.call}
- SET_PAUSE_AT_LAYER ENABLE=0
- {% endif %}
- SET_PRINT_STATS_INFO_BASE {rawparams}
- [gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
- description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
- gcode =
- {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
- {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
- {% set use_custom = client.use_custom_pos|default(false)|lower == 'true' %}
- {% set custom_park_x = client.custom_park_x|default(0.0) %}
- {% set custom_park_y = client.custom_park_y|default(0.0) %}
- {% set park_dz = client.custom_park_dz|default(2.0)|abs %}
- {% set sp_hop = client.speed_hop|default(15) * 60 %}
- {% set sp_move = client.speed_move|default(velocity) * 60 %}
- {% set origin = printer.gcode_move.homing_origin %}
- {% set act = printer.gcode_move.gcode_position %}
- {% set max = printer.toolhead.axis_maximum %}
- {% set cone = printer.toolhead.cone_start_z|default(max.z) %}
- {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
- else False %}
- {% set z_min = params.Z_MIN|default(0)|float %}
- {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
- {% set x_park = params.X if params.X is defined
- else custom_park_x if use_custom
- else 0.0 if round_bed
- else (max.x - 5.0) %}
- {% set y_park = params.Y if params.Y is defined
- else custom_park_y if use_custom
- else (max.y - 5.0) if round_bed and z_park < cone
- else 0.0 if round_bed
- else (max.y - 5.0) %}
- _CLIENT_RETRACT
- {% if "xyz" in printer.toolhead.homed_axes %}
- G90
- G1 Z{z_park} F{sp_hop}
- G1 X{x_park} Y{y_park} F{sp_move}
- {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
- {% else %}
- RESPOND TYPE=echo MSG='Printer not homed'
- {% endif %}
- [gcode_macro _CLIENT_EXTRUDE]
- description = Extrudes, if the extruder is hot enough
- gcode =
- {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
- {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
- {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
- {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
- {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
- {% if printer.toolhead.extruder != '' %}
- {% if printer[printer.toolhead.extruder].can_extrude %}
- {% if use_fw_retract %}
- {% if length < 0 %}
- G10
- {% else %}
- G11
- {% endif %}
- {% else %}
- M83
- G1 E{length} F{(speed|float|abs) * 60}
- {% if absolute_extrude %}
- M82
- {% endif %}
- {% endif %}
- {% else %}
- RESPOND TYPE=echo MSG='{"\"%s\" not hot enough" % printer.toolhead.extruder}'
- {% endif %}
- {% endif %}
- [gcode_macro _CLIENT_RETRACT]
- description = Retracts, if the extruder is hot enough
- gcode =
- {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
- {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
- {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
- _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}
- [gcode_macro _CLIENT_LINEAR_MOVE]
- description = Linear move with save and restore of the gcode state
- gcode =
- {% set x_move = "X" ~ params.X if params.X is defined else "" %}
- {% set y_move = "Y" ~ params.Y if params.Y is defined else "" %}
- {% set z_move = "Z" ~ params.Z if params.Z is defined else "" %}
- {% set e_move = "E" ~ params.E if params.E is defined else "" %}
- {% set rate = "F" ~ params.F if params.F is defined else "" %}
- {% set ABSOLUTE = params.ABSOLUTE | default(0) | int != 0 %}
- {% set ABSOLUTE_E = params.ABSOLUTE_E | default(0) | int != 0 %}
- SAVE_GCODE_STATE NAME=_client_movement
- {% if x_move or y_move or z_move %}
- G9{ 0 if ABSOLUTE else 1 }
- {% endif %}
- {% if e_move %}
- M8{ 2 if ABSOLUTE_E else 3 }
- {% endif %}
- G1 { x_move } { y_move } { z_move } { e_move } { rate }
- RESTORE_GCODE_STATE NAME=_client_movement
- [screws_tilt_adjust]
- screw1 = 291, 49
- screw1_name = back left screw
- screw2 = 0, 49
- screw2_name = back right screw
- screw3 = 0, 309
- screw3_name = front right screw
- screw4 = 291, 309
- screw4_name = front left screw
- horizontal_move_z = 10
- speed = 125
- screw_thread = CW-M4
- [bltouch]
- sensor_pin = ^PC2
- control_pin = PA1
- x_offset = -44
- y_offset = -7
- pin_move_time = 0.4
- probe_with_touch_mode = True
- pin_up_touch_mode_reports_triggered = False
- stow_on_each_sample = True
- z_offset = 3.770
- [safe_z_home]
- home_xy_position = 175,175
- speed = 250
- z_hop = 10
- z_hop_speed = 5
- [stepper_x]
- step_pin = PB13
- dir_pin = PB12
- enable_pin = !PB14
- microsteps = 16
- rotation_distance = 40
- endstop_pin = ^PC0
- position_endstop = 0
- position_max = 360
- homing_speed = 50
- [tmc2209 stepper_x]
- uart_pin = PC11
- tx_pin = PC10
- uart_address = 0
- run_current = 0.580
- stealthchop_threshold = 999999
- [stepper_y]
- step_pin = PB10
- dir_pin = PB2
- enable_pin = !PB11
- microsteps = 16
- rotation_distance = 40
- endstop_pin = ^PC1
- position_endstop = 0
- position_max = 360
- homing_speed = 50
- [tmc2209 stepper_y]
- uart_pin = PC11
- tx_pin = PC10
- uart_address = 2
- run_current = 0.580
- stealthchop_threshold = 999999
- [stepper_z]
- step_pin = PB0
- dir_pin = !PC5
- enable_pin = !PB1
- microsteps = 16
- rotation_distance = 8
- endstop_pin = probe:z_virtual_endstop
- position_min = -6
- position_max = 400
- [tmc2209 stepper_z]
- uart_pin = PC11
- tx_pin = PC10
- uart_address = 1
- run_current = 0.580
- stealthchop_threshold = 999999
- [extruder]
- step_pin = PB3
- dir_pin = !PB4
- enable_pin = !PD1
- microsteps = 16
- rotation_distance = 33.500
- nozzle_diameter = 0.400
- filament_diameter = 1.750
- heater_pin = PC8
- sensor_type = EPCOS 100K B57560G104F
- sensor_pin = PA0
- control = pid
- pid_kp = 21.527
- pid_ki = 1.063
- pid_kd = 108.982
- min_temp = 0
- max_temp = 250
- [tmc2209 extruder]
- uart_pin = PC11
- tx_pin = PC10
- uart_address = 3
- run_current = 0.650
- [heater_bed]
- heater_pin = PC9
- sensor_type = EPCOS 100K B57560G104F
- sensor_pin = PC4
- control = pid
- pid_kp = 54.027
- pid_ki = 0.770
- pid_kd = 948.182
- min_temp = 0
- max_temp = 130
- [heater_fan heatbreak_cooling_fan]
- pin = PC7
- [heater_fan controller_fan]
- pin = PB15
- [fan]
- pin = PC6
- [mcu]
- serial = /dev/serial/by-id/usb-Klipper_stm32g0b1xx_3000130015504D5930393520-if00
- [printer]
- kinematics = cartesian
- max_velocity = 300
- max_accel = 3000
- max_z_velocity = 5
- max_z_accel = 100
- [board_pins]
- aliases =
- EXP1_1=PB5, EXP1_3=PA9, EXP1_5=PA10, EXP1_7=PB8, EXP1_9=<GND>,
- EXP1_2=PA15, EXP1_4=<RST>, EXP1_6=PB9, EXP1_8=PD6, EXP1_10=<5V>
- =======================
- Extruder max_extrude_ratio=0.266081
- Unhandled exception during connect
- Traceback (most recent call last):
- File "/home/pi/klipper/klippy/klippy.py", line 130, in _connect
- self._read_config()
- File "/home/pi/klipper/klippy/klippy.py", line 125, in _read_config
- m.add_printer_objects(config)
- File "/home/pi/klipper/klippy/toolhead.py", line 733, in add_printer_objects
- kinematics.extruder.add_printer_objects(config)
- File "/home/pi/klipper/klippy/kinematics/extruder.py", line 314, in add_printer_objects
- pe = PrinterExtruder(config.getsection(section), i)
- File "/home/pi/klipper/klippy/kinematics/extruder.py", line 177, in __init__
- self.extruder_stepper = ExtruderStepper(config)
- File "/home/pi/klipper/klippy/kinematics/extruder.py", line 21, in __init__
- ffi_lib.extruder_stepper_free)
- File "/home/pi/klippy-env/lib/python3.9/site-packages/cffi/api.py", line 912, in __getattr__
- make_accessor(name)
- File "/home/pi/klippy-env/lib/python3.9/site-packages/cffi/api.py", line 908, in make_accessor
- accessors[name](name)
- File "/home/pi/klippy-env/lib/python3.9/site-packages/cffi/api.py", line 838, in accessor_function
- value = backendlib.load_function(BType, name)
- AttributeError: function/symbol 'extruder_stepper_free' not found in library '/home/pi/klipper/klippy/chelper/c_helper.so': /home/pi/klipper/klippy/chelper/c_helper.so: undefined symbol: extruder_stepper_free
- webhooks client 547820642368: New connection
- webhooks client 547820642368: Client info {'program': 'Moonraker', 'version': 'v0.9.3-74-g1c12414'}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement