Aller au contenu

Messages recommandés

Posté(e)
  Le 28/09/2023 at 08:56, pommeverte a dit :

Par contre, je pense que tu as allègrement zappé l'étape de flashage du firmware klipper.bin en copiant le fichier sur une carte µSD que tu glisseras dans le lecteur de la carte-mère. A la mise sous tension, le firmware se flashera automatiquement 😉. Tu peux utiliser des logiciels comme filezilla,WinSCP, MobaXterm,... pour récupérer le fichier ~/klipper/out/klipper.bin sur un ordinateur afin de faire la copie.

Dérouler  

Je n'est pas zappé cette étape a faire, j'ai bien flasher en le renommant klipper.bin en firmwar.bin comme indique le tuto suvi installer et configurer Klipper pour TOUTES les imprimantes 3D ! (Ender 3, CR-10, Anycubic, ...)
faut t'il le placer autre que sur la carte SD (juste pour etre sur)

Posté(e)

Tu n'avais pas à le renommer. Au cas où, tu pourrais le flasher à nouveau avec un nom différent (klipper.bin par exemple), au cas où lors du dernier flashage, le firmware portait le même nom (firmwar.bin) 🥴

Posté(e)
  Le 28/09/2023 at 17:18, RicoDarksky a dit :

firmwar.bin

Dérouler  

firmware.bin

🙂

Posté(e)
  Le 28/09/2023 at 08:30, Savate a dit :

tu peux joindre le fichier klipper.log (accessible à partir de l'écran d'erreur) il permettra de voir ce qui se passe et - peut-etre - ce qui ne va pas 🙂

Dérouler  

Si c'est bien KlipperScreen.log voici celui du 27/09 et 28/09

 

KlipperScreen.log.1-27-09.txtFetching info... KlipperScreen.log-28-09.txtFetching info...

  Le 28/09/2023 at 17:28, fran6p a dit :

firmware.bin

🙂

Dérouler  

oui désoler 

Posté(e)
  Le 28/09/2023 at 17:37, RicoDarksky a dit :

Si c'est bien KlipperScreen.log voici celui du 27/09 et 28/09

Dérouler  

non, non Klipper.log, c'est lui qui est important :

image.png.3d43a5ee64b286d541b15990cc053bd3.png

 

Posté(e) (modifié)

ok dsl

  Citation

===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Args: ['/home/biqu/klipper/klippy/klippy.py', '/home/biqu/printer_data/config/printer.cfg', '-I', '/home/biqu/printer_data/comms/klippy.serial', '-l', '/home/biqu/printer_data/logs/klippy.log', '-a', '/home/biqu/printer_data/comms/klippy.sock']
Git version: 'v0.11.0-277-g21b78429'
Branch: master
Remote: origin
Tracked URL: https://github.com/Klipper3d/klipper
CPU: 4 core ?
Python: '3.9.2 (default, Feb 28 2021, 17:03:44) \n[GCC 10.2.1 20210110]'
webhooks client 281473774845616: {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
=============== Log rollover at Fri Sep 29 07:09:49 2023 ===============
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
Unable to issue reset command on MCU 'mcu'
webhooks client 281473774845616: Disconnected
Restarting printer
Start printer at Fri Sep 29 07:17:22 2023 (1695971842.8 547.3)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
webhooks client 281473775706464: New connection
webhooks client 281473775706464: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
 

Dérouler  

 

Modifié (le) par RicoDarksky
Posté(e)
  Le 29/09/2023 at 07:07, RicoDarksky a dit :

ok dsl

Dérouler  

ls /dev/serial/by-path/* ou ls/dev/serial/by-id/* te donnent quelque chose ou pas ?

parce que dans les logs il ne trouve pas :

  Le 29/09/2023 at 07:07, RicoDarksky a dit :

mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'

Dérouler  

 

Posté(e)
  Le 29/09/2023 at 07:41, Savate a dit :

ls /dev/serial/by-path/* ou ls/dev/serial/by-id/* te donnent quelque chose ou pas ?

parce que dans les logs il ne trouve pas :

 

Dérouler  
  • ls /dev/serial/by-path/* ---> /dev/serial/by-path/platform-5310400.usb-usb-0:1:1.0-port0
  • ls/dev/serial/by-id/* ---> No such file or directory
Posté(e)

Salut,

Punaise, je n'ai même pas tilté:

  Le 26/09/2023 at 20:16, RicoDarksky a dit :

 avec la commande ls -l /dev/serial/by-path/ cela donne ca que je vais essayer on c'est jamais 😉

pour le fichier printer.cfg

 

 

Capture5.PNG

Dérouler  
  Le 26/09/2023 at 20:25, RicoDarksky a dit :

j'ai bien mis serial: /dev/serial/by-path/platform-5200000.usb-usb-0:1.2:1.0

Dérouler  

c'est serial: /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0 qu'il fallait tester et non mon exemple 🥴

Posté(e) (modifié)
  Le 29/09/2023 at 09:16, pommeverte a dit :

Salut,

Punaise, je n'ai même pas tilté:

c'est serial: /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0 qu'il fallait tester et non mon exemple 🥴

Dérouler  

exactement ce que j'ai fait mais idem 😟

  Citation

===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Args: ['/home/biqu/klipper/klippy/klippy.py', '/home/biqu/printer_data/config/printer.cfg', '-I', '/home/biqu/printer_data/comms/klippy.serial', '-l', '/home/biqu/printer_data/logs/klippy.log', '-a', '/home/biqu/printer_data/comms/klippy.sock']
Git version: 'v0.11.0-277-g21b78429'
Branch: master
Remote: origin
Tracked URL: https://github.com/Klipper3d/klipper
CPU: 4 core ?
Python: '3.9.2 (default, Feb 28 2021, 17:03:44) \n[GCC 10.2.1 20210110]'
webhooks client 281473774845616: {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
=============== Log rollover at Fri Sep 29 07:09:49 2023 ===============
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
Unable to issue reset command on MCU 'mcu'
webhooks client 281473774845616: Disconnected
Restarting printer
Start printer at Fri Sep 29 07:17:22 2023 (1695971842.8 547.3)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
webhooks client 281473775706464: New connection
webhooks client 281473775706464: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
Unable to issue reset command on MCU 'mcu'
webhooks client 281473775706464: Disconnected
Restarting printer
Start printer at Fri Sep 29 09:09:07 2023 (1695978547.7 7252.2)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/platform-5310400.usb-usb-0:1:1.0-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
webhooks client 281473781724496: New connection
webhooks client 281473781724496: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
Unable to issue reset command on MCU 'mcu'
webhooks client 281473781724496: Disconnected
Restarting printer
Start printer at Fri Sep 29 09:17:48 2023 (1695979068.3 7772.8)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/platform-5310400.usb-usb-0:1:1.0-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
webhooks client 281473774603376: New connection
webhooks client 281473774603376: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
Unable to issue reset command on MCU 'mcu'
webhooks client 281473774603376: Disconnected
Restarting printer
Start printer at Fri Sep 29 09:23:13 2023 (1695979393.0 8097.5)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
webhooks client 281473774823456: New connection
webhooks client 281473774823456: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
 

Dérouler  

 

Mais attent il veux absolument ce connecter sur serial = /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0 on dirait !!!! et non pas /dev/serial/by-path/platform-5310400.usb-usb-0:1:1.0-port0

Modifié (le) par RicoDarksky
Posté(e) (modifié)
  Le 29/09/2023 at 09:08, RicoDarksky a dit :
  • ls /dev/serial/by-path/* ---> /dev/serial/by-path/platform-5310400.usb-usb-0:1:1.0-port0
  • ls/dev/serial/by-id/* ---> No such file or directory
Dérouler  

/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0
ce n'est pas ce qui est marqué dans ton log

 

Modifié (le) par Savate
  • +1 1
Posté(e) (modifié)
  Le 29/09/2023 at 09:37, RicoDarksky a dit :

😱🥴😵‍💫 moi pommer la !

Dérouler  

dans le printer config tu as mis 

serial: /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0 

au lieu de 

serial: /dev/serial/by-path/platform-5310400.usb-usb-0:1:1.0-port0

le bleu étant ce que t'a remonté le ls /dev/serial/by-path/*

Modifié (le) par Savate
Posté(e) (modifié)
  Le 29/09/2023 at 09:37, RicoDarksky a dit :

😱🥴😵‍💫 moi pommer la !

Dérouler  

la c'est le bon dsl
 

  Citation

===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Args: ['/home/biqu/klipper/klippy/klippy.py', '/home/biqu/printer_data/config/printer.cfg', '-I', '/home/biqu/printer_data/comms/klippy.serial', '-l', '/home/biqu/printer_data/logs/klippy.log', '-a', '/home/biqu/printer_data/comms/klippy.sock']
Git version: 'v0.11.0-277-g21b78429'
Branch: master
Remote: origin
Tracked URL: https://github.com/Klipper3d/klipper
CPU: 4 core ?
Python: '3.9.2 (default, Feb 28 2021, 17:03:44) \n[GCC 10.2.1 20210110]'
webhooks client 281473774845616: {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
=============== Log rollover at Fri Sep 29 07:09:49 2023 ===============
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
Unable to issue reset command on MCU 'mcu'
webhooks client 281473774845616: Disconnected
Restarting printer
Start printer at Fri Sep 29 07:17:22 2023 (1695971842.8 547.3)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
webhooks client 281473775706464: New connection
webhooks client 281473775706464: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
Unable to issue reset command on MCU 'mcu'
webhooks client 281473775706464: Disconnected
Restarting printer
Start printer at Fri Sep 29 09:09:07 2023 (1695978547.7 7252.2)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/platform-5310400.usb-usb-0:1:1.0-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
webhooks client 281473781724496: New connection
webhooks client 281473781724496: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
Unable to issue reset command on MCU 'mcu'
webhooks client 281473781724496: Disconnected
Restarting printer
Start printer at Fri Sep 29 09:17:48 2023 (1695979068.3 7772.8)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/platform-5310400.usb-usb-0:1:1.0-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
webhooks client 281473774603376: New connection
webhooks client 281473774603376: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
Unable to issue reset command on MCU 'mcu'
webhooks client 281473774603376: Disconnected
Restarting printer
Start printer at Fri Sep 29 09:23:13 2023 (1695979393.0 8097.5)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
webhooks client 281473774823456: New connection
webhooks client 281473774823456: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
Unable to issue reset command on MCU 'mcu'
webhooks client 281473774823456: Disconnected
Restarting printer
Start printer at Fri Sep 29 09:30:37 2023 (1695979837.9 8542.4)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
webhooks client 281473781790368: New connection
webhooks client 281473781790368: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
Transition to shutdown state: Shutdown due to webhooks request
Dumping 20 requests for client 281473781790368
Received 8583.236198: b'{"id": 281473164246800, "method": "info", "params": {}}'
Received 8583.403079: b'{"id": 281473112857232, "method": "info", "params": {}}'
Received 8583.408688: b'{"id": 281473112254016, "method": "info", "params": {}}'
Received 8583.490542: b'{"id": 281473112857760, "method": "info", "params": {}}'
Received 8583.744619: b'{"id": 281473164243488, "method": "info", "params": {}}'
Received 8583.998563: b'{"id": 281473164243488, "method": "info", "params": {}}'
Received 8584.253350: b'{"id": 281473164243296, "method": "info", "params": {}}'
Received 8584.509639: b'{"id": 281473112254208, "method": "info", "params": {}}'
Received 8584.763812: b'{"id": 281473112255024, "method": "info", "params": {}}'
Received 8585.017887: b'{"id": 281473112255120, "method": "info", "params": {}}'
Received 8585.273629: b'{"id": 281473112863648, "method": "info", "params": {}}'
Received 8585.385685: b'{"id": 281473164243488, "method": "info", "params": {}}'
Received 8585.407497: b'{"id": 281473164246800, "method": "info", "params": {}}'
Received 8585.528281: b'{"id": 281473164243488, "method": "info", "params": {}}'
Received 8585.782230: b'{"id": 281473164246416, "method": "info", "params": {}}'
Received 8586.038179: b'{"id": 281473140685024, "method": "info", "params": {}}'
Received 8586.292512: b'{"id": 281473112863216, "method": "info", "params": {}}'
Received 8586.546836: b'{"id": 281473112863216, "method": "info", "params": {}}'
Received 8586.800816: b'{"id": 281473164463600, "method": "info", "params": {}}'
Received 8586.984421: b'{"id": 281473112198496, "method": "emergency_stop", "params": {}}'
Reactor garbage collection: (8575.853171463, 0.0, 0.0)
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
Unable to issue reset command on MCU 'mcu'
webhooks client 281473781790368: Disconnected
Restarting printer
Start printer at Fri Sep 29 09:31:39 2023 (1695979899.5 8604.0)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
webhooks client 281473774601744: New connection
webhooks client 281473774601744: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
Unable to issue reset command on MCU 'mcu'
webhooks client 281473774601744: Disconnected
Restarting printer
Start printer at Fri Sep 29 09:38:45 2023 (1695980325.8 9030.3)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
webhooks client 281473774597120: New connection
webhooks client 281473774597120: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
 

Dérouler  

 

Modifié (le) par RicoDarksky
Posté(e)
  Le 29/09/2023 at 09:41, RicoDarksky a dit :

mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'

Dérouler  

non, toujours pas la dernière ligne d'erreur dans ton log indique toujours le mauvais device 

Posté(e)

A force de modifier je perd le fil bon la ce que je suis sur dans printer.cfg c'est ca !

Capture.PNG.d29a75813cb42bccc04bb59e16d3f528.PNG

et mon dernier .log est 

  Citation

===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Args: ['/home/biqu/klipper/klippy/klippy.py', '/home/biqu/printer_data/config/printer.cfg', '-I', '/home/biqu/printer_data/comms/klippy.serial', '-l', '/home/biqu/printer_data/logs/klippy.log', '-a', '/home/biqu/printer_data/comms/klippy.sock']
Git version: 'v0.11.0-277-g21b78429'
Branch: master
Remote: origin
Tracked URL: https://github.com/Klipper3d/klipper
CPU: 4 core ?
Python: '3.9.2 (default, Feb 28 2021, 17:03:44) \n[GCC 10.2.1 20210110]'
webhooks client 281473774845616: {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
=============== Log rollover at Fri Sep 29 07:09:49 2023 ===============
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
Unable to issue reset command on MCU 'mcu'
webhooks client 281473774845616: Disconnected
Restarting printer
Start printer at Fri Sep 29 07:17:22 2023 (1695971842.8 547.3)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
webhooks client 281473775706464: New connection
webhooks client 281473775706464: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/usb-1a86_USB_Serial-if00-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/usb-1a86_USB_Serial-if00-port0'
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
Unable to issue reset command on MCU 'mcu'
webhooks client 281473775706464: Disconnected
Restarting printer
Start printer at Fri Sep 29 09:09:07 2023 (1695978547.7 7252.2)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/platform-5310400.usb-usb-0:1:1.0-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
webhooks client 281473781724496: New connection
webhooks client 281473781724496: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
Unable to issue reset command on MCU 'mcu'
webhooks client 281473781724496: Disconnected
Restarting printer
Start printer at Fri Sep 29 09:17:48 2023 (1695979068.3 7772.8)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/platform-5310400.usb-usb-0:1:1.0-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
webhooks client 281473774603376: New connection
webhooks client 281473774603376: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
Unable to issue reset command on MCU 'mcu'
webhooks client 281473774603376: Disconnected
Restarting printer
Start printer at Fri Sep 29 09:23:13 2023 (1695979393.0 8097.5)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
webhooks client 281473774823456: New connection
webhooks client 281473774823456: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
Unable to issue reset command on MCU 'mcu'
webhooks client 281473774823456: Disconnected
Restarting printer
Start printer at Fri Sep 29 09:30:37 2023 (1695979837.9 8542.4)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
webhooks client 281473781790368: New connection
webhooks client 281473781790368: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
Transition to shutdown state: Shutdown due to webhooks request
Dumping 20 requests for client 281473781790368
Received 8583.236198: b'{"id": 281473164246800, "method": "info", "params": {}}'
Received 8583.403079: b'{"id": 281473112857232, "method": "info", "params": {}}'
Received 8583.408688: b'{"id": 281473112254016, "method": "info", "params": {}}'
Received 8583.490542: b'{"id": 281473112857760, "method": "info", "params": {}}'
Received 8583.744619: b'{"id": 281473164243488, "method": "info", "params": {}}'
Received 8583.998563: b'{"id": 281473164243488, "method": "info", "params": {}}'
Received 8584.253350: b'{"id": 281473164243296, "method": "info", "params": {}}'
Received 8584.509639: b'{"id": 281473112254208, "method": "info", "params": {}}'
Received 8584.763812: b'{"id": 281473112255024, "method": "info", "params": {}}'
Received 8585.017887: b'{"id": 281473112255120, "method": "info", "params": {}}'
Received 8585.273629: b'{"id": 281473112863648, "method": "info", "params": {}}'
Received 8585.385685: b'{"id": 281473164243488, "method": "info", "params": {}}'
Received 8585.407497: b'{"id": 281473164246800, "method": "info", "params": {}}'
Received 8585.528281: b'{"id": 281473164243488, "method": "info", "params": {}}'
Received 8585.782230: b'{"id": 281473164246416, "method": "info", "params": {}}'
Received 8586.038179: b'{"id": 281473140685024, "method": "info", "params": {}}'
Received 8586.292512: b'{"id": 281473112863216, "method": "info", "params": {}}'
Received 8586.546836: b'{"id": 281473112863216, "method": "info", "params": {}}'
Received 8586.800816: b'{"id": 281473164463600, "method": "info", "params": {}}'
Received 8586.984421: b'{"id": 281473112198496, "method": "emergency_stop", "params": {}}'
Reactor garbage collection: (8575.853171463, 0.0, 0.0)
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
Unable to issue reset command on MCU 'mcu'
webhooks client 281473781790368: Disconnected
Restarting printer
Start printer at Fri Sep 29 09:31:39 2023 (1695979899.5 8604.0)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
webhooks client 281473774601744: New connection
webhooks client 281473774601744: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
MCU error during connect
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/mcu.py", line 800, in _mcu_identify
    self._serial.connect_uart(self._serialport, self._baud, rts)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 182, in connect_uart
    self._error("Unable to connect")
  File "/home/biqu/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/biqu/klipper/klippy/klippy.py", line 176, in _connect
    self.send_event("klippy:mcu_identify")
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in send_event
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/klippy.py", line 263, in <listcomp>
    return [cb(*params) for cb in self.event_handlers.get(event, [])]
  File "/home/biqu/klipper/klippy/mcu.py", line 805, in _mcu_identify
    raise error(str(e))
mcu.error: mcu 'mcu': Unable to connect
Build file /home/biqu/klipper/klippy/../.config(3443): Thu Sep 28 05:42:52 2023
========= Last MCU build config =========
CONFIG_LOW_LEVEL_OPTIONS=y
# CONFIG_MACH_AVR is not set
# CONFIG_MACH_ATSAM is not set
# CONFIG_MACH_ATSAMD is not set
# CONFIG_MACH_LPC176X is not set
CONFIG_MACH_STM32=y
# CONFIG_MACH_HC32F460 is not set
# CONFIG_MACH_RP2040 is not set
# CONFIG_MACH_PRU is not set
# CONFIG_MACH_AR100 is not set
# CONFIG_MACH_LINUX is not set
# CONFIG_MACH_SIMU is not set
CONFIG_BOARD_DIRECTORY="stm32"
CONFIG_MCU="stm32f103xe"
CONFIG_CLOCK_FREQ=72000000
CONFIG_SERIAL=y
CONFIG_FLASH_SIZE=0x10000
CONFIG_FLASH_BOOT_ADDRESS=0x8000000
CONFIG_RAM_START=0x20000000
CONFIG_RAM_SIZE=0x5000
CONFIG_STACK_SIZE=512
CONFIG_FLASH_APPLICATION_ADDRESS=0x8007000
CONFIG_STM32_SELECT=y
CONFIG_MACH_STM32F103=y
# CONFIG_MACH_STM32F207 is not set
# CONFIG_MACH_STM32F401 is not set
# CONFIG_MACH_STM32F405 is not set
# CONFIG_MACH_STM32F407 is not set
# CONFIG_MACH_STM32F429 is not set
# CONFIG_MACH_STM32F446 is not set
# CONFIG_MACH_STM32F765 is not set
# CONFIG_MACH_STM32F031 is not set
# CONFIG_MACH_STM32F042 is not set
# CONFIG_MACH_STM32F070 is not set
# CONFIG_MACH_STM32F072 is not set
# CONFIG_MACH_STM32G070 is not set
# CONFIG_MACH_STM32G071 is not set
# CONFIG_MACH_STM32G0B0 is not set
# CONFIG_MACH_STM32G0B1 is not set
# CONFIG_MACH_STM32G431 is not set
# CONFIG_MACH_STM32H723 is not set
# CONFIG_MACH_STM32H743 is not set
# CONFIG_MACH_STM32H750 is not set
# CONFIG_MACH_STM32L412 is not set
# CONFIG_MACH_N32G452 is not set
# CONFIG_MACH_N32G455 is not set
# CONFIG_MACH_STM32F103x6 is not set
CONFIG_MACH_STM32F1=y
CONFIG_HAVE_STM32_USBFS=y
CONFIG_HAVE_STM32_CANBUS=y
# CONFIG_STM32F103GD_DISABLE_SWD is not set
CONFIG_STM32_DFU_ROM_ADDRESS=0
# CONFIG_STM32_FLASH_START_2000 is not set
# CONFIG_STM32_FLASH_START_5000 is not set
CONFIG_STM32_FLASH_START_7000=y
# CONFIG_STM32_FLASH_START_8000 is not set
# CONFIG_STM32_FLASH_START_8800 is not set
# CONFIG_STM32_FLASH_START_10000 is not set
# CONFIG_STM32_FLASH_START_800 is not set
# CONFIG_STM32_FLASH_START_1000 is not set
# CONFIG_STM32_FLASH_START_4000 is not set
# CONFIG_STM32_FLASH_START_0000 is not set
CONFIG_STM32_CLOCK_REF_8M=y
# CONFIG_STM32_CLOCK_REF_12M is not set
# CONFIG_STM32_CLOCK_REF_16M is not set
# CONFIG_STM32_CLOCK_REF_20M is not set
# CONFIG_STM32_CLOCK_REF_24M is not set
# CONFIG_STM32_CLOCK_REF_25M is not set
# CONFIG_STM32_CLOCK_REF_INTERNAL is not set
CONFIG_CLOCK_REF_FREQ=8000000
CONFIG_STM32F0_TRIM=16
# CONFIG_STM32_USB_PA11_PA12 is not set
CONFIG_STM32_SERIAL_USART1=y
# CONFIG_STM32_SERIAL_USART1_ALT_PB7_PB6 is not set
# CONFIG_STM32_SERIAL_USART2 is not set
# CONFIG_STM32_SERIAL_USART2_ALT_PD6_PD5 is not set
# CONFIG_STM32_SERIAL_USART3 is not set
# CONFIG_STM32_SERIAL_USART3_ALT_PD9_PD8 is not set
# CONFIG_STM32_CANBUS_PA11_PA12 is not set
# CONFIG_STM32_CANBUS_PA11_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PB8_PB9 is not set
# CONFIG_STM32_MMENU_CANBUS_PD0_PD1 is not set
CONFIG_SERIAL_BAUD=250000
CONFIG_USB_VENDOR_ID=0x1d50
CONFIG_USB_DEVICE_ID=0x614e
CONFIG_USB_SERIAL_NUMBER="12345"
CONFIG_WANT_GPIO_BITBANGING=y
CONFIG_WANT_DISPLAYS=y
CONFIG_WANT_SENSORS=y
CONFIG_WANT_LIS2DW=y
CONFIG_WANT_SOFTWARE_I2C=y
CONFIG_WANT_SOFTWARE_SPI=y
CONFIG_CANBUS_FREQUENCY=1000000
CONFIG_INITIAL_PINS=""
CONFIG_HAVE_GPIO=y
CONFIG_HAVE_GPIO_ADC=y
CONFIG_HAVE_GPIO_SPI=y
CONFIG_HAVE_GPIO_I2C=y
CONFIG_HAVE_GPIO_HARD_PWM=y
CONFIG_HAVE_STRICT_TIMING=y
CONFIG_HAVE_CHIPID=y
CONFIG_HAVE_STEPPER_BOTH_EDGE=y
CONFIG_HAVE_BOOTLOADER_REQUEST=y
CONFIG_INLINE_STEPPER_HACK=y
=======================
Build file /home/biqu/klipper/klippy/../out/klipper.dict(7937): Thu Sep 28 05:44:18 2023
Last MCU build version: v0.11.0-276-ge9bf2d4c
Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.35.2-2+14+b2) 2.35.2
Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c1=PB6,PB7 BUS_PINS_i2c1a=PB8,PB9 BUS_PINS_i2c2=PB10,PB11 BUS_PINS_spi1=PA6,PA7,PA5 BUS_PINS_spi1a=PB4,PB5,PB3 BUS_PINS_spi2=PB14,PB15,PB13 BUS_PINS_spi3=PB4,PB5,PB3 CLOCK_FREQ=72000000 MCU=stm32f103xe PWM_MAX=255 RECEIVE_WINDOW=192 RESERVE_PINS_serial=PA10,PA9 SERIAL_BAUD=250000 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1
Build file /home/biqu/klipper/klippy/../out/klipper.elf(1026196): Thu Sep 28 05:44:34 2023
Unable to issue reset command on MCU 'mcu'
webhooks client 281473774601744: Disconnected
Restarting printer
Start printer at Fri Sep 29 09:38:45 2023 (1695980325.8 9030.3)
===== Config file =====
[virtual_sdcard]
path = ~/printer_data/gcodes
on_error_gcode = CANCEL_PRINT

[pause_resume]

[display_status]

[respond]

[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set allow_park = client.park_at_cancel|default(false)|lower == 'true' %}
    {% set retract = client.cancel_retract|default(5.0)|abs %}
    
    {% set park_x = "" if (client.park_at_cancel_x|default(none) is none)
    else "X=" ~ client.park_at_cancel_x %}
    {% set park_y = "" if (client.park_at_cancel_y|default(none) is none)
    else "Y=" ~ client.park_at_cancel_y %}
    {% set custom_park = park_x|length > 0 or park_y|length > 0 %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if (custom_park or not printer.pause_resume.is_paused) and allow_park %} _TOOLHEAD_PARK_PAUSE_CANCEL {park_x} {park_y} {% endif %}
    _CLIENT_RETRACT LENGTH={retract}
    TURN_OFF_HEATERS
    M106 S0
    
    SET_PAUSE_NEXT_LAYER ENABLE=0
    SET_PAUSE_AT_LAYER ENABLE=0 LAYER=0
    CANCEL_PRINT_BASE

[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing = PAUSE_BASE
variable_restore_idle_timeout = 0
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set idle_timeout = client.idle_timeout|default(0) %}
    {% set temp = printer[printer.toolhead.extruder].target if printer.toolhead.extruder != '' else 0%}
    {% set restore = False if printer.toolhead.extruder == ''
    else True  if params.RESTORE|default(1)|int == 1 else False %}
    
    SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=last_extruder_temp VALUE="{{'restore': restore, 'temp': temp}}"
    
    {% if idle_timeout > 0 %}
    SET_GCODE_VARIABLE MACRO=PAUSE VARIABLE=restore_idle_timeout VALUE={printer.configfile.settings.idle_timeout.timeout}
    SET_IDLE_TIMEOUT TIMEOUT={idle_timeout}
    {% endif %}
    PAUSE_BASE
    _TOOLHEAD_PARK_PAUSE_CANCEL {rawparams}

[gcode_macro RESUME]
description = Resume the actual running print
rename_existing = RESUME_BASE
variable_last_extruder_temp = {'restore': False, 'temp': 0}
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set sp_move = client.speed_move|default(velocity) %}
    
    
    {% if printer['gcode_macro PAUSE'].restore_idle_timeout > 0 %}
    SET_IDLE_TIMEOUT TIMEOUT={printer['gcode_macro PAUSE'].restore_idle_timeout}
    {% endif %}
    {% if printer.idle_timeout.state|upper == "IDLE" %}
    {% if last_extruder_temp.restore %} M109 S{last_extruder_temp.temp} {% endif %}
    {% endif %}
    _CLIENT_EXTRUDE
    RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}

[gcode_macro SET_PAUSE_NEXT_LAYER]
description = Enable a pause if the next layer is reached
gcode = 
    {% set pause_next_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_next_layer %}
    {% set ENABLE = params.ENABLE|default(1)|int != 0 %}
    {% set MACRO = params.MACRO|default(pause_next_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_next_layer VALUE="{{ 'enable': ENABLE, 'call': MACRO }}"

[gcode_macro SET_PAUSE_AT_LAYER]
description = Enable/disable a pause if a given layer number is reached
gcode = 
    {% set pause_at_layer = printer['gcode_macro SET_PRINT_STATS_INFO'].pause_at_layer %}
    {% set ENABLE = params.ENABLE|int != 0 if params.ENABLE is defined
    else params.LAYER is defined %}
    {% set LAYER = params.LAYER|default(pause_at_layer.layer)|int %}
    {% set MACRO = params.MACRO|default(pause_at_layer.call, True) %}
    SET_GCODE_VARIABLE MACRO=SET_PRINT_STATS_INFO VARIABLE=pause_at_layer VALUE="{{ 'enable': ENABLE, 'layer': LAYER, 'call': MACRO }}"

[gcode_macro SET_PRINT_STATS_INFO]
rename_existing = SET_PRINT_STATS_INFO_BASE
description = Overwrite, to get pause_next_layer and pause_at_layer feature
variable_pause_next_layer = { 'enable': False, 'call': "PAUSE" }
variable_pause_at_layer = { 'enable': False, 'layer': 0, 'call': "PAUSE" }
gcode = 
    {% if pause_next_layer.enable %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_next_layer" % pause_next_layer.call}'
    {pause_next_layer.call}
    SET_PAUSE_NEXT_LAYER ENABLE=0
    {% elif pause_at_layer.enable and params.CURRENT_LAYER is defined and params.CURRENT_LAYER|int == pause_at_layer.layer %}
    RESPOND TYPE=echo MSG='{"%s, forced by pause_at_layer [%d]" % (pause_at_layer.call, pause_at_layer.layer)}'
    {pause_at_layer.call}
    SET_PAUSE_AT_LAYER ENABLE=0
    {% endif %}
    SET_PRINT_STATS_INFO_BASE {rawparams}

[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
description = Helper: park toolhead used in PAUSE and CANCEL_PRINT
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
    {% set use_custom     = client.use_custom_pos|default(false)|lower == 'true' %}
    {% set custom_park_x  = client.custom_park_x|default(0.0) %}
    {% set custom_park_y  = client.custom_park_y|default(0.0) %}
    {% set park_dz        = client.custom_park_dz|default(2.0)|abs %}
    {% set sp_hop         = client.speed_hop|default(15) * 60 %}
    {% set sp_move        = client.speed_move|default(velocity) * 60 %}
    
    {% set origin    = printer.gcode_move.homing_origin %}
    {% set act       = printer.gcode_move.gcode_position %}
    {% set max       = printer.toolhead.axis_maximum %}
    {% set cone      = printer.toolhead.cone_start_z|default(max.z) %}
    {% set round_bed = True if printer.configfile.settings.printer.kinematics is in ['delta','polar','rotary_delta','winch']
    else False %}
    
    {% set z_min = params.Z_MIN|default(0)|float %}
    {% set z_park = [[(act.z + park_dz), z_min]|max, (max.z - origin.z)]|min %}
    {% set x_park = params.X       if params.X is defined
    else custom_park_x  if use_custom
    else 0.0            if round_bed
    else (max.x - 5.0) %}
    {% set y_park = params.Y       if params.Y is defined
    else custom_park_y  if use_custom
    else (max.y - 5.0)  if round_bed and z_park < cone
    else 0.0            if round_bed
    else (max.y - 5.0) %}
    
    _CLIENT_RETRACT
    {% if "xyz" in printer.toolhead.homed_axes %}
    G90
    G1 Z{z_park} F{sp_hop}
    G1 X{x_park} Y{y_park} F{sp_move}
    {% if not printer.gcode_move.absolute_coordinates %} G91 {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Printer not homed'
    {% endif %}

[gcode_macro _CLIENT_EXTRUDE]
description = Extrudes, if the extruder is hot enough
gcode = 
    
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set use_fw_retract = (client.use_fw_retract|default(false)|lower == 'true') and (printer.firmware_retraction is defined) %}
    {% set length = params.LENGTH|default(client.unretract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_unretract)|default(35) %}
    {% set absolute_extrude = printer.gcode_move.absolute_extrude %}
    
    {% if printer.toolhead.extruder != '' %}
    {% if printer[printer.toolhead.extruder].can_extrude %}
    {% if use_fw_retract %}
    {% if length < 0 %}
    G10
    {% else %}
    G11
    {% endif %}
    {% else %}
    M83
    G1 E{length} F{(speed|float|abs) * 60}
    {% if absolute_extrude %}
    M82
    {% endif %}
    {% endif %}
    {% else %}
    RESPOND TYPE=echo MSG='Extruder not hot enough'
    {% endif %}
    {% endif %}

[gcode_macro _CLIENT_RETRACT]
description = Retracts, if the extruder is hot enough
gcode = 
    {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
    {% set length = params.LENGTH|default(client.retract)|default(1.0)|float %}
    {% set speed = params.SPEED|default(client.speed_retract)|default(35) %}
    
    _CLIENT_EXTRUDE LENGTH=-{length|float|abs} SPEED={speed|float|abs}

[stepper_x]
step_pin = PB9
dir_pin = PC2
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA5
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_y]
step_pin = PB7
dir_pin = PB8
enable_pin = !PC3
microsteps = 16
rotation_distance = 40
endstop_pin = ^PA6
position_endstop = 0
position_max = 235
homing_speed = 50

[stepper_z]
step_pin = PB5
dir_pin = !PB6
enable_pin = !PC3
microsteps = 16
rotation_distance = 8
endstop_pin = ^PA7
position_endstop = 0.0
position_max = 250

[extruder]
max_extrude_only_distance = 100.0
step_pin = PB3
dir_pin = PB4
enable_pin = !PC3
microsteps = 16
rotation_distance = 33.500
nozzle_diameter = 0.400
filament_diameter = 1.750
heater_pin = PA1
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC5
control = pid
pid_kp = 21.527
pid_ki = 1.063
pid_kd = 108.982
min_temp = 0
max_temp = 250

[heater_bed]
heater_pin = PA2
sensor_type = EPCOS 100K B57560G104F
sensor_pin = PC4
control = pid
pid_kp = 54.027
pid_ki = 0.770
pid_kd = 948.182
min_temp = 0
max_temp = 130

[fan]
pin = PA0

[mcu]
serial = /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0
restart_method = command

[printer]
kinematics = cartesian
max_velocity = 300
max_accel = 3000
max_z_velocity = 5
max_z_accel = 100

[board_pins]
aliases = 
    EXP1_1=PC6,EXP1_3=PB10,EXP1_5=PB14,EXP1_7=PB12,EXP1_9=<GND>,
    EXP1_2=PB2,EXP1_4=PB11,EXP1_6=PB13,EXP1_8=PB15,EXP1_10=<5V>,
    PROBE_IN=PB0,PROBE_OUT=PB1,FIL_RUNOUT=PC6
=======================
Extruder max_extrude_ratio=0.266081
mcu 'mcu': Starting serial connect
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
webhooks client 281473774597120: New connection
webhooks client 281473774597120: Client info {'program': 'Moonraker', 'version': 'v0.8.0-142-gee62d07'}
mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0: [Errno 2] No such file or directory: '/dev/serial/by-path/platform-5101400.usb-usb-0:1:1.0-port0'
 

Dérouler  

 

je vais essayer avec un autre cable
et merci de votre patience  😉

Posté(e)
  Le 29/09/2023 at 09:54, RicoDarksky a dit :

et mon dernier .log est 

Dérouler  

et met plutôt le log comme un fichier joint, là il ne correspond à rien (ou il n'est pas complet)

  • +1 1
Posté(e) (modifié)

ce n'est pas "=" mais ":" qu'il faut mettre: (ligne 6539)

serial: /dev/serial/by-path/platform-5310400.usb-usb-0:1:1.0-port0

Modifié (le) par pommeverte
  • +1 1
Posté(e)

@RicoDarksky

Dans le printer.cfg au lieu de 

[mcu]
serial = /dev/serial/by-path/platform-5310400.usb-usb-0:1:1.0-port0
restart_method = command

il faut mettre

[mcu]
serial:  /dev/serial/by-path/platform-5310400.usb-usb-0:1:1.0-port0
restart_method = command


 

  • +1 1
Posté(e)
  Le 29/09/2023 at 10:54, Savate a dit :

@RicoDarksky

Dans le printer.cfg au lieu de 

[mcu]
serial = /dev/serial/by-path/platform-5310400.usb-usb-0:1:1.0-port0
restart_method = command

il faut mettre

[mcu]
serial:  /dev/serial/by-path/platform-5310400.usb-usb-0:1:1.0-port0
restart_method = command


 

Dérouler  

Malgré ca toujours pas 😫

klippy.txtFetching info...

Posté(e) (modifié)
  Le 29/09/2023 at 11:40, RicoDarksky a dit :

Malgré ca toujours pas 😫

Dérouler  

Si, l'erreur est totalement différente,

mais maintenant ça indique que ta carte n'est pas correctement flashée et non reconnue par Klipper

mcu 'mcu': Wait for identify_response
Traceback (most recent call last):
  File "/home/biqu/klipper/klippy/serialhdl.py", line 68, in _get_identify_data
    params = self.send_with_response(msg, 'identify_response')
  File "/home/biqu/klipper/klippy/serialhdl.py", line 261, in send_with_response
    return src.get_response([cmd], self.default_cmd_queue)
  File "/home/biqu/klipper/klippy/serialhdl.py", line 318, in get_response
    self.serial.raw_send_wait_ack(cmds[-1], minclock, reqclock,
  File "/home/biqu/klipper/klippy/serialhdl.py", line 253, in raw_send_wait_ack
    self._error("Serial connection closed")
  File "/home/biqu/klipper/klippy/serialhdl.py", line 61, in _error
    raise error(self.warn_prefix + (msg % params))
serialhdl.error: mcu 'mcu': Serial connection closed
mcu 'mcu': Timeout on connect

 

Tu peux reprendre toute la procédure make menuconfig / make / carte SD en vérifiant la référence du processeur sur le chip (avec une bonne loupe 🙂 )

Modifié (le) par Savate

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 compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
×
×
  • Créer...