diff --git a/ercf/.hardware.cfg.swp b/ercf/.hardware.cfg.swp new file mode 100644 index 0000000..f7ca0b7 Binary files /dev/null and b/ercf/.hardware.cfg.swp differ diff --git a/ercf/client_macros.cfg b/ercf/client_macros.cfg deleted file mode 100644 index 6c1268c..0000000 --- a/ercf/client_macros.cfg +++ /dev/null @@ -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 %} diff --git a/ercf/ercf_hardware.cfg b/ercf/ercf_hardware.cfg deleted file mode 100644 index 111c986..0000000 --- a/ercf/ercf_hardware.cfg +++ /dev/null @@ -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 diff --git a/ercf/hardware.cfg b/ercf/hardware.cfg new file mode 100644 index 0000000..2311bf2 --- /dev/null +++ b/ercf/hardware.cfg @@ -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 diff --git a/ercf/ercf_software.cfg b/ercf/software.cfg similarity index 88% rename from ercf/ercf_software.cfg rename to ercf/software.cfg index 49a8bba..20c52b4 100644 --- a/ercf/ercf_software.cfg +++ b/ercf/software.cfg @@ -3,14 +3,16 @@ ############################### [ercf] -# Encoder -encoder_pin: ^P1.0 -encoder_resolution: 1.365188 # in mm +# Encoder +# encoder_pin: ^P1.0 +encoder_pin: ercf:PA6 # easy brd +# encoder_resolution: 1.365188 # default +encoder_resolution: 1.349528 # from `ercf_calibrate_encoder` # Speeds and accels # 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 # 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² short_moves_speed: 25 # mm/s. Default value is 25mm/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 # LGX on AfterBurner with ERCF V1.1 sensor (hall effect) : 44.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. # 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) @@ -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 # 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 -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 -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 # 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 # Default values: # MG90S servo : 30 @@ -53,8 +56,8 @@ variable_servo_up_angle: 30 # Default values: # MG90S servo : 140 # SAVOX SH0255MG : 30 -variable_servo_down_angle: 140 -# Options to use or not +variable_servo_down_angle: 130 +# Options to use or not # 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) # Put 0 to disable, 1 to enable @@ -67,14 +70,14 @@ variable_endless_spool_mode: 0 # 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_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_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 gcode: [save_variables] -filename: /home/pi/klipper_config/ercf_vars.cfg +filename: /home/pi/klipper_config/ercf/vars.cfg ############################### # ERCF Calibration macros @@ -88,46 +91,46 @@ gcode: M118 Measuring the selector position for tool {params.TOOL} ERCF_GET_SELECTOR_POS REF={move_length|int} - + ERCF_MOTORS_OFF [gcode_macro ERCF_CALIBRATE] description: Complete calibration of all ERCF Tools gcode: 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 - ERCF_HOME + ERCF_HOME - {% for chan in range(printer["gcode_macro ERCF_VAR"].colorselector|length) %} - ERCF_CALIBRATE_SINGLE TOOL={chan|int} - {% endfor %} + {% for chan in range(printer["gcode_macro ERCF_VAR"].colorselector|length) %} + ERCF_CALIBRATE_SINGLE TOOL={chan|int} + {% 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! [gcode_macro ERCF_CALIBRATE_SINGLE] description: Calibration of a single ERCF Tool gcode: 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 printer["gcode_macro ERCF_HOME"].home == -1 %} - M118 First home the ERCF - ERCF_HOME - {% endif %} + {% if params.TOOL|int >= 0 and params.TOOL|int < printer["gcode_macro ERCF_VAR"].colorselector|length %} + {% if printer["gcode_macro ERCF_HOME"].home == -1 %} + M118 First home the ERCF + ERCF_HOME + {% endif %} ERCF_SELECT_TOOL TOOL={params.TOOL} ERCF_SET_STEPS RATIO=1.0 {% if params.TOOL|int == 0 %} {% 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 %} M118 Calibrating reference tool {params.TOOL} ERCF_LOAD LENGTH={printer["gcode_macro ERCF_VAR"].min_bowden_length} ERCF_HOME_EXTRUDER TOTAL_LENGTH=400 STEP_LENGTH=0.5 - + ERCF_CALIB_SAVE_VAR TOOL={params.TOOL} G91 @@ -137,10 +140,10 @@ gcode: G1 E-{printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float} F1500.0 ERCF_CALIB_UNLOAD - + ERCF_BUZZ_GEAR_MOTOR ERCF_IS_FILAMENT_STUCK_IN_ERCF - + ERCF_UNSELECT_TOOL {% else %} M118 Calibrating 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} {% endif %} - {% else %} - M118 Tool out of range - {% endif %} + {% else %} + M118 Tool out of range + {% endif %} [gcode_macro ERCF_CALIB_SAVE_VAR] description: Saving ERCF calibration values @@ -259,16 +262,20 @@ description: Pause the current print and lock the ERCF operations variable_is_paused: 0 variable_extruder_temp: 0 gcode: - SET_GCODE_VARIABLE MACRO=ERCF_PAUSE VARIABLE=extruder_temp VALUE={printer.extruder.target} - SET_GCODE_VARIABLE MACRO=ERCF_PAUSE VARIABLE=is_paused VALUE=1 - SET_IDLE_TIMEOUT TIMEOUT={printer["gcode_macro ERCF_VAR"].timeout_pause} - UPDATE_DELAYED_GCODE ID=disable_heater DURATION={printer["gcode_macro ERCF_VAR"].disable_heater} - M118 An issue with the ERCF has been detected and the ERCF has been PAUSED - M118 When you intervene to fix the issue, first call the "ERCF_UNLOCK" Gcode - M118 Refer to the manual before resuming the print - SAVE_GCODE_STATE NAME=ERCF_state - SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=0 - PAUSE + {% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %} + SET_GCODE_VARIABLE MACRO=ERCF_PAUSE VARIABLE=extruder_temp VALUE={printer.extruder.target} + SET_GCODE_VARIABLE MACRO=ERCF_PAUSE VARIABLE=is_paused VALUE=1 + SET_IDLE_TIMEOUT TIMEOUT={printer["gcode_macro ERCF_VAR"].timeout_pause} + UPDATE_DELAYED_GCODE ID=disable_heater DURATION={printer["gcode_macro ERCF_VAR"].disable_heater} + M118 An issue with the ERCF has been detected and the ERCF has been PAUSED + M118 When you intervene to fix the issue, first call the "ERCF_UNLOCK" Gcode + M118 Refer to the manual before resuming the print + SAVE_GCODE_STATE NAME=ERCF_state + SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=0 + PAUSE + {% else %} + M118 already paused + {% endif %} ############################################ # Changing tool macros @@ -317,7 +324,7 @@ gcode: [gcode_macro ERCF_CHANGE_TOOL] description: Perform a tool swap gcode: - {% if printer.idle_timeout.state == "Printing" %} + {% if printer.idle_timeout.state == "Printing" %} ERCF_CHANGE_TOOL_SLICER TOOL={params.TOOL|int} {% else %} ERCF_CHANGE_TOOL_STANDALONE TOOL={params.TOOL|int} @@ -327,7 +334,7 @@ gcode: description: Perform a tool swap during a print gcode: SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=0 - {% if printer["gcode_macro ERCF_SELECT_TOOL"].color_selected|int != params.TOOL|int %} + {% if printer["gcode_macro ERCF_SELECT_TOOL"].color_selected|int != params.TOOL|int %} # Add a variable 'SwapCounter' in your PRINT_START macro to display this info # {% set newcounter = (printer["gcode_macro PRINT_START"].swapcounter|int + 1) %} # SET_GCODE_VARIABLE MACRO=PRINT_START VARIABLE=swapcounter VALUE={newcounter} @@ -337,7 +344,7 @@ gcode: ERCF_LOAD_TOOL TOOL={params.TOOL|int} ERCF_CHANGE_TOOL_SLICER_END {% endif %} - + [gcode_macro ERCF_CHANGE_TOOL_SLICER_END] gcode: {% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %} @@ -368,7 +375,7 @@ gcode: ERCF_LOAD_TOOL TOOL={params.TOOL|int} {% endif %} - + ############################################ # Unloading/Loading Macros ############################################ @@ -419,7 +426,7 @@ description: Eject the filament during a print and park it into the ERCF gcode: {% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %} {% 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_SELECT_TOOL TOOL={printer["gcode_macro ERCF_SELECT_TOOL"].color_selected|int} {% set ercf_params = printer.save_variables.variables %} @@ -427,10 +434,11 @@ gcode: G91 G92 E0 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 - G1 E-{printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float + 20.0} F1500.0 + MANUAL_STEPPER STEPPER=gear_stepper MOVE=-{printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float} SPEED=25 ACCEL=0 SYNC=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 %} - 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 {% endif %} {% endif %} @@ -448,15 +456,15 @@ variable_color_selected: -1 gcode: {% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %} {% if printer["gcode_macro ERCF_HOME"].home != -1 %} - M118 Select Tool {params.TOOL} ... + M118 ERCF_SELECT_TOOL Select Tool {params.TOOL} ... ERCF_SERVO_UP 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=color_selected VALUE={params.TOOL} ERCF_SERVO_DOWN - M118 Tool {params.TOOL} Enabled + M118 ERCF_SELECT_TOOL Tool {params.TOOL} Enabled {% else %} - M118 Could not select tool, ERCF is not homed + M118 ERCF_SELECT_TOOL Could not select tool, ERCF is not homed {% endif %} {% endif %} @@ -473,7 +481,7 @@ gcode: {% endif %} ERCF_SET_STEPS RATIO=1.0 {% else %} - M118 Could not unselect tool, ERCF is not homed + M118 ERCF_UNSELECT_TOOL Could not unselect tool, ERCF is not homed {% endif %} {% endif %} @@ -488,23 +496,23 @@ description: Load filament from the toolhead entrance to the nozzle gcode: {% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %} {% if printer.extruder.temperature > printer["gcode_macro ERCF_VAR"].min_temp_extruder %} - M118 Loading Filament... + M118 ERCF_LOAD_F_I_E Loading Filament... G91 G92 E0 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 - G1 E{printer["gcode_macro ERCF_VAR"].end_of_bowden_to_sensor|float - 7} F1500.0 - G4 P100 + 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 + G4 P100 ERCF_HOME_EXTRUDER TOTAL_LENGTH=30.0 STEP_LENGTH=0.5 - ERCF_UNSELECT_TOOL - G1 E15 F1800 - G1 E{printer["gcode_macro ERCF_VAR"].sensor_to_nozzle - 20} F1800 - G1 E5 F600 - G92 E0 - G90 - M118 Load Complete + ERCF_UNSELECT_TOOL + G1 E15 F1800 + G1 E{printer["gcode_macro ERCF_VAR"].sensor_to_nozzle - 20} F1800 + G1 E5 F600 + G92 E0 + G90 + M118 ERCF_LOAD_F_I_E Load Complete {% else %} - M118 Extruder too cold + M118 ERCF_LOAD_F_I_E Extruder too cold ERCF_PAUSE {% endif %} {% endif %} @@ -616,7 +624,7 @@ gcode: {% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %} {% if printer.extruder.temperature > printer["gcode_macro ERCF_VAR"].min_temp_extruder %} {% 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 ERCF_FORM_TIP_STANDALONE G1 E-4.00 F1200.0 @@ -628,13 +636,13 @@ gcode: 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 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 %} M118 Tool selected, UNSELECT it ERCF_PAUSE {% endif %} {% else %} - M118 Extruder too cold + M118 ERCF_U_F_FIEWTF Extruder too cold ERCF_PAUSE {% endif %} {% endif %} @@ -647,9 +655,9 @@ gcode: [gcode_macro ERCF_IS_FILAMENT_IN_EXTRUDER] gcode: {% 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 %} - M118 Filament not in extruder + M118 ERCF_IS_F_IE Filament not in extruder ERCF_PAUSE {% endif %} @@ -657,10 +665,10 @@ gcode: [gcode_macro ERCF_IS_FILAMENT_STUCK_IN_ERCF] gcode: {% if printer.ercf.encoder_pos|float != 0 %} - M118 Filament stuck in ERCF + M118 ERCF_IS_F_SIE Filament stuck in ERCF ERCF_PAUSE {% else %} - M118 Filament not in ERCF + M118 ERCF_IS_F_SIE Filament not in ERCF {% endif %} ############################################ @@ -671,12 +679,13 @@ gcode: [gcode_macro ERCF_EJECT_UNKNOW_STATE] description: Unload filament from an unknown position gcode: - M118 Eject Filament if loaded ... + M118 EJECT_US Eject Filament if loaded ... {% if printer['filament_switch_sensor toolhead_sensor'].filament_detected == True %} - M118 Filament in extruder, trying to eject it .. - {% if printer['extruder'].temperature < 178 %} - M118 Preheat Nozzle - M109 S{printer["gcode_macro ERCF_VAR"].extruder_eject_temp} + M118 ERCF_EJECT_US Filament in extruder, trying to eject it .. + {% set extruder_eject_temp = printer["gcode_macro ERCF_VAR"].extruder_eject_temp %} + {% if printer['extruder'].temperature < extruder_eject_temp %} + M118 Preheat Nozzle to {extruder_eject_temp} + M109 S{extruder_eject_temp} {% endif %} ERCF_UNLOAD_FILAMENT_IN_EXTRUDER_WITH_TIP_FORMING 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: {% if printer.ercf.encoder_pos|float != 0 %} ERCF_UNLOAD HOMING=1 - M118 Filament ejected ! + M118 Filament ejected! {% else %} - M118 Filament already ejected ! + M118 Filament already ejected! {% endif %} ERCF_SERVO_UP @@ -718,8 +727,11 @@ gcode: {% endif %} M118 Homing ERCF ... QUERY_ENDSTOPS + M118 ERCF_EJECT_UNKNOW_STATE ERCF_EJECT_UNKNOW_STATE + M118 ERCF_HOME_SELECTOR ERCF_HOME_SELECTOR + M118 ERCF_HOME_ONLY ERCF_HOME_ONLY [gcode_macro ERCF_HOME_SELECTOR] @@ -803,7 +815,7 @@ gcode: {% else %} ERCF_SELECT_TOOL TOOL={load|int} {% endif %} - + ERCF_LOAD LENGTH=100 G4 P50 ERCF_UNLOAD LENGTH=100 @@ -815,7 +827,7 @@ gcode: ############################################### # Endless spool mode and clog detection ############################################### - + [gcode_macro ERCF_ENCODER_MOTION_ISSUE] description: Perform a test when the encoder sense an issue (clog or runout) gcode: @@ -828,7 +840,7 @@ gcode: ERCF_BUZZ_GEAR_MOTOR ERCF_SERVO_UP ERCF_CLOG_OR_RUNOUT - + [gcode_macro ERCF_CLOG_OR_RUNOUT] description: Actions taken if a clog or a runout is detected by the ERCF encoder gcode: @@ -891,4 +903,4 @@ gcode: SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=1 {% endif %} {% endif %} - + diff --git a/ercf/ercf_vars.cfg b/ercf/vars.cfg similarity index 61% rename from ercf/ercf_vars.cfg rename to ercf/vars.cfg index bfbf8f9..f33093e 100644 --- a/ercf/ercf_vars.cfg +++ b/ercf/vars.cfg @@ -1,15 +1,15 @@ [Variables] ercf_calib_0 = 1.0 -ercf_calib_1 = 1.0 -ercf_calib_2 = 1.0 -ercf_calib_3 = 1.0 +ercf_calib_1 = 1.00135110302 +ercf_calib_10 = 1.0 +ercf_calib_11 = 1.0 +ercf_calib_2 = 1.00374477099 +ercf_calib_3 = 1.17246806366 ercf_calib_4 = 1.0 ercf_calib_5 = 1.0 ercf_calib_6 = 1.0 ercf_calib_7 = 1.0 ercf_calib_8 = 1.0 ercf_calib_9 = 1.0 -ercf_calib_10 = 1.0 -ercf_calib_11 = 1.0 -ercf_calib_ref = 500.0 +ercf_calib_ref = 976.383508