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 | ||||||
|  | @ -3,14 +3,16 @@ | ||||||
| ############################### | ############################### | ||||||
| 
 | 
 | ||||||
| [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,8 +56,8 @@ 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) | ||||||
| # Put 0 to disable, 1 to enable | # Put 0 to disable, 1 to enable | ||||||
|  | @ -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 | ||||||
|  | @ -88,46 +91,46 @@ gcode: | ||||||
| 
 | 
 | ||||||
|     M118 Measuring the selector position for tool {params.TOOL} |     M118 Measuring the selector position for tool {params.TOOL} | ||||||
|     ERCF_GET_SELECTOR_POS REF={move_length|int} |     ERCF_GET_SELECTOR_POS REF={move_length|int} | ||||||
|      | 
 | ||||||
|     ERCF_MOTORS_OFF |     ERCF_MOTORS_OFF | ||||||
| 
 | 
 | ||||||
| [gcode_macro ERCF_CALIBRATE] | [gcode_macro ERCF_CALIBRATE] | ||||||
| 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} | ||||||
|             ERCF_LOAD LENGTH={printer["gcode_macro ERCF_VAR"].min_bowden_length} |             ERCF_LOAD LENGTH={printer["gcode_macro ERCF_VAR"].min_bowden_length} | ||||||
|             ERCF_HOME_EXTRUDER TOTAL_LENGTH=400 STEP_LENGTH=0.5 |             ERCF_HOME_EXTRUDER TOTAL_LENGTH=400 STEP_LENGTH=0.5 | ||||||
|              | 
 | ||||||
|             ERCF_CALIB_SAVE_VAR TOOL={params.TOOL} |             ERCF_CALIB_SAVE_VAR TOOL={params.TOOL} | ||||||
| 
 | 
 | ||||||
|             G91 |             G91 | ||||||
|  | @ -137,10 +140,10 @@ gcode: | ||||||
|             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 | ||||||
| 
 | 
 | ||||||
|             ERCF_CALIB_UNLOAD |             ERCF_CALIB_UNLOAD | ||||||
|              | 
 | ||||||
|             ERCF_BUZZ_GEAR_MOTOR |             ERCF_BUZZ_GEAR_MOTOR | ||||||
|             ERCF_IS_FILAMENT_STUCK_IN_ERCF |             ERCF_IS_FILAMENT_STUCK_IN_ERCF | ||||||
|              | 
 | ||||||
|             ERCF_UNSELECT_TOOL |             ERCF_UNSELECT_TOOL | ||||||
|         {% else %} |         {% else %} | ||||||
|             M118 Calibrating tool {params.TOOL} |             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} |             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 | ||||||
|  | @ -317,7 +324,7 @@ gcode: | ||||||
| [gcode_macro ERCF_CHANGE_TOOL] | [gcode_macro ERCF_CHANGE_TOOL] | ||||||
| description: Perform a tool swap | description: Perform a tool swap | ||||||
| gcode: | gcode: | ||||||
|     {% if printer.idle_timeout.state == "Printing" %}  |     {% if printer.idle_timeout.state == "Printing" %} | ||||||
|         ERCF_CHANGE_TOOL_SLICER TOOL={params.TOOL|int} |         ERCF_CHANGE_TOOL_SLICER TOOL={params.TOOL|int} | ||||||
|     {% else %} |     {% else %} | ||||||
|         ERCF_CHANGE_TOOL_STANDALONE TOOL={params.TOOL|int} |         ERCF_CHANGE_TOOL_STANDALONE TOOL={params.TOOL|int} | ||||||
|  | @ -327,7 +334,7 @@ gcode: | ||||||
| description: Perform a tool swap during a print | description: Perform a tool swap during a print | ||||||
| gcode: | gcode: | ||||||
|     SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=0 |     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 |         # Add a variable 'SwapCounter' in your PRINT_START macro to display this info | ||||||
|         # {% set newcounter = (printer["gcode_macro PRINT_START"].swapcounter|int + 1) %} |         # {% set newcounter = (printer["gcode_macro PRINT_START"].swapcounter|int + 1) %} | ||||||
|         # SET_GCODE_VARIABLE MACRO=PRINT_START VARIABLE=swapcounter VALUE={newcounter} |         # SET_GCODE_VARIABLE MACRO=PRINT_START VARIABLE=swapcounter VALUE={newcounter} | ||||||
|  | @ -337,7 +344,7 @@ gcode: | ||||||
|         ERCF_LOAD_TOOL TOOL={params.TOOL|int} |         ERCF_LOAD_TOOL TOOL={params.TOOL|int} | ||||||
|         ERCF_CHANGE_TOOL_SLICER_END |         ERCF_CHANGE_TOOL_SLICER_END | ||||||
|     {% endif %} |     {% endif %} | ||||||
|      | 
 | ||||||
| [gcode_macro ERCF_CHANGE_TOOL_SLICER_END] | [gcode_macro ERCF_CHANGE_TOOL_SLICER_END] | ||||||
| gcode: | gcode: | ||||||
|         {% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %} |         {% if printer["gcode_macro ERCF_PAUSE"].is_paused|int == 0 %} | ||||||
|  | @ -368,7 +375,7 @@ gcode: | ||||||
| 
 | 
 | ||||||
|         ERCF_LOAD_TOOL TOOL={params.TOOL|int} |         ERCF_LOAD_TOOL TOOL={params.TOOL|int} | ||||||
|     {% endif %} |     {% endif %} | ||||||
|      | 
 | ||||||
| ############################################ | ############################################ | ||||||
| # Unloading/Loading Macros | # Unloading/Loading 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] | ||||||
|  | @ -803,7 +815,7 @@ gcode: | ||||||
|             {% else %} |             {% else %} | ||||||
|                 ERCF_SELECT_TOOL TOOL={load|int} |                 ERCF_SELECT_TOOL TOOL={load|int} | ||||||
|             {% endif %} |             {% endif %} | ||||||
|              | 
 | ||||||
|             ERCF_LOAD LENGTH=100 |             ERCF_LOAD LENGTH=100 | ||||||
|             G4 P50 |             G4 P50 | ||||||
|             ERCF_UNLOAD LENGTH=100 |             ERCF_UNLOAD LENGTH=100 | ||||||
|  | @ -815,7 +827,7 @@ gcode: | ||||||
| ############################################### | ############################################### | ||||||
| # Endless spool mode and clog detection | # Endless spool mode and clog detection | ||||||
| ############################################### | ############################################### | ||||||
|      | 
 | ||||||
| [gcode_macro ERCF_ENCODER_MOTION_ISSUE] | [gcode_macro ERCF_ENCODER_MOTION_ISSUE] | ||||||
| description: Perform a test when the encoder sense an issue (clog or runout) | description: Perform a test when the encoder sense an issue (clog or runout) | ||||||
| gcode: | gcode: | ||||||
|  | @ -828,7 +840,7 @@ gcode: | ||||||
|     ERCF_BUZZ_GEAR_MOTOR |     ERCF_BUZZ_GEAR_MOTOR | ||||||
|     ERCF_SERVO_UP |     ERCF_SERVO_UP | ||||||
|     ERCF_CLOG_OR_RUNOUT |     ERCF_CLOG_OR_RUNOUT | ||||||
|     | 
 | ||||||
| [gcode_macro 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 | description: Actions taken if a clog or a runout is detected by the ERCF encoder | ||||||
| gcode: | gcode: | ||||||
|  | @ -891,4 +903,4 @@ gcode: | ||||||
|             SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=1 |             SET_FILAMENT_SENSOR SENSOR=encoder_sensor ENABLE=1 | ||||||
|         {% endif %} |         {% endif %} | ||||||
|     {% endif %} |     {% endif %} | ||||||
|     | 
 | ||||||
|  | @ -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…
	
	Add table
		Add a link
		
	
		Reference in a new issue