Guest User

Untitled

a guest
Jun 24th, 2025
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 16.39 KB | None | 0 0
  1. During handling of the above exception, another exception occurred:
  2.  
  3. Traceback (most recent call last):
  4. File "/home/felix/klipper/klippy/klippy.py", line 135, in _connect
  5. cb()
  6. File "/home/felix/klipper/klippy/mcu.py", line 754, in _connect
  7. self._send_config(None)
  8. File "/home/felix/klipper/klippy/mcu.py", line 719, in _send_config
  9. raise self._printer.config_error(
  10. configparser.Error: Pin 'z_virtual_endstop' is not a valid pin name on mcu 'mcu'
  11. Attempting MCU 'mcu' reset command
  12. webhooks client 548065958864: Disconnected
  13. Restarting printer
  14. Start printer at Tue Jun 24 21:45:18 2025 (1750790718.2 5273.9)
  15. ===== Config file =====
  16. [gcode_macro PID_EXTRUDER]
  17. gcode =
  18. PID_CALIBRATE HEATER=extruder TARGET=210
  19. SAVE_CONFIG
  20.  
  21. [gcode_macro PID_BED]
  22. gcode =
  23. PID_CALIBRATE HEATER=heater_bed TARGET=60
  24. SAVE_CONFIG
  25.  
  26. [gcode_macro START_PRINT]
  27. gcode =
  28. {% set BED_TEMP = params.BED_TEMP|default(60)|float %}
  29. {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %}
  30. M140 S{BED_TEMP}
  31.  
  32. G92 E0
  33. G28
  34.  
  35. M190 S{BED_TEMP}
  36.  
  37. M109 S{EXTRUDER_TEMP}
  38. G1 Z2.0 F3000
  39. G1 X0.1 Y20 Z0.3 F5000.0
  40. G1 X0.1 Y200.0 Z0.3 F1500.0 E15
  41. G1 X0.4 Y200.0 Z0.3 F5000.0
  42. G1 X0.4 Y20 Z0.3 F1500.0 E30
  43. G92 E0
  44. G1 Z2.0 F3000
  45. G1 X5 Y20 Z0.3 F5000.0
  46. BED_MESH_PROFILE LOAD=default
  47.  
  48. [gcode_macro FILAMENT_LOAD]
  49. gcode =
  50. {% set load = params.L|default(100)|float * 0.5 %}
  51. {% set extruder_temp = params.T|default(210)|float %}
  52. SAVE_GCODE_STATE NAME=FILAMENT_LOAD_STATE
  53. LOW_TEMP_CHECK T={extruder_temp}
  54. M118 Loading filament
  55. M83
  56. G1 E{load} F1500
  57. G4 P1000
  58. G1 E{load} F200
  59. RESTORE_GCODE_STATE NAME=FILAMENT_LOAD_STATE
  60. BEEP
  61.  
  62. [gcode_macro FILAMENT_UNLOAD]
  63. gcode =
  64. {% set unload = params.U|default(100)|float %}
  65. {% set extruder_temp = params.T|default(200)|float %}
  66. SAVE_GCODE_STATE NAME=FILAMENT_UNLOAD_STATE
  67. LOW_TEMP_CHECK T={extruder_temp}
  68. M118 Unloading filament
  69. M83
  70. G1 E2 F200
  71. G1 E-10 F200
  72. G1 E-{unload} F1500
  73. RESTORE_GCODE_STATE NAME=FILAMENT_UNLOAD_STATE
  74.  
  75. [gcode_macro LOW_TEMP_CHECK]
  76. gcode =
  77. {% set extruder_temp = params.T|default(200)|float %}
  78. {% if printer.extruder.target > extruder_temp %}
  79. {% set extruder_temp = printer.extruder.target %}
  80. {% endif %}
  81. {% if printer.extruder.temperature < extruder_temp %}
  82. M118 Heating to {extruder_temp}
  83. SET_HEATER_TEMPERATURE HEATER=extruder TARGET={extruder_temp}
  84. TEMPERATURE_WAIT SENSOR=extruder MINIMUM={extruder_temp}
  85. {% endif %}
  86.  
  87. [gcode_macro BEEP]
  88. gcode =
  89. {% set duration = params.P|default(100)|float %}
  90. SET_PIN PIN=beeper VALUE=1
  91. G4 P{duration}
  92. SET_PIN PIN=beeper VALUE=0
  93.  
  94. [gcode_macro CANCEL_PRINT]
  95. description = Cancel the actual running print
  96. rename_existing = CANCEL_PRINT_BASE
  97. gcode =
  98.  
  99. {% set client = printer['gcode_macro _CLIENT_VARIABLE'] | default({}) %}
  100. {% set allow_park = client.park_at_cancel | default(false) | lower == 'true' %}
  101. {% set retract = client.cancel_retract | default(5.0) | abs %}
  102.  
  103. {% set park_x = "" if (client.park_at_cancel_x | default(none) is none)
  104. else "X=" ~ client.park_at_cancel_x %}
  105. {% set park_y = "" if (client.park_at_cancel_y | default(none) is none)
  106. else "Y=" ~ client.park_at_cancel_y %}
  107. {% set custom_park = park_x | length > 0 or park_y | length > 0 %}
  108.  
  109.  
  110. {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
  111. SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
  112. {% endif %}
  113. {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
  114. _CLIENT_RETRACT LENGTH={retract}
  115. TURN_OFF_HEATERS
  116. M106 S0
  117.  
  118. SET_PAUSE_NEXT_LAYER ENABLE=0
  119. SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
  120. CANCEL_PRINT_BASE
  121.  
  122. [gcode_macro PAUSE]
  123. description = Pause the actual running print
  124. rename_existing = PAUSE_BASE
  125. variable_restore_idle_timeout = 0
  126. gcode =
  127.  
  128. {% set client = printer['gcode_macro _CLIENT_VARIABLE'] | default({}) %}
  129. {% set idle_timeout = client.idle_timeout | default(0) %}
  130. {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0 %}
  131. {% set restore = printer.toolhead.extruder != '' and params.RESTORE | default(1) | int == 1 %}
  132.  
  133. SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
  134.  
  135. {% if idle_timeout > 0 %}
  136. SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
  137. SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
  138. {% endif %}
  139. PAUSE_BASE
  140. _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}
  141.  
  142. [gcode_macro RESUME]
  143. description = Resume the actual running print
  144. rename_existing = RESUME_BASE
  145. variable_last_extruder_temp = {'restore': False, 'temp': 0}
  146. gcode =
  147.  
  148. {% set client = printer['gcode_macro _CLIENT_VARIABLE'] | default({}) %}
  149. {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
  150. {% set sp_move = client.speed_move | default(velocity) %}
  151.  
  152.  
  153. {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
  154. SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
  155. {% endif %}
  156. {% if printer.idle_timeout.state | upper == "IDLE" and last_extruder_temp.restore %}
  157. M109 S{last_extruder_temp.temp}
  158. {% endif %}
  159. _CLIENT_EXTRUDE
  160. RESUME_BASE VELOCITY={params.VELOCITY | default(sp_move)}
  161. variable_restore_idle_timeout = 0
  162. variable_idle_state = False
  163.  
  164. [gcode_macro SET_PAUSE_NEXT_LAYER]
  165. description = Enable a pause if the next layer is reached
  166. gcode =
  167. {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
  168. {% set ENABLE = params.ENABLE | default(1) | int != 0 %}
  169. {% set MACRO = params.MACRO | default(pause_next_layer.call, True) %}
  170. SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"
  171.  
  172. [gcode_macro SET_PAUSE_AT_LAYER]
  173. description = Enable/disable a pause if a given layer number is reached
  174. gcode =
  175. {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
  176. {% set ENABLE = params.ENABLE | int != 0 if params.ENABLE is defined
  177. else params.LAYER is defined %}
  178. {% set LAYER = params.LAYER | default(pause_at_layer.layer) | int %}
  179. {% set MACRO = params.MACRO | default(pause_at_layer.call, True) %}
  180. SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"
  181.  
  182. [gcode_macro SET_PRINT_STATS_INFO]
  183. rename_existing = SET_PRINT_STATS_INFO_BASE
  184. description = Overwrite, to get pause_next_layer and pause_at_layer feature
  185. variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
  186. variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
  187. gcode =
  188. {% if pause_next_layer.enable %}
  189. RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
  190. {pause_next_layer.call}
  191. SET_PAUSE_NEXT_LAYER ENABLE=0
  192. {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER | int == pause_at_layer.layer %}
  193. RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
  194. {pause_at_layer.call}
  195. SET_PAUSE_AT_LAYER ENABLE=0
  196. {% endif %}
  197. SET_PRINT_STATS_INFO_BASE {rawparams}
  198.  
  199. [gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
  200. description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
  201. gcode =
  202.  
  203. {% set client = printer['gcode_macro _CLIENT_VARIABLE'] | default({}) %}
  204. {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
  205. {% set use_custom = client.use_custom_pos | default(false) | lower == 'true' %}
  206. {% set custom_park_x = client.custom_park_x | default(0.0) %}
  207. {% set custom_park_y = client.custom_park_y | default(0.0) %}
  208. {% set park_dz = client.custom_park_dz | default(2.0) | abs %}
  209. {% set sp_hop = client.speed_hop | default(15) * 60 %}
  210. {% set sp_move = client.speed_move | default(velocity) * 60 %}
  211.  
  212. {% set origin = printer.gcode_move.homing_origin %}
  213. {% set act = printer.gcode_move.gcode_position %}
  214. {% set max = printer.toolhead.axis_maximum %}
  215. {% set cone = printer.toolhead.cone_start_z | default(max.z) %}
  216. {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
  217. else False %}
  218.  
  219. {% set z_min = params.Z_MIN | default(0) | float %}
  220. {% set z_park = [[(act.z + park_dz), z_min] | max, (max.z - origin.z)] | min %}
  221. {% set x_park = params.X if params.X is defined
  222. else custom_park_x if use_custom
  223. else 0.0 if round_bed
  224. else (max.x - 5.0) %}
  225. {% set y_park = params.Y if params.Y is defined
  226. else custom_park_y if use_custom
  227. else (max.y - 5.0) if round_bed and z_park < cone
  228. else 0.0 if round_bed
  229. else (max.y - 5.0) %}
  230.  
  231. _CLIENT_RETRACT
  232. {% if "xyz" in printer.toolhead.homed_axes %}
  233. G90
  234. G1 Z{z_park} F{sp_hop}
  235. G1 X{x_park} Y{y_park} F{sp_move}
  236. {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
  237. {% else %}
  238. RESPOND TYPE=echo MSG='Printer not homed'
  239. {% endif %}
  240.  
  241. [gcode_macro _CLIENT_EXTRUDE]
  242. description = Extrudes, if the extruder is hot enough
  243. gcode =
  244.  
  245. {% set client = printer['gcode_macro _CLIENT_VARIABLE'] | default({}) %}
  246. {% set use_fw_retract = (client.use_fw_retract | default(false) | lower == 'true') and (printer.firmware_retraction is defined) %}
  247. {% set length = params.LENGTH | default(client.unretract) | default(1.0) | float %}
  248. {% set speed = params.SPEED | default(client.speed_unretract) | default(35) %}
  249. {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
  250.  
  251. {% if printer.toolhead.extruder != '' %}
  252. {% if printer[printer.toolhead.extruder].can_extrude %}
  253. {% if use_fw_retract %}
  254. {% if length < 0 %}
  255. G10
  256. {% else %}
  257. G11
  258. {% endif %}
  259. {% else %}
  260. M83
  261. G1 E{length} F{(speed | float | abs) * 60}
  262. {% if absolute_extrude %}
  263. M82
  264. {% endif %}
  265. {% endif %}
  266. {% else %}
  267. RESPOND TYPE=echo MSG='Extruder not hot enough'
  268. {% endif %}
  269. {% endif %}
  270.  
  271. [gcode_macro _CLIENT_RETRACT]
  272. description = Retracts, if the extruder is hot enough
  273. gcode =
  274. {% set client = printer['gcode_macro _CLIENT_VARIABLE'] | default({}) %}
  275. {% set length = params.LENGTH | default(client.retract) | default(1.0) | float %}
  276. {% set speed = params.SPEED | default(client.speed_retract) | default(35) %}
  277.  
  278. _CLIENT_EXTRUDE LENGTH=-{length | float | abs} SPEED={speed | float | abs}
  279.  
  280. [gcode_macro PRINT_END]
  281. description = End of printing
  282. variable_machine_depth = 220
  283. gcode =
  284. G91
  285. G1 E-2 F2700
  286. G1 E-2 Z0.2 F2400
  287. G1 X5 Y5 F3000
  288. G1 z50
  289. G90
  290. G1 X0 Y{machine_depth}
  291. M106 S0
  292. M104 S0
  293. M140 S0
  294. M84 X Y E
  295. BEEP
  296.  
  297. [mcu]
  298. serial = /dev/ttyAMA0
  299. restart_method = command
  300.  
  301. [printer]
  302. kinematics = cartesian
  303. max_velocity = 500
  304. max_accel = 3000
  305.  
  306. [virtual_sdcard]
  307. path = ~/printer_data/gcodes
  308. on_error_gcode = CANCEL_PRINT
  309.  
  310. [pause_resume]
  311.  
  312. [display_status]
  313.  
  314. [respond]
  315.  
  316. [gcode_macro _CLIENT_LINEAR_MOVE]
  317. description = Linear move with save and restore of the gcode state
  318. gcode =
  319. {% set x_move = "X" ~ params.X if params.X is defined else "" %}
  320. {% set y_move = "Y" ~ params.Y if params.Y is defined else "" %}
  321. {% set z_move = "Z" ~ params.Z if params.Z is defined else "" %}
  322. {% set e_move = "E" ~ params.E if params.E is defined else "" %}
  323. {% set rate = "F" ~ params.F if params.F is defined else "" %}
  324. {% set ABSOLUTE = params.ABSOLUTE | default(0) | int != 0 %}
  325. {% set ABSOLUTE_E = params.ABSOLUTE_E | default(0) | int != 0 %}
  326. SAVE_GCODE_STATE NAME=_client_movement
  327. {% if x_move or y_move or z_move %}
  328. G9{ 0 if ABSOLUTE else 1 }
  329. {% endif %}
  330. {% if e_move %}
  331. M8{ 2 if ABSOLUTE_E else 3 }
  332. {% endif %}
  333. G1 { x_move } { y_move } { z_move } { e_move } { rate }
  334. RESTORE_GCODE_STATE NAME=_client_movement
  335.  
  336. [stepper_x]
  337. step_pin = gpio11
  338. dir_pin = !gpio10
  339. enable_pin = !gpio12
  340. microsteps = 16
  341. rotation_distance = 40
  342. endstop_pin = ^gpio4
  343. position_endstop = 0
  344. position_max = 235
  345. homing_speed = 50
  346.  
  347. [tmc2209 stepper_x]
  348. uart_pin = gpio9
  349. tx_pin = gpio8
  350. uart_address = 0
  351. run_current = 0.8
  352. hold_current = 0.6
  353. stealthchop_threshold = 999999
  354.  
  355. [stepper_y]
  356. step_pin = gpio6
  357. dir_pin = !gpio5
  358. enable_pin = !gpio7
  359. microsteps = 16
  360. rotation_distance = 40
  361. endstop_pin = ^gpio3
  362. position_endstop = 0
  363. position_max = 235
  364. homing_speed = 50
  365.  
  366. [tmc2209 stepper_y]
  367. uart_pin = gpio9
  368. tx_pin = gpio8
  369. uart_address = 2
  370. run_current = 0.8
  371. hold_current = 0.6
  372. stealthchop_threshold = 999999
  373. diag_pin = ^gpio3
  374. driver_sgthrs = 100
  375.  
  376. [load_cell_probe]
  377. sensor_type = hx711
  378. sclk_pin = gpio24
  379. dout_pin = gpio25
  380. sample_rate = 80
  381. z_offset = 0
  382.  
  383. [stepper_z]
  384. step_pin = gpio19
  385. dir_pin = gpio28
  386. enable_pin = !gpio2
  387. microsteps = 16
  388. rotation_distance = 8
  389. endstop_pin = probe:z_virtual_endstop
  390. position_endstop = 0
  391. position_min = -2.0
  392. position_max = 250
  393. homing_speed = 12
  394.  
  395. [tmc2209 stepper_z]
  396. uart_pin = gpio9
  397. tx_pin = gpio8
  398. uart_address = 1
  399. run_current = 0.580
  400. hold_current = 0.500
  401. stealthchop_threshold = 999999
  402.  
  403. [extruder]
  404. step_pin = gpio14
  405. dir_pin = !gpio13
  406. enable_pin = !gpio15
  407. microsteps = 16
  408. rotation_distance = 33.500
  409. nozzle_diameter = 0.4
  410. filament_diameter = 1.75
  411. heater_pin = gpio23
  412. sensor_type = EPCOS 100K B57560G104F
  413. sensor_pin = gpio27
  414. control = pid
  415. pid_kp = 22.2
  416. pid_ki = 1.08
  417. pid_kd = 114
  418. min_temp = -270
  419. max_temp = 300
  420. max_extrude_cross_section = 2
  421.  
  422. [tmc2209 extruder]
  423. uart_pin = gpio9
  424. tx_pin = gpio8
  425. uart_address = 3
  426. run_current = 0.650
  427. hold_current = 0.500
  428. stealthchop_threshold = 999999
  429.  
  430. [filament_switch_sensor runout_sensor]
  431. switch_pin = ^gpio16
  432. pause_on_runout = True
  433.  
  434. [heater_bed]
  435. heater_pin = gpio21
  436. sensor_type = EPCOS 100K B57560G104F
  437. sensor_pin = gpio26
  438. control = pid
  439. pid_kp = 54.027
  440. pid_ki = 0.770
  441. pid_kd = 948.182
  442. min_temp = 0
  443. max_temp = 130
  444.  
  445. [fan]
  446. pin = gpio17
  447.  
  448. [heater_fan hotend_fan]
  449. pin = gpio18
  450. heater = extruder
  451. heater_temp = 50.0
  452.  
  453. [heater_fan controller_fan]
  454. pin = gpio20
  455. heater = heater_bed
  456. heater_temp = 45.0
  457. =======================
  458. Config error
  459. Traceback (most recent call last):
  460. File "/home/felix/klipper/klippy/klippy.py", line 130, in _connect
  461. self._read_config()
  462. File "/home/felix/klipper/klippy/klippy.py", line 125, in _read_config
  463. m.add_printer_objects(config)
  464. File "/home/felix/klipper/klippy/toolhead.py", line 732, in add_printer_objects
  465. config.get_printer().add_object('toolhead', ToolHead(config))
  466. ^^^^^^^^^^^^^^^^
  467. File "/home/felix/klipper/klippy/toolhead.py", line 273, in __init__
  468. self.kin = mod.load_kinematics(self, config)
  469. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  470. File "/home/felix/klipper/klippy/kinematics/cartesian.py", line 129, in load_kinematics
  471. return CartKinematics(toolhead, config)
  472. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  473. File "/home/felix/klipper/klippy/kinematics/cartesian.py", line 16, in __init__
  474. self.rails = [stepper.LookupMultiRail(config.getsection('stepper_' + n))
  475. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  476. File "/home/felix/klipper/klippy/kinematics/cartesian.py", line 16, in <listcomp>
  477. self.rails = [stepper.LookupMultiRail(config.getsection('stepper_' + n))
  478. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  479. File "/home/felix/klipper/klippy/stepper.py", line 465, in LookupMultiRail
  480. rail = LookupRail(config, need_position_minmax,
  481. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  482. File "/home/felix/klipper/klippy/stepper.py", line 457, in LookupRail
  483. rail = GenericPrinterRail(config, need_position_minmax,
  484. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  485. File "/home/felix/klipper/klippy/stepper.py", line 333, in __init__
  486. mcu_endstop = self.lookup_endstop(self.endstop_pin, self.name)
  487. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  488. File "/home/felix/klipper/klippy/stepper.py", line 412, in lookup_endstop
  489. mcu_endstop = ppins.setup_pin('endstop', endstop_pin)
  490. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  491. File "/home/felix/klipper/klippy/pins.py", line 118, in setup_pin
  492. return pin_params['chip'].setup_pin(pin_type, pin_params)
  493. ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  494. File "/home/felix/klipper/klippy/extras/probe.py", line 275, in setup_pin
  495. raise self._printer.config_error(
  496. configparser.Error: Module [load_cell_probe] does not support `probe:z_virtual_endstop`, use a pin instead.
  497. webhooks client 548057304720: New connection
  498. webhooks client 548057304720: Client info {'program': 'Moonraker', 'version': 'v0.9.3-77-gccbfd64'}
Advertisement
Add Comment
Please, Sign In to add comment