v2.4: update ercf
This commit is contained in:
parent
f4a82d9200
commit
d287262e72
6 changed files with 180 additions and 221 deletions
BIN
ercf/.hardware.cfg.swp
Normal file
BIN
ercf/.hardware.cfg.swp
Normal file
Binary file not shown.
|
@ -1,58 +0,0 @@
|
||||||
[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 %}
|
|
|
@ -1,73 +0,0 @@
|
||||||
## Enraged Rabbit : Carrot Feeder V1.1 hardware config file
|
|
||||||
# Values are an example for voron 2.4 with 2 SKR1.4
|
|
||||||
|
|
||||||
# Carrot Feeder 5mm D-cut shaft
|
|
||||||
# Example for an SKR 1.4 Board (E1 on the XY mcu)
|
|
||||||
[manual_stepper gear_stepper]
|
|
||||||
step_pin: P1.15
|
|
||||||
dir_pin: P1.14
|
|
||||||
enable_pin: !P1.16
|
|
||||||
rotation_distance: 22.6789511 #Bondtech 5mm Drive Gears
|
|
||||||
gear_ratio: 80:20
|
|
||||||
microsteps: 16
|
|
||||||
full_steps_per_rotation: 200 #200 for 1.8 degree, 400 for 0.9 degree
|
|
||||||
velocity: 35
|
|
||||||
accel: 150
|
|
||||||
#Right now no pin is used for the endstop, but we need to define one for klipper. So just use a random, not used pin
|
|
||||||
endstop_pin: P0.10
|
|
||||||
|
|
||||||
[tmc2209 manual_stepper gear_stepper]
|
|
||||||
# Adapt accordingly to your setup and desires
|
|
||||||
# The default values are tested with the BOM NEMA14 motor
|
|
||||||
# Please adapt those values to the motor you are using
|
|
||||||
# Example : for NEMA17 motors, you'll usually set the stealthchop_threshold to 0
|
|
||||||
# and use higher current
|
|
||||||
uart_pin: P1.1
|
|
||||||
interpolate: True
|
|
||||||
run_current: 0.40
|
|
||||||
hold_current: 0.1
|
|
||||||
sense_resistor: 0.110
|
|
||||||
stealthchop_threshold: 500
|
|
||||||
|
|
||||||
# Carrot Feeder selector
|
|
||||||
# Example for an SKR 1.4 Board (Z1 on the XY mcu)
|
|
||||||
[manual_stepper selector_stepper]
|
|
||||||
step_pin: P0.22
|
|
||||||
dir_pin: P2.11
|
|
||||||
enable_pin: !P0.21
|
|
||||||
microsteps: 16
|
|
||||||
rotation_distance: 40
|
|
||||||
full_steps_per_rotation: 200 #200 for 1.8 degree, 400 for 0.9 degree
|
|
||||||
velocity: 200
|
|
||||||
accel: 600
|
|
||||||
endstop_pin: P1.25
|
|
||||||
|
|
||||||
[tmc2209 manual_stepper selector_stepper]
|
|
||||||
uart_pin: P1.8
|
|
||||||
run_current: 0.55
|
|
||||||
interpolate: True
|
|
||||||
sense_resistor: 0.110
|
|
||||||
stealthchop_threshold: 5000
|
|
||||||
|
|
||||||
# Values are for the MG90S servo
|
|
||||||
[servo ercf_servo]
|
|
||||||
pin: P1.26
|
|
||||||
maximum_servo_angle: 180
|
|
||||||
minimum_pulse_width: 0.00085
|
|
||||||
maximum_pulse_width: 0.00215
|
|
||||||
|
|
||||||
[duplicate_pin_override]
|
|
||||||
pins: P1.0
|
|
||||||
# Put there the pin used by the encoder and the filament_motion_sensor
|
|
||||||
# It has to be the same pin for those 3
|
|
||||||
|
|
||||||
[filament_motion_sensor encoder_sensor]
|
|
||||||
switch_pin: ^P1.0
|
|
||||||
pause_on_runout: False
|
|
||||||
detection_length: 4.0
|
|
||||||
extruder: extruder
|
|
||||||
# runout_gcode: ERCF_ENCODER_MOTION_ISSUE
|
|
||||||
|
|
||||||
[filament_switch_sensor toolhead_sensor]
|
|
||||||
pause_on_runout: False
|
|
||||||
switch_pin: ^P1.27
|
|
78
ercf/hardware.cfg
Normal file
78
ercf/hardware.cfg
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
## Enraged Rabbit : Carrot Feeder config file for ERCF EASY BRD v1.1
|
||||||
|
|
||||||
|
# This config sample assume you set the two J6 jumpers on 1-2 and 4-5, i.e. [..].[..]
|
||||||
|
|
||||||
|
[mcu ercf]
|
||||||
|
serial: /dev/serial/by-id/usb-Klipper_samd21g18a_D3EB9B384134555020312E30171117FF-if00
|
||||||
|
|
||||||
|
# Carrot Feeder 5mm D-cut shaft
|
||||||
|
[manual_stepper gear_stepper]
|
||||||
|
step_pin: ercf:PA4
|
||||||
|
dir_pin: !ercf:PA10
|
||||||
|
enable_pin: !ercf:PA2
|
||||||
|
rotation_distance: 22.6789511 # Bondtech 5mm Drive Gears
|
||||||
|
gear_ratio: 80:20
|
||||||
|
microsteps: 16
|
||||||
|
full_steps_per_rotation: 200
|
||||||
|
velocity: 35
|
||||||
|
accel: 100
|
||||||
|
endstop_pin: ^ercf:PA7
|
||||||
|
|
||||||
|
[tmc2209 manual_stepper gear_stepper]
|
||||||
|
# Adapt accordingly to your setup and desires
|
||||||
|
# The default values are tested with the BOM NEMA14 motor
|
||||||
|
uart_pin: ercf:PA8 # shared with selector_stepper
|
||||||
|
uart_address: 0
|
||||||
|
interpolate: True
|
||||||
|
run_current: 0.8
|
||||||
|
hold_current: 0.1
|
||||||
|
sense_resistor: 0.110
|
||||||
|
stealthchop_threshold: 500
|
||||||
|
|
||||||
|
[manual_stepper selector_stepper]
|
||||||
|
step_pin: ercf:PA9
|
||||||
|
dir_pin: !ercf:PB8
|
||||||
|
enable_pin: !ercf:PA11
|
||||||
|
microsteps: 16
|
||||||
|
rotation_distance: 40
|
||||||
|
full_steps_per_rotation: 200
|
||||||
|
velocity: 200
|
||||||
|
homing_speed: 100
|
||||||
|
accel: 600
|
||||||
|
endstop_pin: ^ercf:PB9
|
||||||
|
|
||||||
|
[tmc2209 manual_stepper selector_stepper]
|
||||||
|
uart_pin: ercf:PA8 # shared with gear_stepper
|
||||||
|
uart_address: 1
|
||||||
|
run_current: 0.55
|
||||||
|
hold_current: 0.4
|
||||||
|
interpolate: True
|
||||||
|
sense_resistor: 0.110
|
||||||
|
stealthchop_threshold: 5000
|
||||||
|
|
||||||
|
# Values are for the MG90S servo
|
||||||
|
[servo ercf_servo]
|
||||||
|
pin: ercf:PA5
|
||||||
|
maximum_servo_angle: 180
|
||||||
|
minimum_pulse_width: 0.00085
|
||||||
|
maximum_pulse_width: 0.00215
|
||||||
|
|
||||||
|
[duplicate_pin_override]
|
||||||
|
pins: ercf:PA6
|
||||||
|
# Put there the pin used by the encoder and the filament_motion_sensor
|
||||||
|
# It has to be the same pin for those 3
|
||||||
|
|
||||||
|
[filament_motion_sensor encoder_sensor]
|
||||||
|
switch_pin: ^ercf:PA6
|
||||||
|
pause_on_runout: False
|
||||||
|
detection_length: 3.0
|
||||||
|
extruder: extruder
|
||||||
|
# runout_gcode: ERCF_ENCODER_MOTION_ISSUE
|
||||||
|
|
||||||
|
[filament_switch_sensor toolhead_sensor]
|
||||||
|
pause_on_runout: False
|
||||||
|
switch_pin: ^PG13
|
||||||
|
runout_gcode:
|
||||||
|
M118 toolhead filament removed
|
||||||
|
insert_gcode:
|
||||||
|
M118 toolhead filament inserted
|
|
@ -4,13 +4,15 @@
|
||||||
|
|
||||||
[ercf]
|
[ercf]
|
||||||
# Encoder
|
# Encoder
|
||||||
encoder_pin: ^P1.0
|
# encoder_pin: ^P1.0
|
||||||
encoder_resolution: 1.365188 # in mm
|
encoder_pin: ercf:PA6 # easy brd
|
||||||
|
# encoder_resolution: 1.365188 # default
|
||||||
|
encoder_resolution: 1.349528 # from `ercf_calibrate_encoder`
|
||||||
# Speeds and accels
|
# Speeds and accels
|
||||||
# Long moves are faster than the small ones
|
# Long moves are faster than the small ones
|
||||||
# 100mm/s should be "quiet" with the NEMA14 motor or a NEMA17 pancake, but you can go lower if your really want it to be low noise
|
# 100mm/s should be "quiet" with the NEMA14 motor or a NEMA17 pancake, but you can go lower if your really want it to be low noise
|
||||||
# Tested without any issue at 200mm/s, but it's noisy. I'm running mine at 170mm/s for long moves and 50mm/s for short moves.
|
# Tested without any issue at 200mm/s, but it's noisy. I'm running mine at 170mm/s for long moves and 50mm/s for short moves.
|
||||||
long_moves_speed: 100 # mm/s. Default value is 100mm/s.
|
long_moves_speed: 60 # mm/s. Default value is 100mm/s.
|
||||||
long_moves_accel: 400 # mm/s². Default value is 400mm/s²
|
long_moves_accel: 400 # mm/s². Default value is 400mm/s²
|
||||||
short_moves_speed: 25 # mm/s. Default value is 25mm/s.
|
short_moves_speed: 25 # mm/s. Default value is 25mm/s.
|
||||||
short_moves_accel: 400 # mm/s². Default value is 400mm/s²
|
short_moves_accel: 400 # mm/s². Default value is 400mm/s²
|
||||||
|
@ -27,7 +29,7 @@ short_moves_accel: 400 # mm/s². Default value is 400mm/s²
|
||||||
# Galileo Clockwork with ERCF V1.1 sensor (hall effect) : 27.0
|
# Galileo Clockwork with ERCF V1.1 sensor (hall effect) : 27.0
|
||||||
# LGX on AfterBurner with ERCF V1.1 sensor (hall effect) : 44.0
|
# LGX on AfterBurner with ERCF V1.1 sensor (hall effect) : 44.0
|
||||||
# AfterBurner Clockwork with ERCF V1.1 sensor (hall effect) : 36.0
|
# AfterBurner Clockwork with ERCF V1.1 sensor (hall effect) : 36.0
|
||||||
variable_end_of_bowden_to_sensor: 27.0
|
variable_end_of_bowden_to_sensor: 40 # xk
|
||||||
# Length from the sensor to the nozzle melt pool.
|
# Length from the sensor to the nozzle melt pool.
|
||||||
# Reduce this value if there are blobs of filament on each load, before the purge on the tower.
|
# Reduce this value if there are blobs of filament on each load, before the purge on the tower.
|
||||||
# Increase this value if there are big gaps on the purge tower (i.e. if it takes time for the filament to get pushed out after a swap)
|
# Increase this value if there are big gaps on the purge tower (i.e. if it takes time for the filament to get pushed out after a swap)
|
||||||
|
@ -35,15 +37,16 @@ variable_end_of_bowden_to_sensor: 27.0
|
||||||
# Galileo Clockwork with ERCF 1.1 sensor (hall effect) & Dragon Normal Flow : 60.5
|
# Galileo Clockwork with ERCF 1.1 sensor (hall effect) & Dragon Normal Flow : 60.5
|
||||||
# LGX on AfterBurner with ERCF 1.1 sensor (hall effect) & Dragon Normal Flow : 55.6
|
# LGX on AfterBurner with ERCF 1.1 sensor (hall effect) & Dragon Normal Flow : 55.6
|
||||||
# AfterBurner Clockwork with ERCF 1.1 sensor (hall effect) & Dragon Normal Flow : 54.0
|
# AfterBurner Clockwork with ERCF 1.1 sensor (hall effect) & Dragon Normal Flow : 54.0
|
||||||
variable_sensor_to_nozzle: 60.5
|
variable_sensor_to_nozzle: 54
|
||||||
#
|
#
|
||||||
# ==== Values to tune ====
|
# ==== Values to tune ====
|
||||||
#
|
#
|
||||||
# Tool position for the selector. This has to be tuned manually. Please scale this array to the number of tools you have
|
# Tool position for the selector. This has to be tuned manually. Please scale this array to the number of tools you have
|
||||||
variable_colorselector = [2.4, 24.0, 44.8, 71.2, 92.0, 113.6, 139.2, 160.8, 181.6]
|
# variable_colorselector = [ 2.4, 23.2, 44.0] # 3 tools
|
||||||
|
variable_colorselector = [2.4, 23.2, 44.0, 69.6, 91.2, 112.0] # 6 tools
|
||||||
# Base value for the loading length used by the auto-calibration macro
|
# Base value for the loading length used by the auto-calibration macro
|
||||||
# Please use a value SMALLER than the real reverse bowden length (like 50mm less)
|
# Please use a value SMALLER than the real reverse bowden length (like 50mm less)
|
||||||
variable_min_bowden_length: 750.0
|
variable_min_bowden_length: 850
|
||||||
# Servo angle for the Up position (i.e. tool disengaged). Refer to the manual to know how to properly tune this value
|
# Servo angle for the Up position (i.e. tool disengaged). Refer to the manual to know how to properly tune this value
|
||||||
# Default values:
|
# Default values:
|
||||||
# MG90S servo : 30
|
# MG90S servo : 30
|
||||||
|
@ -53,7 +56,7 @@ variable_servo_up_angle: 30
|
||||||
# Default values:
|
# Default values:
|
||||||
# MG90S servo : 140
|
# MG90S servo : 140
|
||||||
# SAVOX SH0255MG : 30
|
# SAVOX SH0255MG : 30
|
||||||
variable_servo_down_angle: 140
|
variable_servo_down_angle: 130
|
||||||
# Options to use or not
|
# Options to use or not
|
||||||
# Beware that the clog detection and endless spool mode are in BETA mode for now
|
# Beware that the clog detection and endless spool mode are in BETA mode for now
|
||||||
# Use at your own risk (beware of the involved macros and the pause(s) and resume ones)
|
# Use at your own risk (beware of the involved macros and the pause(s) and resume ones)
|
||||||
|
@ -67,14 +70,14 @@ variable_endless_spool_mode: 0
|
||||||
|
|
||||||
# Things that you shouldn't have to change
|
# Things that you shouldn't have to change
|
||||||
variable_unload_modifier: 9.0 # Modifier to adjust the ERCF park position (where the filament ends when doing an unload)
|
variable_unload_modifier: 9.0 # Modifier to adjust the ERCF park position (where the filament ends when doing an unload)
|
||||||
variable_min_temp_extruder: 180 # Temp used during the auto-calibration macro, to ensure we can move the extruder (but not really extruding)
|
variable_min_temp_extruder: 210 # Temp used during the auto-calibration macro, to ensure we can move the extruder (but not really extruding)
|
||||||
variable_extruder_eject_temp: 240 # Temp used during filament ejection (in the ERCF_HOME macro, if a filament is detected in the toolhead)
|
variable_extruder_eject_temp: 240 # Temp used during filament ejection (in the ERCF_HOME macro, if a filament is detected in the toolhead)
|
||||||
variable_timeout_pause: 72000 # Time out used by the ERCF_PAUSE
|
variable_timeout_pause: 72000 # Time out used by the ERCF_PAUSE
|
||||||
variable_disable_heater: 600 # Delay after which the hotend heater is disabled in the ERCF_PAUSE state
|
variable_disable_heater: 600 # Delay after which the hotend heater is disabled in the ERCF_PAUSE state
|
||||||
gcode:
|
gcode:
|
||||||
|
|
||||||
[save_variables]
|
[save_variables]
|
||||||
filename: /home/pi/klipper_config/ercf_vars.cfg
|
filename: /home/pi/klipper_config/ercf/vars.cfg
|
||||||
|
|
||||||
###############################
|
###############################
|
||||||
# ERCF Calibration macros
|
# ERCF Calibration macros
|
||||||
|
@ -95,33 +98,33 @@ gcode:
|
||||||
description: Complete calibration of all ERCF Tools
|
description: Complete calibration of all ERCF Tools
|
||||||
gcode:
|
gcode:
|
||||||
SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=0
|
SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=0
|
||||||
M118 Start the complete auto calibration...
|
M118 Start the complete auto calibration...
|
||||||
M118 First home the ERCF
|
M118 First home the ERCF
|
||||||
ERCF_HOME
|
ERCF_HOME
|
||||||
|
|
||||||
{% for chan in range(printer["gcode_macro ERCF_VAR"].colorselector|length) %}
|
{% for chan in range(printer["gcode_macro ERCF_VAR"].colorselector|length) %}
|
||||||
ERCF_CALIBRATE_SINGLE TOOL={chan|int}
|
ERCF_CALIBRATE_SINGLE TOOL={chan|int}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
M118 End of the complete auto calibration!
|
M118 End of the complete auto calibration!
|
||||||
M118 Please reload the firmware for the calibration to be active!
|
M118 Please reload the firmware for the calibration to be active!
|
||||||
|
|
||||||
[gcode_macro ERCF_CALIBRATE_SINGLE]
|
[gcode_macro ERCF_CALIBRATE_SINGLE]
|
||||||
description: Calibration of a single ERCF Tool
|
description: Calibration of a single ERCF Tool
|
||||||
gcode:
|
gcode:
|
||||||
SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=0
|
SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=0
|
||||||
{% if params.TOOL|int >= 0 and params.TOOL|int < printer["gcode_macro ERCF_VAR"].colorselector|length %}
|
{% if params.TOOL|int >= 0 and params.TOOL|int < printer["gcode_macro ERCF_VAR"].colorselector|length %}
|
||||||
{% if printer["gcode_macro ERCF_HOME"].home == -1 %}
|
{% if printer["gcode_macro ERCF_HOME"].home == -1 %}
|
||||||
M118 First home the ERCF
|
M118 First home the ERCF
|
||||||
ERCF_HOME
|
ERCF_HOME
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
ERCF_SELECT_TOOL TOOL={params.TOOL}
|
ERCF_SELECT_TOOL TOOL={params.TOOL}
|
||||||
ERCF_SET_STEPS RATIO=1.0
|
ERCF_SET_STEPS RATIO=1.0
|
||||||
|
|
||||||
{% if params.TOOL|int == 0 %}
|
{% if params.TOOL|int == 0 %}
|
||||||
{% if printer['extruder'].temperature < printer["gcode_macro ERCF_VAR"].min_temp_extruder %}
|
{% if printer['extruder'].temperature < printer["gcode_macro ERCF_VAR"].min_temp_extruder %}
|
||||||
M109 S{printer["gcode_macro ERCF_VAR"].min_temp_extruder|int}
|
M109 S{printer["gcode_macro ERCF_VAR"].min_temp_extruder|int}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
M118 Calibrating reference tool {params.TOOL}
|
M118 Calibrating reference tool {params.TOOL}
|
||||||
|
@ -151,9 +154,9 @@ gcode:
|
||||||
ERCF_CALIB_UNLOAD LENGTH={printer["gcode_macro ERCF_VAR"].min_bowden_length|float - 100.0 + 27.0}
|
ERCF_CALIB_UNLOAD LENGTH={printer["gcode_macro ERCF_VAR"].min_bowden_length|float - 100.0 + 27.0}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
{% else %}
|
{% else %}
|
||||||
M118 Tool out of range
|
M118 Tool out of range
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
[gcode_macro ERCF_CALIB_SAVE_VAR]
|
[gcode_macro ERCF_CALIB_SAVE_VAR]
|
||||||
description: Saving ERCF calibration values
|
description: Saving ERCF calibration values
|
||||||
|
@ -259,16 +262,20 @@ description: Pause the current print and lock the ERCF operations
|
||||||
variable_is_paused: 0
|
variable_is_paused: 0
|
||||||
variable_extruder_temp: 0
|
variable_extruder_temp: 0
|
||||||
gcode:
|
gcode:
|
||||||
SET_GCODE_VARIABLE MACRO=ERCF_PAUSE VARIABLE=extruder_temp VALUE={printer.extruder.target}
|
{% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %}
|
||||||
SET_GCODE_VARIABLE MACRO=ERCF_PAUSE VARIABLE=is_paused VALUE=1
|
SET_GCODE_VARIABLE MACRO=ERCF_PAUSE VARIABLE=extruder_temp VALUE={printer.extruder.target}
|
||||||
SET_IDLE_TIMEOUT TIMEOUT={printer["gcode_macro ERCF_VAR"].timeout_pause}
|
SET_GCODE_VARIABLE MACRO=ERCF_PAUSE VARIABLE=is_paused VALUE=1
|
||||||
UPDATE_DELAYED_GCODE ID=disable_heater DURATION={printer["gcode_macro ERCF_VAR"].disable_heater}
|
SET_IDLE_TIMEOUT TIMEOUT={printer["gcode_macro ERCF_VAR"].timeout_pause}
|
||||||
M118 An issue with the ERCF has been detected and the ERCF has been PAUSED
|
UPDATE_DELAYED_GCODE ID=disable_heater DURATION={printer["gcode_macro ERCF_VAR"].disable_heater}
|
||||||
M118 When you intervene to fix the issue, first call the "ERCF_UNLOCK" Gcode
|
M118 An issue with the ERCF has been detected and the ERCF has been PAUSED
|
||||||
M118 Refer to the manual before resuming the print
|
M118 When you intervene to fix the issue, first call the "ERCF_UNLOCK" Gcode
|
||||||
SAVE_GCODE_STATE NAME=ERCF_state
|
M118 Refer to the manual before resuming the print
|
||||||
SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=0
|
SAVE_GCODE_STATE NAME=ERCF_state
|
||||||
PAUSE
|
SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=0
|
||||||
|
PAUSE
|
||||||
|
{% else %}
|
||||||
|
M118 already paused
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
############################################
|
############################################
|
||||||
# Changing tool macros
|
# Changing tool macros
|
||||||
|
@ -419,7 +426,7 @@ description: Eject the filament during a print and park it into the ERCF
|
||||||
gcode:
|
gcode:
|
||||||
{% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %}
|
{% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %}
|
||||||
{% if printer["gcode_macro ERCF_SELECT_TOOL"].color_selected|int != -1 %}
|
{% if printer["gcode_macro ERCF_SELECT_TOOL"].color_selected|int != -1 %}
|
||||||
M118 Unload tool {printer["gcode_macro ERCF_SELECT_TOOL"].color_selected|int} ...
|
M118 ERCF_UNLOAD_TOOL Unload tool {printer["gcode_macro ERCF_SELECT_TOOL"].color_selected|int} ...
|
||||||
ERCF_HOME_EXTRUDER
|
ERCF_HOME_EXTRUDER
|
||||||
ERCF_SELECT_TOOL TOOL={printer["gcode_macro ERCF_SELECT_TOOL"].color_selected|int}
|
ERCF_SELECT_TOOL TOOL={printer["gcode_macro ERCF_SELECT_TOOL"].color_selected|int}
|
||||||
{% set ercf_params = printer.save_variables.variables %}
|
{% set ercf_params = printer.save_variables.variables %}
|
||||||
|
@ -427,10 +434,11 @@ gcode:
|
||||||
G91
|
G91
|
||||||
G92 E0
|
G92 E0
|
||||||
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
||||||
MANUAL_STEPPER STEPPER=gear_stepper MOVE=-{printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float + 20.0} SPEED=25 ACCEL=0 SYNC=0
|
MANUAL_STEPPER STEPPER=gear_stepper MOVE=-{printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float} SPEED=25 ACCEL=0 SYNC=0
|
||||||
G1 E-{printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float + 20.0} F1500.0
|
M118 ERCF_UNLOAD_TOOL G1 E-{printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float} F1500.0
|
||||||
|
G1 E-{printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float} F1500.0
|
||||||
{% set ercf_params = printer.save_variables.variables %}
|
{% set ercf_params = printer.save_variables.variables %}
|
||||||
ERCF_UNLOAD LENGTH={ercf_params.ercf_calib_ref|float - printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float + printer["gcode_macro ERCF_VAR"].unload_modifier|float - 20.0}
|
ERCF_UNLOAD LENGTH={ercf_params.ercf_calib_ref|float - printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float + printer["gcode_macro ERCF_VAR"].unload_modifier|float}
|
||||||
ERCF_UNSELECT_TOOL
|
ERCF_UNSELECT_TOOL
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -448,15 +456,15 @@ variable_color_selected: -1
|
||||||
gcode:
|
gcode:
|
||||||
{% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %}
|
{% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %}
|
||||||
{% if printer["gcode_macro ERCF_HOME"].home != -1 %}
|
{% if printer["gcode_macro ERCF_HOME"].home != -1 %}
|
||||||
M118 Select Tool {params.TOOL} ...
|
M118 ERCF_SELECT_TOOL Select Tool {params.TOOL} ...
|
||||||
ERCF_SERVO_UP
|
ERCF_SERVO_UP
|
||||||
MANUAL_STEPPER STEPPER=selector_stepper MOVE={printer["gcode_macro ERCF_VAR"].colorselector[params.TOOL|int]}
|
MANUAL_STEPPER STEPPER=selector_stepper MOVE={printer["gcode_macro ERCF_VAR"].colorselector[params.TOOL|int]}
|
||||||
SET_GCODE_VARIABLE MACRO=ERCF_SELECT_TOOL VARIABLE=tool_selected VALUE={params.TOOL}
|
SET_GCODE_VARIABLE MACRO=ERCF_SELECT_TOOL VARIABLE=tool_selected VALUE={params.TOOL}
|
||||||
SET_GCODE_VARIABLE MACRO=ERCF_SELECT_TOOL VARIABLE=color_selected VALUE={params.TOOL}
|
SET_GCODE_VARIABLE MACRO=ERCF_SELECT_TOOL VARIABLE=color_selected VALUE={params.TOOL}
|
||||||
ERCF_SERVO_DOWN
|
ERCF_SERVO_DOWN
|
||||||
M118 Tool {params.TOOL} Enabled
|
M118 ERCF_SELECT_TOOL Tool {params.TOOL} Enabled
|
||||||
{% else %}
|
{% else %}
|
||||||
M118 Could not select tool, ERCF is not homed
|
M118 ERCF_SELECT_TOOL Could not select tool, ERCF is not homed
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -473,7 +481,7 @@ gcode:
|
||||||
{% endif %}
|
{% endif %}
|
||||||
ERCF_SET_STEPS RATIO=1.0
|
ERCF_SET_STEPS RATIO=1.0
|
||||||
{% else %}
|
{% else %}
|
||||||
M118 Could not unselect tool, ERCF is not homed
|
M118 ERCF_UNSELECT_TOOL Could not unselect tool, ERCF is not homed
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -488,23 +496,23 @@ description: Load filament from the toolhead entrance to the nozzle
|
||||||
gcode:
|
gcode:
|
||||||
{% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %}
|
{% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %}
|
||||||
{% if printer.extruder.temperature > printer["gcode_macro ERCF_VAR"].min_temp_extruder %}
|
{% if printer.extruder.temperature > printer["gcode_macro ERCF_VAR"].min_temp_extruder %}
|
||||||
M118 Loading Filament...
|
M118 ERCF_LOAD_F_I_E Loading Filament...
|
||||||
G91
|
G91
|
||||||
G92 E0
|
G92 E0
|
||||||
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
||||||
MANUAL_STEPPER STEPPER=gear_stepper MOVE={printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float - 7} SPEED=25 ACCEL=0 SYNC=0
|
MANUAL_STEPPER STEPPER=gear_stepper MOVE={printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float - 7} SPEED=25 ACCEL=0 SYNC=0
|
||||||
G1 E{printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float - 7} F1500.0
|
G1 E{printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float - 7} F1500.0
|
||||||
G4 P100
|
G4 P100
|
||||||
ERCF_HOME_EXTRUDER TOTAL_LENGTH=30.0 STEP_LENGTH=0.5
|
ERCF_HOME_EXTRUDER TOTAL_LENGTH=30.0 STEP_LENGTH=0.5
|
||||||
ERCF_UNSELECT_TOOL
|
ERCF_UNSELECT_TOOL
|
||||||
G1 E15 F1800
|
G1 E15 F1800
|
||||||
G1 E{printer["gcode_macro ERCF_VAR"].sensor_to_nozzle - 20} F1800
|
G1 E{printer["gcode_macro ERCF_VAR"].sensor_to_nozzle - 20} F1800
|
||||||
G1 E5 F600
|
G1 E5 F600
|
||||||
G92 E0
|
G92 E0
|
||||||
G90
|
G90
|
||||||
M118 Load Complete
|
M118 ERCF_LOAD_F_I_E Load Complete
|
||||||
{% else %}
|
{% else %}
|
||||||
M118 Extruder too cold
|
M118 ERCF_LOAD_F_I_E Extruder too cold
|
||||||
ERCF_PAUSE
|
ERCF_PAUSE
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -616,7 +624,7 @@ gcode:
|
||||||
{% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %}
|
{% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %}
|
||||||
{% if printer.extruder.temperature > printer["gcode_macro ERCF_VAR"].min_temp_extruder %}
|
{% if printer.extruder.temperature > printer["gcode_macro ERCF_VAR"].min_temp_extruder %}
|
||||||
{% if printer["gcode_macro ERCF_SELECT_TOOL"].tool_selected|int == -1 %}
|
{% if printer["gcode_macro ERCF_SELECT_TOOL"].tool_selected|int == -1 %}
|
||||||
M118 Forming filament tip and Unloading Filament...
|
M118 ERCR_U_F_IEWTF Forming filament tip and Unloading Filament...
|
||||||
G91
|
G91
|
||||||
ERCF_FORM_TIP_STANDALONE
|
ERCF_FORM_TIP_STANDALONE
|
||||||
G1 E-4.00 F1200.0
|
G1 E-4.00 F1200.0
|
||||||
|
@ -628,13 +636,13 @@ gcode:
|
||||||
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
MANUAL_STEPPER STEPPER=gear_stepper SET_POSITION=0
|
||||||
MANUAL_STEPPER STEPPER=gear_stepper MOVE=-{printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float} SPEED=25 ACCEL=0 SYNC=0
|
MANUAL_STEPPER STEPPER=gear_stepper MOVE=-{printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float} SPEED=25 ACCEL=0 SYNC=0
|
||||||
G1 E-{printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float} F1500.0
|
G1 E-{printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float} F1500.0
|
||||||
M118 Filament removed
|
M118 ERCF_U_F_FIEWTF Filament removed
|
||||||
{% else %}
|
{% else %}
|
||||||
M118 Tool selected, UNSELECT it
|
M118 Tool selected, UNSELECT it
|
||||||
ERCF_PAUSE
|
ERCF_PAUSE
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% else %}
|
{% else %}
|
||||||
M118 Extruder too cold
|
M118 ERCF_U_F_FIEWTF Extruder too cold
|
||||||
ERCF_PAUSE
|
ERCF_PAUSE
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -647,9 +655,9 @@ gcode:
|
||||||
[gcode_macro ERCF_IS_FILAMENT_IN_EXTRUDER]
|
[gcode_macro ERCF_IS_FILAMENT_IN_EXTRUDER]
|
||||||
gcode:
|
gcode:
|
||||||
{% if printer['filament_switch_sensor toolhead_sensor'].filament_detected == True %}
|
{% if printer['filament_switch_sensor toolhead_sensor'].filament_detected == True %}
|
||||||
M118 Filament is in extruder
|
M118 ERCF_IS_F_IE Filament is in extruder
|
||||||
{% else %}
|
{% else %}
|
||||||
M118 Filament not in extruder
|
M118 ERCF_IS_F_IE Filament not in extruder
|
||||||
ERCF_PAUSE
|
ERCF_PAUSE
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
@ -657,10 +665,10 @@ gcode:
|
||||||
[gcode_macro ERCF_IS_FILAMENT_STUCK_IN_ERCF]
|
[gcode_macro ERCF_IS_FILAMENT_STUCK_IN_ERCF]
|
||||||
gcode:
|
gcode:
|
||||||
{% if printer.ercf.encoder_pos|float != 0 %}
|
{% if printer.ercf.encoder_pos|float != 0 %}
|
||||||
M118 Filament stuck in ERCF
|
M118 ERCF_IS_F_SIE Filament stuck in ERCF
|
||||||
ERCF_PAUSE
|
ERCF_PAUSE
|
||||||
{% else %}
|
{% else %}
|
||||||
M118 Filament not in ERCF
|
M118 ERCF_IS_F_SIE Filament not in ERCF
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
############################################
|
############################################
|
||||||
|
@ -671,12 +679,13 @@ gcode:
|
||||||
[gcode_macro ERCF_EJECT_UNKNOW_STATE]
|
[gcode_macro ERCF_EJECT_UNKNOW_STATE]
|
||||||
description: Unload filament from an unknown position
|
description: Unload filament from an unknown position
|
||||||
gcode:
|
gcode:
|
||||||
M118 Eject Filament if loaded ...
|
M118 EJECT_US Eject Filament if loaded ...
|
||||||
{% if printer['filament_switch_sensor toolhead_sensor'].filament_detected == True %}
|
{% if printer['filament_switch_sensor toolhead_sensor'].filament_detected == True %}
|
||||||
M118 Filament in extruder, trying to eject it ..
|
M118 ERCF_EJECT_US Filament in extruder, trying to eject it ..
|
||||||
{% if printer['extruder'].temperature < 178 %}
|
{% set extruder_eject_temp = printer["gcode_macro ERCF_VAR"].extruder_eject_temp %}
|
||||||
M118 Preheat Nozzle
|
{% if printer['extruder'].temperature < extruder_eject_temp %}
|
||||||
M109 S{printer["gcode_macro ERCF_VAR"].extruder_eject_temp}
|
M118 Preheat Nozzle to {extruder_eject_temp}
|
||||||
|
M109 S{extruder_eject_temp}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
ERCF_UNLOAD_FILAMENT_IN_EXTRUDER_WITH_TIP_FORMING
|
ERCF_UNLOAD_FILAMENT_IN_EXTRUDER_WITH_TIP_FORMING
|
||||||
ERCF_UNLOAD LENGTH={printer["gcode_macro ERCF_VAR"].min_bowden_length - 50} UNKNOWN=1
|
ERCF_UNLOAD LENGTH={printer["gcode_macro ERCF_VAR"].min_bowden_length - 50} UNKNOWN=1
|
||||||
|
@ -693,9 +702,9 @@ description: Unload filament from the reverse bowden
|
||||||
gcode:
|
gcode:
|
||||||
{% if printer.ercf.encoder_pos|float != 0 %}
|
{% if printer.ercf.encoder_pos|float != 0 %}
|
||||||
ERCF_UNLOAD HOMING=1
|
ERCF_UNLOAD HOMING=1
|
||||||
M118 Filament ejected !
|
M118 Filament ejected!
|
||||||
{% else %}
|
{% else %}
|
||||||
M118 Filament already ejected !
|
M118 Filament already ejected!
|
||||||
{% endif %}
|
{% endif %}
|
||||||
ERCF_SERVO_UP
|
ERCF_SERVO_UP
|
||||||
|
|
||||||
|
@ -718,8 +727,11 @@ gcode:
|
||||||
{% endif %}
|
{% endif %}
|
||||||
M118 Homing ERCF ...
|
M118 Homing ERCF ...
|
||||||
QUERY_ENDSTOPS
|
QUERY_ENDSTOPS
|
||||||
|
M118 ERCF_EJECT_UNKNOW_STATE
|
||||||
ERCF_EJECT_UNKNOW_STATE
|
ERCF_EJECT_UNKNOW_STATE
|
||||||
|
M118 ERCF_HOME_SELECTOR
|
||||||
ERCF_HOME_SELECTOR
|
ERCF_HOME_SELECTOR
|
||||||
|
M118 ERCF_HOME_ONLY
|
||||||
ERCF_HOME_ONLY
|
ERCF_HOME_ONLY
|
||||||
|
|
||||||
[gcode_macro ERCF_HOME_SELECTOR]
|
[gcode_macro ERCF_HOME_SELECTOR]
|
|
@ -1,15 +1,15 @@
|
||||||
[Variables]
|
[Variables]
|
||||||
ercf_calib_0 = 1.0
|
ercf_calib_0 = 1.0
|
||||||
ercf_calib_1 = 1.0
|
ercf_calib_1 = 1.00135110302
|
||||||
ercf_calib_2 = 1.0
|
ercf_calib_10 = 1.0
|
||||||
ercf_calib_3 = 1.0
|
ercf_calib_11 = 1.0
|
||||||
|
ercf_calib_2 = 1.00374477099
|
||||||
|
ercf_calib_3 = 1.17246806366
|
||||||
ercf_calib_4 = 1.0
|
ercf_calib_4 = 1.0
|
||||||
ercf_calib_5 = 1.0
|
ercf_calib_5 = 1.0
|
||||||
ercf_calib_6 = 1.0
|
ercf_calib_6 = 1.0
|
||||||
ercf_calib_7 = 1.0
|
ercf_calib_7 = 1.0
|
||||||
ercf_calib_8 = 1.0
|
ercf_calib_8 = 1.0
|
||||||
ercf_calib_9 = 1.0
|
ercf_calib_9 = 1.0
|
||||||
ercf_calib_10 = 1.0
|
ercf_calib_ref = 976.383508
|
||||||
ercf_calib_11 = 1.0
|
|
||||||
ercf_calib_ref = 500.0
|
|
||||||
|
|
Loading…
Reference in a new issue