darkness Posté(e) Janvier 23 Partager Posté(e) Janvier 23 bonsoir j'auri besoi d'aide au sur de klipper sur rasberry pi j'ai regarder ce tuto https://i3dm.fr/wp-content/uploads/2023/03/Klipper_WanhaoD12_Maxime3d77.pdf mon pb c'est que mon imprimante ne se connecte pa au pi et que il y a une erreur l'erreur c'es /home/pi/printer_data/config/variables.cfg cordialement Lien vers le commentaire Partager sur d’autres sites More sharing options...
Savate Posté(e) Janvier 23 Partager Posté(e) Janvier 23 (modifié) il y a 31 minutes, darkness a dit : mon pb c'est que mon imprimante ne se connecte pa au pi et que il y a une erreur l'erreur c'es /home/pi/printer_data/config/variables.cfg Si tu veux de l'aide efficace : * met ton fichier klipper.log * explique nous exactement le contexte : ça déjà marché ? ça n'a jamais marché ? tu as fais quoi ? ... quelle imprimante ?, ... Modifié (le) Janvier 23 par Savate 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
darkness Posté(e) Janvier 23 Auteur Partager Posté(e) Janvier 23 (modifié) il y a 30 minutes, Savate a dit : Si tu veux de l'aide efficace : * met ton fichier klipper.log * explique nous exactement le contexte : ça déjà marché ? ça n'a jamais marché ? tu as fais quoi ? ... quelle imprimante ?, ... voici les log Citation Starting Klippy... Args: ['/home/loic/klipper/klippy/klippy.py', '/home/loic/printer_data/config/printer.cfg', '-I', '/home/loic/printer_data/comms/klippy.serial', '-l', '/home/loic/printer_data/logs/klippy.log', '-a', '/home/loic/printer_data/comms/klippy.sock'] Git version: 'v0.12.0-88-g2e8b54ae' Branch: master Remote: origin Tracked URL: https://github.com/Klipper3d/klipper CPU: 4 core ? Python: '3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0]' Building C code module c_helper.so Start printer at Tue Jan 23 17:12:55 2024 (1706026375.5 1063.9) ===== Config file ===== [mcu] serial = /dev/serial/by-id/<your-mcu-id> [virtual_sdcard] path = /home/loic/printer_data/gcodes on_error_gcode = CANCEL_PRINT [printer] kinematics = none max_velocity = 1000 max_accel = 1000 ======================= mcu 'mcu': Starting serial connect mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/<your-mcu-id>: [Errno 2] No such file or directory: '/dev/serial/by-id/<your-mcu-id>' MCU error during connect Traceback (most recent call last): File "/home/loic/klipper/klippy/mcu.py", line 809, in _mcu_identify self._serial.connect_uart(self._serialport, self._baud, rts) File "/home/loic/klipper/klippy/serialhdl.py", line 182, in connect_uart self._error("Unable to connect") File "/home/loic/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/loic/klipper/klippy/klippy.py", line 176, in _connect self.send_event("klippy:mcu_identify") File "/home/loic/klipper/klippy/klippy.py", line 263, in send_event return [cb(*params) for cb in self.event_handlers.get(event, [])] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/klippy.py", line 263, in <listcomp> return [cb(*params) for cb in self.event_handlers.get(event, [])] ^^^^^^^^^^^ File "/home/loic/klipper/klippy/mcu.py", line 814, in _mcu_identify raise error(str(e)) mcu.error: mcu 'mcu': Unable to connect No build file /home/loic/klipper/klippy/../.config No build file /home/loic/klipper/klippy/../out/klipper.dict No build file /home/loic/klipper/klippy/../out/klipper.elf webhooks client 548364026320: New connection webhooks client 548364026320: Client info {'program': 'Moonraker', 'version': 'v0.8.0-286-gf44fc4b'} webhooks client 548364026320: Disconnected webhooks client 548371563600: New connection webhooks client 548371563600: Client info {'program': 'Moonraker', 'version': 'v0.8.0-286-gf44fc4b'} Starting Klippy... Args: ['/home/loic/klipper/klippy/klippy.py', '/home/loic/printer_data/config/printer.cfg', '-I', '/home/loic/printer_data/comms/klippy.serial', '-l', '/home/loic/printer_data/logs/klippy.log', '-a', '/home/loic/printer_data/comms/klippy.sock'] Git version: 'v0.12.0-88-g2e8b54ae' Branch: master Remote: origin Tracked URL: https://github.com/Klipper3d/klipper CPU: 4 core ? Python: '3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0]' Start printer at Tue Jan 23 17:46:22 2024 (1706028382.4 18.3) ===== Config file ===== [gcode_macro Z_OFFSET] description = Mesuser le Z-Offset gcode = G28 PROBE_CALIBRATE [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(0)|float %} M117 Heating... M140 S{BED_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_CALIBRATE M190 S{BED_TEMP} G1 Z5.0 F3000 G1 X0.1 Y20 Z0.3 F5000.0 M109 S{EXTRUDER_TEMP} G92 E0 G1 Z1.0 F3000 G1 X2 Y20 Z0.3 F5000.0 G1 X2 Y200.0 Z0.3 F1500.0 E15 G1 X2 Y200.0 Z0.4 F5000.0 G1 X2 Y20 Z0.4 F1500.0 E30 G92 E0 G1 Z1.0 F3000 [gcode_macro END_PRINT] gcode = M104 T0 S0 M104 T1 S0 M140 S0 G92 E1 G1 E-1 F300 G28 X0 Y0 M84 [gcode_macro G29] gcode = BED_MESH_CALIBRATE [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE [gcode_macro PAUSE] rename_existing = BASE_PAUSE gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK M104 S0 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro RESUME] rename_existing = BASE_RESUME variable_zhop = 0 variable_etemp = 0 gcode = {% set e = params.E|default(2.5)|int %} {% if printer['pause_resume'].is_paused|int == 1 %} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} {% if etemp > 0 %} M109 S{etemp|int} {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 G91 M83 {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 Z{zhop * -1} E{e} F900 {% else %} G1 Z{zhop * -1} F900 {% endif %} RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60 BASE_RESUME {% endif %} [gcode_macro M600] gcode = CHANGE_FILAMENT [gcode_macro M601] gcode = CHANGE_FILAMENT [gcode_macro CHANGE_FILAMENT] gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK ,M104 S0 G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro UNLOAD_FILAMENT] description = Retrait du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=unload_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Retrait du filament..." G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 RESTORE_GCODE_STATE NAME=unload_state {% endif %} [gcode_macro LOAD_FILAMENT] description = Chargement du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=load_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Chargement du filament..." G91 G0 E70 F300 G0 E20 F200 M400 RESTORE_GCODE_STATE NAME=load_state {% endif %} [gcode_macro CALIBRATION_PID_BED_60] description = PID Plateau gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID du plateau en cours..." PID_CALIBRATE HEATER=heater_bed TARGET={params.TEMP|default(60)} G28 SAVE_CONFIG {% endif %} [gcode_macro CALIBRATION_PID_HOTEND_200] description = PID Hotend gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID de la buse en cours..." PID_CALIBRATE HEATER=extruder TARGET={params.TEMP|default(200)} G28 SAVE_CONFIG {% endif %} [gcode_macro SAUVEGARDER] description = Sauvegarder la configuration gcode = SAVE_CONFIG [gcode_macro M201] description = Sets maximum accelleration. Usage: M201 [X<accel>] [Y<accel>] gcode = {% if 'X' in params or 'Y' in params %} {% set accel = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel * 0.5} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M203] description = Sets maximum velocity Usage: M203 [X<speed>] [Y<speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT VELOCITY={speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M204] description = Sets maximum accelleration. Usage: M204 [S<accel>] [P<accel> T<accel>] rename_existing = M204.1 gcode = {% set f = params.F|default(0.5)|float %} {% if 'S' in params %} {% set s = params.S|float %} SET_VELOCITY_LIMIT ACCEL={s} ACCEL_TO_DECEL={ s * f } {% else %} {% if 'P' in params %} {% set p = params.P|float %} {% if 'T' in params %} {% set t = params.T|float %} {% if p < t %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% else %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% else %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% endif %} {% elif 'T' in params %} {% set t = params.T|float %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% endif %} [gcode_macro M205] description = Sets square corner velocity Usage: M205 [X<corner_speed>] [Y<corner_speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set corner_speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={corner_speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro ADXL_TEST] description = ADXL Test gcode = ACCELEROMETER_QUERY [gcode_macro ADXL_NOISE] description = Measure Accelerometer Noise gcode = MEASURE_AXES_NOISE [gcode_macro ADXL_AXE_X] description = Measure X axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=X [gcode_macro ADXL_AXE_Y] description = Measure Y axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=Y [gcode_macro SECURITY_OFFSET] description = Apply a 2mm Safety Offset gcode = SET_GCODE_OFFSET Z=+2 RESPOND MSG="Safety Offset applied!" [mcu] serial = /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 restart_method = command [stepper_x] step_pin = PE3 dir_pin = PE2 enable_pin = !PE4 microsteps = 16 rotation_distance = 40 endstop_pin = !PA15 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_y] step_pin = PE0 dir_pin = !PB9 enable_pin = !PE1 microsteps = 16 rotation_distance = 40 endstop_pin = !PA12 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_z] step_pin = PB5 dir_pin = !PB4 enable_pin = !PB8 microsteps = 16 rotation_distance = 8 endstop_pin = !PA11 position_endstop = 0 position_min = -5 position_max = 250 [extruder] step_pin = PD6 dir_pin = !PD3 enable_pin = !PB3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.157 min_extrude_temp = 185 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = PC3 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC1 min_temp = 5 max_temp = 260 max_extrude_only_distance = 950.0 max_extrude_only_velocity = 200 max_extrude_only_accel = 2750 max_extrude_cross_section = 5 pressure_advance = 0.065 pressure_advance_smooth_time = 0.040 control = pid pid_kp = 22.501 pid_ki = 0.843 pid_kd = 150.192 [extruder_stepper belted_extruder] extruder = extruder step_pin = PA6 dir_pin = !PA1 enable_pin = !PA3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.952 [heater_bed] heater_pin = PA0 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC0 min_temp = 5 max_temp = 100 control = pid pid_kp = 62.805 pid_ki = 1.055 pid_kd = 935.009 [fan] pin = PB1 [printer] kinematics = cartesian max_velocity = 300 max_accel = 2400 max_accel_to_decel = 1200 square_corner_velocity = 5 max_z_velocity = 10 max_z_accel = 100 [input_shaper] shaper_freq_x = 101.8 shaper_type_x = mzv shaper_freq_y = 38.4 shaper_type_y = mzv [safe_z_home] home_xy_position = 115,115 speed = 100.0 z_hop = 10.0 z_hop_speed = 10.0 [firmware_retraction] retract_length = 8 retract_speed = 35 unretract_extra_length = 0 unretract_speed = 25 [filament_switch_sensor E0] pause_on_runout = True switch_pin = PA4 [filament_switch_sensor E1] pause_on_runout = True switch_pin = PE6 [temperature_sensor PiTemp] sensor_type = temperature_host sensor_path = /sys/class/thermal/thermal_zone0/temp [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 90 [bed_mesh] speed = 80 horizontal_move_z = 8 mesh_min = 50,50 mesh_max = 180, 210 probe_count = 5,5 fade_start = 1.0 fade_end = 10 mesh_pps = 2,2 [virtual_sdcard] path = /home/pi/printer_data/gcodes/ [display_status] [pause_resume] [save_variables] filename = /home/pi/printer_data/config/variables.cfg [bed_screws] screw1 = 20,20 screw1_name = Front left screw screw2 = 20,220 screw2_name = Rear left screw screw3 = 220,220 screw3_name = Rear right screw screw4 = 220,20 screw4_name = Front right screw [bed_mesh default] version = 1 points = -0.145000, 0.077500, 0.020000, -0.026250, -0.007500 -0.085000, 0.067500, 0.051250, -0.012500, -0.038750 -0.126250, 0.025000, 0.005000, -0.035000, -0.057500 -0.183750, -0.048750, -0.032500, -0.078750, -0.085000 -0.321250, -0.142500, -0.172500, -0.182500, -0.170000 x_count = 5 y_count = 5 mesh_x_pps = 2 mesh_y_pps = 2 algo = lagrange tension = 0.2 min_x = 50.00000000000001 max_x = 180.0 min_y = 50.01 max_y = 210.0 ======================= Unhandled exception during connect Traceback (most recent call last): File "/home/loic/klipper/klippy/klippy.py", line 175, in _connect self._read_config() File "/home/loic/klipper/klippy/klippy.py", line 141, in _read_config self.load_object(config, section_config.get_name(), None) File "/home/loic/klipper/klippy/klippy.py", line 130, in load_object self.objects[section] = init_func(config.getsection(section)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 64, in load_config return SaveVariables(config) ^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 16, in __init__ open(self.filename, "w").close() ^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' webhooks client 547893275408: New connection webhooks client 547893275408: Client info {'program': 'Moonraker', 'version': 'v0.8.0-286-gf44fc4b'} Unable to issue reset command on MCU 'mcu' webhooks client 547893275408: Disconnected Restarting printer Start printer at Tue Jan 23 17:49:09 2024 (1706028550.0 147.1) ===== Config file ===== [gcode_macro Z_OFFSET] description = Mesuser le Z-Offset gcode = G28 PROBE_CALIBRATE [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(0)|float %} M117 Heating... M140 S{BED_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_CALIBRATE M190 S{BED_TEMP} G1 Z5.0 F3000 G1 X0.1 Y20 Z0.3 F5000.0 M109 S{EXTRUDER_TEMP} G92 E0 G1 Z1.0 F3000 G1 X2 Y20 Z0.3 F5000.0 G1 X2 Y200.0 Z0.3 F1500.0 E15 G1 X2 Y200.0 Z0.4 F5000.0 G1 X2 Y20 Z0.4 F1500.0 E30 G92 E0 G1 Z1.0 F3000 [gcode_macro END_PRINT] gcode = M104 T0 S0 M104 T1 S0 M140 S0 G92 E1 G1 E-1 F300 G28 X0 Y0 M84 [gcode_macro G29] gcode = BED_MESH_CALIBRATE [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE [gcode_macro PAUSE] rename_existing = BASE_PAUSE gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK M104 S0 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro RESUME] rename_existing = BASE_RESUME variable_zhop = 0 variable_etemp = 0 gcode = {% set e = params.E|default(2.5)|int %} {% if printer['pause_resume'].is_paused|int == 1 %} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} {% if etemp > 0 %} M109 S{etemp|int} {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 G91 M83 {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 Z{zhop * -1} E{e} F900 {% else %} G1 Z{zhop * -1} F900 {% endif %} RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60 BASE_RESUME {% endif %} [gcode_macro M600] gcode = CHANGE_FILAMENT [gcode_macro M601] gcode = CHANGE_FILAMENT [gcode_macro CHANGE_FILAMENT] gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK ,M104 S0 G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro UNLOAD_FILAMENT] description = Retrait du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=unload_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Retrait du filament..." G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 RESTORE_GCODE_STATE NAME=unload_state {% endif %} [gcode_macro LOAD_FILAMENT] description = Chargement du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=load_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Chargement du filament..." G91 G0 E70 F300 G0 E20 F200 M400 RESTORE_GCODE_STATE NAME=load_state {% endif %} [gcode_macro CALIBRATION_PID_BED_60] description = PID Plateau gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID du plateau en cours..." PID_CALIBRATE HEATER=heater_bed TARGET={params.TEMP|default(60)} G28 SAVE_CONFIG {% endif %} [gcode_macro CALIBRATION_PID_HOTEND_200] description = PID Hotend gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID de la buse en cours..." PID_CALIBRATE HEATER=extruder TARGET={params.TEMP|default(200)} G28 SAVE_CONFIG {% endif %} [gcode_macro SAUVEGARDER] description = Sauvegarder la configuration gcode = SAVE_CONFIG [gcode_macro M201] description = Sets maximum accelleration. Usage: M201 [X<accel>] [Y<accel>] gcode = {% if 'X' in params or 'Y' in params %} {% set accel = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel * 0.5} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M203] description = Sets maximum velocity Usage: M203 [X<speed>] [Y<speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT VELOCITY={speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M204] description = Sets maximum accelleration. Usage: M204 [S<accel>] [P<accel> T<accel>] rename_existing = M204.1 gcode = {% set f = params.F|default(0.5)|float %} {% if 'S' in params %} {% set s = params.S|float %} SET_VELOCITY_LIMIT ACCEL={s} ACCEL_TO_DECEL={ s * f } {% else %} {% if 'P' in params %} {% set p = params.P|float %} {% if 'T' in params %} {% set t = params.T|float %} {% if p < t %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% else %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% else %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% endif %} {% elif 'T' in params %} {% set t = params.T|float %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% endif %} [gcode_macro M205] description = Sets square corner velocity Usage: M205 [X<corner_speed>] [Y<corner_speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set corner_speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={corner_speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro ADXL_TEST] description = ADXL Test gcode = ACCELEROMETER_QUERY [gcode_macro ADXL_NOISE] description = Measure Accelerometer Noise gcode = MEASURE_AXES_NOISE [gcode_macro ADXL_AXE_X] description = Measure X axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=X [gcode_macro ADXL_AXE_Y] description = Measure Y axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=Y [gcode_macro SECURITY_OFFSET] description = Apply a 2mm Safety Offset gcode = SET_GCODE_OFFSET Z=+2 RESPOND MSG="Safety Offset applied!" [mcu] serial = /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 restart_method = command [stepper_x] step_pin = PE3 dir_pin = PE2 enable_pin = !PE4 microsteps = 16 rotation_distance = 40 endstop_pin = !PA15 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_y] step_pin = PE0 dir_pin = !PB9 enable_pin = !PE1 microsteps = 16 rotation_distance = 40 endstop_pin = !PA12 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_z] step_pin = PB5 dir_pin = !PB4 enable_pin = !PB8 microsteps = 16 rotation_distance = 8 endstop_pin = !PA11 position_endstop = 0 position_min = -5 position_max = 250 [extruder] step_pin = PD6 dir_pin = !PD3 enable_pin = !PB3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.157 min_extrude_temp = 185 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = PC3 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC1 min_temp = 5 max_temp = 260 max_extrude_only_distance = 950.0 max_extrude_only_velocity = 200 max_extrude_only_accel = 2750 max_extrude_cross_section = 5 pressure_advance = 0.065 pressure_advance_smooth_time = 0.040 control = pid pid_kp = 22.501 pid_ki = 0.843 pid_kd = 150.192 [extruder_stepper belted_extruder] extruder = extruder step_pin = PA6 dir_pin = !PA1 enable_pin = !PA3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.952 [heater_bed] heater_pin = PA0 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC0 min_temp = 5 max_temp = 100 control = pid pid_kp = 62.805 pid_ki = 1.055 pid_kd = 935.009 [fan] pin = PB1 [printer] kinematics = cartesian max_velocity = 300 max_accel = 2400 max_accel_to_decel = 1200 square_corner_velocity = 5 max_z_velocity = 10 max_z_accel = 100 [input_shaper] shaper_freq_x = 101.8 shaper_type_x = mzv shaper_freq_y = 38.4 shaper_type_y = mzv [safe_z_home] home_xy_position = 115,115 speed = 100.0 z_hop = 10.0 z_hop_speed = 10.0 [firmware_retraction] retract_length = 8 retract_speed = 35 unretract_extra_length = 0 unretract_speed = 25 [filament_switch_sensor E0] pause_on_runout = True switch_pin = PA4 [filament_switch_sensor E1] pause_on_runout = True switch_pin = PE6 [temperature_sensor PiTemp] sensor_type = temperature_host sensor_path = /sys/class/thermal/thermal_zone0/temp [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 90 [bed_mesh] speed = 80 horizontal_move_z = 8 mesh_min = 50,50 mesh_max = 180, 210 probe_count = 5,5 fade_start = 1.0 fade_end = 10 mesh_pps = 2,2 [virtual_sdcard] path = /home/pi/printer_data/gcodes/ [display_status] [pause_resume] [save_variables] filename = /home/pi/printer_data/config/variables.cfg [bed_screws] screw1 = 20,20 screw1_name = Front left screw screw2 = 20,220 screw2_name = Rear left screw screw3 = 220,220 screw3_name = Rear right screw screw4 = 220,20 screw4_name = Front right screw [bed_mesh default] version = 1 points = -0.145000, 0.077500, 0.020000, -0.026250, -0.007500 -0.085000, 0.067500, 0.051250, -0.012500, -0.038750 -0.126250, 0.025000, 0.005000, -0.035000, -0.057500 -0.183750, -0.048750, -0.032500, -0.078750, -0.085000 -0.321250, -0.142500, -0.172500, -0.182500, -0.170000 x_count = 5 y_count = 5 mesh_x_pps = 2 mesh_y_pps = 2 algo = lagrange tension = 0.2 min_x = 50.00000000000001 max_x = 180.0 min_y = 50.01 max_y = 210.0 ======================= Unhandled exception during connect Traceback (most recent call last): File "/home/loic/klipper/klippy/klippy.py", line 175, in _connect self._read_config() File "/home/loic/klipper/klippy/klippy.py", line 141, in _read_config self.load_object(config, section_config.get_name(), None) File "/home/loic/klipper/klippy/klippy.py", line 130, in load_object self.objects[section] = init_func(config.getsection(section)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 64, in load_config return SaveVariables(config) ^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 16, in __init__ open(self.filename, "w").close() ^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' webhooks client 547886285328: New connection webhooks client 547886285328: Client info {'program': 'Moonraker', 'version': 'v0.8.0-286-gf44fc4b'} Unable to issue reset command on MCU 'mcu' webhooks client 547886285328: Disconnected Restarting printer Start printer at Tue Jan 23 17:51:08 2024 (1706028668.5 265.6) ===== Config file ===== [gcode_macro Z_OFFSET] description = Mesuser le Z-Offset gcode = G28 PROBE_CALIBRATE [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(0)|float %} M117 Heating... M140 S{BED_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_CALIBRATE M190 S{BED_TEMP} G1 Z5.0 F3000 G1 X0.1 Y20 Z0.3 F5000.0 M109 S{EXTRUDER_TEMP} G92 E0 G1 Z1.0 F3000 G1 X2 Y20 Z0.3 F5000.0 G1 X2 Y200.0 Z0.3 F1500.0 E15 G1 X2 Y200.0 Z0.4 F5000.0 G1 X2 Y20 Z0.4 F1500.0 E30 G92 E0 G1 Z1.0 F3000 [gcode_macro END_PRINT] gcode = M104 T0 S0 M104 T1 S0 M140 S0 G92 E1 G1 E-1 F300 G28 X0 Y0 M84 [gcode_macro G29] gcode = BED_MESH_CALIBRATE [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE [gcode_macro PAUSE] rename_existing = BASE_PAUSE gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK M104 S0 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro RESUME] rename_existing = BASE_RESUME variable_zhop = 0 variable_etemp = 0 gcode = {% set e = params.E|default(2.5)|int %} {% if printer['pause_resume'].is_paused|int == 1 %} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} {% if etemp > 0 %} M109 S{etemp|int} {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 G91 M83 {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 Z{zhop * -1} E{e} F900 {% else %} G1 Z{zhop * -1} F900 {% endif %} RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60 BASE_RESUME {% endif %} [gcode_macro M600] gcode = CHANGE_FILAMENT [gcode_macro M601] gcode = CHANGE_FILAMENT [gcode_macro CHANGE_FILAMENT] gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK ,M104 S0 G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro UNLOAD_FILAMENT] description = Retrait du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=unload_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Retrait du filament..." G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 RESTORE_GCODE_STATE NAME=unload_state {% endif %} [gcode_macro LOAD_FILAMENT] description = Chargement du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=load_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Chargement du filament..." G91 G0 E70 F300 G0 E20 F200 M400 RESTORE_GCODE_STATE NAME=load_state {% endif %} [gcode_macro CALIBRATION_PID_BED_60] description = PID Plateau gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID du plateau en cours..." PID_CALIBRATE HEATER=heater_bed TARGET={params.TEMP|default(60)} G28 SAVE_CONFIG {% endif %} [gcode_macro CALIBRATION_PID_HOTEND_200] description = PID Hotend gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID de la buse en cours..." PID_CALIBRATE HEATER=extruder TARGET={params.TEMP|default(200)} G28 SAVE_CONFIG {% endif %} [gcode_macro SAUVEGARDER] description = Sauvegarder la configuration gcode = SAVE_CONFIG [gcode_macro M201] description = Sets maximum accelleration. Usage: M201 [X<accel>] [Y<accel>] gcode = {% if 'X' in params or 'Y' in params %} {% set accel = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel * 0.5} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M203] description = Sets maximum velocity Usage: M203 [X<speed>] [Y<speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT VELOCITY={speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M204] description = Sets maximum accelleration. Usage: M204 [S<accel>] [P<accel> T<accel>] rename_existing = M204.1 gcode = {% set f = params.F|default(0.5)|float %} {% if 'S' in params %} {% set s = params.S|float %} SET_VELOCITY_LIMIT ACCEL={s} ACCEL_TO_DECEL={ s * f } {% else %} {% if 'P' in params %} {% set p = params.P|float %} {% if 'T' in params %} {% set t = params.T|float %} {% if p < t %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% else %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% else %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% endif %} {% elif 'T' in params %} {% set t = params.T|float %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% endif %} [gcode_macro M205] description = Sets square corner velocity Usage: M205 [X<corner_speed>] [Y<corner_speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set corner_speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={corner_speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro ADXL_TEST] description = ADXL Test gcode = ACCELEROMETER_QUERY [gcode_macro ADXL_NOISE] description = Measure Accelerometer Noise gcode = MEASURE_AXES_NOISE [gcode_macro ADXL_AXE_X] description = Measure X axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=X [gcode_macro ADXL_AXE_Y] description = Measure Y axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=Y [gcode_macro SECURITY_OFFSET] description = Apply a 2mm Safety Offset gcode = SET_GCODE_OFFSET Z=+2 RESPOND MSG="Safety Offset applied!" [mcu] serial = /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 restart_method = command [stepper_x] step_pin = PE3 dir_pin = PE2 enable_pin = !PE4 microsteps = 16 rotation_distance = 40 endstop_pin = !PA15 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_y] step_pin = PE0 dir_pin = !PB9 enable_pin = !PE1 microsteps = 16 rotation_distance = 40 endstop_pin = !PA12 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_z] step_pin = PB5 dir_pin = !PB4 enable_pin = !PB8 microsteps = 16 rotation_distance = 8 endstop_pin = !PA11 position_endstop = 0 position_min = -5 position_max = 250 [extruder] step_pin = PD6 dir_pin = !PD3 enable_pin = !PB3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.157 min_extrude_temp = 185 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = PC3 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC1 min_temp = 5 max_temp = 260 max_extrude_only_distance = 950.0 max_extrude_only_velocity = 200 max_extrude_only_accel = 2750 max_extrude_cross_section = 5 pressure_advance = 0.065 pressure_advance_smooth_time = 0.040 control = pid pid_kp = 22.501 pid_ki = 0.843 pid_kd = 150.192 [extruder_stepper belted_extruder] extruder = extruder step_pin = PA6 dir_pin = !PA1 enable_pin = !PA3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.952 [heater_bed] heater_pin = PA0 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC0 min_temp = 5 max_temp = 100 control = pid pid_kp = 62.805 pid_ki = 1.055 pid_kd = 935.009 [fan] pin = PB1 [printer] kinematics = cartesian max_velocity = 300 max_accel = 2400 max_accel_to_decel = 1200 square_corner_velocity = 5 max_z_velocity = 10 max_z_accel = 100 [input_shaper] shaper_freq_x = 101.8 shaper_type_x = mzv shaper_freq_y = 38.4 shaper_type_y = mzv [safe_z_home] home_xy_position = 115,115 speed = 100.0 z_hop = 10.0 z_hop_speed = 10.0 [firmware_retraction] retract_length = 8 retract_speed = 35 unretract_extra_length = 0 unretract_speed = 25 [filament_switch_sensor E0] pause_on_runout = True switch_pin = PA4 [filament_switch_sensor E1] pause_on_runout = True switch_pin = PE6 [temperature_sensor PiTemp] sensor_type = temperature_host sensor_path = /sys/class/thermal/thermal_zone0/temp [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 90 [bed_mesh] speed = 80 horizontal_move_z = 8 mesh_min = 50,50 mesh_max = 180, 210 probe_count = 5,5 fade_start = 1.0 fade_end = 10 mesh_pps = 2,2 [virtual_sdcard] path = /home/pi/printer_data/gcodes/ [display_status] [pause_resume] [save_variables] filename = /home/pi/printer_data/config/variables.cfg [bed_screws] screw1 = 20,20 screw1_name = Front left screw screw2 = 20,220 screw2_name = Rear left screw screw3 = 220,220 screw3_name = Rear right screw screw4 = 220,20 screw4_name = Front right screw [bed_mesh default] version = 1 points = -0.145000, 0.077500, 0.020000, -0.026250, -0.007500 -0.085000, 0.067500, 0.051250, -0.012500, -0.038750 -0.126250, 0.025000, 0.005000, -0.035000, -0.057500 -0.183750, -0.048750, -0.032500, -0.078750, -0.085000 -0.321250, -0.142500, -0.172500, -0.182500, -0.170000 x_count = 5 y_count = 5 mesh_x_pps = 2 mesh_y_pps = 2 algo = lagrange tension = 0.2 min_x = 50.00000000000001 max_x = 180.0 min_y = 50.01 max_y = 210.0 ======================= Unhandled exception during connect Traceback (most recent call last): File "/home/loic/klipper/klippy/klippy.py", line 175, in _connect self._read_config() File "/home/loic/klipper/klippy/klippy.py", line 141, in _read_config self.load_object(config, section_config.get_name(), None) File "/home/loic/klipper/klippy/klippy.py", line 130, in load_object self.objects[section] = init_func(config.getsection(section)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 64, in load_config return SaveVariables(config) ^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 16, in __init__ open(self.filename, "w").close() ^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' webhooks client 547893957136: New connection webhooks client 547893957136: Client info {'program': 'Moonraker', 'version': 'v0.8.0-286-gf44fc4b'} Internal error during connect: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' Once the underlying issue is corrected, use the "RESTART" command to reload the config and restart the host software. Printer is halted Transition to shutdown state: Shutdown due to webhooks request Dumping 20 requests for client 547893957136 Received 925.358763: b'{"id": 548052054608, "method": "info", "params": {}}' Received 927.361640: b'{"id": 548052044880, "method": "info", "params": {}}' Received 929.354837: b'{"id": 548052048976, "method": "info", "params": {}}' Received 931.356639: b'{"id": 548052054224, "method": "info", "params": {}}' Received 933.358756: b'{"id": 548052047312, "method": "info", "params": {}}' Received 935.362456: b'{"id": 548052054480, "method": "info", "params": {}}' Received 937.357288: b'{"id": 548052050768, "method": "info", "params": {}}' Received 939.358803: b'{"id": 548052051024, "method": "info", "params": {}}' Received 941.361324: b'{"id": 548052049360, "method": "info", "params": {}}' Received 943.356196: b'{"id": 548052044880, "method": "info", "params": {}}' Received 945.357848: b'{"id": 548052048976, "method": "info", "params": {}}' Received 947.360025: b'{"id": 548052054224, "method": "info", "params": {}}' Received 949.363359: b'{"id": 548052047312, "method": "info", "params": {}}' Received 951.357652: b'{"id": 548052054480, "method": "info", "params": {}}' Received 953.359247: b'{"id": 548052049040, "method": "info", "params": {}}' Received 955.361296: b'{"id": 548052051024, "method": "info", "params": {}}' Received 957.357148: b'{"id": 548052049360, "method": "info", "params": {}}' Received 959.358893: b'{"id": 548052052048, "method": "info", "params": {}}' Received 961.360697: b'{"id": 548052048976, "method": "info", "params": {}}' Received 962.271880: b'{"id": 548052050192, "method": "emergency_stop", "params": {}}' Reactor garbage collection: (843.354604886, 0.0, 0.0) Unable to issue reset command on MCU 'mcu' webhooks client 547893957136: Disconnected Restarting printer Start printer at Tue Jan 23 18:02:53 2024 (1706029373.5 970.6) ===== Config file ===== [gcode_macro Z_OFFSET] description = Mesuser le Z-Offset gcode = G28 PROBE_CALIBRATE [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(0)|float %} M117 Heating... M140 S{BED_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_CALIBRATE M190 S{BED_TEMP} G1 Z5.0 F3000 G1 X0.1 Y20 Z0.3 F5000.0 M109 S{EXTRUDER_TEMP} G92 E0 G1 Z1.0 F3000 G1 X2 Y20 Z0.3 F5000.0 G1 X2 Y200.0 Z0.3 F1500.0 E15 G1 X2 Y200.0 Z0.4 F5000.0 G1 X2 Y20 Z0.4 F1500.0 E30 G92 E0 G1 Z1.0 F3000 [gcode_macro END_PRINT] gcode = M104 T0 S0 M104 T1 S0 M140 S0 G92 E1 G1 E-1 F300 G28 X0 Y0 M84 [gcode_macro G29] gcode = BED_MESH_CALIBRATE [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE [gcode_macro PAUSE] rename_existing = BASE_PAUSE gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK M104 S0 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro RESUME] rename_existing = BASE_RESUME variable_zhop = 0 variable_etemp = 0 gcode = {% set e = params.E|default(2.5)|int %} {% if printer['pause_resume'].is_paused|int == 1 %} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} {% if etemp > 0 %} M109 S{etemp|int} {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 G91 M83 {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 Z{zhop * -1} E{e} F900 {% else %} G1 Z{zhop * -1} F900 {% endif %} RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60 BASE_RESUME {% endif %} [gcode_macro M600] gcode = CHANGE_FILAMENT [gcode_macro M601] gcode = CHANGE_FILAMENT [gcode_macro CHANGE_FILAMENT] gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK ,M104 S0 G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro UNLOAD_FILAMENT] description = Retrait du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=unload_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Retrait du filament..." G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 RESTORE_GCODE_STATE NAME=unload_state {% endif %} [gcode_macro LOAD_FILAMENT] description = Chargement du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=load_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Chargement du filament..." G91 G0 E70 F300 G0 E20 F200 M400 RESTORE_GCODE_STATE NAME=load_state {% endif %} [gcode_macro CALIBRATION_PID_BED_60] description = PID Plateau gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID du plateau en cours..." PID_CALIBRATE HEATER=heater_bed TARGET={params.TEMP|default(60)} G28 SAVE_CONFIG {% endif %} [gcode_macro CALIBRATION_PID_HOTEND_200] description = PID Hotend gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID de la buse en cours..." PID_CALIBRATE HEATER=extruder TARGET={params.TEMP|default(200)} G28 SAVE_CONFIG {% endif %} [gcode_macro SAUVEGARDER] description = Sauvegarder la configuration gcode = SAVE_CONFIG [gcode_macro M201] description = Sets maximum accelleration. Usage: M201 [X<accel>] [Y<accel>] gcode = {% if 'X' in params or 'Y' in params %} {% set accel = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel * 0.5} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M203] description = Sets maximum velocity Usage: M203 [X<speed>] [Y<speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT VELOCITY={speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M204] description = Sets maximum accelleration. Usage: M204 [S<accel>] [P<accel> T<accel>] rename_existing = M204.1 gcode = {% set f = params.F|default(0.5)|float %} {% if 'S' in params %} {% set s = params.S|float %} SET_VELOCITY_LIMIT ACCEL={s} ACCEL_TO_DECEL={ s * f } {% else %} {% if 'P' in params %} {% set p = params.P|float %} {% if 'T' in params %} {% set t = params.T|float %} {% if p < t %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% else %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% else %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% endif %} {% elif 'T' in params %} {% set t = params.T|float %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% endif %} [gcode_macro M205] description = Sets square corner velocity Usage: M205 [X<corner_speed>] [Y<corner_speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set corner_speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={corner_speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro ADXL_TEST] description = ADXL Test gcode = ACCELEROMETER_QUERY [gcode_macro ADXL_NOISE] description = Measure Accelerometer Noise gcode = MEASURE_AXES_NOISE [gcode_macro ADXL_AXE_X] description = Measure X axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=X [gcode_macro ADXL_AXE_Y] description = Measure Y axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=Y [gcode_macro SECURITY_OFFSET] description = Apply a 2mm Safety Offset gcode = SET_GCODE_OFFSET Z=+2 RESPOND MSG="Safety Offset applied!" [mcu] serial = /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 restart_method = command [stepper_x] step_pin = PE3 dir_pin = PE2 enable_pin = !PE4 microsteps = 16 rotation_distance = 40 endstop_pin = !PA15 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_y] step_pin = PE0 dir_pin = !PB9 enable_pin = !PE1 microsteps = 16 rotation_distance = 40 endstop_pin = !PA12 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_z] step_pin = PB5 dir_pin = !PB4 enable_pin = !PB8 microsteps = 16 rotation_distance = 8 endstop_pin = !PA11 position_endstop = 0 position_min = -5 position_max = 250 [extruder] step_pin = PD6 dir_pin = !PD3 enable_pin = !PB3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.157 min_extrude_temp = 185 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = PC3 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC1 min_temp = 5 max_temp = 260 max_extrude_only_distance = 950.0 max_extrude_only_velocity = 200 max_extrude_only_accel = 2750 max_extrude_cross_section = 5 pressure_advance = 0.065 pressure_advance_smooth_time = 0.040 control = pid pid_kp = 22.501 pid_ki = 0.843 pid_kd = 150.192 [extruder_stepper belted_extruder] extruder = extruder step_pin = PA6 dir_pin = !PA1 enable_pin = !PA3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.952 [heater_bed] heater_pin = PA0 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC0 min_temp = 5 max_temp = 100 control = pid pid_kp = 62.805 pid_ki = 1.055 pid_kd = 935.009 [fan] pin = PB1 [printer] kinematics = cartesian max_velocity = 300 max_accel = 2400 max_accel_to_decel = 1200 square_corner_velocity = 5 max_z_velocity = 10 max_z_accel = 100 [input_shaper] shaper_freq_x = 101.8 shaper_type_x = mzv shaper_freq_y = 38.4 shaper_type_y = mzv [safe_z_home] home_xy_position = 115,115 speed = 100.0 z_hop = 10.0 z_hop_speed = 10.0 [firmware_retraction] retract_length = 8 retract_speed = 35 unretract_extra_length = 0 unretract_speed = 25 [filament_switch_sensor E0] pause_on_runout = True switch_pin = PA4 [filament_switch_sensor E1] pause_on_runout = True switch_pin = PE6 [temperature_sensor PiTemp] sensor_type = temperature_host sensor_path = /sys/class/thermal/thermal_zone0/temp [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 90 [bed_mesh] speed = 80 horizontal_move_z = 8 mesh_min = 50,50 mesh_max = 180, 210 probe_count = 5,5 fade_start = 1.0 fade_end = 10 mesh_pps = 2,2 [virtual_sdcard] path = /home/pi/printer_data/gcodes/ [display_status] [pause_resume] [save_variables] filename = /home/pi/printer_data/config/variables.cfg [bed_screws] screw1 = 20,20 screw1_name = Front left screw screw2 = 20,220 screw2_name = Rear left screw screw3 = 220,220 screw3_name = Rear right screw screw4 = 220,20 screw4_name = Front right screw [bed_mesh default] version = 1 points = -0.145000, 0.077500, 0.020000, -0.026250, -0.007500 -0.085000, 0.067500, 0.051250, -0.012500, -0.038750 -0.126250, 0.025000, 0.005000, -0.035000, -0.057500 -0.183750, -0.048750, -0.032500, -0.078750, -0.085000 -0.321250, -0.142500, -0.172500, -0.182500, -0.170000 x_count = 5 y_count = 5 mesh_x_pps = 2 mesh_y_pps = 2 algo = lagrange tension = 0.2 min_x = 50.00000000000001 max_x = 180.0 min_y = 50.01 max_y = 210.0 ======================= Unhandled exception during connect Traceback (most recent call last): File "/home/loic/klipper/klippy/klippy.py", line 175, in _connect self._read_config() File "/home/loic/klipper/klippy/klippy.py", line 141, in _read_config self.load_object(config, section_config.get_name(), None) File "/home/loic/klipper/klippy/klippy.py", line 130, in load_object self.objects[section] = init_func(config.getsection(section)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 64, in load_config return SaveVariables(config) ^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 16, in __init__ open(self.filename, "w").close() ^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' webhooks client 547892608336: New connection webhooks client 547892608336: Client info {'program': 'Moonraker', 'version': 'v0.8.0-286-gf44fc4b'} Unable to issue reset command on MCU 'mcu' webhooks client 547892608336: Disconnected Restarting printer Start printer at Tue Jan 23 18:11:45 2024 (1706029905.5 1502.6) ===== Config file ===== [gcode_macro Z_OFFSET] description = Mesuser le Z-Offset gcode = G28 PROBE_CALIBRATE [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(0)|float %} M117 Heating... M140 S{BED_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_CALIBRATE M190 S{BED_TEMP} G1 Z5.0 F3000 G1 X0.1 Y20 Z0.3 F5000.0 M109 S{EXTRUDER_TEMP} G92 E0 G1 Z1.0 F3000 G1 X2 Y20 Z0.3 F5000.0 G1 X2 Y200.0 Z0.3 F1500.0 E15 G1 X2 Y200.0 Z0.4 F5000.0 G1 X2 Y20 Z0.4 F1500.0 E30 G92 E0 G1 Z1.0 F3000 [gcode_macro END_PRINT] gcode = M104 T0 S0 M104 T1 S0 M140 S0 G92 E1 G1 E-1 F300 G28 X0 Y0 M84 [gcode_macro G29] gcode = BED_MESH_CALIBRATE [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE [gcode_macro PAUSE] rename_existing = BASE_PAUSE gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK M104 S0 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro RESUME] rename_existing = BASE_RESUME variable_zhop = 0 variable_etemp = 0 gcode = {% set e = params.E|default(2.5)|int %} {% if printer['pause_resume'].is_paused|int == 1 %} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} {% if etemp > 0 %} M109 S{etemp|int} {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 G91 M83 {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 Z{zhop * -1} E{e} F900 {% else %} G1 Z{zhop * -1} F900 {% endif %} RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60 BASE_RESUME {% endif %} [gcode_macro M600] gcode = CHANGE_FILAMENT [gcode_macro M601] gcode = CHANGE_FILAMENT [gcode_macro CHANGE_FILAMENT] gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK ,M104 S0 G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro UNLOAD_FILAMENT] description = Retrait du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=unload_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Retrait du filament..." G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 RESTORE_GCODE_STATE NAME=unload_state {% endif %} [gcode_macro LOAD_FILAMENT] description = Chargement du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=load_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Chargement du filament..." G91 G0 E70 F300 G0 E20 F200 M400 RESTORE_GCODE_STATE NAME=load_state {% endif %} [gcode_macro CALIBRATION_PID_BED_60] description = PID Plateau gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID du plateau en cours..." PID_CALIBRATE HEATER=heater_bed TARGET={params.TEMP|default(60)} G28 SAVE_CONFIG {% endif %} [gcode_macro CALIBRATION_PID_HOTEND_200] description = PID Hotend gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID de la buse en cours..." PID_CALIBRATE HEATER=extruder TARGET={params.TEMP|default(200)} G28 SAVE_CONFIG {% endif %} [gcode_macro SAUVEGARDER] description = Sauvegarder la configuration gcode = SAVE_CONFIG [gcode_macro M201] description = Sets maximum accelleration. Usage: M201 [X<accel>] [Y<accel>] gcode = {% if 'X' in params or 'Y' in params %} {% set accel = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel * 0.5} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M203] description = Sets maximum velocity Usage: M203 [X<speed>] [Y<speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT VELOCITY={speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M204] description = Sets maximum accelleration. Usage: M204 [S<accel>] [P<accel> T<accel>] rename_existing = M204.1 gcode = {% set f = params.F|default(0.5)|float %} {% if 'S' in params %} {% set s = params.S|float %} SET_VELOCITY_LIMIT ACCEL={s} ACCEL_TO_DECEL={ s * f } {% else %} {% if 'P' in params %} {% set p = params.P|float %} {% if 'T' in params %} {% set t = params.T|float %} {% if p < t %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% else %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% else %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% endif %} {% elif 'T' in params %} {% set t = params.T|float %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% endif %} [gcode_macro M205] description = Sets square corner velocity Usage: M205 [X<corner_speed>] [Y<corner_speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set corner_speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={corner_speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro ADXL_TEST] description = ADXL Test gcode = ACCELEROMETER_QUERY [gcode_macro ADXL_NOISE] description = Measure Accelerometer Noise gcode = MEASURE_AXES_NOISE [gcode_macro ADXL_AXE_X] description = Measure X axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=X [gcode_macro ADXL_AXE_Y] description = Measure Y axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=Y [gcode_macro SECURITY_OFFSET] description = Apply a 2mm Safety Offset gcode = SET_GCODE_OFFSET Z=+2 RESPOND MSG="Safety Offset applied!" [mcu] serial = /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 restart_method = command [stepper_x] step_pin = PE3 dir_pin = PE2 enable_pin = !PE4 microsteps = 16 rotation_distance = 40 endstop_pin = !PA15 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_y] step_pin = PE0 dir_pin = !PB9 enable_pin = !PE1 microsteps = 16 rotation_distance = 40 endstop_pin = !PA12 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_z] step_pin = PB5 dir_pin = !PB4 enable_pin = !PB8 microsteps = 16 rotation_distance = 8 endstop_pin = !PA11 position_endstop = 0 position_min = -5 position_max = 250 [extruder] step_pin = PD6 dir_pin = !PD3 enable_pin = !PB3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.157 min_extrude_temp = 185 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = PC3 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC1 min_temp = 5 max_temp = 260 max_extrude_only_distance = 950.0 max_extrude_only_velocity = 200 max_extrude_only_accel = 2750 max_extrude_cross_section = 5 pressure_advance = 0.065 pressure_advance_smooth_time = 0.040 control = pid pid_kp = 22.501 pid_ki = 0.843 pid_kd = 150.192 [extruder_stepper belted_extruder] extruder = extruder step_pin = PA6 dir_pin = !PA1 enable_pin = !PA3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.952 [heater_bed] heater_pin = PA0 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC0 min_temp = 5 max_temp = 100 control = pid pid_kp = 62.805 pid_ki = 1.055 pid_kd = 935.009 [fan] pin = PB1 [printer] kinematics = cartesian max_velocity = 300 max_accel = 2400 max_accel_to_decel = 1200 square_corner_velocity = 5 max_z_velocity = 10 max_z_accel = 100 [input_shaper] shaper_freq_x = 101.8 shaper_type_x = mzv shaper_freq_y = 38.4 shaper_type_y = mzv [safe_z_home] home_xy_position = 115,115 speed = 100.0 z_hop = 10.0 z_hop_speed = 10.0 [firmware_retraction] retract_length = 8 retract_speed = 35 unretract_extra_length = 0 unretract_speed = 25 [filament_switch_sensor E0] pause_on_runout = True switch_pin = PA4 [filament_switch_sensor E1] pause_on_runout = True switch_pin = PE6 [temperature_sensor PiTemp] sensor_type = temperature_host sensor_path = /sys/class/thermal/thermal_zone0/temp [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 90 [bed_mesh] speed = 80 horizontal_move_z = 8 mesh_min = 50,50 mesh_max = 180, 210 probe_count = 5,5 fade_start = 1.0 fade_end = 10 mesh_pps = 2,2 [virtual_sdcard] path = /home/pi/printer_data/gcodes/ [display_status] [pause_resume] [save_variables] filename = /home/pi/printer_data/config/variables.cfg [bed_screws] screw1 = 20,20 screw1_name = Front left screw screw2 = 20,220 screw2_name = Rear left screw screw3 = 220,220 screw3_name = Rear right screw screw4 = 220,20 screw4_name = Front right screw [bed_mesh default] version = 1 points = -0.145000, 0.077500, 0.020000, -0.026250, -0.007500 -0.085000, 0.067500, 0.051250, -0.012500, -0.038750 -0.126250, 0.025000, 0.005000, -0.035000, -0.057500 -0.183750, -0.048750, -0.032500, -0.078750, -0.085000 -0.321250, -0.142500, -0.172500, -0.182500, -0.170000 x_count = 5 y_count = 5 mesh_x_pps = 2 mesh_y_pps = 2 algo = lagrange tension = 0.2 min_x = 50.00000000000001 max_x = 180.0 min_y = 50.01 max_y = 210.0 ======================= Unhandled exception during connect Traceback (most recent call last): File "/home/loic/klipper/klippy/klippy.py", line 175, in _connect self._read_config() File "/home/loic/klipper/klippy/klippy.py", line 141, in _read_config self.load_object(config, section_config.get_name(), None) File "/home/loic/klipper/klippy/klippy.py", line 130, in load_object self.objects[section] = init_func(config.getsection(section)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 64, in load_config return SaveVariables(config) ^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 16, in __init__ open(self.filename, "w").close() ^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' webhooks client 547893957328: New connection webhooks client 547893957328: Client info {'program': 'Moonraker', 'version': 'v0.8.0-286-gf44fc4b'} Starting Klippy... Args: ['/home/loic/klipper/klippy/klippy.py', '/home/loic/printer_data/config/printer.cfg', '-I', '/home/loic/printer_data/comms/klippy.serial', '-l', '/home/loic/printer_data/logs/klippy.log', '-a', '/home/loic/printer_data/comms/klippy.sock'] Git version: 'v0.12.0-88-g2e8b54ae' Branch: master Remote: origin Tracked URL: https://github.com/Klipper3d/klipper CPU: 4 core ? Python: '3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0]' Start printer at Tue Jan 23 18:19:11 2024 (1706030351.9 19.2) ===== Config file ===== [gcode_macro Z_OFFSET] description = Mesuser le Z-Offset gcode = G28 PROBE_CALIBRATE [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(0)|float %} M117 Heating... M140 S{BED_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_CALIBRATE M190 S{BED_TEMP} G1 Z5.0 F3000 G1 X0.1 Y20 Z0.3 F5000.0 M109 S{EXTRUDER_TEMP} G92 E0 G1 Z1.0 F3000 G1 X2 Y20 Z0.3 F5000.0 G1 X2 Y200.0 Z0.3 F1500.0 E15 G1 X2 Y200.0 Z0.4 F5000.0 G1 X2 Y20 Z0.4 F1500.0 E30 G92 E0 G1 Z1.0 F3000 [gcode_macro END_PRINT] gcode = M104 T0 S0 M104 T1 S0 M140 S0 G92 E1 G1 E-1 F300 G28 X0 Y0 M84 [gcode_macro G29] gcode = BED_MESH_CALIBRATE [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE [gcode_macro PAUSE] rename_existing = BASE_PAUSE gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK M104 S0 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro RESUME] rename_existing = BASE_RESUME variable_zhop = 0 variable_etemp = 0 gcode = {% set e = params.E|default(2.5)|int %} {% if printer['pause_resume'].is_paused|int == 1 %} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} {% if etemp > 0 %} M109 S{etemp|int} {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 G91 M83 {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 Z{zhop * -1} E{e} F900 {% else %} G1 Z{zhop * -1} F900 {% endif %} RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60 BASE_RESUME {% endif %} [gcode_macro M600] gcode = CHANGE_FILAMENT [gcode_macro M601] gcode = CHANGE_FILAMENT [gcode_macro CHANGE_FILAMENT] gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK ,M104 S0 G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro UNLOAD_FILAMENT] description = Retrait du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=unload_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Retrait du filament..." G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 RESTORE_GCODE_STATE NAME=unload_state {% endif %} [gcode_macro LOAD_FILAMENT] description = Chargement du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=load_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Chargement du filament..." G91 G0 E70 F300 G0 E20 F200 M400 RESTORE_GCODE_STATE NAME=load_state {% endif %} [gcode_macro CALIBRATION_PID_BED_60] description = PID Plateau gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID du plateau en cours..." PID_CALIBRATE HEATER=heater_bed TARGET={params.TEMP|default(60)} G28 SAVE_CONFIG {% endif %} [gcode_macro CALIBRATION_PID_HOTEND_200] description = PID Hotend gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID de la buse en cours..." PID_CALIBRATE HEATER=extruder TARGET={params.TEMP|default(200)} G28 SAVE_CONFIG {% endif %} [gcode_macro SAUVEGARDER] description = Sauvegarder la configuration gcode = SAVE_CONFIG [gcode_macro M201] description = Sets maximum accelleration. Usage: M201 [X<accel>] [Y<accel>] gcode = {% if 'X' in params or 'Y' in params %} {% set accel = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel * 0.5} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M203] description = Sets maximum velocity Usage: M203 [X<speed>] [Y<speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT VELOCITY={speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M204] description = Sets maximum accelleration. Usage: M204 [S<accel>] [P<accel> T<accel>] rename_existing = M204.1 gcode = {% set f = params.F|default(0.5)|float %} {% if 'S' in params %} {% set s = params.S|float %} SET_VELOCITY_LIMIT ACCEL={s} ACCEL_TO_DECEL={ s * f } {% else %} {% if 'P' in params %} {% set p = params.P|float %} {% if 'T' in params %} {% set t = params.T|float %} {% if p < t %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% else %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% else %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% endif %} {% elif 'T' in params %} {% set t = params.T|float %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% endif %} [gcode_macro M205] description = Sets square corner velocity Usage: M205 [X<corner_speed>] [Y<corner_speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set corner_speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={corner_speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro ADXL_TEST] description = ADXL Test gcode = ACCELEROMETER_QUERY [gcode_macro ADXL_NOISE] description = Measure Accelerometer Noise gcode = MEASURE_AXES_NOISE [gcode_macro ADXL_AXE_X] description = Measure X axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=X [gcode_macro ADXL_AXE_Y] description = Measure Y axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=Y [gcode_macro SECURITY_OFFSET] description = Apply a 2mm Safety Offset gcode = SET_GCODE_OFFSET Z=+2 RESPOND MSG="Safety Offset applied!" [mcu] serial = /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 restart_method = command [stepper_x] step_pin = PE3 dir_pin = PE2 enable_pin = !PE4 microsteps = 16 rotation_distance = 40 endstop_pin = !PA15 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_y] step_pin = PE0 dir_pin = !PB9 enable_pin = !PE1 microsteps = 16 rotation_distance = 40 endstop_pin = !PA12 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_z] step_pin = PB5 dir_pin = !PB4 enable_pin = !PB8 microsteps = 16 rotation_distance = 8 endstop_pin = !PA11 position_endstop = 0 position_min = -5 position_max = 250 [extruder] step_pin = PD6 dir_pin = !PD3 enable_pin = !PB3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.157 min_extrude_temp = 185 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = PC3 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC1 min_temp = 5 max_temp = 260 max_extrude_only_distance = 950.0 max_extrude_only_velocity = 200 max_extrude_only_accel = 2750 max_extrude_cross_section = 5 pressure_advance = 0.065 pressure_advance_smooth_time = 0.040 control = pid pid_kp = 22.501 pid_ki = 0.843 pid_kd = 150.192 [extruder_stepper belted_extruder] extruder = extruder step_pin = PA6 dir_pin = !PA1 enable_pin = !PA3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.952 [heater_bed] heater_pin = PA0 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC0 min_temp = 5 max_temp = 100 control = pid pid_kp = 62.805 pid_ki = 1.055 pid_kd = 935.009 [fan] pin = PB1 [printer] kinematics = cartesian max_velocity = 300 max_accel = 2400 max_accel_to_decel = 1200 square_corner_velocity = 5 max_z_velocity = 10 max_z_accel = 100 [input_shaper] shaper_freq_x = 101.8 shaper_type_x = mzv shaper_freq_y = 38.4 shaper_type_y = mzv [safe_z_home] home_xy_position = 115,115 speed = 100.0 z_hop = 10.0 z_hop_speed = 10.0 [firmware_retraction] retract_length = 8 retract_speed = 35 unretract_extra_length = 0 unretract_speed = 25 [filament_switch_sensor E0] pause_on_runout = True switch_pin = PA4 [filament_switch_sensor E1] pause_on_runout = True switch_pin = PE6 [temperature_sensor PiTemp] sensor_type = temperature_host sensor_path = /sys/class/thermal/thermal_zone0/temp [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 90 [bed_mesh] speed = 80 horizontal_move_z = 8 mesh_min = 50,50 mesh_max = 180, 210 probe_count = 5,5 fade_start = 1.0 fade_end = 10 mesh_pps = 2,2 [virtual_sdcard] path = /home/pi/printer_data/gcodes/ [display_status] [pause_resume] [save_variables] filename = /home/pi/printer_data/config/variables.cfg [bed_screws] screw1 = 20,20 screw1_name = Front left screw screw2 = 20,220 screw2_name = Rear left screw screw3 = 220,220 screw3_name = Rear right screw screw4 = 220,20 screw4_name = Front right screw [bed_mesh default] version = 1 points = -0.145000, 0.077500, 0.020000, -0.026250, -0.007500 -0.085000, 0.067500, 0.051250, -0.012500, -0.038750 -0.126250, 0.025000, 0.005000, -0.035000, -0.057500 -0.183750, -0.048750, -0.032500, -0.078750, -0.085000 -0.321250, -0.142500, -0.172500, -0.182500, -0.170000 x_count = 5 y_count = 5 mesh_x_pps = 2 mesh_y_pps = 2 algo = lagrange tension = 0.2 min_x = 50.00000000000001 max_x = 180.0 min_y = 50.01 max_y = 210.0 ======================= Unhandled exception during connect Traceback (most recent call last): File "/home/loic/klipper/klippy/klippy.py", line 175, in _connect self._read_config() File "/home/loic/klipper/klippy/klippy.py", line 141, in _read_config self.load_object(config, section_config.get_name(), None) File "/home/loic/klipper/klippy/klippy.py", line 130, in load_object self.objects[section] = init_func(config.getsection(section)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 64, in load_config return SaveVariables(config) ^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 16, in __init__ open(self.filename, "w").close() ^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' webhooks client 547735561680: New connection webhooks client 547735561680: Client info {'program': 'Moonraker', 'version': 'v0.8.0-286-gf44fc4b'} mon imprimante wanhao d12/230 ca na pas fonctionner j'ai changer le firmwar avec le bin et je l'ai connecter au pi et rien ne se passe Modifié (le) Janvier 23 par fran6p Lien vers le commentaire Partager sur d’autres sites More sharing options...
Savate Posté(e) Janvier 23 Partager Posté(e) Janvier 23 il y a 3 minutes, darkness a dit : mon imprimante wanhao d12/230 ca na pas fonctionner j'ai changer le firmwar avec le bin et je l'ai connecter au pi et rien ne se passe tu as clairement oublié une étape ... /dev/serial/by-id/<your-mcu-id> dans la console ssh : tapes la commande ls /dev/serial/by-id/* et montre nous le résultat Lien vers le commentaire Partager sur d’autres sites More sharing options...
fran6p Posté(e) Janvier 23 Partager Posté(e) Janvier 23 @darkness J'ai édité ton post pour placer le journal dans une balise citation. Why? Sinon c'est indigeste et ne facilite pas la lecture. 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
darkness Posté(e) Janvier 23 Auteur Partager Posté(e) Janvier 23 ls: cannot access '/dev/serial/by-id/*': No such file or directory c'est un pb avec les variable Lien vers le commentaire Partager sur d’autres sites More sharing options...
Savate Posté(e) Janvier 23 Partager Posté(e) Janvier 23 (modifié) il y a 10 minutes, darkness a dit : c'est un pb avec les variable non, pas de problème de variables (en tout cas pour le moment ...) ta carte mère n'est pas 'vue' par le pi. elle est bien branchée en usb sur le pi ? le câble est bon ? (essaye avec un autre) tu peux aussi essayer un lsusb pour être sur que ce n'est pas un bug d'une maj de linux. Modifié (le) Janvier 23 par Savate Lien vers le commentaire Partager sur d’autres sites More sharing options...
darkness Posté(e) Janvier 23 Auteur Partager Posté(e) Janvier 23 ? je ne comprend pas Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nunki0 Posté(e) Janvier 23 Partager Posté(e) Janvier 23 Le problème vient du fait que ton raspberry de détecte rien de connecté au port USB. Tu as sûrement un problème physique au niveau de la connexion usb. Or, tu as besoin de récupérer l'identifiant du microprocesseur de l'imprimante pour pouvoir t'y connecter. Pour cela, tu peux aussi passer par Kiauh. Une fois que tu as ouvert kiauh, tu vas dans advanced > get MCU id > usb. Si tu as un message d'erreur, il faut que tu changes de câble, ou que tu vérifies les connexions. Sinon, tu copies l'id et tu le mets dans la config, comme te disait @Savate Lien vers le commentaire Partager sur d’autres sites More sharing options...
Savate Posté(e) Janvier 24 Partager Posté(e) Janvier 24 Il y a 9 heures, darkness a dit : je ne comprend pas Qu'est-ce que tu ne comprends pas ? 1) non, ce n'est pas un problème de variables ? 2) ta carte mère n'est pas vue par le pi ? 3) elle est bien branchée en usb dur le pi ? 4) le câble est bon ? essaye avec un autre câble usb en ssh tapes la commande lsusb et montre nous ce qu'elle retourne Lien vers le commentaire Partager sur d’autres sites More sharing options...
darkness Posté(e) Janvier 24 Auteur Partager Posté(e) Janvier 24 c'est un pb de variable Lien vers le commentaire Partager sur d’autres sites More sharing options...
pommeverte Posté(e) Janvier 24 Partager Posté(e) Janvier 24 Salut, "No such file or directory /home/pi/printer_data/config/fichier variables.cfg " signifie qu'il n'y a pas de fichier ou dossier (fichier dans ton cas) qui s'appelle variables.cfg dans le dossier /home/pi/printer_data/config. Il te faut donc copier le fichier variables.cfg du tuto que tu as suivi dans le dossier /home/pi/printer_data/config PS: n'hésite pas à ajouter le nom de ton imprimante dans ton profil, c'est pratique pour te répondre. (voir ce message pour plus d'explications) 2 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Savate Posté(e) Janvier 25 Partager Posté(e) Janvier 25 Il y a 9 heures, darkness a dit : c'est un pb de variable oups je me suis arrêté au début du log, ou il était indiqué que tu n'avais pas mis ton id de mcu ... @pommeverte a tout dit Lien vers le commentaire Partager sur d’autres sites More sharing options...
fran6p Posté(e) Janvier 25 Partager Posté(e) Janvier 25 Normalement quand la section [save_variables] est correctement paramétrée (le paramètre filename: pointant vers un emplacement indiquant le nom à utiliser pour stocker les variables), quand ce fichier n'existe pas encore, il est automatiquement créé Lien vers le commentaire Partager sur d’autres sites More sharing options...
darkness Posté(e) Janvier 25 Auteur Partager Posté(e) Janvier 25 Il y a 21 heures, pommeverte a dit : Salut, "No such file or directory /home/pi/printer_data/config/fichier variables.cfg " signifie qu'il n'y a pas de fichier ou dossier (fichier dans ton cas) qui s'appelle variables.cfg dans le dossier /home/pi/printer_data/config. Il te faut donc copier le fichier variables.cfg du tuto que tu as suivi dans le dossier /home/pi/printer_data/config PS: n'hésite pas à ajouter le nom de ton imprimante dans ton profil, c'est pratique pour te répondre. (voir ce message pour plus d'explications) le truc c'est qu'il y est deja c'est encor pire Include file '/home/loic/printer_data/config/varables.cfg' does not exist Once the underlying issue is corrected, use the "RESTART" command to reload the config and restart the host software. Printer is halted il ne me trouve pas le fichier de variable alor que je l'ai wanhao d12/230 Il y a 8 heures, fran6p a dit : Normalement quand la section [save_variables] est correctement paramétrée (le paramètre filename: pointant vers un emplacement indiquant le nom à utiliser pour stocker les variables), quand ce fichier n'existe pas encore, il est automatiquement créé comment on la paramétre bien Lien vers le commentaire Partager sur d’autres sites More sharing options...
fran6p Posté(e) Janvier 25 Partager Posté(e) Janvier 25 il y a 12 minutes, darkness a dit : /home/pi/printer_data/config/fichier variables.cfg Avec ce paramètre pour filename: ça ne peut pas fonctionner … sauf si le fichier contenant les variables à enregistrer se nomme "fichier variables.cfg" (et encore, je ne pense pas que Klipper acceptera un nom de fichier contenant un espace). Le paramètre filename: doit pointer vers le fichier en utilisant le chemin d'accès complet ( /home/pi/printer_data/variables.cfg ) ou raccourci ( ~/printer_data/variables.cfg ). Lien vers le commentaire Partager sur d’autres sites More sharing options...
darkness Posté(e) Janvier 25 Auteur Partager Posté(e) Janvier 25 il y a 3 minutes, fran6p a dit : Avec ce paramètre pour filename: ça ne peut pas fonctionner … sauf si le fichier contenant les variables à enregistrer se nomme "fichier variables.cfg" (et encore, je ne pense pas que Klipper acceptera un nom de fichier contenant un espace). Le paramètre filename: doit pointer vers le fichier en utilisant le chemin d'accès complet ( /home/pi/printer_data/variables.cfg ) ou raccourci ( ~/printer_data/variables.cfg ). merci mai ca ne fonctionne toujours pas Lien vers le commentaire Partager sur d’autres sites More sharing options...
pommeverte Posté(e) Janvier 25 Partager Posté(e) Janvier 25 Salut, il y a 5 minutes, fran6p a dit : il y a 20 minutes, darkness a dit : /home/pi/printer_data/config/fichier variables.cfg Avec ce paramètre pour filename C'est une erreur de saisie de ma part. il y a 21 minutes, darkness a dit : il ne me trouve pas le fichier de variable alor que je l'ai non. Ton fichier est dans /home/loic et non dans /home/pi Lien vers le commentaire Partager sur d’autres sites More sharing options...
fran6p Posté(e) Janvier 25 Partager Posté(e) Janvier 25 Avec des informations partielles, il est franchement difficile d'apporter une aide correcte. Toute aide à propos de Klipper devrait ( doit ? ) s'accompagner des journaux (klippy.log / moonraker.log) ainsi on dispose de toutes les informations la plupart du temps (tout le temps ?) suffisantes. Lien vers le commentaire Partager sur d’autres sites More sharing options...
darkness Posté(e) Janvier 25 Auteur Partager Posté(e) Janvier 25 (modifié) Il y a 19 heures, fran6p a dit : Avec des informations partielles, il est franchement difficile d'apporter une aide correcte. Toute aide à propos de Klipper devrait ( doit ? ) s'accompagner des journaux (klippy.log / moonraker.log) ainsi on dispose de toutes les informations la plupart du temps (tout le temps ?) suffisantes. ok je te fais ca klipper Citation ===== Config file ===== [pause_resume] [gcode_macro _OBICO_LAYER_CHANGE] description = Run a scan across the current print area variable_first_layer_scan_retract_length = 6 variable_first_layer_scan_retract_speed = 15 variable_first_layer_scan_unretract_length = 6.5 variable_first_layer_scan_unretract_speed = 15 variable_first_layer_scan_resume_speed = 50 variable_first_layer_scan_enabled = True variable_first_layer_scan_stepover = 10 variable_first_layer_scan_speed = 10 variable_first_layer_scan_zhop = 4 variable_first_layer_scan_zhop_speed = 15 variable_verbose = False variable_current_layer = -1 variable_first_layer_scanning = False variable_wait = {'resume': "RESUME", 'absolute_coordinates': True, 'absolute_extrude': True, 'e': 0.0} gcode = {% set pause_macro = "PAUSE" if printer.configfile.settings['gcode_macro pause'] is not defined else printer.configfile.settings['gcode_macro pause'].rename_existing %} {% set resume_macro = "RESUME" if printer.configfile.settings['gcode_macro resume'] is not defined else printer.configfile.settings['gcode_macro resume'].rename_existing %} {% set current_layer_default = printer.print_stats.info.current_layer if printer.print_stats.info.current_layer is not none else -1 %} {% set current_layer = params.CURRENT_LAYER|default(current_layer_default)|int %} {% set polygon_points = printer.exclude_object.objects|map(attribute='polygon')|sum(start=[]) if printer.exclude_object is defined else [] %} {% set min_x = params.MINX|default(polygon_points|map(attribute=0)|min|default(printer.toolhead.axis_minimum.x))|float %} {% set min_y = params.MINY|default(polygon_points|map(attribute=1)|min|default(printer.toolhead.axis_minimum.y))|float %} {% set max_x = params.MAXX|default(polygon_points|map(attribute=0)|max|default(printer.toolhead.axis_maximum.x))|float %} {% set max_y = params.MAXY|default(polygon_points|map(attribute=1)|max|default(printer.toolhead.axis_maximum.y))|float %} {% set stepoverCount = ((max_y - min_y) / first_layer_scan_stepover|float)|round(method='ceil')|int %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Layer %d" % (current_layer)}' {% endif %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=current_layer VALUE={current_layer} {% if first_layer_scan_enabled and current_layer == 2 %} {% set wait_dic = {'resume' : resume_macro, 'absolute_coordinates': printer.gcode_move.absolute_coordinates, 'absolute_extrude' : printer.gcode_move.absolute_extrude, 'e' : printer.gcode_move.gcode_position.e} %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=wait VALUE="{wait_dic}" {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Prepair scanning" {% endif %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Scan Coordinates: Min:[%.3f:%.3f] Max:[%.3f:%.3f]" % (min_x,min_y,max_x,max_y)}' {% endif %} {% if printer[printer.toolhead.extruder].can_extrude %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Retract %.1fmm filament" % first_layer_scan_retract_length|abs}' {% endif %} M83 G0 E-{first_layer_scan_retract_length|abs} F{first_layer_scan_retract_speed|float * 60} {% endif %} G91 G0 Z{first_layer_scan_zhop|abs} F{first_layer_scan_zhop_speed|float * 60} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Call %s" % pause_macro}' {% endif %} {pause_macro} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Start scanning" {% endif %} UPDATE_DELAYED_GCODE ID=_WAIT_OBICO_LAYER_CHANGE DURATION=1.0 SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=first_layer_scanning VALUE=True G90 G0 X{min_x} Y{min_y} F{first_layer_scan_resume_speed|float * 60} {% for ystep in range(stepoverCount) %} G0 Y{min_y + first_layer_scan_stepover|float * ystep} F{first_layer_scan_speed|float * 60} G0 X{max_x if ystep % 2 == 0 else min_x} F{first_layer_scan_speed|float * 60} {% endfor %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=first_layer_scanning VALUE=False {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Finish scanning" {% endif %} {% endif %} [delayed_gcode _WAIT_OBICO_LAYER_CHANGE] gcode = {% set lc_macro = printer['gcode_macro _OBICO_LAYER_CHANGE'] %} {% if lc_macro.first_layer_scanning %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Waiting for first layer scan..." {% endif %} UPDATE_DELAYED_GCODE ID=_WAIT_OBICO_LAYER_CHANGE DURATION=1.0 {% else %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Resume print" {% endif %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Call %s VELOCITY=%.1f" % (lc_macro.wait.resume, lc_macro.first_layer_scan_resume_speed)}' {% endif %} {lc_macro.wait.resume} VELOCITY={lc_macro.first_layer_scan_resume_speed} G91 G0 Z-{lc_macro.first_layer_scan_zhop|abs} F{lc_macro.first_layer_scan_zhop_speed|float * 60} {% if printer[printer.toolhead.extruder].can_extrude %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Extrude %.1fmm filament" % lc_macro.first_layer_scan_unretract_length|abs}' {% endif %} M83 G0 E{lc_macro.first_layer_scan_unretract_length|abs} F{lc_macro.first_layer_scan_unretract_speed|float * 60} {% endif %} {% if lc_macro.wait.absolute_coordinates %} G90 {% endif %} {% if lc_macro.wait.absolute_extrude %} M82 G92 E{lc_macro.wait.e} {% endif %} {% endif %} [gcode_macro Z_OFFSET] description = Mesuser le Z-Offset gcode = G28 PROBE_CALIBRATE [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(0)|float %} M117 Heating... M140 S{BED_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_CALIBRATE M190 S{BED_TEMP} G1 Z5.0 F3000 G1 X0.1 Y20 Z0.3 F5000.0 M109 S{EXTRUDER_TEMP} G92 E0 G1 Z1.0 F3000 G1 X2 Y20 Z0.3 F5000.0 G1 X2 Y200.0 Z0.3 F1500.0 E15 G1 X2 Y200.0 Z0.4 F5000.0 G1 X2 Y20 Z0.4 F1500.0 E30 G92 E0 G1 Z1.0 F3000 [gcode_macro END_PRINT] gcode = M104 T0 S0 M104 T1 S0 M140 S0 G92 E1 G1 E-1 F300 G28 X0 Y0 M84 [gcode_macro G29] gcode = BED_MESH_CALIBRATE [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE [gcode_macro PAUSE] rename_existing = BASE_PAUSE gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK M104 S0 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro RESUME] rename_existing = BASE_RESUME variable_zhop = 0 variable_etemp = 0 gcode = {% set e = params.E|default(2.5)|int %} {% if printer['pause_resume'].is_paused|int == 1 %} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} {% if etemp > 0 %} M109 S{etemp|int} {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 G91 M83 {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 Z{zhop * -1} E{e} F900 {% else %} G1 Z{zhop * -1} F900 {% endif %} RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60 BASE_RESUME {% endif %} [gcode_macro M600] gcode = CHANGE_FILAMENT [gcode_macro M601] gcode = CHANGE_FILAMENT [gcode_macro CHANGE_FILAMENT] gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK ,M104 S0 G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro UNLOAD_FILAMENT] description = Retrait du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=unload_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Retrait du filament..." G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 RESTORE_GCODE_STATE NAME=unload_state {% endif %} [gcode_macro LOAD_FILAMENT] description = Chargement du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=load_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Chargement du filament..." G91 G0 E70 F300 G0 E20 F200 M400 RESTORE_GCODE_STATE NAME=load_state {% endif %} [gcode_macro CALIBRATION_PID_BED_60] description = PID Plateau gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID du plateau en cours..." PID_CALIBRATE HEATER=heater_bed TARGET={params.TEMP|default(60)} G28 SAVE_CONFIG {% endif %} [gcode_macro CALIBRATION_PID_HOTEND_200] description = PID Hotend gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID de la buse en cours..." PID_CALIBRATE HEATER=extruder TARGET={params.TEMP|default(200)} G28 SAVE_CONFIG {% endif %} [gcode_macro SAUVEGARDER] description = Sauvegarder la configuration gcode = SAVE_CONFIG [gcode_macro M201] description = Sets maximum accelleration. Usage: M201 [X<accel>] [Y<accel>] gcode = {% if 'X' in params or 'Y' in params %} {% set accel = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel * 0.5} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M203] description = Sets maximum velocity Usage: M203 [X<speed>] [Y<speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT VELOCITY={speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M204] description = Sets maximum accelleration. Usage: M204 [S<accel>] [P<accel> T<accel>] rename_existing = M204.1 gcode = {% set f = params.F|default(0.5)|float %} {% if 'S' in params %} {% set s = params.S|float %} SET_VELOCITY_LIMIT ACCEL={s} ACCEL_TO_DECEL={ s * f } {% else %} {% if 'P' in params %} {% set p = params.P|float %} {% if 'T' in params %} {% set t = params.T|float %} {% if p < t %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% else %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% else %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% endif %} {% elif 'T' in params %} {% set t = params.T|float %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% endif %} [gcode_macro M205] description = Sets square corner velocity Usage: M205 [X<corner_speed>] [Y<corner_speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set corner_speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={corner_speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro ADXL_TEST] description = ADXL Test gcode = ACCELEROMETER_QUERY [gcode_macro ADXL_NOISE] description = Measure Accelerometer Noise gcode = MEASURE_AXES_NOISE [gcode_macro ADXL_AXE_X] description = Measure X axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=X [gcode_macro ADXL_AXE_Y] description = Measure Y axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=Y [gcode_macro SECURITY_OFFSET] description = Apply a 2mm Safety Offset gcode = SET_GCODE_OFFSET Z=+2 RESPOND MSG="Safety Offset applied!" [mcu] serial = /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 restart_method = command [stepper_x] step_pin = PE3 dir_pin = PE2 enable_pin = !PE4 microsteps = 16 rotation_distance = 40 endstop_pin = !PA15 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_y] step_pin = PE0 dir_pin = !PB9 enable_pin = !PE1 microsteps = 16 rotation_distance = 40 endstop_pin = !PA12 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_z] step_pin = PB5 dir_pin = !PB4 enable_pin = !PB8 microsteps = 16 rotation_distance = 8 endstop_pin = !PA11 position_endstop = 0 position_min = -5 position_max = 250 [extruder] step_pin = PD6 dir_pin = !PD3 enable_pin = !PB3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.157 min_extrude_temp = 185 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = PC3 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC1 min_temp = 5 max_temp = 260 max_extrude_only_distance = 950.0 max_extrude_only_velocity = 200 max_extrude_only_accel = 2750 max_extrude_cross_section = 5 pressure_advance = 0.065 pressure_advance_smooth_time = 0.040 control = pid pid_kp = 22.501 pid_ki = 0.843 pid_kd = 150.192 [extruder_stepper belted_extruder] extruder = extruder step_pin = PA6 dir_pin = !PA1 enable_pin = !PA3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.952 [heater_bed] heater_pin = PA0 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC0 min_temp = 5 max_temp = 100 control = pid pid_kp = 62.805 pid_ki = 1.055 pid_kd = 935.009 [fan] pin = PB1 [printer] kinematics = cartesian max_velocity = 300 max_accel = 2400 max_accel_to_decel = 1200 square_corner_velocity = 5 max_z_velocity = 10 max_z_accel = 100 [input_shaper] shaper_freq_x = 101.8 shaper_type_x = mzv shaper_freq_y = 38.4 shaper_type_y = mzv [safe_z_home] home_xy_position = 115,115 speed = 100.0 z_hop = 10.0 z_hop_speed = 10.0 [firmware_retraction] retract_length = 8 retract_speed = 35 unretract_extra_length = 0 unretract_speed = 25 [filament_switch_sensor E0] pause_on_runout = True switch_pin = PA4 [filament_switch_sensor E1] pause_on_runout = True switch_pin = PE6 [temperature_sensor PiTemp] sensor_type = temperature_host sensor_path = /sys/class/thermal/thermal_zone0/temp [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 90 [bed_mesh] speed = 80 horizontal_move_z = 8 mesh_min = 50,50 mesh_max = 180, 210 probe_count = 5,5 fade_start = 1.0 fade_end = 10 mesh_pps = 2,2 [virtual_sdcard] path = /home/pi/printer_data/gcodes/ [display_status] [save_variables] filename = /home/pi/printer_data/config/variables.cfg [bed_screws] screw1 = 20,20 screw1_name = Front left screw screw2 = 20,220 screw2_name = Rear left screw screw3 = 220,220 screw3_name = Rear right screw screw4 = 220,20 screw4_name = Front right screw [bed_mesh default] version = 1 points = -0.145000, 0.077500, 0.020000, -0.026250, -0.007500 -0.085000, 0.067500, 0.051250, -0.012500, -0.038750 -0.126250, 0.025000, 0.005000, -0.035000, -0.057500 -0.183750, -0.048750, -0.032500, -0.078750, -0.085000 -0.321250, -0.142500, -0.172500, -0.182500, -0.170000 x_count = 5 y_count = 5 mesh_x_pps = 2 mesh_y_pps = 2 algo = lagrange tension = 0.2 min_x = 50.00000000000001 max_x = 180.0 min_y = 50.01 max_y = 210.0 ======================= Args: ['/home/loic/klipper/klippy/klippy.py', '/home/loic/printer_data/config/printer.cfg', '-I', '/home/loic/printer_data/comms/klippy.serial', '-l', '/home/loic/printer_data/logs/klippy.log', '-a', '/home/loic/printer_data/comms/klippy.sock'] Git version: 'v0.12.0-93-g43a9685c' Branch: master Remote: origin Tracked URL: https://github.com/Klipper3d/klipper CPU: 4 core ? Python: '3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0]' =============== Log rollover at Thu Jan 25 19:05:52 2024 =============== Unable to issue reset command on MCU 'mcu' webhooks client 547867807824: Disconnected Restarting printer Start printer at Thu Jan 25 19:05:53 2024 (1706205953.0 206.7) ===== Config file ===== [pause_resume] [gcode_macro _OBICO_LAYER_CHANGE] description = Run a scan across the current print area variable_first_layer_scan_retract_length = 6 variable_first_layer_scan_retract_speed = 15 variable_first_layer_scan_unretract_length = 6.5 variable_first_layer_scan_unretract_speed = 15 variable_first_layer_scan_resume_speed = 50 variable_first_layer_scan_enabled = True variable_first_layer_scan_stepover = 10 variable_first_layer_scan_speed = 10 variable_first_layer_scan_zhop = 4 variable_first_layer_scan_zhop_speed = 15 variable_verbose = False variable_current_layer = -1 variable_first_layer_scanning = False variable_wait = {'resume': "RESUME", 'absolute_coordinates': True, 'absolute_extrude': True, 'e': 0.0} gcode = {% set pause_macro = "PAUSE" if printer.configfile.settings['gcode_macro pause'] is not defined else printer.configfile.settings['gcode_macro pause'].rename_existing %} {% set resume_macro = "RESUME" if printer.configfile.settings['gcode_macro resume'] is not defined else printer.configfile.settings['gcode_macro resume'].rename_existing %} {% set current_layer_default = printer.print_stats.info.current_layer if printer.print_stats.info.current_layer is not none else -1 %} {% set current_layer = params.CURRENT_LAYER|default(current_layer_default)|int %} {% set polygon_points = printer.exclude_object.objects|map(attribute='polygon')|sum(start=[]) if printer.exclude_object is defined else [] %} {% set min_x = params.MINX|default(polygon_points|map(attribute=0)|min|default(printer.toolhead.axis_minimum.x))|float %} {% set min_y = params.MINY|default(polygon_points|map(attribute=1)|min|default(printer.toolhead.axis_minimum.y))|float %} {% set max_x = params.MAXX|default(polygon_points|map(attribute=0)|max|default(printer.toolhead.axis_maximum.x))|float %} {% set max_y = params.MAXY|default(polygon_points|map(attribute=1)|max|default(printer.toolhead.axis_maximum.y))|float %} {% set stepoverCount = ((max_y - min_y) / first_layer_scan_stepover|float)|round(method='ceil')|int %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Layer %d" % (current_layer)}' {% endif %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=current_layer VALUE={current_layer} {% if first_layer_scan_enabled and current_layer == 2 %} {% set wait_dic = {'resume' : resume_macro, 'absolute_coordinates': printer.gcode_move.absolute_coordinates, 'absolute_extrude' : printer.gcode_move.absolute_extrude, 'e' : printer.gcode_move.gcode_position.e} %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=wait VALUE="{wait_dic}" {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Prepair scanning" {% endif %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Scan Coordinates: Min:[%.3f:%.3f] Max:[%.3f:%.3f]" % (min_x,min_y,max_x,max_y)}' {% endif %} {% if printer[printer.toolhead.extruder].can_extrude %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Retract %.1fmm filament" % first_layer_scan_retract_length|abs}' {% endif %} M83 G0 E-{first_layer_scan_retract_length|abs} F{first_layer_scan_retract_speed|float * 60} {% endif %} G91 G0 Z{first_layer_scan_zhop|abs} F{first_layer_scan_zhop_speed|float * 60} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Call %s" % pause_macro}' {% endif %} {pause_macro} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Start scanning" {% endif %} UPDATE_DELAYED_GCODE ID=_WAIT_OBICO_LAYER_CHANGE DURATION=1.0 SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=first_layer_scanning VALUE=True G90 G0 X{min_x} Y{min_y} F{first_layer_scan_resume_speed|float * 60} {% for ystep in range(stepoverCount) %} G0 Y{min_y + first_layer_scan_stepover|float * ystep} F{first_layer_scan_speed|float * 60} G0 X{max_x if ystep % 2 == 0 else min_x} F{first_layer_scan_speed|float * 60} {% endfor %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=first_layer_scanning VALUE=False {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Finish scanning" {% endif %} {% endif %} [delayed_gcode _WAIT_OBICO_LAYER_CHANGE] gcode = {% set lc_macro = printer['gcode_macro _OBICO_LAYER_CHANGE'] %} {% if lc_macro.first_layer_scanning %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Waiting for first layer scan..." {% endif %} UPDATE_DELAYED_GCODE ID=_WAIT_OBICO_LAYER_CHANGE DURATION=1.0 {% else %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Resume print" {% endif %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Call %s VELOCITY=%.1f" % (lc_macro.wait.resume, lc_macro.first_layer_scan_resume_speed)}' {% endif %} {lc_macro.wait.resume} VELOCITY={lc_macro.first_layer_scan_resume_speed} G91 G0 Z-{lc_macro.first_layer_scan_zhop|abs} F{lc_macro.first_layer_scan_zhop_speed|float * 60} {% if printer[printer.toolhead.extruder].can_extrude %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Extrude %.1fmm filament" % lc_macro.first_layer_scan_unretract_length|abs}' {% endif %} M83 G0 E{lc_macro.first_layer_scan_unretract_length|abs} F{lc_macro.first_layer_scan_unretract_speed|float * 60} {% endif %} {% if lc_macro.wait.absolute_coordinates %} G90 {% endif %} {% if lc_macro.wait.absolute_extrude %} M82 G92 E{lc_macro.wait.e} {% endif %} {% endif %} [gcode_macro Z_OFFSET] description = Mesuser le Z-Offset gcode = G28 PROBE_CALIBRATE [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(0)|float %} M117 Heating... M140 S{BED_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_CALIBRATE M190 S{BED_TEMP} G1 Z5.0 F3000 G1 X0.1 Y20 Z0.3 F5000.0 M109 S{EXTRUDER_TEMP} G92 E0 G1 Z1.0 F3000 G1 X2 Y20 Z0.3 F5000.0 G1 X2 Y200.0 Z0.3 F1500.0 E15 G1 X2 Y200.0 Z0.4 F5000.0 G1 X2 Y20 Z0.4 F1500.0 E30 G92 E0 G1 Z1.0 F3000 [gcode_macro END_PRINT] gcode = M104 T0 S0 M104 T1 S0 M140 S0 G92 E1 G1 E-1 F300 G28 X0 Y0 M84 [gcode_macro G29] gcode = BED_MESH_CALIBRATE [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE [gcode_macro PAUSE] rename_existing = BASE_PAUSE gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK M104 S0 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro RESUME] rename_existing = BASE_RESUME variable_zhop = 0 variable_etemp = 0 gcode = {% set e = params.E|default(2.5)|int %} {% if printer['pause_resume'].is_paused|int == 1 %} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} {% if etemp > 0 %} M109 S{etemp|int} {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 G91 M83 {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 Z{zhop * -1} E{e} F900 {% else %} G1 Z{zhop * -1} F900 {% endif %} RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60 BASE_RESUME {% endif %} [gcode_macro M600] gcode = CHANGE_FILAMENT [gcode_macro M601] gcode = CHANGE_FILAMENT [gcode_macro CHANGE_FILAMENT] gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK ,M104 S0 G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro UNLOAD_FILAMENT] description = Retrait du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=unload_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Retrait du filament..." G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 RESTORE_GCODE_STATE NAME=unload_state {% endif %} [gcode_macro LOAD_FILAMENT] description = Chargement du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=load_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Chargement du filament..." G91 G0 E70 F300 G0 E20 F200 M400 RESTORE_GCODE_STATE NAME=load_state {% endif %} [gcode_macro CALIBRATION_PID_BED_60] description = PID Plateau gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID du plateau en cours..." PID_CALIBRATE HEATER=heater_bed TARGET={params.TEMP|default(60)} G28 SAVE_CONFIG {% endif %} [gcode_macro CALIBRATION_PID_HOTEND_200] description = PID Hotend gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID de la buse en cours..." PID_CALIBRATE HEATER=extruder TARGET={params.TEMP|default(200)} G28 SAVE_CONFIG {% endif %} [gcode_macro SAUVEGARDER] description = Sauvegarder la configuration gcode = SAVE_CONFIG [gcode_macro M201] description = Sets maximum accelleration. Usage: M201 [X<accel>] [Y<accel>] gcode = {% if 'X' in params or 'Y' in params %} {% set accel = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel * 0.5} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M203] description = Sets maximum velocity Usage: M203 [X<speed>] [Y<speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT VELOCITY={speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M204] description = Sets maximum accelleration. Usage: M204 [S<accel>] [P<accel> T<accel>] rename_existing = M204.1 gcode = {% set f = params.F|default(0.5)|float %} {% if 'S' in params %} {% set s = params.S|float %} SET_VELOCITY_LIMIT ACCEL={s} ACCEL_TO_DECEL={ s * f } {% else %} {% if 'P' in params %} {% set p = params.P|float %} {% if 'T' in params %} {% set t = params.T|float %} {% if p < t %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% else %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% else %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% endif %} {% elif 'T' in params %} {% set t = params.T|float %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% endif %} [gcode_macro M205] description = Sets square corner velocity Usage: M205 [X<corner_speed>] [Y<corner_speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set corner_speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={corner_speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro ADXL_TEST] description = ADXL Test gcode = ACCELEROMETER_QUERY [gcode_macro ADXL_NOISE] description = Measure Accelerometer Noise gcode = MEASURE_AXES_NOISE [gcode_macro ADXL_AXE_X] description = Measure X axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=X [gcode_macro ADXL_AXE_Y] description = Measure Y axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=Y [gcode_macro SECURITY_OFFSET] description = Apply a 2mm Safety Offset gcode = SET_GCODE_OFFSET Z=+2 RESPOND MSG="Safety Offset applied!" [mcu] serial = /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 restart_method = command [stepper_x] step_pin = PE3 dir_pin = PE2 enable_pin = !PE4 microsteps = 16 rotation_distance = 40 endstop_pin = !PA15 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_y] step_pin = PE0 dir_pin = !PB9 enable_pin = !PE1 microsteps = 16 rotation_distance = 40 endstop_pin = !PA12 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_z] step_pin = PB5 dir_pin = !PB4 enable_pin = !PB8 microsteps = 16 rotation_distance = 8 endstop_pin = !PA11 position_endstop = 0 position_min = -5 position_max = 250 [extruder] step_pin = PD6 dir_pin = !PD3 enable_pin = !PB3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.157 min_extrude_temp = 185 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = PC3 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC1 min_temp = 5 max_temp = 260 max_extrude_only_distance = 950.0 max_extrude_only_velocity = 200 max_extrude_only_accel = 2750 max_extrude_cross_section = 5 pressure_advance = 0.065 pressure_advance_smooth_time = 0.040 control = pid pid_kp = 22.501 pid_ki = 0.843 pid_kd = 150.192 [extruder_stepper belted_extruder] extruder = extruder step_pin = PA6 dir_pin = !PA1 enable_pin = !PA3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.952 [heater_bed] heater_pin = PA0 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC0 min_temp = 5 max_temp = 100 control = pid pid_kp = 62.805 pid_ki = 1.055 pid_kd = 935.009 [fan] pin = PB1 [printer] kinematics = cartesian max_velocity = 300 max_accel = 2400 max_accel_to_decel = 1200 square_corner_velocity = 5 max_z_velocity = 10 max_z_accel = 100 [input_shaper] shaper_freq_x = 101.8 shaper_type_x = mzv shaper_freq_y = 38.4 shaper_type_y = mzv [safe_z_home] home_xy_position = 115,115 speed = 100.0 z_hop = 10.0 z_hop_speed = 10.0 [firmware_retraction] retract_length = 8 retract_speed = 35 unretract_extra_length = 0 unretract_speed = 25 [filament_switch_sensor E0] pause_on_runout = True switch_pin = PA4 [filament_switch_sensor E1] pause_on_runout = True switch_pin = PE6 [temperature_sensor PiTemp] sensor_type = temperature_host sensor_path = /sys/class/thermal/thermal_zone0/temp [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 90 [bed_mesh] speed = 80 horizontal_move_z = 8 mesh_min = 50,50 mesh_max = 180, 210 probe_count = 5,5 fade_start = 1.0 fade_end = 10 mesh_pps = 2,2 [virtual_sdcard] path = /home/pi/printer_data/gcodes/ [display_status] [save_variables] filename = /home/pi/printer_data/config/variables.cfg [bed_screws] screw1 = 20,20 screw1_name = Front left screw screw2 = 20,220 screw2_name = Rear left screw screw3 = 220,220 screw3_name = Rear right screw screw4 = 220,20 screw4_name = Front right screw [bed_mesh default] version = 1 points = -0.145000, 0.077500, 0.020000, -0.026250, -0.007500 -0.085000, 0.067500, 0.051250, -0.012500, -0.038750 -0.126250, 0.025000, 0.005000, -0.035000, -0.057500 -0.183750, -0.048750, -0.032500, -0.078750, -0.085000 -0.321250, -0.142500, -0.172500, -0.182500, -0.170000 x_count = 5 y_count = 5 mesh_x_pps = 2 mesh_y_pps = 2 algo = lagrange tension = 0.2 min_x = 50.00000000000001 max_x = 180.0 min_y = 50.01 max_y = 210.0 ======================= Unhandled exception during connect Traceback (most recent call last): File "/home/loic/klipper/klippy/klippy.py", line 175, in _connect self._read_config() File "/home/loic/klipper/klippy/klippy.py", line 141, in _read_config self.load_object(config, section_config.get_name(), None) File "/home/loic/klipper/klippy/klippy.py", line 130, in load_object self.objects[section] = init_func(config.getsection(section)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 64, in load_config return SaveVariables(config) ^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 16, in __init__ open(self.filename, "w").close() ^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' webhooks client 547847652880: New connection webhooks client 547847652880: Client info {'program': 'Moonraker', 'version': 'v0.8.0-286-gf44fc4b'} Unable to issue reset command on MCU 'mcu' webhooks client 547847652880: Disconnected Restarting printer Start printer at Thu Jan 25 19:14:51 2024 (1706206491.9 745.6) Config error Traceback (most recent call last): File "/home/loic/klipper/klippy/klippy.py", line 175, in _connect self._read_config() File "/home/loic/klipper/klippy/klippy.py", line 134, in _read_config config = pconfig.read_main_config() ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/configfile.py", line 284, in read_main_config regular_config = self._build_config_wrapper(regular_data, filename) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/configfile.py", line 271, in _build_config_wrapper self._parse_config(data, filename, fileconfig, set()) File "/home/loic/klipper/klippy/configfile.py", line 259, in _parse_config self._resolve_include(filename, include_spec, fileconfig, File "/home/loic/klipper/klippy/configfile.py", line 232, in _resolve_include raise error("Include file '%s' does not exist" % (include_glob,)) configparser.Error: Include file '/home/loic/printer_data/config/varables.cfg' does not exist webhooks client 547839647504: New connection webhooks client 547839647504: Client info {'program': 'Moonraker', 'version': 'v0.8.0-286-gf44fc4b'} webhooks client 547839647504: Disconnected Restarting printer Start printer at Thu Jan 25 19:15:40 2024 (1706206540.3 794.0) ===== Config file ===== [pause_resume] [gcode_macro _OBICO_LAYER_CHANGE] description = Run a scan across the current print area variable_first_layer_scan_retract_length = 6 variable_first_layer_scan_retract_speed = 15 variable_first_layer_scan_unretract_length = 6.5 variable_first_layer_scan_unretract_speed = 15 variable_first_layer_scan_resume_speed = 50 variable_first_layer_scan_enabled = True variable_first_layer_scan_stepover = 10 variable_first_layer_scan_speed = 10 variable_first_layer_scan_zhop = 4 variable_first_layer_scan_zhop_speed = 15 variable_verbose = False variable_current_layer = -1 variable_first_layer_scanning = False variable_wait = {'resume': "RESUME", 'absolute_coordinates': True, 'absolute_extrude': True, 'e': 0.0} gcode = {% set pause_macro = "PAUSE" if printer.configfile.settings['gcode_macro pause'] is not defined else printer.configfile.settings['gcode_macro pause'].rename_existing %} {% set resume_macro = "RESUME" if printer.configfile.settings['gcode_macro resume'] is not defined else printer.configfile.settings['gcode_macro resume'].rename_existing %} {% set current_layer_default = printer.print_stats.info.current_layer if printer.print_stats.info.current_layer is not none else -1 %} {% set current_layer = params.CURRENT_LAYER|default(current_layer_default)|int %} {% set polygon_points = printer.exclude_object.objects|map(attribute='polygon')|sum(start=[]) if printer.exclude_object is defined else [] %} {% set min_x = params.MINX|default(polygon_points|map(attribute=0)|min|default(printer.toolhead.axis_minimum.x))|float %} {% set min_y = params.MINY|default(polygon_points|map(attribute=1)|min|default(printer.toolhead.axis_minimum.y))|float %} {% set max_x = params.MAXX|default(polygon_points|map(attribute=0)|max|default(printer.toolhead.axis_maximum.x))|float %} {% set max_y = params.MAXY|default(polygon_points|map(attribute=1)|max|default(printer.toolhead.axis_maximum.y))|float %} {% set stepoverCount = ((max_y - min_y) / first_layer_scan_stepover|float)|round(method='ceil')|int %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Layer %d" % (current_layer)}' {% endif %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=current_layer VALUE={current_layer} {% if first_layer_scan_enabled and current_layer == 2 %} {% set wait_dic = {'resume' : resume_macro, 'absolute_coordinates': printer.gcode_move.absolute_coordinates, 'absolute_extrude' : printer.gcode_move.absolute_extrude, 'e' : printer.gcode_move.gcode_position.e} %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=wait VALUE="{wait_dic}" {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Prepair scanning" {% endif %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Scan Coordinates: Min:[%.3f:%.3f] Max:[%.3f:%.3f]" % (min_x,min_y,max_x,max_y)}' {% endif %} {% if printer[printer.toolhead.extruder].can_extrude %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Retract %.1fmm filament" % first_layer_scan_retract_length|abs}' {% endif %} M83 G0 E-{first_layer_scan_retract_length|abs} F{first_layer_scan_retract_speed|float * 60} {% endif %} G91 G0 Z{first_layer_scan_zhop|abs} F{first_layer_scan_zhop_speed|float * 60} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Call %s" % pause_macro}' {% endif %} {pause_macro} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Start scanning" {% endif %} UPDATE_DELAYED_GCODE ID=_WAIT_OBICO_LAYER_CHANGE DURATION=1.0 SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=first_layer_scanning VALUE=True G90 G0 X{min_x} Y{min_y} F{first_layer_scan_resume_speed|float * 60} {% for ystep in range(stepoverCount) %} G0 Y{min_y + first_layer_scan_stepover|float * ystep} F{first_layer_scan_speed|float * 60} G0 X{max_x if ystep % 2 == 0 else min_x} F{first_layer_scan_speed|float * 60} {% endfor %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=first_layer_scanning VALUE=False {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Finish scanning" {% endif %} {% endif %} [delayed_gcode _WAIT_OBICO_LAYER_CHANGE] gcode = {% set lc_macro = printer['gcode_macro _OBICO_LAYER_CHANGE'] %} {% if lc_macro.first_layer_scanning %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Waiting for first layer scan..." {% endif %} UPDATE_DELAYED_GCODE ID=_WAIT_OBICO_LAYER_CHANGE DURATION=1.0 {% else %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Resume print" {% endif %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Call %s VELOCITY=%.1f" % (lc_macro.wait.resume, lc_macro.first_layer_scan_resume_speed)}' {% endif %} {lc_macro.wait.resume} VELOCITY={lc_macro.first_layer_scan_resume_speed} G91 G0 Z-{lc_macro.first_layer_scan_zhop|abs} F{lc_macro.first_layer_scan_zhop_speed|float * 60} {% if printer[printer.toolhead.extruder].can_extrude %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Extrude %.1fmm filament" % lc_macro.first_layer_scan_unretract_length|abs}' {% endif %} M83 G0 E{lc_macro.first_layer_scan_unretract_length|abs} F{lc_macro.first_layer_scan_unretract_speed|float * 60} {% endif %} {% if lc_macro.wait.absolute_coordinates %} G90 {% endif %} {% if lc_macro.wait.absolute_extrude %} M82 G92 E{lc_macro.wait.e} {% endif %} {% endif %} [Variables] active_tool = 'T0' [gcode_macro Z_OFFSET] description = Mesuser le Z-Offset gcode = G28 PROBE_CALIBRATE [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(0)|float %} M117 Heating... M140 S{BED_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_CALIBRATE M190 S{BED_TEMP} G1 Z5.0 F3000 G1 X0.1 Y20 Z0.3 F5000.0 M109 S{EXTRUDER_TEMP} G92 E0 G1 Z1.0 F3000 G1 X2 Y20 Z0.3 F5000.0 G1 X2 Y200.0 Z0.3 F1500.0 E15 G1 X2 Y200.0 Z0.4 F5000.0 G1 X2 Y20 Z0.4 F1500.0 E30 G92 E0 G1 Z1.0 F3000 [gcode_macro END_PRINT] gcode = M104 T0 S0 M104 T1 S0 M140 S0 G92 E1 G1 E-1 F300 G28 X0 Y0 M84 [gcode_macro G29] gcode = BED_MESH_CALIBRATE [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE [gcode_macro PAUSE] rename_existing = BASE_PAUSE gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK M104 S0 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro RESUME] rename_existing = BASE_RESUME variable_zhop = 0 variable_etemp = 0 gcode = {% set e = params.E|default(2.5)|int %} {% if printer['pause_resume'].is_paused|int == 1 %} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} {% if etemp > 0 %} M109 S{etemp|int} {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 G91 M83 {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 Z{zhop * -1} E{e} F900 {% else %} G1 Z{zhop * -1} F900 {% endif %} RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60 BASE_RESUME {% endif %} [gcode_macro M600] gcode = CHANGE_FILAMENT [gcode_macro M601] gcode = CHANGE_FILAMENT [gcode_macro CHANGE_FILAMENT] gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK ,M104 S0 G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro UNLOAD_FILAMENT] description = Retrait du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=unload_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Retrait du filament..." G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 RESTORE_GCODE_STATE NAME=unload_state {% endif %} [gcode_macro LOAD_FILAMENT] description = Chargement du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=load_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Chargement du filament..." G91 G0 E70 F300 G0 E20 F200 M400 RESTORE_GCODE_STATE NAME=load_state {% endif %} [gcode_macro CALIBRATION_PID_BED_60] description = PID Plateau gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID du plateau en cours..." PID_CALIBRATE HEATER=heater_bed TARGET={params.TEMP|default(60)} G28 SAVE_CONFIG {% endif %} [gcode_macro CALIBRATION_PID_HOTEND_200] description = PID Hotend gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID de la buse en cours..." PID_CALIBRATE HEATER=extruder TARGET={params.TEMP|default(200)} G28 SAVE_CONFIG {% endif %} [gcode_macro SAUVEGARDER] description = Sauvegarder la configuration gcode = SAVE_CONFIG [gcode_macro M201] description = Sets maximum accelleration. Usage: M201 [X<accel>] [Y<accel>] gcode = {% if 'X' in params or 'Y' in params %} {% set accel = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel * 0.5} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M203] description = Sets maximum velocity Usage: M203 [X<speed>] [Y<speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT VELOCITY={speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M204] description = Sets maximum accelleration. Usage: M204 [S<accel>] [P<accel> T<accel>] rename_existing = M204.1 gcode = {% set f = params.F|default(0.5)|float %} {% if 'S' in params %} {% set s = params.S|float %} SET_VELOCITY_LIMIT ACCEL={s} ACCEL_TO_DECEL={ s * f } {% else %} {% if 'P' in params %} {% set p = params.P|float %} {% if 'T' in params %} {% set t = params.T|float %} {% if p < t %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% else %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% else %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% endif %} {% elif 'T' in params %} {% set t = params.T|float %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% endif %} [gcode_macro M205] description = Sets square corner velocity Usage: M205 [X<corner_speed>] [Y<corner_speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set corner_speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={corner_speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro ADXL_TEST] description = ADXL Test gcode = ACCELEROMETER_QUERY [gcode_macro ADXL_NOISE] description = Measure Accelerometer Noise gcode = MEASURE_AXES_NOISE [gcode_macro ADXL_AXE_X] description = Measure X axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=X [gcode_macro ADXL_AXE_Y] description = Measure Y axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=Y [gcode_macro SECURITY_OFFSET] description = Apply a 2mm Safety Offset gcode = SET_GCODE_OFFSET Z=+2 RESPOND MSG="Safety Offset applied!" [mcu] serial = /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 restart_method = command [stepper_x] step_pin = PE3 dir_pin = PE2 enable_pin = !PE4 microsteps = 16 rotation_distance = 40 endstop_pin = !PA15 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_y] step_pin = PE0 dir_pin = !PB9 enable_pin = !PE1 microsteps = 16 rotation_distance = 40 endstop_pin = !PA12 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_z] step_pin = PB5 dir_pin = !PB4 enable_pin = !PB8 microsteps = 16 rotation_distance = 8 endstop_pin = !PA11 position_endstop = 0 position_min = -5 position_max = 250 [extruder] step_pin = PD6 dir_pin = !PD3 enable_pin = !PB3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.157 min_extrude_temp = 185 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = PC3 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC1 min_temp = 5 max_temp = 260 max_extrude_only_distance = 950.0 max_extrude_only_velocity = 200 max_extrude_only_accel = 2750 max_extrude_cross_section = 5 pressure_advance = 0.065 pressure_advance_smooth_time = 0.040 control = pid pid_kp = 22.501 pid_ki = 0.843 pid_kd = 150.192 [extruder_stepper belted_extruder] extruder = extruder step_pin = PA6 dir_pin = !PA1 enable_pin = !PA3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.952 [heater_bed] heater_pin = PA0 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC0 min_temp = 5 max_temp = 100 control = pid pid_kp = 62.805 pid_ki = 1.055 pid_kd = 935.009 [fan] pin = PB1 [printer] kinematics = cartesian max_velocity = 300 max_accel = 2400 max_accel_to_decel = 1200 square_corner_velocity = 5 max_z_velocity = 10 max_z_accel = 100 [input_shaper] shaper_freq_x = 101.8 shaper_type_x = mzv shaper_freq_y = 38.4 shaper_type_y = mzv [safe_z_home] home_xy_position = 115,115 speed = 100.0 z_hop = 10.0 z_hop_speed = 10.0 [firmware_retraction] retract_length = 8 retract_speed = 35 unretract_extra_length = 0 unretract_speed = 25 [filament_switch_sensor E0] pause_on_runout = True switch_pin = PA4 [filament_switch_sensor E1] pause_on_runout = True switch_pin = PE6 [temperature_sensor PiTemp] sensor_type = temperature_host sensor_path = /sys/class/thermal/thermal_zone0/temp [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 90 [bed_mesh] speed = 80 horizontal_move_z = 8 mesh_min = 50,50 mesh_max = 180, 210 probe_count = 5,5 fade_start = 1.0 fade_end = 10 mesh_pps = 2,2 [virtual_sdcard] path = /home/pi/printer_data/gcodes/ [display_status] [save_variables] filename = /home/pi/printer_data/config/variables.cfg [bed_screws] screw1 = 20,20 screw1_name = Front left screw screw2 = 20,220 screw2_name = Rear left screw screw3 = 220,220 screw3_name = Rear right screw screw4 = 220,20 screw4_name = Front right screw [bed_mesh default] version = 1 points = -0.145000, 0.077500, 0.020000, -0.026250, -0.007500 -0.085000, 0.067500, 0.051250, -0.012500, -0.038750 -0.126250, 0.025000, 0.005000, -0.035000, -0.057500 -0.183750, -0.048750, -0.032500, -0.078750, -0.085000 -0.321250, -0.142500, -0.172500, -0.182500, -0.170000 x_count = 5 y_count = 5 mesh_x_pps = 2 mesh_y_pps = 2 algo = lagrange tension = 0.2 min_x = 50.00000000000001 max_x = 180.0 min_y = 50.01 max_y = 210.0 ======================= Unhandled exception during connect Traceback (most recent call last): File "/home/loic/klipper/klippy/klippy.py", line 175, in _connect self._read_config() File "/home/loic/klipper/klippy/klippy.py", line 141, in _read_config self.load_object(config, section_config.get_name(), None) File "/home/loic/klipper/klippy/klippy.py", line 130, in load_object self.objects[section] = init_func(config.getsection(section)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 64, in load_config return SaveVariables(config) ^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 16, in __init__ open(self.filename, "w").close() ^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' webhooks client 547839947024: New connection webhooks client 547839947024: Client info {'program': 'Moonraker', 'version': 'v0.8.0-286-gf44fc4b'} Unable to issue reset command on MCU 'mcu' webhooks client 547839947024: Disconnected Restarting printer Start printer at Thu Jan 25 19:19:16 2024 (1706206757.0 1010.7) ===== Config file ===== [pause_resume] [gcode_macro _OBICO_LAYER_CHANGE] description = Run a scan across the current print area variable_first_layer_scan_retract_length = 6 variable_first_layer_scan_retract_speed = 15 variable_first_layer_scan_unretract_length = 6.5 variable_first_layer_scan_unretract_speed = 15 variable_first_layer_scan_resume_speed = 50 variable_first_layer_scan_enabled = True variable_first_layer_scan_stepover = 10 variable_first_layer_scan_speed = 10 variable_first_layer_scan_zhop = 4 variable_first_layer_scan_zhop_speed = 15 variable_verbose = False variable_current_layer = -1 variable_first_layer_scanning = False variable_wait = {'resume': "RESUME", 'absolute_coordinates': True, 'absolute_extrude': True, 'e': 0.0} gcode = {% set pause_macro = "PAUSE" if printer.configfile.settings['gcode_macro pause'] is not defined else printer.configfile.settings['gcode_macro pause'].rename_existing %} {% set resume_macro = "RESUME" if printer.configfile.settings['gcode_macro resume'] is not defined else printer.configfile.settings['gcode_macro resume'].rename_existing %} {% set current_layer_default = printer.print_stats.info.current_layer if printer.print_stats.info.current_layer is not none else -1 %} {% set current_layer = params.CURRENT_LAYER|default(current_layer_default)|int %} {% set polygon_points = printer.exclude_object.objects|map(attribute='polygon')|sum(start=[]) if printer.exclude_object is defined else [] %} {% set min_x = params.MINX|default(polygon_points|map(attribute=0)|min|default(printer.toolhead.axis_minimum.x))|float %} {% set min_y = params.MINY|default(polygon_points|map(attribute=1)|min|default(printer.toolhead.axis_minimum.y))|float %} {% set max_x = params.MAXX|default(polygon_points|map(attribute=0)|max|default(printer.toolhead.axis_maximum.x))|float %} {% set max_y = params.MAXY|default(polygon_points|map(attribute=1)|max|default(printer.toolhead.axis_maximum.y))|float %} {% set stepoverCount = ((max_y - min_y) / first_layer_scan_stepover|float)|round(method='ceil')|int %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Layer %d" % (current_layer)}' {% endif %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=current_layer VALUE={current_layer} {% if first_layer_scan_enabled and current_layer == 2 %} {% set wait_dic = {'resume' : resume_macro, 'absolute_coordinates': printer.gcode_move.absolute_coordinates, 'absolute_extrude' : printer.gcode_move.absolute_extrude, 'e' : printer.gcode_move.gcode_position.e} %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=wait VALUE="{wait_dic}" {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Prepair scanning" {% endif %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Scan Coordinates: Min:[%.3f:%.3f] Max:[%.3f:%.3f]" % (min_x,min_y,max_x,max_y)}' {% endif %} {% if printer[printer.toolhead.extruder].can_extrude %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Retract %.1fmm filament" % first_layer_scan_retract_length|abs}' {% endif %} M83 G0 E-{first_layer_scan_retract_length|abs} F{first_layer_scan_retract_speed|float * 60} {% endif %} G91 G0 Z{first_layer_scan_zhop|abs} F{first_layer_scan_zhop_speed|float * 60} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Call %s" % pause_macro}' {% endif %} {pause_macro} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Start scanning" {% endif %} UPDATE_DELAYED_GCODE ID=_WAIT_OBICO_LAYER_CHANGE DURATION=1.0 SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=first_layer_scanning VALUE=True G90 G0 X{min_x} Y{min_y} F{first_layer_scan_resume_speed|float * 60} {% for ystep in range(stepoverCount) %} G0 Y{min_y + first_layer_scan_stepover|float * ystep} F{first_layer_scan_speed|float * 60} G0 X{max_x if ystep % 2 == 0 else min_x} F{first_layer_scan_speed|float * 60} {% endfor %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=first_layer_scanning VALUE=False {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Finish scanning" {% endif %} {% endif %} [delayed_gcode _WAIT_OBICO_LAYER_CHANGE] gcode = {% set lc_macro = printer['gcode_macro _OBICO_LAYER_CHANGE'] %} {% if lc_macro.first_layer_scanning %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Waiting for first layer scan..." {% endif %} UPDATE_DELAYED_GCODE ID=_WAIT_OBICO_LAYER_CHANGE DURATION=1.0 {% else %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Resume print" {% endif %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Call %s VELOCITY=%.1f" % (lc_macro.wait.resume, lc_macro.first_layer_scan_resume_speed)}' {% endif %} {lc_macro.wait.resume} VELOCITY={lc_macro.first_layer_scan_resume_speed} G91 G0 Z-{lc_macro.first_layer_scan_zhop|abs} F{lc_macro.first_layer_scan_zhop_speed|float * 60} {% if printer[printer.toolhead.extruder].can_extrude %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Extrude %.1fmm filament" % lc_macro.first_layer_scan_unretract_length|abs}' {% endif %} M83 G0 E{lc_macro.first_layer_scan_unretract_length|abs} F{lc_macro.first_layer_scan_unretract_speed|float * 60} {% endif %} {% if lc_macro.wait.absolute_coordinates %} G90 {% endif %} {% if lc_macro.wait.absolute_extrude %} M82 G92 E{lc_macro.wait.e} {% endif %} {% endif %} [save_variables] filename = /home/pi/printer_data/config/variables.cfg [gcode_macro Z_OFFSET] description = Mesuser le Z-Offset gcode = G28 PROBE_CALIBRATE [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(0)|float %} M117 Heating... M140 S{BED_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_CALIBRATE M190 S{BED_TEMP} G1 Z5.0 F3000 G1 X0.1 Y20 Z0.3 F5000.0 M109 S{EXTRUDER_TEMP} G92 E0 G1 Z1.0 F3000 G1 X2 Y20 Z0.3 F5000.0 G1 X2 Y200.0 Z0.3 F1500.0 E15 G1 X2 Y200.0 Z0.4 F5000.0 G1 X2 Y20 Z0.4 F1500.0 E30 G92 E0 G1 Z1.0 F3000 [gcode_macro END_PRINT] gcode = M104 T0 S0 M104 T1 S0 M140 S0 G92 E1 G1 E-1 F300 G28 X0 Y0 M84 [gcode_macro G29] gcode = BED_MESH_CALIBRATE [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE [gcode_macro PAUSE] rename_existing = BASE_PAUSE gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK M104 S0 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro RESUME] rename_existing = BASE_RESUME variable_zhop = 0 variable_etemp = 0 gcode = {% set e = params.E|default(2.5)|int %} {% if printer['pause_resume'].is_paused|int == 1 %} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} {% if etemp > 0 %} M109 S{etemp|int} {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 G91 M83 {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 Z{zhop * -1} E{e} F900 {% else %} G1 Z{zhop * -1} F900 {% endif %} RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60 BASE_RESUME {% endif %} [gcode_macro M600] gcode = CHANGE_FILAMENT [gcode_macro M601] gcode = CHANGE_FILAMENT [gcode_macro CHANGE_FILAMENT] gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK ,M104 S0 G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro UNLOAD_FILAMENT] description = Retrait du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=unload_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Retrait du filament..." G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 RESTORE_GCODE_STATE NAME=unload_state {% endif %} [gcode_macro LOAD_FILAMENT] description = Chargement du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=load_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Chargement du filament..." G91 G0 E70 F300 G0 E20 F200 M400 RESTORE_GCODE_STATE NAME=load_state {% endif %} [gcode_macro CALIBRATION_PID_BED_60] description = PID Plateau gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID du plateau en cours..." PID_CALIBRATE HEATER=heater_bed TARGET={params.TEMP|default(60)} G28 SAVE_CONFIG {% endif %} [gcode_macro CALIBRATION_PID_HOTEND_200] description = PID Hotend gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID de la buse en cours..." PID_CALIBRATE HEATER=extruder TARGET={params.TEMP|default(200)} G28 SAVE_CONFIG {% endif %} [gcode_macro SAUVEGARDER] description = Sauvegarder la configuration gcode = SAVE_CONFIG [gcode_macro M201] description = Sets maximum accelleration. Usage: M201 [X<accel>] [Y<accel>] gcode = {% if 'X' in params or 'Y' in params %} {% set accel = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel * 0.5} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M203] description = Sets maximum velocity Usage: M203 [X<speed>] [Y<speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT VELOCITY={speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M204] description = Sets maximum accelleration. Usage: M204 [S<accel>] [P<accel> T<accel>] rename_existing = M204.1 gcode = {% set f = params.F|default(0.5)|float %} {% if 'S' in params %} {% set s = params.S|float %} SET_VELOCITY_LIMIT ACCEL={s} ACCEL_TO_DECEL={ s * f } {% else %} {% if 'P' in params %} {% set p = params.P|float %} {% if 'T' in params %} {% set t = params.T|float %} {% if p < t %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% else %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% else %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% endif %} {% elif 'T' in params %} {% set t = params.T|float %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% endif %} [gcode_macro M205] description = Sets square corner velocity Usage: M205 [X<corner_speed>] [Y<corner_speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set corner_speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={corner_speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro ADXL_TEST] description = ADXL Test gcode = ACCELEROMETER_QUERY [gcode_macro ADXL_NOISE] description = Measure Accelerometer Noise gcode = MEASURE_AXES_NOISE [gcode_macro ADXL_AXE_X] description = Measure X axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=X [gcode_macro ADXL_AXE_Y] description = Measure Y axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=Y [gcode_macro SECURITY_OFFSET] description = Apply a 2mm Safety Offset gcode = SET_GCODE_OFFSET Z=+2 RESPOND MSG="Safety Offset applied!" [mcu] serial = /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 restart_method = command [stepper_x] step_pin = PE3 dir_pin = PE2 enable_pin = !PE4 microsteps = 16 rotation_distance = 40 endstop_pin = !PA15 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_y] step_pin = PE0 dir_pin = !PB9 enable_pin = !PE1 microsteps = 16 rotation_distance = 40 endstop_pin = !PA12 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_z] step_pin = PB5 dir_pin = !PB4 enable_pin = !PB8 microsteps = 16 rotation_distance = 8 endstop_pin = !PA11 position_endstop = 0 position_min = -5 position_max = 250 [extruder] step_pin = PD6 dir_pin = !PD3 enable_pin = !PB3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.157 min_extrude_temp = 185 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = PC3 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC1 min_temp = 5 max_temp = 260 max_extrude_only_distance = 950.0 max_extrude_only_velocity = 200 max_extrude_only_accel = 2750 max_extrude_cross_section = 5 pressure_advance = 0.065 pressure_advance_smooth_time = 0.040 control = pid pid_kp = 22.501 pid_ki = 0.843 pid_kd = 150.192 [extruder_stepper belted_extruder] extruder = extruder step_pin = PA6 dir_pin = !PA1 enable_pin = !PA3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.952 [heater_bed] heater_pin = PA0 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC0 min_temp = 5 max_temp = 100 control = pid pid_kp = 62.805 pid_ki = 1.055 pid_kd = 935.009 [fan] pin = PB1 [printer] kinematics = cartesian max_velocity = 300 max_accel = 2400 max_accel_to_decel = 1200 square_corner_velocity = 5 max_z_velocity = 10 max_z_accel = 100 [input_shaper] shaper_freq_x = 101.8 shaper_type_x = mzv shaper_freq_y = 38.4 shaper_type_y = mzv [safe_z_home] home_xy_position = 115,115 speed = 100.0 z_hop = 10.0 z_hop_speed = 10.0 [firmware_retraction] retract_length = 8 retract_speed = 35 unretract_extra_length = 0 unretract_speed = 25 [filament_switch_sensor E0] pause_on_runout = True switch_pin = PA4 [filament_switch_sensor E1] pause_on_runout = True switch_pin = PE6 [temperature_sensor PiTemp] sensor_type = temperature_host sensor_path = /sys/class/thermal/thermal_zone0/temp [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 90 [bed_mesh] speed = 80 horizontal_move_z = 8 mesh_min = 50,50 mesh_max = 180, 210 probe_count = 5,5 fade_start = 1.0 fade_end = 10 mesh_pps = 2,2 [virtual_sdcard] path = /home/pi/printer_data/gcodes/ [display_status] [bed_screws] screw1 = 20,20 screw1_name = Front left screw screw2 = 20,220 screw2_name = Rear left screw screw3 = 220,220 screw3_name = Rear right screw screw4 = 220,20 screw4_name = Front right screw [bed_mesh default] version = 1 points = -0.145000, 0.077500, 0.020000, -0.026250, -0.007500 -0.085000, 0.067500, 0.051250, -0.012500, -0.038750 -0.126250, 0.025000, 0.005000, -0.035000, -0.057500 -0.183750, -0.048750, -0.032500, -0.078750, -0.085000 -0.321250, -0.142500, -0.172500, -0.182500, -0.170000 x_count = 5 y_count = 5 mesh_x_pps = 2 mesh_y_pps = 2 algo = lagrange tension = 0.2 min_x = 50.00000000000001 max_x = 180.0 min_y = 50.01 max_y = 210.0 ======================= Unhandled exception during connect Traceback (most recent call last): File "/home/loic/klipper/klippy/klippy.py", line 175, in _connect self._read_config() File "/home/loic/klipper/klippy/klippy.py", line 141, in _read_config self.load_object(config, section_config.get_name(), None) File "/home/loic/klipper/klippy/klippy.py", line 130, in load_object self.objects[section] = init_func(config.getsection(section)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 64, in load_config return SaveVariables(config) ^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 16, in __init__ open(self.filename, "w").close() ^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' webhooks client 547838253520: New connection webhooks client 547838253520: Client info {'program': 'Moonraker', 'version': 'v0.8.0-286-gf44fc4b'} Unable to issue reset command on MCU 'mcu' webhooks client 547838253520: Disconnected Restarting printer Start printer at Thu Jan 25 19:19:59 2024 (1706206800.0 1053.7) ===== Config file ===== [pause_resume] [gcode_macro _OBICO_LAYER_CHANGE] description = Run a scan across the current print area variable_first_layer_scan_retract_length = 6 variable_first_layer_scan_retract_speed = 15 variable_first_layer_scan_unretract_length = 6.5 variable_first_layer_scan_unretract_speed = 15 variable_first_layer_scan_resume_speed = 50 variable_first_layer_scan_enabled = True variable_first_layer_scan_stepover = 10 variable_first_layer_scan_speed = 10 variable_first_layer_scan_zhop = 4 variable_first_layer_scan_zhop_speed = 15 variable_verbose = False variable_current_layer = -1 variable_first_layer_scanning = False variable_wait = {'resume': "RESUME", 'absolute_coordinates': True, 'absolute_extrude': True, 'e': 0.0} gcode = {% set pause_macro = "PAUSE" if printer.configfile.settings['gcode_macro pause'] is not defined else printer.configfile.settings['gcode_macro pause'].rename_existing %} {% set resume_macro = "RESUME" if printer.configfile.settings['gcode_macro resume'] is not defined else printer.configfile.settings['gcode_macro resume'].rename_existing %} {% set current_layer_default = printer.print_stats.info.current_layer if printer.print_stats.info.current_layer is not none else -1 %} {% set current_layer = params.CURRENT_LAYER|default(current_layer_default)|int %} {% set polygon_points = printer.exclude_object.objects|map(attribute='polygon')|sum(start=[]) if printer.exclude_object is defined else [] %} {% set min_x = params.MINX|default(polygon_points|map(attribute=0)|min|default(printer.toolhead.axis_minimum.x))|float %} {% set min_y = params.MINY|default(polygon_points|map(attribute=1)|min|default(printer.toolhead.axis_minimum.y))|float %} {% set max_x = params.MAXX|default(polygon_points|map(attribute=0)|max|default(printer.toolhead.axis_maximum.x))|float %} {% set max_y = params.MAXY|default(polygon_points|map(attribute=1)|max|default(printer.toolhead.axis_maximum.y))|float %} {% set stepoverCount = ((max_y - min_y) / first_layer_scan_stepover|float)|round(method='ceil')|int %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Layer %d" % (current_layer)}' {% endif %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=current_layer VALUE={current_layer} {% if first_layer_scan_enabled and current_layer == 2 %} {% set wait_dic = {'resume' : resume_macro, 'absolute_coordinates': printer.gcode_move.absolute_coordinates, 'absolute_extrude' : printer.gcode_move.absolute_extrude, 'e' : printer.gcode_move.gcode_position.e} %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=wait VALUE="{wait_dic}" {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Prepair scanning" {% endif %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Scan Coordinates: Min:[%.3f:%.3f] Max:[%.3f:%.3f]" % (min_x,min_y,max_x,max_y)}' {% endif %} {% if printer[printer.toolhead.extruder].can_extrude %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Retract %.1fmm filament" % first_layer_scan_retract_length|abs}' {% endif %} M83 G0 E-{first_layer_scan_retract_length|abs} F{first_layer_scan_retract_speed|float * 60} {% endif %} G91 G0 Z{first_layer_scan_zhop|abs} F{first_layer_scan_zhop_speed|float * 60} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Call %s" % pause_macro}' {% endif %} {pause_macro} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Start scanning" {% endif %} UPDATE_DELAYED_GCODE ID=_WAIT_OBICO_LAYER_CHANGE DURATION=1.0 SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=first_layer_scanning VALUE=True G90 G0 X{min_x} Y{min_y} F{first_layer_scan_resume_speed|float * 60} {% for ystep in range(stepoverCount) %} G0 Y{min_y + first_layer_scan_stepover|float * ystep} F{first_layer_scan_speed|float * 60} G0 X{max_x if ystep % 2 == 0 else min_x} F{first_layer_scan_speed|float * 60} {% endfor %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=first_layer_scanning VALUE=False {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Finish scanning" {% endif %} {% endif %} [delayed_gcode _WAIT_OBICO_LAYER_CHANGE] gcode = {% set lc_macro = printer['gcode_macro _OBICO_LAYER_CHANGE'] %} {% if lc_macro.first_layer_scanning %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Waiting for first layer scan..." {% endif %} UPDATE_DELAYED_GCODE ID=_WAIT_OBICO_LAYER_CHANGE DURATION=1.0 {% else %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Resume print" {% endif %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Call %s VELOCITY=%.1f" % (lc_macro.wait.resume, lc_macro.first_layer_scan_resume_speed)}' {% endif %} {lc_macro.wait.resume} VELOCITY={lc_macro.first_layer_scan_resume_speed} G91 G0 Z-{lc_macro.first_layer_scan_zhop|abs} F{lc_macro.first_layer_scan_zhop_speed|float * 60} {% if printer[printer.toolhead.extruder].can_extrude %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Extrude %.1fmm filament" % lc_macro.first_layer_scan_unretract_length|abs}' {% endif %} M83 G0 E{lc_macro.first_layer_scan_unretract_length|abs} F{lc_macro.first_layer_scan_unretract_speed|float * 60} {% endif %} {% if lc_macro.wait.absolute_coordinates %} G90 {% endif %} {% if lc_macro.wait.absolute_extrude %} M82 G92 E{lc_macro.wait.e} {% endif %} {% endif %} [save_variables] filename = /home/pi/printer_data/config/variables.cfg [gcode_macro Z_OFFSET] description = Mesuser le Z-Offset gcode = G28 PROBE_CALIBRATE [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(0)|float %} M117 Heating... M140 S{BED_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_CALIBRATE M190 S{BED_TEMP} G1 Z5.0 F3000 G1 X0.1 Y20 Z0.3 F5000.0 M109 S{EXTRUDER_TEMP} G92 E0 G1 Z1.0 F3000 G1 X2 Y20 Z0.3 F5000.0 G1 X2 Y200.0 Z0.3 F1500.0 E15 G1 X2 Y200.0 Z0.4 F5000.0 G1 X2 Y20 Z0.4 F1500.0 E30 G92 E0 G1 Z1.0 F3000 [gcode_macro END_PRINT] gcode = M104 T0 S0 M104 T1 S0 M140 S0 G92 E1 G1 E-1 F300 G28 X0 Y0 M84 [gcode_macro G29] gcode = BED_MESH_CALIBRATE [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE [gcode_macro PAUSE] rename_existing = BASE_PAUSE gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK M104 S0 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro RESUME] rename_existing = BASE_RESUME variable_zhop = 0 variable_etemp = 0 gcode = {% set e = params.E|default(2.5)|int %} {% if printer['pause_resume'].is_paused|int == 1 %} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} {% if etemp > 0 %} M109 S{etemp|int} {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 G91 M83 {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 Z{zhop * -1} E{e} F900 {% else %} G1 Z{zhop * -1} F900 {% endif %} RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60 BASE_RESUME {% endif %} [gcode_macro M600] gcode = CHANGE_FILAMENT [gcode_macro M601] gcode = CHANGE_FILAMENT [gcode_macro CHANGE_FILAMENT] gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK ,M104 S0 G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro UNLOAD_FILAMENT] description = Retrait du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=unload_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Retrait du filament..." G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 RESTORE_GCODE_STATE NAME=unload_state {% endif %} [gcode_macro LOAD_FILAMENT] description = Chargement du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=load_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Chargement du filament..." G91 G0 E70 F300 G0 E20 F200 M400 RESTORE_GCODE_STATE NAME=load_state {% endif %} [gcode_macro CALIBRATION_PID_BED_60] description = PID Plateau gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID du plateau en cours..." PID_CALIBRATE HEATER=heater_bed TARGET={params.TEMP|default(60)} G28 SAVE_CONFIG {% endif %} [gcode_macro CALIBRATION_PID_HOTEND_200] description = PID Hotend gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID de la buse en cours..." PID_CALIBRATE HEATER=extruder TARGET={params.TEMP|default(200)} G28 SAVE_CONFIG {% endif %} [gcode_macro SAUVEGARDER] description = Sauvegarder la configuration gcode = SAVE_CONFIG [gcode_macro M201] description = Sets maximum accelleration. Usage: M201 [X<accel>] [Y<accel>] gcode = {% if 'X' in params or 'Y' in params %} {% set accel = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel * 0.5} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M203] description = Sets maximum velocity Usage: M203 [X<speed>] [Y<speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT VELOCITY={speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M204] description = Sets maximum accelleration. Usage: M204 [S<accel>] [P<accel> T<accel>] rename_existing = M204.1 gcode = {% set f = params.F|default(0.5)|float %} {% if 'S' in params %} {% set s = params.S|float %} SET_VELOCITY_LIMIT ACCEL={s} ACCEL_TO_DECEL={ s * f } {% else %} {% if 'P' in params %} {% set p = params.P|float %} {% if 'T' in params %} {% set t = params.T|float %} {% if p < t %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% else %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% else %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% endif %} {% elif 'T' in params %} {% set t = params.T|float %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% endif %} [gcode_macro M205] description = Sets square corner velocity Usage: M205 [X<corner_speed>] [Y<corner_speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set corner_speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={corner_speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro ADXL_TEST] description = ADXL Test gcode = ACCELEROMETER_QUERY [gcode_macro ADXL_NOISE] description = Measure Accelerometer Noise gcode = MEASURE_AXES_NOISE [gcode_macro ADXL_AXE_X] description = Measure X axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=X [gcode_macro ADXL_AXE_Y] description = Measure Y axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=Y [gcode_macro SECURITY_OFFSET] description = Apply a 2mm Safety Offset gcode = SET_GCODE_OFFSET Z=+2 RESPOND MSG="Safety Offset applied!" [mcu] serial = /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 restart_method = command [stepper_x] step_pin = PE3 dir_pin = PE2 enable_pin = !PE4 microsteps = 16 rotation_distance = 40 endstop_pin = !PA15 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_y] step_pin = PE0 dir_pin = !PB9 enable_pin = !PE1 microsteps = 16 rotation_distance = 40 endstop_pin = !PA12 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_z] step_pin = PB5 dir_pin = !PB4 enable_pin = !PB8 microsteps = 16 rotation_distance = 8 endstop_pin = !PA11 position_endstop = 0 position_min = -5 position_max = 250 [extruder] step_pin = PD6 dir_pin = !PD3 enable_pin = !PB3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.157 min_extrude_temp = 185 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = PC3 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC1 min_temp = 5 max_temp = 260 max_extrude_only_distance = 950.0 max_extrude_only_velocity = 200 max_extrude_only_accel = 2750 max_extrude_cross_section = 5 pressure_advance = 0.065 pressure_advance_smooth_time = 0.040 control = pid pid_kp = 22.501 pid_ki = 0.843 pid_kd = 150.192 [extruder_stepper belted_extruder] extruder = extruder step_pin = PA6 dir_pin = !PA1 enable_pin = !PA3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.952 [heater_bed] heater_pin = PA0 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC0 min_temp = 5 max_temp = 100 control = pid pid_kp = 62.805 pid_ki = 1.055 pid_kd = 935.009 [fan] pin = PB1 [printer] kinematics = cartesian max_velocity = 300 max_accel = 2400 max_accel_to_decel = 1200 square_corner_velocity = 5 max_z_velocity = 10 max_z_accel = 100 [input_shaper] shaper_freq_x = 101.8 shaper_type_x = mzv shaper_freq_y = 38.4 shaper_type_y = mzv [safe_z_home] home_xy_position = 115,115 speed = 100.0 z_hop = 10.0 z_hop_speed = 10.0 [firmware_retraction] retract_length = 8 retract_speed = 35 unretract_extra_length = 0 unretract_speed = 25 [filament_switch_sensor E0] pause_on_runout = True switch_pin = PA4 [filament_switch_sensor E1] pause_on_runout = True switch_pin = PE6 [temperature_sensor PiTemp] sensor_type = temperature_host sensor_path = /sys/class/thermal/thermal_zone0/temp [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 90 [bed_mesh] speed = 80 horizontal_move_z = 8 mesh_min = 50,50 mesh_max = 180, 210 probe_count = 5,5 fade_start = 1.0 fade_end = 10 mesh_pps = 2,2 [virtual_sdcard] path = /home/pi/printer_data/gcodes/ [display_status] [bed_screws] screw1 = 20,20 screw1_name = Front left screw screw2 = 20,220 screw2_name = Rear left screw screw3 = 220,220 screw3_name = Rear right screw screw4 = 220,20 screw4_name = Front right screw [bed_mesh default] version = 1 points = -0.145000, 0.077500, 0.020000, -0.026250, -0.007500 -0.085000, 0.067500, 0.051250, -0.012500, -0.038750 -0.126250, 0.025000, 0.005000, -0.035000, -0.057500 -0.183750, -0.048750, -0.032500, -0.078750, -0.085000 -0.321250, -0.142500, -0.172500, -0.182500, -0.170000 x_count = 5 y_count = 5 mesh_x_pps = 2 mesh_y_pps = 2 algo = lagrange tension = 0.2 min_x = 50.00000000000001 max_x = 180.0 min_y = 50.01 max_y = 210.0 ======================= Unhandled exception during connect Traceback (most recent call last): File "/home/loic/klipper/klippy/klippy.py", line 175, in _connect self._read_config() File "/home/loic/klipper/klippy/klippy.py", line 141, in _read_config self.load_object(config, section_config.get_name(), None) File "/home/loic/klipper/klippy/klippy.py", line 130, in load_object self.objects[section] = init_func(config.getsection(section)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 64, in load_config return SaveVariables(config) ^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 16, in __init__ open(self.filename, "w").close() ^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' webhooks client 547846898512: New connection webhooks client 547846898512: Client info {'program': 'Moonraker', 'version': 'v0.8.0-286-gf44fc4b'} Unable to issue reset command on MCU 'mcu' webhooks client 547846898512: Disconnected Restarting printer Start printer at Thu Jan 25 19:21:05 2024 (1706206865.4 1119.1) ===== Config file ===== [pause_resume] [gcode_macro _OBICO_LAYER_CHANGE] description = Run a scan across the current print area variable_first_layer_scan_retract_length = 6 variable_first_layer_scan_retract_speed = 15 variable_first_layer_scan_unretract_length = 6.5 variable_first_layer_scan_unretract_speed = 15 variable_first_layer_scan_resume_speed = 50 variable_first_layer_scan_enabled = True variable_first_layer_scan_stepover = 10 variable_first_layer_scan_speed = 10 variable_first_layer_scan_zhop = 4 variable_first_layer_scan_zhop_speed = 15 variable_verbose = False variable_current_layer = -1 variable_first_layer_scanning = False variable_wait = {'resume': "RESUME", 'absolute_coordinates': True, 'absolute_extrude': True, 'e': 0.0} gcode = {% set pause_macro = "PAUSE" if printer.configfile.settings['gcode_macro pause'] is not defined else printer.configfile.settings['gcode_macro pause'].rename_existing %} {% set resume_macro = "RESUME" if printer.configfile.settings['gcode_macro resume'] is not defined else printer.configfile.settings['gcode_macro resume'].rename_existing %} {% set current_layer_default = printer.print_stats.info.current_layer if printer.print_stats.info.current_layer is not none else -1 %} {% set current_layer = params.CURRENT_LAYER|default(current_layer_default)|int %} {% set polygon_points = printer.exclude_object.objects|map(attribute='polygon')|sum(start=[]) if printer.exclude_object is defined else [] %} {% set min_x = params.MINX|default(polygon_points|map(attribute=0)|min|default(printer.toolhead.axis_minimum.x))|float %} {% set min_y = params.MINY|default(polygon_points|map(attribute=1)|min|default(printer.toolhead.axis_minimum.y))|float %} {% set max_x = params.MAXX|default(polygon_points|map(attribute=0)|max|default(printer.toolhead.axis_maximum.x))|float %} {% set max_y = params.MAXY|default(polygon_points|map(attribute=1)|max|default(printer.toolhead.axis_maximum.y))|float %} {% set stepoverCount = ((max_y - min_y) / first_layer_scan_stepover|float)|round(method='ceil')|int %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Layer %d" % (current_layer)}' {% endif %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=current_layer VALUE={current_layer} {% if first_layer_scan_enabled and current_layer == 2 %} {% set wait_dic = {'resume' : resume_macro, 'absolute_coordinates': printer.gcode_move.absolute_coordinates, 'absolute_extrude' : printer.gcode_move.absolute_extrude, 'e' : printer.gcode_move.gcode_position.e} %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=wait VALUE="{wait_dic}" {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Prepair scanning" {% endif %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Scan Coordinates: Min:[%.3f:%.3f] Max:[%.3f:%.3f]" % (min_x,min_y,max_x,max_y)}' {% endif %} {% if printer[printer.toolhead.extruder].can_extrude %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Retract %.1fmm filament" % first_layer_scan_retract_length|abs}' {% endif %} M83 G0 E-{first_layer_scan_retract_length|abs} F{first_layer_scan_retract_speed|float * 60} {% endif %} G91 G0 Z{first_layer_scan_zhop|abs} F{first_layer_scan_zhop_speed|float * 60} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Call %s" % pause_macro}' {% endif %} {pause_macro} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Start scanning" {% endif %} UPDATE_DELAYED_GCODE ID=_WAIT_OBICO_LAYER_CHANGE DURATION=1.0 SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=first_layer_scanning VALUE=True G90 G0 X{min_x} Y{min_y} F{first_layer_scan_resume_speed|float * 60} {% for ystep in range(stepoverCount) %} G0 Y{min_y + first_layer_scan_stepover|float * ystep} F{first_layer_scan_speed|float * 60} G0 X{max_x if ystep % 2 == 0 else min_x} F{first_layer_scan_speed|float * 60} {% endfor %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=first_layer_scanning VALUE=False {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Finish scanning" {% endif %} {% endif %} [delayed_gcode _WAIT_OBICO_LAYER_CHANGE] gcode = {% set lc_macro = printer['gcode_macro _OBICO_LAYER_CHANGE'] %} {% if lc_macro.first_layer_scanning %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Waiting for first layer scan..." {% endif %} UPDATE_DELAYED_GCODE ID=_WAIT_OBICO_LAYER_CHANGE DURATION=1.0 {% else %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Resume print" {% endif %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Call %s VELOCITY=%.1f" % (lc_macro.wait.resume, lc_macro.first_layer_scan_resume_speed)}' {% endif %} {lc_macro.wait.resume} VELOCITY={lc_macro.first_layer_scan_resume_speed} G91 G0 Z-{lc_macro.first_layer_scan_zhop|abs} F{lc_macro.first_layer_scan_zhop_speed|float * 60} {% if printer[printer.toolhead.extruder].can_extrude %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Extrude %.1fmm filament" % lc_macro.first_layer_scan_unretract_length|abs}' {% endif %} M83 G0 E{lc_macro.first_layer_scan_unretract_length|abs} F{lc_macro.first_layer_scan_unretract_speed|float * 60} {% endif %} {% if lc_macro.wait.absolute_coordinates %} G90 {% endif %} {% if lc_macro.wait.absolute_extrude %} M82 G92 E{lc_macro.wait.e} {% endif %} {% endif %} [save_variables] filename = /home/pi/printer_data/config/variables.cfg [gcode_macro Z_OFFSET] description = Mesuser le Z-Offset gcode = G28 PROBE_CALIBRATE [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(0)|float %} M117 Heating... M140 S{BED_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_CALIBRATE M190 S{BED_TEMP} G1 Z5.0 F3000 G1 X0.1 Y20 Z0.3 F5000.0 M109 S{EXTRUDER_TEMP} G92 E0 G1 Z1.0 F3000 G1 X2 Y20 Z0.3 F5000.0 G1 X2 Y200.0 Z0.3 F1500.0 E15 G1 X2 Y200.0 Z0.4 F5000.0 G1 X2 Y20 Z0.4 F1500.0 E30 G92 E0 G1 Z1.0 F3000 [gcode_macro END_PRINT] gcode = M104 T0 S0 M104 T1 S0 M140 S0 G92 E1 G1 E-1 F300 G28 X0 Y0 M84 [gcode_macro G29] gcode = BED_MESH_CALIBRATE [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE [gcode_macro PAUSE] rename_existing = BASE_PAUSE gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK M104 S0 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro RESUME] rename_existing = BASE_RESUME variable_zhop = 0 variable_etemp = 0 gcode = {% set e = params.E|default(2.5)|int %} {% if printer['pause_resume'].is_paused|int == 1 %} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} {% if etemp > 0 %} M109 S{etemp|int} {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 G91 M83 {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 Z{zhop * -1} E{e} F900 {% else %} G1 Z{zhop * -1} F900 {% endif %} RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60 BASE_RESUME {% endif %} [gcode_macro M600] gcode = CHANGE_FILAMENT [gcode_macro M601] gcode = CHANGE_FILAMENT [gcode_macro CHANGE_FILAMENT] gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK ,M104 S0 G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro UNLOAD_FILAMENT] description = Retrait du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=unload_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Retrait du filament..." G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 RESTORE_GCODE_STATE NAME=unload_state {% endif %} [gcode_macro LOAD_FILAMENT] description = Chargement du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=load_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Chargement du filament..." G91 G0 E70 F300 G0 E20 F200 M400 RESTORE_GCODE_STATE NAME=load_state {% endif %} [gcode_macro CALIBRATION_PID_BED_60] description = PID Plateau gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID du plateau en cours..." PID_CALIBRATE HEATER=heater_bed TARGET={params.TEMP|default(60)} G28 SAVE_CONFIG {% endif %} [gcode_macro CALIBRATION_PID_HOTEND_200] description = PID Hotend gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID de la buse en cours..." PID_CALIBRATE HEATER=extruder TARGET={params.TEMP|default(200)} G28 SAVE_CONFIG {% endif %} [gcode_macro SAUVEGARDER] description = Sauvegarder la configuration gcode = SAVE_CONFIG [gcode_macro M201] description = Sets maximum accelleration. Usage: M201 [X<accel>] [Y<accel>] gcode = {% if 'X' in params or 'Y' in params %} {% set accel = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel * 0.5} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M203] description = Sets maximum velocity Usage: M203 [X<speed>] [Y<speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT VELOCITY={speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M204] description = Sets maximum accelleration. Usage: M204 [S<accel>] [P<accel> T<accel>] rename_existing = M204.1 gcode = {% set f = params.F|default(0.5)|float %} {% if 'S' in params %} {% set s = params.S|float %} SET_VELOCITY_LIMIT ACCEL={s} ACCEL_TO_DECEL={ s * f } {% else %} {% if 'P' in params %} {% set p = params.P|float %} {% if 'T' in params %} {% set t = params.T|float %} {% if p < t %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% else %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% else %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% endif %} {% elif 'T' in params %} {% set t = params.T|float %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% endif %} [gcode_macro M205] description = Sets square corner velocity Usage: M205 [X<corner_speed>] [Y<corner_speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set corner_speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={corner_speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro ADXL_TEST] description = ADXL Test gcode = ACCELEROMETER_QUERY [gcode_macro ADXL_NOISE] description = Measure Accelerometer Noise gcode = MEASURE_AXES_NOISE [gcode_macro ADXL_AXE_X] description = Measure X axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=X [gcode_macro ADXL_AXE_Y] description = Measure Y axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=Y [gcode_macro SECURITY_OFFSET] description = Apply a 2mm Safety Offset gcode = SET_GCODE_OFFSET Z=+2 RESPOND MSG="Safety Offset applied!" [mcu] serial = /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 restart_method = command [stepper_x] step_pin = PE3 dir_pin = PE2 enable_pin = !PE4 microsteps = 16 rotation_distance = 40 endstop_pin = !PA15 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_y] step_pin = PE0 dir_pin = !PB9 enable_pin = !PE1 microsteps = 16 rotation_distance = 40 endstop_pin = !PA12 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_z] step_pin = PB5 dir_pin = !PB4 enable_pin = !PB8 microsteps = 16 rotation_distance = 8 endstop_pin = !PA11 position_endstop = 0 position_min = -5 position_max = 250 [extruder] step_pin = PD6 dir_pin = !PD3 enable_pin = !PB3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.157 min_extrude_temp = 185 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = PC3 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC1 min_temp = 5 max_temp = 260 max_extrude_only_distance = 950.0 max_extrude_only_velocity = 200 max_extrude_only_accel = 2750 max_extrude_cross_section = 5 pressure_advance = 0.065 pressure_advance_smooth_time = 0.040 control = pid pid_kp = 22.501 pid_ki = 0.843 pid_kd = 150.192 [extruder_stepper belted_extruder] extruder = extruder step_pin = PA6 dir_pin = !PA1 enable_pin = !PA3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.952 [heater_bed] heater_pin = PA0 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC0 min_temp = 5 max_temp = 100 control = pid pid_kp = 62.805 pid_ki = 1.055 pid_kd = 935.009 [fan] pin = PB1 [printer] kinematics = cartesian max_velocity = 300 max_accel = 2400 max_accel_to_decel = 1200 square_corner_velocity = 5 max_z_velocity = 10 max_z_accel = 100 [input_shaper] shaper_freq_x = 101.8 shaper_type_x = mzv shaper_freq_y = 38.4 shaper_type_y = mzv [safe_z_home] home_xy_position = 115,115 speed = 100.0 z_hop = 10.0 z_hop_speed = 10.0 [firmware_retraction] retract_length = 8 retract_speed = 35 unretract_extra_length = 0 unretract_speed = 25 [filament_switch_sensor E0] pause_on_runout = True switch_pin = PA4 [filament_switch_sensor E1] pause_on_runout = True switch_pin = PE6 [temperature_sensor PiTemp] sensor_type = temperature_host sensor_path = /sys/class/thermal/thermal_zone0/temp [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 90 [bed_mesh] speed = 80 horizontal_move_z = 8 mesh_min = 50,50 mesh_max = 180, 210 probe_count = 5,5 fade_start = 1.0 fade_end = 10 mesh_pps = 2,2 [virtual_sdcard] path = /home/pi/printer_data/gcodes/ [display_status] [bed_screws] screw1 = 20,20 screw1_name = Front left screw screw2 = 20,220 screw2_name = Rear left screw screw3 = 220,220 screw3_name = Rear right screw screw4 = 220,20 screw4_name = Front right screw [bed_mesh default] version = 1 points = -0.145000, 0.077500, 0.020000, -0.026250, -0.007500 -0.085000, 0.067500, 0.051250, -0.012500, -0.038750 -0.126250, 0.025000, 0.005000, -0.035000, -0.057500 -0.183750, -0.048750, -0.032500, -0.078750, -0.085000 -0.321250, -0.142500, -0.172500, -0.182500, -0.170000 x_count = 5 y_count = 5 mesh_x_pps = 2 mesh_y_pps = 2 algo = lagrange tension = 0.2 min_x = 50.00000000000001 max_x = 180.0 min_y = 50.01 max_y = 210.0 ======================= Unhandled exception during connect Traceback (most recent call last): File "/home/loic/klipper/klippy/klippy.py", line 175, in _connect self._read_config() File "/home/loic/klipper/klippy/klippy.py", line 141, in _read_config self.load_object(config, section_config.get_name(), None) File "/home/loic/klipper/klippy/klippy.py", line 130, in load_object self.objects[section] = init_func(config.getsection(section)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 64, in load_config return SaveVariables(config) ^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 16, in __init__ open(self.filename, "w").close() ^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' webhooks client 547868158224: New connection webhooks client 547868158224: Client info {'program': 'Moonraker', 'version': 'v0.8.0-286-gf44fc4b'} Unable to issue reset command on MCU 'mcu' webhooks client 547868158224: Disconnected Restarting printer Start printer at Thu Jan 25 19:31:06 2024 (1706207466.8 1720.5) ===== Config file ===== [pause_resume] [gcode_macro _OBICO_LAYER_CHANGE] description = Run a scan across the current print area variable_first_layer_scan_retract_length = 6 variable_first_layer_scan_retract_speed = 15 variable_first_layer_scan_unretract_length = 6.5 variable_first_layer_scan_unretract_speed = 15 variable_first_layer_scan_resume_speed = 50 variable_first_layer_scan_enabled = True variable_first_layer_scan_stepover = 10 variable_first_layer_scan_speed = 10 variable_first_layer_scan_zhop = 4 variable_first_layer_scan_zhop_speed = 15 variable_verbose = False variable_current_layer = -1 variable_first_layer_scanning = False variable_wait = {'resume': "RESUME", 'absolute_coordinates': True, 'absolute_extrude': True, 'e': 0.0} gcode = {% set pause_macro = "PAUSE" if printer.configfile.settings['gcode_macro pause'] is not defined else printer.configfile.settings['gcode_macro pause'].rename_existing %} {% set resume_macro = "RESUME" if printer.configfile.settings['gcode_macro resume'] is not defined else printer.configfile.settings['gcode_macro resume'].rename_existing %} {% set current_layer_default = printer.print_stats.info.current_layer if printer.print_stats.info.current_layer is not none else -1 %} {% set current_layer = params.CURRENT_LAYER|default(current_layer_default)|int %} {% set polygon_points = printer.exclude_object.objects|map(attribute='polygon')|sum(start=[]) if printer.exclude_object is defined else [] %} {% set min_x = params.MINX|default(polygon_points|map(attribute=0)|min|default(printer.toolhead.axis_minimum.x))|float %} {% set min_y = params.MINY|default(polygon_points|map(attribute=1)|min|default(printer.toolhead.axis_minimum.y))|float %} {% set max_x = params.MAXX|default(polygon_points|map(attribute=0)|max|default(printer.toolhead.axis_maximum.x))|float %} {% set max_y = params.MAXY|default(polygon_points|map(attribute=1)|max|default(printer.toolhead.axis_maximum.y))|float %} {% set stepoverCount = ((max_y - min_y) / first_layer_scan_stepover|float)|round(method='ceil')|int %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Layer %d" % (current_layer)}' {% endif %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=current_layer VALUE={current_layer} {% if first_layer_scan_enabled and current_layer == 2 %} {% set wait_dic = {'resume' : resume_macro, 'absolute_coordinates': printer.gcode_move.absolute_coordinates, 'absolute_extrude' : printer.gcode_move.absolute_extrude, 'e' : printer.gcode_move.gcode_position.e} %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=wait VALUE="{wait_dic}" {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Prepair scanning" {% endif %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Scan Coordinates: Min:[%.3f:%.3f] Max:[%.3f:%.3f]" % (min_x,min_y,max_x,max_y)}' {% endif %} {% if printer[printer.toolhead.extruder].can_extrude %} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Retract %.1fmm filament" % first_layer_scan_retract_length|abs}' {% endif %} M83 G0 E-{first_layer_scan_retract_length|abs} F{first_layer_scan_retract_speed|float * 60} {% endif %} G91 G0 Z{first_layer_scan_zhop|abs} F{first_layer_scan_zhop_speed|float * 60} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Call %s" % pause_macro}' {% endif %} {pause_macro} {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Start scanning" {% endif %} UPDATE_DELAYED_GCODE ID=_WAIT_OBICO_LAYER_CHANGE DURATION=1.0 SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=first_layer_scanning VALUE=True G90 G0 X{min_x} Y{min_y} F{first_layer_scan_resume_speed|float * 60} {% for ystep in range(stepoverCount) %} G0 Y{min_y + first_layer_scan_stepover|float * ystep} F{first_layer_scan_speed|float * 60} G0 X{max_x if ystep % 2 == 0 else min_x} F{first_layer_scan_speed|float * 60} {% endfor %} SET_GCODE_VARIABLE MACRO=_OBICO_LAYER_CHANGE VARIABLE=first_layer_scanning VALUE=False {% if verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Finish scanning" {% endif %} {% endif %} [delayed_gcode _WAIT_OBICO_LAYER_CHANGE] gcode = {% set lc_macro = printer['gcode_macro _OBICO_LAYER_CHANGE'] %} {% if lc_macro.first_layer_scanning %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Waiting for first layer scan..." {% endif %} UPDATE_DELAYED_GCODE ID=_WAIT_OBICO_LAYER_CHANGE DURATION=1.0 {% else %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG="Resume print" {% endif %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Call %s VELOCITY=%.1f" % (lc_macro.wait.resume, lc_macro.first_layer_scan_resume_speed)}' {% endif %} {lc_macro.wait.resume} VELOCITY={lc_macro.first_layer_scan_resume_speed} G91 G0 Z-{lc_macro.first_layer_scan_zhop|abs} F{lc_macro.first_layer_scan_zhop_speed|float * 60} {% if printer[printer.toolhead.extruder].can_extrude %} {% if lc_macro.verbose %} RESPOND PREFIX='OBICO DEBUG:' MSG='{"Extrude %.1fmm filament" % lc_macro.first_layer_scan_unretract_length|abs}' {% endif %} M83 G0 E{lc_macro.first_layer_scan_unretract_length|abs} F{lc_macro.first_layer_scan_unretract_speed|float * 60} {% endif %} {% if lc_macro.wait.absolute_coordinates %} G90 {% endif %} {% if lc_macro.wait.absolute_extrude %} M82 G92 E{lc_macro.wait.e} {% endif %} {% endif %} [save_variables] filename = /home/pi/printer_data/config/variables.cfg [gcode_macro Z_OFFSET] description = Mesuser le Z-Offset gcode = G28 PROBE_CALIBRATE [gcode_macro START_PRINT] gcode = {% set BED_TEMP = params.BED_TEMP|default(0)|float %} {% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(0)|float %} M117 Heating... M140 S{BED_TEMP} G90 SET_GCODE_OFFSET Z=0.0 G28 BED_MESH_CALIBRATE M190 S{BED_TEMP} G1 Z5.0 F3000 G1 X0.1 Y20 Z0.3 F5000.0 M109 S{EXTRUDER_TEMP} G92 E0 G1 Z1.0 F3000 G1 X2 Y20 Z0.3 F5000.0 G1 X2 Y200.0 Z0.3 F1500.0 E15 G1 X2 Y200.0 Z0.4 F5000.0 G1 X2 Y20 Z0.4 F1500.0 E30 G92 E0 G1 Z1.0 F3000 [gcode_macro END_PRINT] gcode = M104 T0 S0 M104 T1 S0 M140 S0 G92 E1 G1 E-1 F300 G28 X0 Y0 M84 [gcode_macro G29] gcode = BED_MESH_CALIBRATE [gcode_macro CANCEL_PRINT] description = Cancel the actual running print rename_existing = CANCEL_PRINT_BASE gcode = TURN_OFF_HEATERS CANCEL_PRINT_BASE [gcode_macro PAUSE] rename_existing = BASE_PAUSE gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK M104 S0 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro RESUME] rename_existing = BASE_RESUME variable_zhop = 0 variable_etemp = 0 gcode = {% set e = params.E|default(2.5)|int %} {% if printer['pause_resume'].is_paused|int == 1 %} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} {% if etemp > 0 %} M109 S{etemp|int} {% endif %} RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 G91 M83 {% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %} G1 Z{zhop * -1} E{e} F900 {% else %} G1 Z{zhop * -1} F900 {% endif %} RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60 BASE_RESUME {% endif %} [gcode_macro M600] gcode = CHANGE_FILAMENT [gcode_macro M601] gcode = CHANGE_FILAMENT [gcode_macro CHANGE_FILAMENT] gcode = {% set z = params.Z|default(10)|int %} {% if printer['pause_resume'].is_paused|int == 0 %} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0 SAVE_GCODE_STATE NAME=PAUSE BASE_PAUSE {% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} G91 G1 Z{z} F900 {% else %} { action_respond_info("Pause zhop exceeds maximum Z height.") } SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0 {% endif %} G90 G1 X{printer.toolhead.axis_maximum.x/2} Y{printer.toolhead.axis_minimum.y+5} F6000 SAVE_GCODE_STATE NAME=PAUSEPARK ,M104 S0 G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 SET_IDLE_TIMEOUT TIMEOUT=43200 {% endif %} [gcode_macro UNLOAD_FILAMENT] description = Retrait du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=unload_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Retrait du filament..." G91 G0 E2 F400 G0 E-5 F800 G0 E-70 F800 RESTORE_GCODE_STATE NAME=unload_state {% endif %} [gcode_macro LOAD_FILAMENT] description = Chargement du filament gcode = {% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} SAVE_GCODE_STATE NAME=load_state {% if printer.extruder.temperature < 200 %} RESPOND MSG="Chauffe..." M109 S200 {% endif %} RESPOND MSG="Chargement du filament..." G91 G0 E70 F300 G0 E20 F200 M400 RESTORE_GCODE_STATE NAME=load_state {% endif %} [gcode_macro CALIBRATION_PID_BED_60] description = PID Plateau gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID du plateau en cours..." PID_CALIBRATE HEATER=heater_bed TARGET={params.TEMP|default(60)} G28 SAVE_CONFIG {% endif %} [gcode_macro CALIBRATION_PID_HOTEND_200] description = PID Hotend gcode = {% if printer.idle_timeout.state == "Printing" %} RESPOND TYPE=error MSG="Impossible de lancer cette macro actuellement !" {% else %} G28 G1 Z50 F1500 RESPOND MSG="PID de la buse en cours..." PID_CALIBRATE HEATER=extruder TARGET={params.TEMP|default(200)} G28 SAVE_CONFIG {% endif %} [gcode_macro SAUVEGARDER] description = Sauvegarder la configuration gcode = SAVE_CONFIG [gcode_macro M201] description = Sets maximum accelleration. Usage: M201 [X<accel>] [Y<accel>] gcode = {% if 'X' in params or 'Y' in params %} {% set accel = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel * 0.5} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M203] description = Sets maximum velocity Usage: M203 [X<speed>] [Y<speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT VELOCITY={speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro M204] description = Sets maximum accelleration. Usage: M204 [S<accel>] [P<accel> T<accel>] rename_existing = M204.1 gcode = {% set f = params.F|default(0.5)|float %} {% if 'S' in params %} {% set s = params.S|float %} SET_VELOCITY_LIMIT ACCEL={s} ACCEL_TO_DECEL={ s * f } {% else %} {% if 'P' in params %} {% set p = params.P|float %} {% if 'T' in params %} {% set t = params.T|float %} {% if p < t %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% else %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% else %} SET_VELOCITY_LIMIT ACCEL={p} ACCEL_TO_DECEL={ p * f } {% endif %} {% elif 'T' in params %} {% set t = params.T|float %} SET_VELOCITY_LIMIT ACCEL={t} ACCEL_TO_DECEL={ t * f } {% endif %} {% endif %} [gcode_macro M205] description = Sets square corner velocity Usage: M205 [X<corner_speed>] [Y<corner_speed>] gcode = {% if 'X' in params or 'Y' in params %} {% set corner_speed = (params.X|default(params.Y)|float, params.Y|default(params.X)|float)|min %} SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY={corner_speed} {% else %} SET_VELOCITY_LIMIT {% endif %} [gcode_macro ADXL_TEST] description = ADXL Test gcode = ACCELEROMETER_QUERY [gcode_macro ADXL_NOISE] description = Measure Accelerometer Noise gcode = MEASURE_AXES_NOISE [gcode_macro ADXL_AXE_X] description = Measure X axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=X [gcode_macro ADXL_AXE_Y] description = Measure Y axis resonances gcode = G28 M400 SHAPER_CALIBRATE AXIS=Y [gcode_macro SECURITY_OFFSET] description = Apply a 2mm Safety Offset gcode = SET_GCODE_OFFSET Z=+2 RESPOND MSG="Safety Offset applied!" [mcu] serial = /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 restart_method = command [stepper_x] step_pin = PE3 dir_pin = PE2 enable_pin = !PE4 microsteps = 16 rotation_distance = 40 endstop_pin = !PA15 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_y] step_pin = PE0 dir_pin = !PB9 enable_pin = !PE1 microsteps = 16 rotation_distance = 40 endstop_pin = !PA12 position_endstop = 0 position_max = 235 homing_speed = 50 [stepper_z] step_pin = PB5 dir_pin = !PB4 enable_pin = !PB8 microsteps = 16 rotation_distance = 8 endstop_pin = !PA11 position_endstop = 0 position_min = -5 position_max = 250 [extruder] step_pin = PD6 dir_pin = !PD3 enable_pin = !PB3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.157 min_extrude_temp = 185 nozzle_diameter = 0.400 filament_diameter = 1.750 heater_pin = PC3 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC1 min_temp = 5 max_temp = 260 max_extrude_only_distance = 950.0 max_extrude_only_velocity = 200 max_extrude_only_accel = 2750 max_extrude_cross_section = 5 pressure_advance = 0.065 pressure_advance_smooth_time = 0.040 control = pid pid_kp = 22.501 pid_ki = 0.843 pid_kd = 150.192 [extruder_stepper belted_extruder] extruder = extruder step_pin = PA6 dir_pin = !PA1 enable_pin = !PA3 full_steps_per_rotation = 200 microsteps = 16 rotation_distance = 7.952 [heater_bed] heater_pin = PA0 sensor_type = EPCOS 100K B57560G104F sensor_pin = PC0 min_temp = 5 max_temp = 100 control = pid pid_kp = 62.805 pid_ki = 1.055 pid_kd = 935.009 [fan] pin = PB1 [printer] kinematics = cartesian max_velocity = 300 max_accel = 2400 max_accel_to_decel = 1200 square_corner_velocity = 5 max_z_velocity = 10 max_z_accel = 100 [input_shaper] shaper_freq_x = 101.8 shaper_type_x = mzv shaper_freq_y = 38.4 shaper_type_y = mzv [safe_z_home] home_xy_position = 115,115 speed = 100.0 z_hop = 10.0 z_hop_speed = 10.0 [firmware_retraction] retract_length = 8 retract_speed = 35 unretract_extra_length = 0 unretract_speed = 25 [filament_switch_sensor E0] pause_on_runout = True switch_pin = PA4 [filament_switch_sensor E1] pause_on_runout = True switch_pin = PE6 [temperature_sensor PiTemp] sensor_type = temperature_host sensor_path = /sys/class/thermal/thermal_zone0/temp [temperature_sensor mcu_temp] sensor_type = temperature_mcu min_temp = 0 max_temp = 90 [bed_mesh] speed = 80 horizontal_move_z = 8 mesh_min = 50,50 mesh_max = 180, 210 probe_count = 5,5 fade_start = 1.0 fade_end = 10 mesh_pps = 2,2 [virtual_sdcard] path = /home/pi/printer_data/gcodes/ [display_status] [bed_screws] screw1 = 20,20 screw1_name = Front left screw screw2 = 20,220 screw2_name = Rear left screw screw3 = 220,220 screw3_name = Rear right screw screw4 = 220,20 screw4_name = Front right screw [bed_mesh default] version = 1 points = -0.145000, 0.077500, 0.020000, -0.026250, -0.007500 -0.085000, 0.067500, 0.051250, -0.012500, -0.038750 -0.126250, 0.025000, 0.005000, -0.035000, -0.057500 -0.183750, -0.048750, -0.032500, -0.078750, -0.085000 -0.321250, -0.142500, -0.172500, -0.182500, -0.170000 x_count = 5 y_count = 5 mesh_x_pps = 2 mesh_y_pps = 2 algo = lagrange tension = 0.2 min_x = 50.00000000000001 max_x = 180.0 min_y = 50.01 max_y = 210.0 ======================= Unhandled exception during connect Traceback (most recent call last): File "/home/loic/klipper/klippy/klippy.py", line 175, in _connect self._read_config() File "/home/loic/klipper/klippy/klippy.py", line 141, in _read_config self.load_object(config, section_config.get_name(), None) File "/home/loic/klipper/klippy/klippy.py", line 130, in load_object self.objects[section] = init_func(config.getsection(section)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 64, in load_config return SaveVariables(config) ^^^^^^^^^^^^^^^^^^^^^ File "/home/loic/klipper/klippy/extras/save_variables.py", line 16, in __init__ open(self.filename, "w").close() ^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' webhooks client 547847674448: New connection webhooks client 547847674448: Client info {'program': 'Moonraker', 'version': 'v0.8.0-286-gf44fc4b'} monnraker Citation -------------------- Log Start | Thu Jan 25 18:04:33 2024 -------------------- data_path: /home/loic/printer_data is_default_data_path: False config_file: /home/loic/printer_data/config/moonraker.conf startup_warnings: [] verbose: False debug: False asyncio_debug: False is_backup_config: False is_python_package: False instance_uuid: 51585d1c6c594e73bd87dca0790b8d2d unix_socket_path: /home/loic/printer_data/comms/moonraker.sock software_version: v0.8.0-286-gf44fc4b git_branch: master git_remote: origin git_repo_url: https://github.com/Arksine/moonraker.git modified_files: [] unofficial_components: [] log_file: /home/loic/printer_data/logs/moonraker.log python_version: 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] launch_args: /home/loic/moonraker-env/bin/python /home/loic/moonraker/moonraker/moonraker.py -d /home/loic/printer_data msgspec_enabled: False uvloop_enabled: False #################### Moonraker Configuration #################### [server] host = 0.0.0.0 port = 7125 klippy_uds_address = /home/loic/printer_data/comms/klippy.sock [authorization] trusted_clients = 10.0.0.0/8 127.0.0.0/8 169.254.0.0/16 172.16.0.0/12 192.168.0.0/16 FE80::/10 ::1/128 cors_domains = *.lan *.local *://localhost *://localhost:* *://my.mainsail.xyz *://app.fluidd.xyz [octoprint_compat] [history] [update_manager] channel = dev refresh_interval = 168 [update_manager mainsail] type = web channel = stable repo = mainsail-crew/mainsail path = ~/mainsail [update_manager moonraker-obico] type = git_repo path = /home/loic/moonraker-obico origin = https://github.com/TheSpaghettiDetective/moonraker-obico.git env = /home/loic/moonraker-obico/../moonraker-obico-env/bin/python requirements = requirements.txt install_script = install.sh managed_services = moonraker-obico ################################################################# All Configuration Files: /home/loic/printer_data/config/moonraker.conf /home/loic/printer_data/config/moonraker-obico-update.cfg ################################################################# Database Versions: pylmdb = 1.4.1, lmdb = (0, 9, 29) Unsafe Shutdown Count: 1 System Info: ***python*** version: (3, 11, 2, 'final', 0) version_string: 3.11.2 (main, Mar 13 2023, 12:18:29) [GCC 12.2.0] ***cpu_info*** cpu_count: 4 bits: 64bit processor: aarch64 cpu_desc: serial_number: 10000000524576af hardware_desc: model: Raspberry Pi 4 Model B Rev 1.5 total_memory: 7998716 memory_units: kB ***sd_info*** manufacturer_id: 27 manufacturer: Unknown oem_id: 5048 product_name: SD128 product_revision: 6.0 serial_number: da8fcd08 manufacturer_date: 12/2022 capacity: 116.1 GiB total_bytes: 124675686400 ***distribution*** name: Debian GNU/Linux 12 (bookworm) id: debian version: 12 version_parts: {'major': '12', 'minor': '', 'build_number': ''} like: codename: bookworm release_info: {} ***virtualization*** virt_type: none virt_identifier: none ***network*** ***canbus*** ***Allowed Services*** klipper_mcu webcamd MoonCord KlipperScreen moonraker-telegram-bot moonraker-obico sonar crowsnest octoeverywhere ratos-configurator Systemd unit moonraker.service: unit_name: moonraker.service is_default: True manager: systemd Properties: **Requires=['-.mount', 'sysinit.target', 'system.slice', 'network-online.target'] **After=['network-online.target', 'system.slice', 'basic.target', 'sysinit.target', 'systemd-journald.socket', '-.mount'] **SupplementaryGroups=['moonraker-admin'] **EnvironmentFiles=/home/loic/printer_data/systemd/moonraker.env **ExecStart=/home/loic/moonraker-env/bin/python $MOONRAKER_ARGS **WorkingDirectory=/home/loic/moonraker **FragmentPath=/etc/systemd/system/moonraker.service **Description=API Server for Klipper SV1 **User=loic Systemd unit klipper.service: unit_name: klipper.service is_default: True manager: systemd Properties: **Requires=['-.mount', 'sysinit.target', 'system.slice'] **After=['sysinit.target', 'basic.target', 'system.slice', '-.mount', 'systemd-journald.socket', 'network-online.target'] **SupplementaryGroups=[] **EnvironmentFiles=/home/loic/printer_data/systemd/klipper.env **ExecStart=/home/loic/klippy-env/bin/python $KLIPPER_ARGS **WorkingDirectory=/home/loic/klipper **FragmentPath=/etc/systemd/system/klipper.service **Description=Klipper 3D Printer Firmware SV1 **User=loic Git Repo moonraker: No warnings detected Git Repo klipper: No warnings detected Klipper Version: v0.12.0-93-g43a9685c Git Repo moonraker-obico: No warnings detected 2024-01-25 19:04:33,291 [authorization.py:_check_trusted_connection()] - Trusted Connection Detected, IP: 192.168.1.18 2024-01-25 19:04:33,292 [application.py:log_request()] - 101 GET /websocket (192.168.1.18) [_TRUSTED_USER_] 1.57ms 2024-01-25 19:04:33,293 [websockets.py:open()] - Websocket Opened: ID: 548153133712, Proxied: True, User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36, Host Name: 192.168.1.82 2024-01-25 19:04:33,970 [websockets.py:_handle_identify()] - Websocket 548153133712 Client Identified - Name: mainsail, Version: 2.9.1, Type: web 2024-01-25 19:05:14,752 [application.py:prepare()] - Upload Request Received from 192.168.1.18 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryKjYbnIpAAJgrol06 2024-01-25 19:05:14,774 [application.py:post()] - Processing Uploaded File: WanhaoD12 (1).zip 2024-01-25 19:05:14,784 [application.py:log_request()] - 201 POST /server/files/upload (192.168.1.18) [_TRUSTED_USER_] 33.51ms 2024-01-25 19:05:19,349 [websockets.py:on_close()] - Websocket Closed: ID: 548153133712 Close Code: 1001, Close Reason: None, Pong Time Elapsed: 6.04 2024-01-25 19:05:19,762 [application.py:log_request()] - 101 GET /websocket (192.168.1.18) [_TRUSTED_USER_] 1.32ms 2024-01-25 19:05:19,762 [websockets.py:open()] - Websocket Opened: ID: 548154487376, Proxied: True, User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36, Host Name: 192.168.1.82 2024-01-25 19:05:19,811 [websockets.py:_handle_identify()] - Websocket 548154487376 Client Identified - Name: mainsail, Version: 2.9.1, Type: web 2024-01-25 19:05:44,751 [application.py:prepare()] - Upload Request Received from 192.168.1.18 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryGolcKEwShlAkaVZd 2024-01-25 19:05:44,764 [application.py:post()] - Processing Uploaded File: variables.cfg 2024-01-25 19:05:44,771 [application.py:log_request()] - 201 POST /server/files/upload (192.168.1.18) [_TRUSTED_USER_] 20.79ms 2024-01-25 19:05:51,962 [application.py:prepare()] - Upload Request Received from 192.168.1.18 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryA7ETShKL7QcgNua6 2024-01-25 19:05:51,979 [application.py:post()] - Processing Uploaded File: variables.cfg 2024-01-25 19:05:51,988 [application.py:log_request()] - 201 POST /server/files/upload (192.168.1.18) [_TRUSTED_USER_] 27.96ms 2024-01-25 19:05:52,011 [klippy_connection.py:_on_connection_closed()] - Klippy Connection Removed 2024-01-25 19:05:53,269 [klippy_connection.py:_do_connect()] - Klippy Connection Established 2024-01-25 19:05:53,570 [klippy_connection.py:_request_initial_subscriptions()] - Webhooks Subscribed 2024-01-25 19:05:53,571 [klippy_connection.py:_request_initial_subscriptions()] - GCode Output Subscribed 2024-01-25 19:05:53,572 [klippy_connection.py:_check_ready()] - Internal error during connect: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' Once the underlying issue is corrected, use the "RESTART" command to reload the config and restart the host software. Printer is halted 2024-01-25 19:05:55,580 [file_manager.py:get_file_list()] - Updating File List <gcodes>... 2024-01-25 19:14:50,843 [application.py:prepare()] - Upload Request Received from 192.168.1.18 Content-Type: multipart/form-data; boundary=----WebKitFormBoundarydcZFf3qovKvILeOK 2024-01-25 19:14:50,858 [application.py:post()] - Processing Uploaded File: printer.cfg 2024-01-25 19:14:50,868 [application.py:log_request()] - 201 POST /server/files/upload (192.168.1.18) [_TRUSTED_USER_] 25.82ms 2024-01-25 19:14:50,894 [klippy_connection.py:_on_connection_closed()] - Klippy Connection Removed 2024-01-25 19:14:52,156 [klippy_connection.py:_do_connect()] - Klippy Connection Established 2024-01-25 19:14:52,454 [klippy_connection.py:_request_initial_subscriptions()] - Webhooks Subscribed 2024-01-25 19:14:52,455 [klippy_connection.py:_request_initial_subscriptions()] - GCode Output Subscribed 2024-01-25 19:14:52,456 [klippy_connection.py:_check_ready()] - Include file '/home/loic/printer_data/config/varables.cfg' does not exist Once the underlying issue is corrected, use the "RESTART" command to reload the config and restart the host software. Printer is halted 2024-01-25 19:14:54,712 [file_manager.py:get_file_list()] - Updating File List <gcodes>... 2024-01-25 19:15:39,256 [application.py:prepare()] - Upload Request Received from 192.168.1.18 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryCDSpLVqJ88q0W2N5 2024-01-25 19:15:39,270 [application.py:post()] - Processing Uploaded File: printer.cfg 2024-01-25 19:15:39,278 [application.py:log_request()] - 201 POST /server/files/upload (192.168.1.18) [_TRUSTED_USER_] 22.46ms 2024-01-25 19:15:39,299 [klippy_connection.py:_on_connection_closed()] - Klippy Connection Removed 2024-01-25 19:15:40,558 [klippy_connection.py:_do_connect()] - Klippy Connection Established 2024-01-25 19:15:40,856 [klippy_connection.py:_request_initial_subscriptions()] - Webhooks Subscribed 2024-01-25 19:15:40,858 [klippy_connection.py:_request_initial_subscriptions()] - GCode Output Subscribed 2024-01-25 19:15:40,859 [klippy_connection.py:_check_ready()] - Internal error during connect: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' Once the underlying issue is corrected, use the "RESTART" command to reload the config and restart the host software. Printer is halted 2024-01-25 19:15:42,614 [file_manager.py:get_file_list()] - Updating File List <gcodes>... 2024-01-25 19:19:15,887 [application.py:prepare()] - Upload Request Received from 192.168.1.18 Content-Type: multipart/form-data; boundary=----WebKitFormBoundarymllOifT6KshvCilR 2024-01-25 19:19:15,904 [application.py:post()] - Processing Uploaded File: printer.cfg 2024-01-25 19:19:15,914 [application.py:log_request()] - 201 POST /server/files/upload (192.168.1.18) [_TRUSTED_USER_] 28.90ms 2024-01-25 19:19:15,937 [klippy_connection.py:_on_connection_closed()] - Klippy Connection Removed 2024-01-25 19:19:17,197 [klippy_connection.py:_do_connect()] - Klippy Connection Established 2024-01-25 19:19:17,497 [klippy_connection.py:_request_initial_subscriptions()] - Webhooks Subscribed 2024-01-25 19:19:17,498 [klippy_connection.py:_request_initial_subscriptions()] - GCode Output Subscribed 2024-01-25 19:19:17,499 [klippy_connection.py:_check_ready()] - Internal error during connect: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' Once the underlying issue is corrected, use the "RESTART" command to reload the config and restart the host software. Printer is halted 2024-01-25 19:19:19,757 [file_manager.py:get_file_list()] - Updating File List <gcodes>... 2024-01-25 19:19:58,923 [application.py:prepare()] - Upload Request Received from 192.168.1.18 Content-Type: multipart/form-data; boundary=----WebKitFormBoundarybS3wxmwxebRl7ZCp 2024-01-25 19:19:58,940 [application.py:post()] - Processing Uploaded File: printer.cfg 2024-01-25 19:19:58,951 [application.py:log_request()] - 201 POST /server/files/upload (192.168.1.18) [_TRUSTED_USER_] 29.58ms 2024-01-25 19:19:58,973 [klippy_connection.py:_on_connection_closed()] - Klippy Connection Removed 2024-01-25 19:20:00,234 [klippy_connection.py:_do_connect()] - Klippy Connection Established 2024-01-25 19:20:00,531 [klippy_connection.py:_request_initial_subscriptions()] - Webhooks Subscribed 2024-01-25 19:20:00,532 [klippy_connection.py:_request_initial_subscriptions()] - GCode Output Subscribed 2024-01-25 19:20:00,534 [klippy_connection.py:_check_ready()] - Internal error during connect: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' Once the underlying issue is corrected, use the "RESTART" command to reload the config and restart the host software. Printer is halted 2024-01-25 19:20:02,791 [file_manager.py:get_file_list()] - Updating File List <gcodes>... 2024-01-25 19:21:04,294 [application.py:prepare()] - Upload Request Received from 192.168.1.18 Content-Type: multipart/form-data; boundary=----WebKitFormBoundarym7uglNZd5XweIIZC 2024-01-25 19:21:04,312 [application.py:post()] - Processing Uploaded File: printer.cfg 2024-01-25 19:21:04,322 [application.py:log_request()] - 201 POST /server/files/upload (192.168.1.18) [_TRUSTED_USER_] 29.73ms 2024-01-25 19:21:04,345 [klippy_connection.py:_on_connection_closed()] - Klippy Connection Removed 2024-01-25 19:21:05,605 [klippy_connection.py:_do_connect()] - Klippy Connection Established 2024-01-25 19:21:05,905 [klippy_connection.py:_request_initial_subscriptions()] - Webhooks Subscribed 2024-01-25 19:21:05,906 [klippy_connection.py:_request_initial_subscriptions()] - GCode Output Subscribed 2024-01-25 19:21:05,908 [klippy_connection.py:_check_ready()] - Internal error during connect: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' Once the underlying issue is corrected, use the "RESTART" command to reload the config and restart the host software. Printer is halted 2024-01-25 19:21:07,666 [file_manager.py:get_file_list()] - Updating File List <gcodes>... 2024-01-25 19:27:19,567 [websockets.py:on_close()] - Websocket Closed: ID: 548154487376 Close Code: 1001, Close Reason: None, Pong Time Elapsed: 9.79 2024-01-25 19:27:19,783 [application.py:log_request()] - 101 GET /websocket (192.168.1.18) [_TRUSTED_USER_] 2.98ms 2024-01-25 19:27:19,783 [websockets.py:open()] - Websocket Opened: ID: 548152860048, Proxied: True, User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36, Host Name: 192.168.1.82 2024-01-25 19:27:19,798 [websockets.py:_handle_identify()] - Websocket 548152860048 Client Identified - Name: mainsail, Version: 2.9.1, Type: web 2024-01-25 19:27:21,094 [websockets.py:on_close()] - Websocket Closed: ID: 548152860048 Close Code: 1001, Close Reason: None, Pong Time Elapsed: 1.31 2024-01-25 19:27:21,361 [application.py:log_request()] - 101 GET /websocket (192.168.1.18) [_TRUSTED_USER_] 1.27ms 2024-01-25 19:27:21,361 [websockets.py:open()] - Websocket Opened: ID: 548154385168, Proxied: True, User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36, Host Name: 192.168.1.82 2024-01-25 19:27:21,387 [websockets.py:_handle_identify()] - Websocket 548154385168 Client Identified - Name: mainsail, Version: 2.9.1, Type: web 2024-01-25 19:31:05,695 [application.py:prepare()] - Upload Request Received from 192.168.1.18 Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryA0BBC23CmB8dyxAv 2024-01-25 19:31:05,714 [application.py:post()] - Processing Uploaded File: printer.cfg 2024-01-25 19:31:05,724 [application.py:log_request()] - 201 POST /server/files/upload (192.168.1.18) [_TRUSTED_USER_] 31.08ms 2024-01-25 19:31:05,750 [klippy_connection.py:_on_connection_closed()] - Klippy Connection Removed 2024-01-25 19:31:07,009 [klippy_connection.py:_do_connect()] - Klippy Connection Established 2024-01-25 19:31:07,309 [klippy_connection.py:_request_initial_subscriptions()] - Webhooks Subscribed 2024-01-25 19:31:07,310 [klippy_connection.py:_request_initial_subscriptions()] - GCode Output Subscribed 2024-01-25 19:31:07,311 [klippy_connection.py:_check_ready()] - Internal error during connect: [Errno 2] No such file or directory: '/home/pi/printer_data/config/variables.cfg' Once the underlying issue is corrected, use the "RESTART" command to reload the config and restart the host software. Printer is halted 2024-01-25 19:31:09,819 [file_manager.py:get_file_list()] - Updating File List <gcodes>... 2024-01-25 19:31:29,493 [machine.py:_find_public_ip()] - Detected Local IP: 192.168.1.82 2024-01-25 19:31:49,520 [machine.py:_find_public_ip()] - Detected Local IP: 192.168.1.82 2024-01-25 19:33:29,656 [machine.py:_find_public_ip()] - Detected Local IP: 192.168.1.82 2024-01-25 19:33:39,669 [machine.py:_find_public_ip()] - Detected Local IP: 192.168.1.82 2024-01-25 19:44:00,581 [machine.py:_find_public_ip()] - Detected Local IP: 192.168.1.82 2024-01-25 19:44:10,600 [machine.py:_find_public_ip()] - Detected Local IP: 192.168.1.82 2024-01-25 19:51:31,292 [machine.py:_find_public_ip()] - Detected Local IP: 192.168.1.82 2024-01-25 19:51:41,308 [machine.py:_find_public_ip()] - Detected Local IP: 192.168.1.82 2024-01-25 19:51:51,325 [machine.py:_find_public_ip()] - Detected Local IP: 192.168.1.82 2024-01-25 19:52:01,339 [machine.py:_find_public_ip()] - Detected Local IP: 192.168.1.82 2024-01-25 19:52:41,387 [machine.py:_find_public_ip()] - Detected Local IP: 192.168.1.82 2024-01-25 19:52:51,398 [machine.py:_find_public_ip()] - Detected Local IP: 192.168.1.82 2024-01-25 19:53:01,414 [machine.py:_find_public_ip()] - Detected Local IP: 192.168.1.82 2024-01-25 19:53:11,426 [machine.py:_find_public_ip()] - Detected Local IP: 192.168.1.82 2024-01-25 19:56:02,223 [websockets.py:on_close()] - Websocket Closed: ID: 548154385168 Close Code: 1001, Close Reason: None, Pong Time Elapsed: 0.85 2024-01-25 19:56:12,142 [application.py:log_request()] - 101 GET /websocket (192.168.1.18) [_TRUSTED_USER_] 3.08ms 2024-01-25 19:56:12,143 [websockets.py:open()] - Websocket Opened: ID: 548153008144, Proxied: True, User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36, Host Name: 192.168.1.82 2024-01-25 19:56:12,154 [websockets.py:_handle_identify()] - Websocket 548153008144 Client Identified - Name: mainsail, Version: 2.9.1, Type: web c'est mieux comme ca Il y a 19 heures, pommeverte a dit : Salut, C'est une erreur de saisie de ma part. non. Ton fichier est dans /home/loic et non dans /home/pi c'est ce que j'ai fais sinon je peut mettre octoprint Modifié (le) Janvier 26 par fran6p Lien vers le commentaire Partager sur d’autres sites More sharing options...
pommeverte Posté(e) Janvier 25 Partager Posté(e) Janvier 25 (modifié) il y a 46 minutes, darkness a dit : c'est mieux comme ca Heuuuu pas vraiment, puisque: Le 23/01/2024 at 19:17, fran6p a dit : J'ai édité ton post pour placer le journal dans une balise citation. Why? Sinon c'est indigeste et ne facilite pas la lecture. tu aurais dû insérer ton texte dans une citation (icône guillemets) ou que tu fournisses les fichiers printer.cfg et .log en pièces jointes (moins pratique pour lire directement ). Tu as de la chance, il te reste 11h pour éditer ton précédent message ( icône "..." en haut à droite du message puis sur Editer) et faire la modif. il y a 46 minutes, darkness a dit : c'est ce que j'ai fait quoi? appliqué la technique de la terre brûlée . Tu as tout supprimé alors qu'il suffisait simplement de remplacer pi par loic dans les chemins: [virtual_sdcard] path = /home/pi/printer_data/gcodes/ [save_variables] filename = /home/pi/printer_data/config/variables.cfg Modifié (le) Janvier 25 par pommeverte 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Savate Posté(e) Janvier 26 Partager Posté(e) Janvier 26 Il y a 9 heures, darkness a dit : sinon je peut mettre octoprint ce qui ne changera rien ... à ton problème dans le fichier printer.cfg les # indiquent que la ligne est en commentaire ... donc qu'elle ne sera pas utilisée donc tu doit mettre [virtual_sdcard] path: /home/loic/printer_data/gcodes/ [save_variables] filename: /home/loic/printer_data/config/variables.cfg 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
fran6p Posté(e) Janvier 26 Partager Posté(e) Janvier 26 Il y a 18 heures, darkness a dit : ok je te fais ca Oui Il y a 18 heures, darkness a dit : c'est mieux comme ca Non. Là c'est «mal» Pour d'aussi longs pavés de textes, soit tu fais comme j'ai fait en éditant ton post pour inclure le contenu des journaux dans un bloc citation, soit tu joins les journaux en PJ avec le post (en les renommant (ajout / remplacement de l'extension .log par .txt) sinon c'est illisible tel quel (et pour ma part, ça ne me donne pas envie d'intervenir). Lien vers le commentaire Partager sur d’autres sites More sharing options...
darkness Posté(e) Janvier 26 Auteur Partager Posté(e) Janvier 26 merci d'avoir pris le temps de me répondre Lien vers le commentaire Partager sur d’autres sites More sharing options...
Savate Posté(e) Janvier 26 Partager Posté(e) Janvier 26 il y a 10 minutes, darkness a dit : merci d'avoir pris le temps de me répondre mais est-ce que ça fonctionne ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant