===== Config file ===== [virtual_sdcard] path = /home/HYPERCUBE/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} [mcu] serial = /dev/serial/by-id/ [printer] kinematics = none max_velocity = 1000 max_accel = 1000 ======================= Args: ['/home/HYPERCUBE/klipper/klippy/klippy.py', '/home/HYPERCUBE/printer_data/config/printer.cfg', '-I', '/home/HYPERCUBE/printer_data/comms/klippy.serial', '-l', '/home/HYPERCUBE/printer_data/logs/klippy.log', '-a', '/home/HYPERCUBE/printer_data/comms/klippy.sock'] Git version: 'v0.11.0-271-g5f990f93' Branch: master Remote: origin Tracked URL: https://github.com/Klipper3d/klipper CPU: 4 core ? Python: '3.9.2 (default, Mar 12 2021, 04:06:34) \n[GCC 10.2.1 20210110]' webhooks client 4126410568: {'program': 'Moonraker', 'version': 'v0.8.0-138-gfe12095'} =============== Log rollover at Fri Sep 8 06:09:43 2023 =============== mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/: [Errno 2] No such file or directory: '/dev/serial/by-id/' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/: [Errno 2] No such file or directory: '/dev/serial/by-id/' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/: [Errno 2] No such file or directory: '/dev/serial/by-id/' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/: [Errno 2] No such file or directory: '/dev/serial/by-id/' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/: [Errno 2] No such file or directory: '/dev/serial/by-id/' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/: [Errno 2] No such file or directory: '/dev/serial/by-id/' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/: [Errno 2] No such file or directory: '/dev/serial/by-id/' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/: [Errno 2] No such file or directory: '/dev/serial/by-id/' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/: [Errno 2] No such file or directory: '/dev/serial/by-id/' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/: [Errno 2] No such file or directory: '/dev/serial/by-id/' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/: [Errno 2] No such file or directory: '/dev/serial/by-id/' mcu 'mcu': Unable to open serial port: [Errno 2] could not open port /dev/serial/by-id/: [Errno 2] No such file or directory: '/dev/serial/by-id/' MCU error during connect Traceback (most recent call last): File "/home/HYPERCUBE/klipper/klippy/mcu.py", line 798, in _mcu_identify self._serial.connect_uart(self._serialport, self._baud, rts) File "/home/HYPERCUBE/klipper/klippy/serialhdl.py", line 182, in connect_uart self._error("Unable to connect") File "/home/HYPERCUBE/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/HYPERCUBE/klipper/klippy/klippy.py", line 176, in _connect self.send_event("klippy:mcu_identify") File "/home/HYPERCUBE/klipper/klippy/klippy.py", line 263, in send_event return [cb(*params) for cb in self.event_handlers.get(event, [])] File "/home/HYPERCUBE/klipper/klippy/klippy.py", line 263, in return [cb(*params) for cb in self.event_handlers.get(event, [])] File "/home/HYPERCUBE/klipper/klippy/mcu.py", line 803, in _mcu_identify raise error(str(e)) mcu.error: mcu 'mcu': Unable to connect Build file /home/HYPERCUBE/klipper/klippy/../.config(1425): Thu Sep 7 08:29:21 2023 ========= Last MCU build config ========= # CONFIG_LOW_LEVEL_OPTIONS is not set # CONFIG_MACH_AVR is not set # CONFIG_MACH_ATSAM is not set # CONFIG_MACH_ATSAMD is not set CONFIG_MACH_LPC176X=y # CONFIG_MACH_STM32 is not set # 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="lpc176x" CONFIG_MCU="lpc1768" CONFIG_CLOCK_FREQ=100000000 CONFIG_USBSERIAL=y CONFIG_FLASH_SIZE=0x80000 CONFIG_FLASH_BOOT_ADDRESS=0x0 CONFIG_RAM_START=0x10000000 CONFIG_RAM_SIZE=0x7fe0 CONFIG_STACK_SIZE=512 CONFIG_FLASH_APPLICATION_ADDRESS=0x4000 CONFIG_LPC_SELECT=y CONFIG_MACH_LPC1768=y # CONFIG_MACH_LPC1769 is not set CONFIG_LPC_FLASH_START_4000=y # CONFIG_LPC_FLASH_START_0000 is not set CONFIG_LPC_USB=y # CONFIG_LPC_SERIAL_UART0_P03_P02 is not set CONFIG_USB=y CONFIG_USB_VENDOR_ID=0x1d50 CONFIG_USB_DEVICE_ID=0x614e CONFIG_USB_SERIAL_NUMBER_CHIPID=y 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_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/HYPERCUBE/klipper/klippy/../out/klipper.dict(7835): Thu Sep 7 08:29:31 2023 Last MCU build version: v0.11.0-271-g5f990f93 Last MCU build tools: gcc: (15:8-2019-q3-1+b1) 8.3.1 20190703 (release) [gcc-8-branch revision 273027] binutils: (2.34-4+rpi1+14) 2.34 Last MCU build config: ADC_MAX=4095 BUS_PINS_i2c0=P0.28,P0.27 BUS_PINS_i2c1=P0.1,P0.0 BUS_PINS_i2c1a=P0.20,P0.19 BUS_PINS_i2c2=P0.11,P0.10 BUS_PINS_ssp0=P0.17,P0.18,P0.15 BUS_PINS_ssp1=P0.8,P0.9,P0.7 CLOCK_FREQ=100000000 MCU=lpc1768 PWM_MAX=255 RESERVE_PINS_USB=P0.30,P0.29,P2.9 STATS_SUMSQ_BASE=256 STEPPER_BOTH_EDGE=1 Build file /home/HYPERCUBE/klipper/klippy/../out/klipper.elf(636212): Thu Sep 7 08:29:37 2023