I am running an ERCF v1.1 MMU on a custom Klipper powered Delta printer. When a clog is detected, or there is no filament, I will get a “Move out of range” error when the printer goes into the pause state. I have tried reducing my delta radius by half, to see if there was an issue with the probe offset, but I still get the same error.
Any ideas what the issue might be?
Error from the Octoprint terminal when sending “pause” right after homing / moving down
Recv: // Klipper state: Ready
[...]
Send: G28 // homes all axis
Recv: ok
Send: G91 // set absolute move
Recv: ok
Send: G0 Z-50 F1000 // move down 50mm
Recv: ok
Send: G90 // set relative move
Recv: ok
Send: G91
Recv: ok
Send: G0 Z-100 F1000
Recv: ok
Send: G90
Recv: ok
[...]
Send: pause
Recv: // action:paused
Printer signalled that it paused, switching state...
Recv: !! Move out of range: -145.000 145.000 245.085 [-1.000]
Recv: !! Move out of range: -145.000 145.000 245.085 [-1.000]
Recv: ok
printer.cfg
# This file contains common pin mappings for the BigTreeTech Octopus.
# To use this config, the firmware should be compiled for the
# STM32F446 with a "32KiB bootloader" and a "12MHz crystal" clock reference.
# See docs/Config_Reference.md for a description of parameters.
[include ./ercf_hardware.cfg] # ERCF settings
[include ./ercf_software.cfg] # ERCF settings
# Driver0
[stepper_a] # StepperOnline 17HS19-2004S1, 1.8 degree, 2A
step_pin: PF13
dir_pin: !PF12
enable_pin: !PF14
microsteps: 16
rotation_distance: 40
endstop_pin: PG6
#position_endstop: 385
homing_speed: 80
homing_retract_dist: 5.0
second_homing_speed: 3
#arm_length: 400
# Driver1
[stepper_b] # StepperOnline 17HS19-2004S1, 1.8 degree, 2A
step_pin: PG0
dir_pin: !PG1
enable_pin: !PF15
microsteps: 16
rotation_distance: 40
endstop_pin: PG9
# Driver2
[stepper_c] # StepperOnline 17HS19-2004S1, 1.8 degree, 2A
step_pin: PF11
dir_pin: !PG3
enable_pin: !PG5
microsteps: 16
rotation_distance: 40
endstop_pin: PG10
# Driver3
# The Octopus only has 4 heater outputs which leaves an extra stepper
# This can be used for a second Z stepper, dual_carriage, extruder co-stepper,
# or other accesory such as an MMU
#[stepper_]
#step_pin: PG4
#dir_pin: PC1
#enable_pin: PA0
#endstop_pin: PG11
#...
# Driver4
[extruder] # Bondtech LGX, 1A, 400 steps/mm
step_pin: PF9
dir_pin: !PF10
enable_pin: !PG2
microsteps: 16
rotation_distance: 7.84 # Bondtech LGX 400 steps/mm
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA2 # HE0
sensor_pin: PF4 # T0
sensor_type: EPCOS 100K B57560G104F
#control: pid
#pid_Kp: 22.2
#pid_Ki: 1.08
#pid_Kd: 114
min_temp: 0
max_temp: 250
min_extrude_temp: 0 # enables cold extrudes for calibration
max_extrude_only_distance: 200 # ERCF settings
max_extrude_cross_section: 50.0 # ERCF settings
pressure_advance = 0.190 # lower the value for more rounded corners 0.192 default
[probe]
pin: PG12 # ! to invert pressure probe
x_offset: -15.0 # pinda=-15.0
y_offset: 14.0 # pinda =14.0
#z_offset: 0.0
speed: 2.0
samples: 3
sample_retract_dist: 3.0
#[filament_switch_sensor material_0]
#switch_pin: PG12
# Driver5
#[extruder1]
#step_pin: PC13
#dir_pin: PF0
#enable_pin: !PF1
#heater_pin: PA3 # HE1
#sensor_pin: PF5 # T1
#...
#[filament_switch_sensor material_1]
#switch_pin: PG13
# Driver6
#[extruder2]
#step_pin: PE2
#dir_pin: PE3
#enable_pin: !PD4
#heater_pin: PB10 # HE2
#sensor_pin: PF6 # T2
#...
#[filament_switch_sensor material_2]
#switch_pin: PG14
# Driver7
#[extruder3]
#step_pin: PE6
#dir_pin: PA14
#enable_pin: !PE0
#heater_pin: PB11 # HE3
#sensor_pin: PF7 # T3
#...
#[filament_switch_sensor material_3]
#switch_pin: PG15
[heater_bed]
heater_pin: PA1
sensor_pin: PF3 # TB
sensor_type: ATC Semitec 104GT-2
#control: pid
#pid_Kp: 22.2
#pid_Ki: 1.08
#pid_Kd: 114
min_temp: 0
max_temp: 130
[fan]
pin: PA8
[heater_fan fan1]
pin: PE5
heater: extruder
heater_temp: 40.0
#[heater_fan fan2]
#pin: PD12
#[heater_fan fan3]
#pin: PD13
#[heater_fan fan4]
#pin: PD14
#[controller_fan fan5]
#pin: PD15
[display]
lcd_type: uc1701
cs_pin: EXP1_3
a0_pin: EXP1_4
rst_pin: EXP1_5
contrast: 63
encoder_pins: ^EXP2_5, ^EXP2_3
click_pin: ^!EXP1_2
## Some micro-controller boards may require an spi bus to be specified:
#spi_bus: spi
## Alternatively, some micro-controller boards may work with software spi:
spi_software_miso_pin: EXP2_1
spi_software_mosi_pin: EXP2_6
spi_software_sclk_pin: EXP2_2
[output_pin beeper]
pin: EXP1_1
[neopixel fysetc_mini12864]
pin: EXP1_6
chain_count: 3
color_order: RGB
initial_RED: 0.4
initial_GREEN: 0.4
initial_BLUE: 0.4
[mcu] # Rasp Pi USB
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_350034000750534E4E313120-if00
# CAN bus is also available on this board
[mcu rpi] # Rasp Pi local mcu for ADXL345 Accel.
serial: /tmp/klipper_host_mcu
[adxl345] # Acelerometer
cs_pin: rpi:None
[resonance_tester]
accel_chip: adxl345
probe_points:
0, 0, 340 # toolhead x y z location during test
[input_shaper]
#shaper_freq_x: 59.4
#shaper_type_x: mzv
#shaper_freq_y: 59.0
#shaper_type_y: mzv
[printer]
kinematics: delta
max_velocity: 300 # default 300
max_accel: 3000 # default 3000
max_z_velocity: 200 # default 150
square_corner_velocity: 3.0 # default 5
#delta_radius: 201.027
print_radius: 150
minimum_z_position: -10.0 # used for initial calibration
[delta_calibrate]
speed: 200
radius: 140
horizontal_move_z: 2
[bed_mesh]
speed: 200
horizontal_move_z: 2
mesh_radius: 130
mesh_origin: 0, 0
round_probe_count: 9
mesh_pps: 4
algorithm: bicubic
bicubic_tension: 0.2
move_check_distance: 5
split_delta_z: .025
#fade_start: 0
#fade_end: 10
#fade_target: 0
[endstop_phase]
[pause_resume] # ERCF settings
recover_velocity: 300.0
########################################
# TMC2209 configuration
########################################
[tmc2209 stepper_a]
uart_pin: PC4
##diag_pin: PG6
run_current: 1.4
hold_current: 0.800
stealthchop_threshold: 0
[tmc2209 stepper_b]
uart_pin: PD11
##diag_pin: PG9
run_current: 1.4
hold_current: 0.800
stealthchop_threshold: 0
[tmc2209 stepper_c]
uart_pin: PC6
##diag_pin: PG10
run_current: 1.4
hold_current: 0.800
stealthchop_threshold: 0
#[tmc2209 stepper_]
#uart_pin: PC7
##diag_pin: PG11
#run_current: 0.650
#stealthchop_threshold: 999999
[tmc2209 extruder]
uart_pin: PF2
run_current: 0.60 # 0.5-0.7 recommended for Bondtech LGX
hold_current: 0.300
stealthchop_threshold: 0
#[tmc2209 extruder1]
#uart_pin: PE4
#run_current: 0.800
#stealthchop_threshold: 999999
#[tmc2209 extruder2]
#uart_pin: PE1
#run_current: 0.800
#stealthchop_threshold: 999999
#[tmc2209 extruder3]
#uart_pin: PD3
#run_current: 0.800
#stealthchop_threshold: 999999
[board_pins]
aliases:
# EXP1 header
EXP1_1=PE8, EXP1_2=PE7,
EXP1_3=PE9, EXP1_4=PE10,
EXP1_5=PE12, EXP1_6=PE13, # Slot in the socket on this side
EXP1_7=PE14, EXP1_8=PE15,
EXP1_9=<GND>, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PA6, EXP2_2=PA5,
EXP2_3=PB1, EXP2_4=PA4,
EXP2_5=PB2, EXP2_6=PA7, # Slot in the socket on this side
EXP2_7=PC15, EXP2_8=<RST>,
EXP2_9=<GND>, EXP2_10=PC5
# See the sample-lcd.cfg file for definitions of common LCD displays.
# A [probe] section can be defined instead with a pin: setting identical
# to the sensor_pin: for a bltouch
#[bltouch]
#sensor_pin: PB7
#control_pin: PB6
#z_offset: 0
#[neopixel my_neopixel]
#pin: PB0
## Custom Menus
[menu __main __test]
type: list
name: Tester
# ERCF Client Macros
[gcode_macro PRINT_START]
gcode:
{% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %}
{% set BED_TEMP = params.BED_TEMP|default(60)|float %}
SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=0 # added line for clog detection mode. Turns off sensor
M104 S{EXTRUDER_TEMP * 0.80} # set extruder temperature to 75%
M140 S{BED_TEMP} # set bed temprature
BED_MESH_PROFILE LOAD=default #loads Klipper default mesh
G21 # Set Units to Millimeters
G90 # Set to Absolute Positioning
M83 # Set extruder to relative mode
M220 S100 # Set Feedrate percent back to 100
M106 S0 #Fan Off
M117 Homing
G28 # Home All
G92 E0 # Reset Extruder
G1 Z15.0 F3000
M109 S{EXTRUDER_TEMP} # Wait for nozzle to finish heating
M106 S0 # Done waiting, part cooling off and back to slicer control
#M117 Probing
#PROBE
SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=1 # added line for clog detection mode. Turns on sensor
M117 Printing
[gcode_macro PRINT_END]
gcode:
M140 S0 # Turn-off bed
M106 S0 # Fan Off
G91 # Relative positioning
G1 E-0.5 F2500 # Retract filament
G1 Z30 F3000 # Move effector up
M220 S100 # Set Feedrate percent back to 100
G90 # Absolute positioning
G1 X0 Y30 F3000 # Move effector center / back
{% set unload = params.UNLOAD_AT_END|default(0)|int %}
M400 # wait for buffer to clear
{% if unload|int == 1%}
ERCF_EJECT
{% endif %}
M104 S0 # Turn-off hotend
SET_STEPPER_ENABLE STEPPER=extruder ENABLE=0 # Disable extruder
[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
gcode:
TURN_OFF_HEATERS
CLEAR_PAUSE
SDCARD_RESET_FILE
{% set x_park = printer.toolhead.axis_minimum.x|float + 5.0 %}
{% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
{% set max_z = printer.toolhead.axis_maximum.z|float %}
{% set act_z = printer.toolhead.position.z|float %}
{% if act_z < (max_z - 20.0) %}
{% set z_safe = 20.0 %}
{% else %}
{% set z_safe = max_z - act_z %}
{% endif %}
SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=0
G91
G1 Z{z_safe} F900
G90
G0 X{x_park} Y{y_park} F6000
BASE_CANCEL_PRINT
[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
gcode:
{% set x_park = printer.toolhead.axis_minimum.x|float + 5.0 %}
{% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
{% set max_z = printer.toolhead.axis_maximum.z|float %}
{% set act_z = printer.toolhead.position.z|float %}
{% if act_z < (max_z - 5.0) %}
{% set z_safe = 5.0 %}
{% else %}
{% set z_safe = max_z - act_z %}
{% endif %}
G92 E0
G1 E-1.0 F1500.0
G90
SAVE_GCODE_STATE NAME=PAUSE_state
BASE_PAUSE
G91
G1 Z{z_safe} F900
G90
G0 X{x_park} Y{y_park} F6000
[gcode_macro RESUME]
rename_existing: BASE_RESUME
gcode:
{% if printer["gcode_macro ERCF_PAUSE"].is_paused|int != 0 %}
M118 You can't resume the print without unlocking the ERCF first.
M118 Run ERCF_UNLOCK and solve any issue before hitting Resume again
{% else %}
RESTORE_GCODE_STATE NAME=PAUSE_state
G90
{% if printer["gcode_macro ERCF_VAR"].clog_detection|int == 1 %}
SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=1
{% endif %}
BASE_RESUME
{% endif %}
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [probe]
#*# z_offset = 0.453
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 14.505
#*# pid_ki = 0.440
#*# pid_kd = 119.662
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 55.157
#*# pid_ki = 0.636
#*# pid_kd = 1195.521
#*#
#*# [endstop_phase stepper_a]
#*# trigger_phase = 59/64
#*#
#*# [endstop_phase stepper_b]
#*# trigger_phase = 44/64
#*#
#*# [endstop_phase stepper_c]
#*# trigger_phase = 18/64
#*#
#*# [input_shaper]
#*# shaper_type_x = 3hump_ei
#*# shaper_freq_x = 82.0
#*# shaper_type_y = mzv
#*# shaper_freq_y = 60.0
#*#
#*# [printer]
#*# delta_radius = 203.975048
#*#
#*# [stepper_a]
#*# angle = 209.691248
#*# arm_length = 402.423731
#*# position_endstop = 390.915052
#*#
#*# [stepper_b]
#*# angle = 329.578808
#*# arm_length = 405.437482
#*# position_endstop = 388.767988
#*#
#*# [stepper_c]
#*# angle = 90.000000
#*# arm_length = 403.866956
#*# position_endstop = 390.668581
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# -0.156093, -0.156093, -0.156093, -0.156093, -0.156093, -0.156093, -0.156093, -0.156093, -0.156093
#*# -0.051219, -0.051219, -0.051219, -0.101586, -0.137468, -0.164767, -0.033983, -0.033983, -0.033983
#*# -0.019383, -0.019383, -0.033281, -0.020074, -0.022258, -0.013818, 0.012413, 0.100851, 0.100851
#*# -0.004334, -0.004334, 0.027696, 0.015139, -0.003518, -0.015928, -0.046685, 0.014538, 0.014538
#*# -0.039046, -0.025214, 0.041022, 0.066368, 0.078945, 0.096209, 0.073397, 0.064159, 0.130159
#*# 0.014118, 0.014118, 0.042400, 0.061551, 0.051162, 0.024311, -0.006972, -0.068517, -0.068517
#*# -0.025675, -0.025675, 0.024664, 0.049281, 0.039570, 0.027039, -0.008427, -0.040542, -0.040542
#*# 0.003335, 0.003335, 0.003335, 0.023118, -0.002773, -0.052553, -0.106721, -0.106721, -0.106721
#*# 0.013421, 0.013421, 0.013421, 0.013421, 0.013421, 0.013421, 0.013421, 0.013421, 0.013421
#*# tension = 0.2
#*# min_x = -130.0
#*# algo = bicubic
#*# y_count = 9
#*# mesh_y_pps = 4
#*# min_y = -130.0
#*# x_count = 9
#*# max_y = 130.0
#*# mesh_x_pps = 4
#*# max_x = 130.0
#*#
#*# [delta_calibrate]
#*# height0 = 0.453
#*# height0_pos = 31228.000,31060.000,31214.667
#*# height1 = 0.453
#*# height1_pos = 36957.000,36802.667,27293.333
#*# height2 = 0.453
#*# height2_pos = 30101.000,40255.000,30118.667
#*# height3 = 0.453
#*# height3_pos = 27519.333,35823.667,36050.667
#*# height4 = 0.453
#*# height4_pos = 30086.000,29881.333,37657.667
#*# height5 = 0.453
#*# height5_pos = 35290.333,27640.667,35230.000
#*# height6 = 0.453
#*# height6_pos = 39050.667,29948.000,30066.000
#*# distance0 = 116.85
#*# distance0_pos1 = 30869.409,31328.693,31443.720
#*# distance0_pos2 = 27427.602,36291.432,36446.159
#*# distance1 = 116.96
#*# distance1_pos1 = 31057.886,30950.542,31635.150
#*# distance1_pos2 = 30128.825,30000.528,40379.958
#*# distance2 = 116.68
#*# distance2_pos1 = 31438.007,30764.840,31443.720
#*# distance2_pos2 = 36465.543,27338.345,36446.159
#*# distance3 = 116.99
#*# distance3_pos1 = 31629.694,30953.530,31064.766
#*# distance3_pos2 = 40414.982,30045.199,30133.731
#*# distance4 = 116.92
#*# distance4_pos1 = 31437.324,31331.721,30877.190
#*# distance4_pos2 = 36452.654,36348.423,27444.518
#*# distance5 = 116.89
#*# distance5_pos1 = 31057.212,31521.233,31064.766
#*# distance5_pos2 = 30118.752,40238.954,30133.731
#*# distance6 = 117.08
#*# distance6_pos1 = 27642.962,35225.118,36049.904
#*# distance6_pos2 = 30390.832,29717.629,39942.649
#*# distance7 = 116.9
#*# distance7_pos1 = 30363.754,29692.952,39096.539
#*# distance7_pos2 = 36565.297,27410.911,35855.203
#*# distance8 = 117.04
#*# distance8_pos1 = 36066.550,27553.877,35373.634
#*# distance8_pos2 = 39974.274,30306.112,29848.646
#*# distance9 = 116.73
#*# distance9_pos1 = 39122.926,30278.013,29822.474
#*# distance9_pos2 = 35859.192,36446.060,27515.873
#*# distance10 = 116.95
#*# distance10_pos1 = 35376.072,35949.256,27659.066
#*# distance10_pos2 = 29833.240,39801.402,30394.945
#*# distance11 = 116.9
#*# distance11_pos1 = 29807.322,38958.887,30368.277
#*# distance11_pos2 = 27499.425,35702.979,36545.839