Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- During handling of the above exception, another exception occurred:
- Traceback (most recent call last):
- File "/home/felix/klipper/klippy/klippy.py", line 135, in _connect
- cb()
- File "/home/felix/klipper/klippy/mcu.py", line 754, in _connect
- self._send_config(None)
- File "/home/felix/klipper/klippy/mcu.py", line 719, in _send_config
- raise self._printer.config_error(
- configparser.Error: Pin 'z_virtual_endstop' is not a valid pin name on mcu 'mcu'
- Attempting MCU 'mcu' reset command
- webhooks client 548065958864: Disconnected
- Restarting printer
- Start printer at Tue Jun 24 21:45:18 2025 (1750790718.2 5273.9)
- ===== Config file =====
- [gcode_macro PID_EXTRUDER]
- gcode =
- PID_CALIBRATE HEATER=extruder TARGET=210
- SAVE_CONFIG
- [gcode_macro PID_BED]
- gcode =
- PID_CALIBRATE HEATER=heater_bed TARGET=60
- SAVE_CONFIG
- [gcode_macro START_PRINT]
- gcode =
- {% set BED_TEMP = params.BED_TEMP|default(60)|float %}
- {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %}
- M140 S{BED_TEMP}
- G92 E0
- G28
- M190 S{BED_TEMP}
- M109 S{EXTRUDER_TEMP}
- G1 Z2.0 F3000
- G1 X0.1 Y20 Z0.3 F5000.0
- G1 X0.1 Y200.0 Z0.3 F1500.0 E15
- G1 X0.4 Y200.0 Z0.3 F5000.0
- G1 X0.4 Y20 Z0.3 F1500.0 E30
- G92 E0
- G1 Z2.0 F3000
- G1 X5 Y20 Z0.3 F5000.0
- BED_MESH_PROFILE LOAD=default
- [gcode_macro FILAMENT_LOAD]
- gcode =
- {% set load = params.L|default(100)|float * 0.5 %}
- {% set extruder_temp = params.T|default(210)|float %}
- SAVE_GCODE_STATE NAME=FILAMENT_LOAD_STATE
- LOW_TEMP_CHECK T={extruder_temp}
- M118 Loading filament
- M83
- G1 E{load} F1500
- G4 P1000
- G1 E{load} F200
- RESTORE_GCODE_STATE NAME=FILAMENT_LOAD_STATE
- BEEP
- [gcode_macro FILAMENT_UNLOAD]
- gcode =
- {% set unload = params.U|default(100)|float %}
- {% set extruder_temp = params.T|default(200)|float %}
- SAVE_GCODE_STATE NAME=FILAMENT_UNLOAD_STATE
- LOW_TEMP_CHECK T={extruder_temp}
- M118 Unloading filament
- M83
- G1 E2 F200
- G1 E-10 F200
- G1 E-{unload} F1500
- RESTORE_GCODE_STATE NAME=FILAMENT_UNLOAD_STATE
- [gcode_macro LOW_TEMP_CHECK]
- gcode =
- {% set extruder_temp = params.T|default(200)|float %}
- {% if printer.extruder.target > extruder_temp %}
- {% set extruder_temp = printer.extruder.target %}
- {% endif %}
- {% if printer.extruder.temperature < extruder_temp %}
- M118 Heating to {extruder_temp}
- SET_HEATER_TEMPERATURE HEATER=extruder TARGET={extruder_temp}
- TEMPERATURE_WAIT SENSOR=extruder MINIMUM={extruder_temp}
- {% endif %}
- [gcode_macro BEEP]
- gcode =
- {% set duration = params.P|default(100)|float %}
- SET_PIN PIN=beeper VALUE=1
- G4 P{duration}
- SET_PIN PIN=beeper VALUE=0
- [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 PAUSE'].restore_idle_timeout > 0 %}
- SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].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
- 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
- variable_restore_idle_timeout = 0
- 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 = printer.toolhead.extruder != '' and params.RESTORE | default(1) | int == 1 %}
- SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
- {% if idle_timeout > 0 %}
- SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
- SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
- {% endif %}
- PAUSE_BASE
- _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}
- 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) %}
- {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
- SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
- {% endif %}
- {% if printer.idle_timeout.state | upper == "IDLE" and last_extruder_temp.restore %}
- M109 S{last_extruder_temp.temp}
- {% endif %}
- _CLIENT_EXTRUDE
- RESUME_BASE VELOCITY={params.VELOCITY | default(sp_move)}
- variable_restore_idle_timeout = 0
- variable_idle_state = False
- [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='Extruder not hot enough'
- {% 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 PRINT_END]
- description = End of printing
- variable_machine_depth = 220
- gcode =
- G91
- G1 E-2 F2700
- G1 E-2 Z0.2 F2400
- G1 X5 Y5 F3000
- G1 z50
- G90
- G1 X0 Y{machine_depth}
- M106 S0
- M104 S0
- M140 S0
- M84 X Y E
- BEEP
- [mcu]
- serial = /dev/ttyAMA0
- restart_method = command
- [printer]
- kinematics = cartesian
- max_velocity = 500
- max_accel = 3000
- [virtual_sdcard]
- path = ~/printer_data/gcodes
- on_error_gcode = CANCEL_PRINT
- [pause_resume]
- [display_status]
- [respond]
- [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
- [stepper_x]
- step_pin = gpio11
- dir_pin = !gpio10
- enable_pin = !gpio12
- microsteps = 16
- rotation_distance = 40
- endstop_pin = ^gpio4
- position_endstop = 0
- position_max = 235
- homing_speed = 50
- [tmc2209 stepper_x]
- uart_pin = gpio9
- tx_pin = gpio8
- uart_address = 0
- run_current = 0.8
- hold_current = 0.6
- stealthchop_threshold = 999999
- [stepper_y]
- step_pin = gpio6
- dir_pin = !gpio5
- enable_pin = !gpio7
- microsteps = 16
- rotation_distance = 40
- endstop_pin = ^gpio3
- position_endstop = 0
- position_max = 235
- homing_speed = 50
- [tmc2209 stepper_y]
- uart_pin = gpio9
- tx_pin = gpio8
- uart_address = 2
- run_current = 0.8
- hold_current = 0.6
- stealthchop_threshold = 999999
- diag_pin = ^gpio3
- driver_sgthrs = 100
- [load_cell_probe]
- sensor_type = hx711
- sclk_pin = gpio24
- dout_pin = gpio25
- sample_rate = 80
- z_offset = 0
- [stepper_z]
- step_pin = gpio19
- dir_pin = gpio28
- enable_pin = !gpio2
- microsteps = 16
- rotation_distance = 8
- endstop_pin = probe:z_virtual_endstop
- position_endstop = 0
- position_min = -2.0
- position_max = 250
- homing_speed = 12
- [tmc2209 stepper_z]
- uart_pin = gpio9
- tx_pin = gpio8
- uart_address = 1
- run_current = 0.580
- hold_current = 0.500
- stealthchop_threshold = 999999
- [extruder]
- step_pin = gpio14
- dir_pin = !gpio13
- enable_pin = !gpio15
- microsteps = 16
- rotation_distance = 33.500
- nozzle_diameter = 0.4
- filament_diameter = 1.75
- heater_pin = gpio23
- sensor_type = EPCOS 100K B57560G104F
- sensor_pin = gpio27
- control = pid
- pid_kp = 22.2
- pid_ki = 1.08
- pid_kd = 114
- min_temp = -270
- max_temp = 300
- max_extrude_cross_section = 2
- [tmc2209 extruder]
- uart_pin = gpio9
- tx_pin = gpio8
- uart_address = 3
- run_current = 0.650
- hold_current = 0.500
- stealthchop_threshold = 999999
- [filament_switch_sensor runout_sensor]
- switch_pin = ^gpio16
- pause_on_runout = True
- [heater_bed]
- heater_pin = gpio21
- sensor_type = EPCOS 100K B57560G104F
- sensor_pin = gpio26
- control = pid
- pid_kp = 54.027
- pid_ki = 0.770
- pid_kd = 948.182
- min_temp = 0
- max_temp = 130
- [fan]
- pin = gpio17
- [heater_fan hotend_fan]
- pin = gpio18
- heater = extruder
- heater_temp = 50.0
- [heater_fan controller_fan]
- pin = gpio20
- heater = heater_bed
- heater_temp = 45.0
- =======================
- Config error
- Traceback (most recent call last):
- File "/home/felix/klipper/klippy/klippy.py", line 130, in _connect
- self._read_config()
- File "/home/felix/klipper/klippy/klippy.py", line 125, in _read_config
- m.add_printer_objects(config)
- File "/home/felix/klipper/klippy/toolhead.py", line 732, in add_printer_objects
- config.get_printer().add_object('toolhead', ToolHead(config))
- ^^^^^^^^^^^^^^^^
- File "/home/felix/klipper/klippy/toolhead.py", line 273, in __init__
- self.kin = mod.load_kinematics(self, config)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "/home/felix/klipper/klippy/kinematics/cartesian.py", line 129, in load_kinematics
- return CartKinematics(toolhead, config)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "/home/felix/klipper/klippy/kinematics/cartesian.py", line 16, in __init__
- self.rails = [stepper.LookupMultiRail(config.getsection('stepper_' + n))
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "/home/felix/klipper/klippy/kinematics/cartesian.py", line 16, in <listcomp>
- self.rails = [stepper.LookupMultiRail(config.getsection('stepper_' + n))
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "/home/felix/klipper/klippy/stepper.py", line 465, in LookupMultiRail
- rail = LookupRail(config, need_position_minmax,
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "/home/felix/klipper/klippy/stepper.py", line 457, in LookupRail
- rail = GenericPrinterRail(config, need_position_minmax,
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "/home/felix/klipper/klippy/stepper.py", line 333, in __init__
- mcu_endstop = self.lookup_endstop(self.endstop_pin, self.name)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "/home/felix/klipper/klippy/stepper.py", line 412, in lookup_endstop
- mcu_endstop = ppins.setup_pin('endstop', endstop_pin)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "/home/felix/klipper/klippy/pins.py", line 118, in setup_pin
- return pin_params['chip'].setup_pin(pin_type, pin_params)
- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
- File "/home/felix/klipper/klippy/extras/probe.py", line 275, in setup_pin
- raise self._printer.config_error(
- configparser.Error: Module [load_cell_probe] does not support `probe:z_virtual_endstop`, use a pin instead.
- webhooks client 548057304720: New connection
- webhooks client 548057304720: Client info {'program': 'Moonraker', 'version': 'v0.9.3-77-gccbfd64'}
Advertisement
Add Comment
Please, Sign In to add comment