Merge branch 'develop'
This commit is contained in:
commit
a012f4d942
@ -137,7 +137,7 @@ pwm_cycle_time: 0.3
|
|||||||
|
|
||||||
[verify_heater chamber]
|
[verify_heater chamber]
|
||||||
max_error: 120
|
max_error: 120
|
||||||
hysteresis: 0
|
hysteresis: 100
|
||||||
check_gain_time: 3600
|
check_gain_time: 3600
|
||||||
heating_gain: 0.01
|
heating_gain: 0.01
|
||||||
|
|
||||||
@ -149,15 +149,15 @@ kick_start_time: 1.0
|
|||||||
off_below: 0.10
|
off_below: 0.10
|
||||||
|
|
||||||
[filament_switch_sensor extruder]
|
[filament_switch_sensor extruder]
|
||||||
pause_on_runout: True
|
pause_on_runout: False
|
||||||
runout_gcode:
|
runout_gcode: _RUNOUT_HANDLE
|
||||||
event_delay: 3.0
|
event_delay: 3.0
|
||||||
pause_delay: 0.5
|
pause_delay: 0.5
|
||||||
switch_pin: ^PC14
|
switch_pin: ^PC14
|
||||||
|
|
||||||
[filament_switch_sensor extruder1]
|
[filament_switch_sensor extruder1]
|
||||||
pause_on_runout: True
|
pause_on_runout: False
|
||||||
runout_gcode:
|
runout_gcode: _RUNOUT_HANDLE
|
||||||
event_delay: 3.0
|
event_delay: 3.0
|
||||||
pause_delay: 0.5
|
pause_delay: 0.5
|
||||||
switch_pin: ^PC15
|
switch_pin: ^PC15
|
||||||
@ -347,13 +347,15 @@ initial_angle: 135
|
|||||||
# initial_pulse_width:
|
# initial_pulse_width:
|
||||||
|
|
||||||
[safe_z_home]
|
[safe_z_home]
|
||||||
home_xy_position: 500,500
|
home_xy_position: 400,400
|
||||||
speed:100
|
speed:100
|
||||||
z_hop:5
|
z_hop:5
|
||||||
z_hop_speed: 10
|
z_hop_speed: 10
|
||||||
|
|
||||||
[gcode_macro ENABLE_FORCE_MOVE]
|
[gcode_macro ENABLE_FORCE_MOVE]
|
||||||
gcode:
|
gcode:
|
||||||
|
SET_STEPPER_ENABLE STEPPER=stepper_x ENABLE=1
|
||||||
|
SET_STEPPER_ENABLE STEPPER=stepper_y ENABLE=1
|
||||||
SET_KINEMATIC_POSITION X=500 Y=500 Z=500
|
SET_KINEMATIC_POSITION X=500 Y=500 Z=500
|
||||||
|
|
||||||
[gcode_macro T0]
|
[gcode_macro T0]
|
||||||
@ -365,6 +367,7 @@ gcode:
|
|||||||
SET_GCODE_OFFSET X=0
|
SET_GCODE_OFFSET X=0
|
||||||
SET_SERVO SERVO=switch_nozzle angle=45
|
SET_SERVO SERVO=switch_nozzle angle=45
|
||||||
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
||||||
|
_RUNOUT_HANDLE
|
||||||
|
|
||||||
[gcode_macro T1]
|
[gcode_macro T1]
|
||||||
gcode:
|
gcode:
|
||||||
@ -379,6 +382,7 @@ gcode:
|
|||||||
SET_GCODE_OFFSET X={x_offset}
|
SET_GCODE_OFFSET X={x_offset}
|
||||||
SET_SERVO SERVO=switch_nozzle angle=225
|
SET_SERVO SERVO=switch_nozzle angle=225
|
||||||
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
||||||
|
_RUNOUT_HANDLE
|
||||||
|
|
||||||
[gcode_macro PROBE_SERVO_OPEN]
|
[gcode_macro PROBE_SERVO_OPEN]
|
||||||
gcode:
|
gcode:
|
||||||
@ -388,6 +392,10 @@ gcode:
|
|||||||
[gcode_macro PROBE_SERVO_CLOSE]
|
[gcode_macro PROBE_SERVO_CLOSE]
|
||||||
gcode:
|
gcode:
|
||||||
SET_SERVO SERVO=probe_servo angle=130
|
SET_SERVO SERVO=probe_servo angle=130
|
||||||
|
[gcode_macro _START_PRINT_BASE]
|
||||||
|
description: Call when starting to print
|
||||||
|
gcode:
|
||||||
|
_RUNOUT_HANDLE
|
||||||
|
|
||||||
[gcode_macro START_PRINT]
|
[gcode_macro START_PRINT]
|
||||||
gcode:
|
gcode:
|
||||||
@ -452,7 +460,7 @@ gcode:
|
|||||||
RESTORE_GCODE_STATE NAME=load_state
|
RESTORE_GCODE_STATE NAME=load_state
|
||||||
|
|
||||||
[gcode_macro UNLOAD_FILAMENT]
|
[gcode_macro UNLOAD_FILAMENT]
|
||||||
variable_unload_distance: 120
|
variable_unload_distance: 140
|
||||||
variable_purge_distance: 25
|
variable_purge_distance: 25
|
||||||
gcode:
|
gcode:
|
||||||
{% set speed = params.SPEED|default(200) %}
|
{% set speed = params.SPEED|default(200) %}
|
||||||
@ -490,6 +498,9 @@ gcode:
|
|||||||
T1
|
T1
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# GCODE
|
||||||
|
########################################
|
||||||
[gcode_macro G28]
|
[gcode_macro G28]
|
||||||
rename_existing: C28
|
rename_existing: C28
|
||||||
gcode:
|
gcode:
|
||||||
@ -499,9 +510,13 @@ gcode:
|
|||||||
{% set do_z = 'Z' in params|string %}
|
{% set do_z = 'Z' in params|string %}
|
||||||
|
|
||||||
{% if do_x %}
|
{% if do_x %}
|
||||||
|
SET_STEPPER_ENABLE STEPPER=stepper_x ENABLE=1
|
||||||
|
G4 P300
|
||||||
{% set homing_cmd = 'X ' %}
|
{% set homing_cmd = 'X ' %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if do_y %}
|
{% if do_y %}
|
||||||
|
SET_STEPPER_ENABLE STEPPER=stepper_y ENABLE=1
|
||||||
|
G4 P300
|
||||||
{% set homing_cmd = homing_cmd + 'Y ' %}
|
{% set homing_cmd = homing_cmd + 'Y ' %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if do_z %}
|
{% if do_z %}
|
||||||
@ -512,6 +527,9 @@ gcode:
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if not homing_cmd %}
|
{% if not homing_cmd %}
|
||||||
|
SET_STEPPER_ENABLE STEPPER=stepper_x ENABLE=1
|
||||||
|
SET_STEPPER_ENABLE STEPPER=stepper_y ENABLE=1
|
||||||
|
G4 P300
|
||||||
C28
|
C28
|
||||||
_ACTIVATE_DEFAULT_EXTRUDER
|
_ACTIVATE_DEFAULT_EXTRUDER
|
||||||
{% else %}
|
{% else %}
|
||||||
@ -521,6 +539,22 @@ gcode:
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro M109]
|
||||||
|
rename_existing: C109
|
||||||
|
gcode:
|
||||||
|
{% set hotend = "extruder" %}
|
||||||
|
{% set s = params.S|default(0)|float %}
|
||||||
|
{% set t = params.T|default(0)|int %}
|
||||||
|
{% if params.S is defined %}
|
||||||
|
{% if t != 0 %}
|
||||||
|
{% set hotend = hotend ~ t %}
|
||||||
|
{% endif %}
|
||||||
|
SET_HEATER_TEMPERATURE HEATER={hotend} TARGET={s}
|
||||||
|
{% if s != 0 %}
|
||||||
|
TEMPERATURE_WAIT SENSOR={hotend} MINIMUM={s-3} MAXIMUM={s+3}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
[gcode_macro M141]
|
[gcode_macro M141]
|
||||||
gcode:
|
gcode:
|
||||||
{% set s = params.S|default(0)|float %}
|
{% set s = params.S|default(0)|float %}
|
||||||
@ -528,13 +562,24 @@ gcode:
|
|||||||
SET_HEATER_TEMPERATURE HEATER=chamber target={s|int}
|
SET_HEATER_TEMPERATURE HEATER=chamber target={s|int}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro M190]
|
||||||
|
rename_existing: C190
|
||||||
|
gcode:
|
||||||
|
{% set s = params.S|default(0)|float %}
|
||||||
|
{% if params.S is defined %}
|
||||||
|
SET_HEATER_TEMPERATURE HEATER="heater_bed" TARGET={s}
|
||||||
|
{% if s != 0 %}
|
||||||
|
TEMPERATURE_WAIT SENSOR="heater_bed" MINIMUM={s-3} MAXIMUM={s+3}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
[gcode_macro M191]
|
[gcode_macro M191]
|
||||||
gcode:
|
gcode:
|
||||||
{% set s = params.S|default(0)|float %}
|
{% set s = params.S|default(0)|float %}
|
||||||
{% if params.S is defined %}
|
{% if params.S is defined %}
|
||||||
M141 S{s}
|
M141 S{s}
|
||||||
{% if s != 0 %}
|
{% if s != 0 %}
|
||||||
TEMPERATURE_WAIT SENSOR="heater_generic chamber" MINIMUM={s-2} MAXIMUM={s+2}
|
TEMPERATURE_WAIT SENSOR="heater_generic chamber" MINIMUM={s-3} MAXIMUM={s+3}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
@ -544,6 +589,9 @@ gcode:
|
|||||||
C84
|
C84
|
||||||
SET_STEPPER_ENABLE STEPPER=stepper_z enable=1
|
SET_STEPPER_ENABLE STEPPER=stepper_z enable=1
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# CANCEL_PRINT/PAUSE/RESUME/
|
||||||
|
########################################
|
||||||
[gcode_macro _CLIENT_VARIABLE]
|
[gcode_macro _CLIENT_VARIABLE]
|
||||||
variable_use_custom_pos : True
|
variable_use_custom_pos : True
|
||||||
variable_custom_park_x : 500.0
|
variable_custom_park_x : 500.0
|
||||||
@ -562,8 +610,11 @@ variable_park_at_cancel_y : None
|
|||||||
variable_use_fw_retract : False
|
variable_use_fw_retract : False
|
||||||
variable_idle_timeout : 600
|
variable_idle_timeout : 600
|
||||||
variable_runout_sensor : ""
|
variable_runout_sensor : ""
|
||||||
|
variable_filament_sensor : "filament_switch_sensor extruder"
|
||||||
|
variable_filament_sensor1 : "filament_switch_sensor extruder1"
|
||||||
|
variable_user_temp_resume : "_USER_TEMP_RESUME"
|
||||||
variable_user_pause_macro : "_USER_PAUSE"
|
variable_user_pause_macro : "_USER_PAUSE"
|
||||||
variable_user_resume_macro: "_USER_RESUME"
|
variable_user_resume_macro: ""
|
||||||
variable_user_cancel_macro: "_USER_CANCEL"
|
variable_user_cancel_macro: "_USER_CANCEL"
|
||||||
gcode:
|
gcode:
|
||||||
# Nothing
|
# Nothing
|
||||||
@ -579,11 +630,7 @@ gcode:
|
|||||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE={name} VALUE="{{'restore': restore, 'temp': temp}}"
|
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE={name} VALUE="{{'restore': restore, 'temp': temp}}"
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
[gcode_macro RESUME]
|
[gcode_macro _USER_TEMP_RESUME]
|
||||||
variable_last_extruder_temp: {'restore': False, 'temp': 0}
|
|
||||||
variable_last_extruder1_temp: {'restore': False, 'temp': 0}
|
|
||||||
|
|
||||||
[gcode_macro _USER_RESUME]
|
|
||||||
gcode:
|
gcode:
|
||||||
{% set extruder_info = [
|
{% set extruder_info = [
|
||||||
{'index': 0, 'name': 'last_extruder_temp'},
|
{'index': 0, 'name': 'last_extruder_temp'},
|
||||||
@ -608,4 +655,121 @@ gcode:
|
|||||||
|
|
||||||
[gcode_macro _USER_CANCEL]
|
[gcode_macro _USER_CANCEL]
|
||||||
gcode:
|
gcode:
|
||||||
M84
|
G91
|
||||||
|
G1 Z30 F600 ; lift nozzle
|
||||||
|
M84
|
||||||
|
|
||||||
|
[gcode_macro RESUME]
|
||||||
|
description: Resume the actual running print
|
||||||
|
rename_existing: RESUME_BASE
|
||||||
|
variable_last_extruder_temp: {'restore': False, 'temp': 0}
|
||||||
|
variable_last_extruder1_temp: {'restore': False, 'temp': 0}
|
||||||
|
variable_restore_idle_timeout: 0
|
||||||
|
variable_idle_state: False
|
||||||
|
variable_filament_state: False
|
||||||
|
gcode:
|
||||||
|
##### get user parameters or use default #####
|
||||||
|
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||||
|
{% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config
|
||||||
|
else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder
|
||||||
|
{% set do_resume = False %}
|
||||||
|
{% set prompt_txt = [] %}
|
||||||
|
{% set runout = True %}
|
||||||
|
##### end of definitions #####
|
||||||
|
_FILAMENT_UPDATE
|
||||||
|
#### Printer comming from timeout idle state ####
|
||||||
|
{% if printer.idle_timeout.state|upper == "IDLE" or idle_state %}
|
||||||
|
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False
|
||||||
|
{% if last_extruder_temp.restore or last_extruder1_temp.restore %}
|
||||||
|
# we need to use the unicode (\u00B0) for the ° as py2 env's would throw an error otherwise
|
||||||
|
RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp.temp) }'
|
||||||
|
{client.user_temputer_macro|default("")}
|
||||||
|
{% set do_resume = True %}
|
||||||
|
{% elif can_extrude %}
|
||||||
|
{% set do_resume = True %}
|
||||||
|
{% else %}
|
||||||
|
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
|
||||||
|
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
|
||||||
|
{% endif %}
|
||||||
|
#### Printer comming out of regular PAUSE state ####
|
||||||
|
{% elif can_extrude %}
|
||||||
|
{% set do_resume = True %}
|
||||||
|
{% else %}
|
||||||
|
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
|
||||||
|
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
|
||||||
|
{% endif %}
|
||||||
|
_ACT_RESUME DO_RESUME={do_resume}
|
||||||
|
|
||||||
|
[gcode_macro _ACT_RESUME]
|
||||||
|
gcode:
|
||||||
|
##### get user parameters or use default #####
|
||||||
|
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||||
|
{% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
|
||||||
|
{% set sp_move = client.speed_move|default(velocity) %}
|
||||||
|
{% set do_resume = true if params.DO_RESUME|default(False)|lower == 'true' else false %}
|
||||||
|
{% set filament_state = printer['gcode_macro RESUME'].filament_state|default(False) %}
|
||||||
|
{% set restore_idle_timeout = printer['gcode_macro RESUME'].restore_idle_timeout|default(0) %}
|
||||||
|
{% set prompt_txt = [] %}
|
||||||
|
{% if filament_state %}
|
||||||
|
{% if do_resume %}
|
||||||
|
{% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %} # restore idle_timeout time
|
||||||
|
{client.user_resume_macro|default("")}
|
||||||
|
_CLIENT_EXTRUDE
|
||||||
|
RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder}'
|
||||||
|
{% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder) %}
|
||||||
|
{% endif %}
|
||||||
|
##### Generate User Information box in case of abort #####
|
||||||
|
{% if not (filament_state and do_resume) %}
|
||||||
|
RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!"
|
||||||
|
{% for element in prompt_txt %}
|
||||||
|
RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}'
|
||||||
|
{% endfor %}
|
||||||
|
RESPOND TYPE=command MSG="action:prompt_footer_button Ok|RESPOND TYPE=command MSG=action:prompt_end|info"
|
||||||
|
RESPOND TYPE=command MSG="action:prompt_show"
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# filament_runout
|
||||||
|
########################################
|
||||||
|
|
||||||
|
[gcode_macro _FILAMENT_UPDATE]
|
||||||
|
gcode:
|
||||||
|
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||||
|
{% set runout_resume = True if client.filament_sensor|default("") == "" # no runout
|
||||||
|
else True if not printer[client.filament_sensor].enabled # sensor is disabled
|
||||||
|
else printer[client.filament_sensor].filament_detected %} # sensor status
|
||||||
|
{% set runout_resume1 = True if client.filament_sensor1|default("") == "" # no runout
|
||||||
|
else True if not printer[client.filament_sensor1].enabled # sensor1 is disabled
|
||||||
|
else printer[client.filament_sensor1].filament_detected %} # sensor1 status
|
||||||
|
##### filament check #####
|
||||||
|
{% if printer["dual_carriage"] is not defined %}
|
||||||
|
{% set runout = runout_resume if printer.toolhead.extruder == "extruder" else runout_resume1 %}
|
||||||
|
{% else %}
|
||||||
|
{% set current_idex_mode = printer["dual_carriage"].carriage_1|lower %}
|
||||||
|
{% if current_idex_mode == 'copy' or current_idex_mode == 'mirror' %}
|
||||||
|
{% set runout = (runout_resume == false or runout_resume1 == false) %}
|
||||||
|
{% else %}
|
||||||
|
{% set runout = runout_resume if printer.toolhead.extruder == "extruder" else runout_resume1 %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=filament_state VALUE={ runout }
|
||||||
|
|
||||||
|
[gcode_macro _RUNOUT_HANDLE]
|
||||||
|
description: filament state update
|
||||||
|
gcode:
|
||||||
|
_FILAMENT_UPDATE
|
||||||
|
{% if printer.print_stats.state == "printing" %}
|
||||||
|
_RUNOUT_PAUSE
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro _RUNOUT_PAUSE]
|
||||||
|
gcode:
|
||||||
|
{% set filament_state = printer['gcode_macro RESUME'].filament_state|default(False) %}
|
||||||
|
{% if not filament_state %}
|
||||||
|
{% set msg_extruder = "extruder" if printer.toolhead.extruder == "extruder" else "extruder1" %}
|
||||||
|
RESPOND TYPE=echo MSG='{"Noting! \"%s\" filament has been pulled out." % msg_extruder}'
|
||||||
|
PAUSE
|
||||||
|
{% endif %}
|
||||||
|
@ -94,7 +94,7 @@ step_pin: PD7
|
|||||||
dir_pin: PD6
|
dir_pin: PD6
|
||||||
enable_pin: !PD5
|
enable_pin: !PD5
|
||||||
rotation_distance: 5
|
rotation_distance: 5
|
||||||
gear_ratio: 3:1
|
gear_ratio: 2.5:1
|
||||||
microsteps: 16
|
microsteps: 16
|
||||||
full_steps_per_rotation: 200
|
full_steps_per_rotation: 200
|
||||||
endstop_pin: probe:z_virtual_endstop
|
endstop_pin: probe:z_virtual_endstop
|
||||||
@ -137,7 +137,7 @@ pwm_cycle_time: 0.3
|
|||||||
|
|
||||||
[verify_heater chamber]
|
[verify_heater chamber]
|
||||||
max_error: 120
|
max_error: 120
|
||||||
# hysteresis: 0
|
hysteresis: 100
|
||||||
check_gain_time: 3600
|
check_gain_time: 3600
|
||||||
heating_gain: 0.01
|
heating_gain: 0.01
|
||||||
|
|
||||||
@ -149,15 +149,15 @@ kick_start_time: 1.0
|
|||||||
off_below: 0.10
|
off_below: 0.10
|
||||||
|
|
||||||
[filament_switch_sensor extruder]
|
[filament_switch_sensor extruder]
|
||||||
pause_on_runout: True
|
pause_on_runout: False
|
||||||
runout_gcode:
|
runout_gcode: _RUNOUT_HANDLE
|
||||||
event_delay: 3.0
|
event_delay: 3.0
|
||||||
pause_delay: 0.5
|
pause_delay: 0.5
|
||||||
switch_pin: ^PC14
|
switch_pin: ^PC14
|
||||||
|
|
||||||
[filament_switch_sensor extruder1]
|
[filament_switch_sensor extruder1]
|
||||||
pause_on_runout: True
|
pause_on_runout: False
|
||||||
runout_gcode:
|
runout_gcode: _RUNOUT_HANDLE
|
||||||
event_delay: 3.0
|
event_delay: 3.0
|
||||||
pause_delay: 0.5
|
pause_delay: 0.5
|
||||||
switch_pin: ^PC15
|
switch_pin: ^PC15
|
||||||
@ -252,9 +252,9 @@ min_extrude_temp: 180
|
|||||||
pressure_advance: 0.03
|
pressure_advance: 0.03
|
||||||
pressure_advance_smooth_time:0.040
|
pressure_advance_smooth_time:0.040
|
||||||
# control = pid
|
# control = pid
|
||||||
# pid_kp = 24.737
|
# pid_kp = 21.950
|
||||||
# pid_ki = 1.137
|
# pid_ki = 0.887
|
||||||
# pid_kd = 134.508
|
# pid_kd = 135.815
|
||||||
|
|
||||||
[tmc5160 extruder]
|
[tmc5160 extruder]
|
||||||
cs_pin:tool:PB7
|
cs_pin:tool:PB7
|
||||||
@ -301,9 +301,9 @@ min_extrude_temp: 180
|
|||||||
pressure_advance: 0.032
|
pressure_advance: 0.032
|
||||||
pressure_advance_smooth_time:0.040
|
pressure_advance_smooth_time:0.040
|
||||||
# control = pid
|
# control = pid
|
||||||
# pid_kp = 24.737
|
# pid_kp = 21.950
|
||||||
# pid_ki = 1.137
|
# pid_ki = 0.887
|
||||||
# pid_kd = 134.508
|
# pid_kd = 135.815
|
||||||
|
|
||||||
[tmc5160 extruder1]
|
[tmc5160 extruder1]
|
||||||
cs_pin:tool:PC11
|
cs_pin:tool:PC11
|
||||||
@ -354,6 +354,8 @@ z_hop_speed: 10
|
|||||||
|
|
||||||
[gcode_macro ENABLE_FORCE_MOVE]
|
[gcode_macro ENABLE_FORCE_MOVE]
|
||||||
gcode:
|
gcode:
|
||||||
|
SET_STEPPER_ENABLE STEPPER=stepper_x ENABLE=1
|
||||||
|
SET_STEPPER_ENABLE STEPPER=stepper_y ENABLE=1
|
||||||
SET_KINEMATIC_POSITION X=300 Y=300 Z=300
|
SET_KINEMATIC_POSITION X=300 Y=300 Z=300
|
||||||
|
|
||||||
[gcode_macro T0]
|
[gcode_macro T0]
|
||||||
@ -365,6 +367,7 @@ gcode:
|
|||||||
SET_GCODE_OFFSET X=0
|
SET_GCODE_OFFSET X=0
|
||||||
SET_SERVO SERVO=switch_nozzle angle=45
|
SET_SERVO SERVO=switch_nozzle angle=45
|
||||||
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
||||||
|
_RUNOUT_HANDLE
|
||||||
|
|
||||||
[gcode_macro T1]
|
[gcode_macro T1]
|
||||||
gcode:
|
gcode:
|
||||||
@ -379,6 +382,7 @@ gcode:
|
|||||||
SET_GCODE_OFFSET X={x_offset}
|
SET_GCODE_OFFSET X={x_offset}
|
||||||
SET_SERVO SERVO=switch_nozzle angle=225
|
SET_SERVO SERVO=switch_nozzle angle=225
|
||||||
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
||||||
|
_RUNOUT_HANDLE
|
||||||
|
|
||||||
[gcode_macro PROBE_SERVO_OPEN]
|
[gcode_macro PROBE_SERVO_OPEN]
|
||||||
gcode:
|
gcode:
|
||||||
@ -389,6 +393,11 @@ gcode:
|
|||||||
gcode:
|
gcode:
|
||||||
SET_SERVO SERVO=probe_servo angle=130
|
SET_SERVO SERVO=probe_servo angle=130
|
||||||
|
|
||||||
|
[gcode_macro _START_PRINT_BASE]
|
||||||
|
description: Call when starting to print
|
||||||
|
gcode:
|
||||||
|
_RUNOUT_HANDLE
|
||||||
|
|
||||||
[gcode_macro START_PRINT]
|
[gcode_macro START_PRINT]
|
||||||
gcode:
|
gcode:
|
||||||
{% set BED_TEMP = params.BED|default(0)|float %}
|
{% set BED_TEMP = params.BED|default(0)|float %}
|
||||||
@ -452,7 +461,7 @@ gcode:
|
|||||||
RESTORE_GCODE_STATE NAME=load_state
|
RESTORE_GCODE_STATE NAME=load_state
|
||||||
|
|
||||||
[gcode_macro UNLOAD_FILAMENT]
|
[gcode_macro UNLOAD_FILAMENT]
|
||||||
variable_unload_distance: 120
|
variable_unload_distance: 140
|
||||||
variable_purge_distance: 25
|
variable_purge_distance: 25
|
||||||
gcode:
|
gcode:
|
||||||
{% set speed = params.SPEED|default(200) %}
|
{% set speed = params.SPEED|default(200) %}
|
||||||
@ -490,6 +499,10 @@ gcode:
|
|||||||
T1
|
T1
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# GCODE
|
||||||
|
########################################
|
||||||
|
|
||||||
[gcode_macro G28]
|
[gcode_macro G28]
|
||||||
rename_existing: C28
|
rename_existing: C28
|
||||||
gcode:
|
gcode:
|
||||||
@ -521,6 +534,22 @@ gcode:
|
|||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro M109]
|
||||||
|
rename_existing: C109
|
||||||
|
gcode:
|
||||||
|
{% set hotend = "extruder" %}
|
||||||
|
{% set s = params.S|default(0)|float %}
|
||||||
|
{% set t = params.T|default(0)|int %}
|
||||||
|
{% if params.S is defined %}
|
||||||
|
{% if t != 0 %}
|
||||||
|
{% set hotend = hotend ~ t %}
|
||||||
|
{% endif %}
|
||||||
|
SET_HEATER_TEMPERATURE HEATER={hotend} TARGET={s}
|
||||||
|
{% if s != 0 %}
|
||||||
|
TEMPERATURE_WAIT SENSOR={hotend} MINIMUM={s-3} MAXIMUM={s+3}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
[gcode_macro M141]
|
[gcode_macro M141]
|
||||||
gcode:
|
gcode:
|
||||||
{% set s = params.S|default(0)|float %}
|
{% set s = params.S|default(0)|float %}
|
||||||
@ -528,13 +557,24 @@ gcode:
|
|||||||
SET_HEATER_TEMPERATURE HEATER=chamber target={s|int}
|
SET_HEATER_TEMPERATURE HEATER=chamber target={s|int}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro M190]
|
||||||
|
rename_existing: C190
|
||||||
|
gcode:
|
||||||
|
{% set s = params.S|default(0)|float %}
|
||||||
|
{% if params.S is defined %}
|
||||||
|
SET_HEATER_TEMPERATURE HEATER="heater_bed" TARGET={s}
|
||||||
|
{% if s != 0 %}
|
||||||
|
TEMPERATURE_WAIT SENSOR="heater_bed" MINIMUM={s-3} MAXIMUM={s+3}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
[gcode_macro M191]
|
[gcode_macro M191]
|
||||||
gcode:
|
gcode:
|
||||||
{% set s = params.S|default(0)|float %}
|
{% set s = params.S|default(0)|float %}
|
||||||
{% if params.S is defined %}
|
{% if params.S is defined %}
|
||||||
M141 S{s}
|
M141 S{s}
|
||||||
{% if s != 0 %}
|
{% if s != 0 %}
|
||||||
TEMPERATURE_WAIT SENSOR="heater_generic chamber" MINIMUM={s-2} MAXIMUM={s+2}
|
TEMPERATURE_WAIT SENSOR="heater_generic chamber" MINIMUM={s-3} MAXIMUM={s+3}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
@ -544,6 +584,10 @@ gcode:
|
|||||||
C84
|
C84
|
||||||
SET_STEPPER_ENABLE STEPPER=stepper_z enable=1
|
SET_STEPPER_ENABLE STEPPER=stepper_z enable=1
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# CANCEL_PRINT/PAUSE/RESUME/
|
||||||
|
########################################
|
||||||
|
|
||||||
[gcode_macro _CLIENT_VARIABLE]
|
[gcode_macro _CLIENT_VARIABLE]
|
||||||
variable_use_custom_pos : True
|
variable_use_custom_pos : True
|
||||||
variable_custom_park_x : 300.0
|
variable_custom_park_x : 300.0
|
||||||
@ -562,8 +606,11 @@ variable_park_at_cancel_y : None
|
|||||||
variable_use_fw_retract : False
|
variable_use_fw_retract : False
|
||||||
variable_idle_timeout : 600
|
variable_idle_timeout : 600
|
||||||
variable_runout_sensor : ""
|
variable_runout_sensor : ""
|
||||||
|
variable_filament_sensor : "filament_switch_sensor extruder"
|
||||||
|
variable_filament_sensor1 : "filament_switch_sensor extruder1"
|
||||||
|
variable_user_temp_resume : "_USER_TEMP_RESUME"
|
||||||
variable_user_pause_macro : "_USER_PAUSE"
|
variable_user_pause_macro : "_USER_PAUSE"
|
||||||
variable_user_resume_macro: "_USER_RESUME"
|
variable_user_resume_macro: ""
|
||||||
variable_user_cancel_macro: "_USER_CANCEL"
|
variable_user_cancel_macro: "_USER_CANCEL"
|
||||||
gcode:
|
gcode:
|
||||||
# Nothing
|
# Nothing
|
||||||
@ -579,11 +626,7 @@ gcode:
|
|||||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE={name} VALUE="{{'restore': restore, 'temp': temp}}"
|
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE={name} VALUE="{{'restore': restore, 'temp': temp}}"
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
[gcode_macro RESUME]
|
[gcode_macro _USER_TEMP_RESUME]
|
||||||
variable_last_extruder_temp: {'restore': False, 'temp': 0}
|
|
||||||
variable_last_extruder1_temp: {'restore': False, 'temp': 0}
|
|
||||||
|
|
||||||
[gcode_macro _USER_RESUME]
|
|
||||||
gcode:
|
gcode:
|
||||||
{% set extruder_info = [
|
{% set extruder_info = [
|
||||||
{'index': 0, 'name': 'last_extruder_temp'},
|
{'index': 0, 'name': 'last_extruder_temp'},
|
||||||
@ -608,4 +651,121 @@ gcode:
|
|||||||
|
|
||||||
[gcode_macro _USER_CANCEL]
|
[gcode_macro _USER_CANCEL]
|
||||||
gcode:
|
gcode:
|
||||||
M84
|
G91
|
||||||
|
G1 Z30 F600 ; lift nozzle
|
||||||
|
M84
|
||||||
|
|
||||||
|
[gcode_macro RESUME]
|
||||||
|
description: Resume the actual running print
|
||||||
|
rename_existing: RESUME_BASE
|
||||||
|
variable_last_extruder_temp: {'restore': False, 'temp': 0}
|
||||||
|
variable_last_extruder1_temp: {'restore': False, 'temp': 0}
|
||||||
|
variable_restore_idle_timeout: 0
|
||||||
|
variable_idle_state: False
|
||||||
|
variable_filament_state: False
|
||||||
|
gcode:
|
||||||
|
##### get user parameters or use default #####
|
||||||
|
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||||
|
{% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config
|
||||||
|
else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder
|
||||||
|
{% set do_resume = False %}
|
||||||
|
{% set prompt_txt = [] %}
|
||||||
|
{% set runout = True %}
|
||||||
|
##### end of definitions #####
|
||||||
|
_FILAMENT_UPDATE
|
||||||
|
#### Printer comming from timeout idle state ####
|
||||||
|
{% if printer.idle_timeout.state|upper == "IDLE" or idle_state %}
|
||||||
|
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False
|
||||||
|
{% if last_extruder_temp.restore or last_extruder1_temp.restore %}
|
||||||
|
# we need to use the unicode (\u00B0) for the ° as py2 env's would throw an error otherwise
|
||||||
|
RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp.temp) }'
|
||||||
|
{client.user_temputer_macro|default("")}
|
||||||
|
{% set do_resume = True %}
|
||||||
|
{% elif can_extrude %}
|
||||||
|
{% set do_resume = True %}
|
||||||
|
{% else %}
|
||||||
|
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
|
||||||
|
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
|
||||||
|
{% endif %}
|
||||||
|
#### Printer comming out of regular PAUSE state ####
|
||||||
|
{% elif can_extrude %}
|
||||||
|
{% set do_resume = True %}
|
||||||
|
{% else %}
|
||||||
|
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
|
||||||
|
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
|
||||||
|
{% endif %}
|
||||||
|
_ACT_RESUME DO_RESUME={do_resume}
|
||||||
|
|
||||||
|
[gcode_macro _ACT_RESUME]
|
||||||
|
gcode:
|
||||||
|
##### get user parameters or use default #####
|
||||||
|
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||||
|
{% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
|
||||||
|
{% set sp_move = client.speed_move|default(velocity) %}
|
||||||
|
{% set do_resume = true if params.DO_RESUME|default(False)|lower == 'true' else false %}
|
||||||
|
{% set filament_state = printer['gcode_macro RESUME'].filament_state|default(False) %}
|
||||||
|
{% set restore_idle_timeout = printer['gcode_macro RESUME'].restore_idle_timeout|default(0) %}
|
||||||
|
{% set prompt_txt = [] %}
|
||||||
|
{% if filament_state %}
|
||||||
|
{% if do_resume %}
|
||||||
|
{% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %} # restore idle_timeout time
|
||||||
|
{client.user_resume_macro|default("")}
|
||||||
|
_CLIENT_EXTRUDE
|
||||||
|
RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder}'
|
||||||
|
{% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder) %}
|
||||||
|
{% endif %}
|
||||||
|
##### Generate User Information box in case of abort #####
|
||||||
|
{% if not (filament_state and do_resume) %}
|
||||||
|
RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!"
|
||||||
|
{% for element in prompt_txt %}
|
||||||
|
RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}'
|
||||||
|
{% endfor %}
|
||||||
|
RESPOND TYPE=command MSG="action:prompt_footer_button Ok|RESPOND TYPE=command MSG=action:prompt_end|info"
|
||||||
|
RESPOND TYPE=command MSG="action:prompt_show"
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# filament_runout
|
||||||
|
########################################
|
||||||
|
|
||||||
|
[gcode_macro _FILAMENT_UPDATE]
|
||||||
|
gcode:
|
||||||
|
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||||
|
{% set runout_resume = True if client.filament_sensor|default("") == "" # no runout
|
||||||
|
else True if not printer[client.filament_sensor].enabled # sensor is disabled
|
||||||
|
else printer[client.filament_sensor].filament_detected %} # sensor status
|
||||||
|
{% set runout_resume1 = True if client.filament_sensor1|default("") == "" # no runout
|
||||||
|
else True if not printer[client.filament_sensor1].enabled # sensor1 is disabled
|
||||||
|
else printer[client.filament_sensor1].filament_detected %} # sensor1 status
|
||||||
|
##### filament check #####
|
||||||
|
{% if printer["dual_carriage"] is not defined %}
|
||||||
|
{% set runout = runout_resume if printer.toolhead.extruder == "extruder" else runout_resume1 %}
|
||||||
|
{% else %}
|
||||||
|
{% set current_idex_mode = printer["dual_carriage"].carriage_1|lower %}
|
||||||
|
{% if current_idex_mode == 'copy' or current_idex_mode == 'mirror' %}
|
||||||
|
{% set runout = (runout_resume == false or runout_resume1 == false) %}
|
||||||
|
{% else %}
|
||||||
|
{% set runout = runout_resume if printer.toolhead.extruder == "extruder" else runout_resume1 %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=filament_state VALUE={ runout }
|
||||||
|
|
||||||
|
[gcode_macro _RUNOUT_HANDLE]
|
||||||
|
description: filament state update
|
||||||
|
gcode:
|
||||||
|
_FILAMENT_UPDATE
|
||||||
|
{% if printer.print_stats.state == "printing" %}
|
||||||
|
_RUNOUT_PAUSE
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro _RUNOUT_PAUSE]
|
||||||
|
gcode:
|
||||||
|
{% set filament_state = printer['gcode_macro RESUME'].filament_state|default(False) %}
|
||||||
|
{% if not filament_state %}
|
||||||
|
{% set msg_extruder = "extruder" if printer.toolhead.extruder == "extruder" else "extruder1" %}
|
||||||
|
RESPOND TYPE=echo MSG='{"Noting! \"%s\" filament has been pulled out." % msg_extruder}'
|
||||||
|
PAUSE
|
||||||
|
{% endif %}
|
||||||
|
@ -2,15 +2,15 @@
|
|||||||
|
|
||||||
[extruder]
|
[extruder]
|
||||||
control = pid
|
control = pid
|
||||||
pid_kp = 39.960
|
pid_kp = 21.950
|
||||||
pid_ki = 2.537
|
pid_ki = 0.887
|
||||||
pid_kd = 157.344
|
pid_kd = 135.815
|
||||||
|
|
||||||
[extruder1]
|
[extruder1]
|
||||||
control = pid
|
control = pid
|
||||||
pid_kp = 39.960
|
pid_kp = 21.950
|
||||||
pid_ki = 2.537
|
pid_ki = 0.887
|
||||||
pid_kd = 157.344
|
pid_kd = 135.815
|
||||||
|
|
||||||
[heater_bed]
|
[heater_bed]
|
||||||
control = pid
|
control = pid
|
||||||
|
@ -228,15 +228,15 @@ initial_GREEN: 0.3
|
|||||||
initial_BLUE: 0.3
|
initial_BLUE: 0.3
|
||||||
|
|
||||||
[filament_switch_sensor extruder]
|
[filament_switch_sensor extruder]
|
||||||
pause_on_runout: True
|
pause_on_runout: False
|
||||||
runout_gcode:
|
runout_gcode: _RUNOUT_HANDLE
|
||||||
event_delay: 3.0
|
event_delay: 3.0
|
||||||
pause_delay: 0.5
|
pause_delay: 0.5
|
||||||
switch_pin: ^PC14
|
switch_pin: ^PC14
|
||||||
|
|
||||||
[filament_switch_sensor extruder1]
|
[filament_switch_sensor extruder1]
|
||||||
pause_on_runout: True
|
pause_on_runout: False
|
||||||
runout_gcode:
|
runout_gcode: _RUNOUT_HANDLE
|
||||||
event_delay: 3.0
|
event_delay: 3.0
|
||||||
pause_delay: 0.5
|
pause_delay: 0.5
|
||||||
switch_pin: ^PC15
|
switch_pin: ^PC15
|
||||||
@ -514,6 +514,10 @@ gcode:
|
|||||||
G4 P500
|
G4 P500
|
||||||
SET_SERVO SERVO=probe_servo angle=135
|
SET_SERVO SERVO=probe_servo angle=135
|
||||||
|
|
||||||
|
[gcode_macro _START_PRINT_BASE]
|
||||||
|
description: Call when starting to print
|
||||||
|
gcode:
|
||||||
|
_RUNOUT_HANDLE
|
||||||
|
|
||||||
[gcode_macro START_PRINT]
|
[gcode_macro START_PRINT]
|
||||||
gcode:
|
gcode:
|
||||||
@ -670,6 +674,22 @@ gcode:
|
|||||||
C28 {homing_cmd}
|
C28 {homing_cmd}
|
||||||
{% if 'X' in homing_cmd %}
|
{% if 'X' in homing_cmd %}
|
||||||
_RESTORE_DEFAULT_EXTRUDER
|
_RESTORE_DEFAULT_EXTRUDER
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro M109]
|
||||||
|
rename_existing: C109
|
||||||
|
gcode:
|
||||||
|
{% set hotend = "extruder" %}
|
||||||
|
{% set s = params.S|default(0)|float %}
|
||||||
|
{% set t = params.T|default(0)|int %}
|
||||||
|
{% if params.S is defined %}
|
||||||
|
{% if t != 0 %}
|
||||||
|
{% set hotend = hotend ~ t %}
|
||||||
|
{% endif %}
|
||||||
|
SET_HEATER_TEMPERATURE HEATER={hotend} TARGET={s}
|
||||||
|
{% if s != 0 %}
|
||||||
|
TEMPERATURE_WAIT SENSOR={hotend} MINIMUM={s-3} MAXIMUM={s+3}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
@ -680,13 +700,24 @@ gcode:
|
|||||||
SET_HEATER_TEMPERATURE HEATER=chamber target={s|int}
|
SET_HEATER_TEMPERATURE HEATER=chamber target={s|int}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro M190]
|
||||||
|
rename_existing: C190
|
||||||
|
gcode:
|
||||||
|
{% set s = params.S|default(0)|float %}
|
||||||
|
{% if params.S is defined %}
|
||||||
|
SET_HEATER_TEMPERATURE HEATER="heater_bed" TARGET={s}
|
||||||
|
{% if s != 0 %}
|
||||||
|
TEMPERATURE_WAIT SENSOR="heater_bed" MINIMUM={s-3} MAXIMUM={s+3}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
[gcode_macro M191]
|
[gcode_macro M191]
|
||||||
gcode:
|
gcode:
|
||||||
{% set s = params.S|default(0)|float %}
|
{% set s = params.S|default(0)|float %}
|
||||||
{% if params.S is defined %}
|
{% if params.S is defined %}
|
||||||
M141 S{s}
|
M141 S{s}
|
||||||
{% if s != 0 %}
|
{% if s != 0 %}
|
||||||
TEMPERATURE_WAIT SENSOR="heater_generic chamber" MINIMUM={s-2} MAXIMUM={s+2}
|
TEMPERATURE_WAIT SENSOR="heater_generic chamber" MINIMUM={s-3} MAXIMUM={s+3}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
@ -697,6 +728,10 @@ gcode:
|
|||||||
SET_STEPPER_ENABLE STEPPER=stepper_z enable=1
|
SET_STEPPER_ENABLE STEPPER=stepper_z enable=1
|
||||||
_RESTORE_DEFAULT_EXTRUDER
|
_RESTORE_DEFAULT_EXTRUDER
|
||||||
|
|
||||||
|
########################################
|
||||||
|
# CANCEL_PRINT/PAUSE/RESUME/
|
||||||
|
########################################
|
||||||
|
|
||||||
[gcode_macro _CLIENT_VARIABLE]
|
[gcode_macro _CLIENT_VARIABLE]
|
||||||
variable_use_custom_pos : True
|
variable_use_custom_pos : True
|
||||||
variable_custom_park_x : 200.0
|
variable_custom_park_x : 200.0
|
||||||
@ -715,8 +750,11 @@ variable_park_at_cancel_y : None
|
|||||||
variable_use_fw_retract : False
|
variable_use_fw_retract : False
|
||||||
variable_idle_timeout : 600
|
variable_idle_timeout : 600
|
||||||
variable_runout_sensor : ""
|
variable_runout_sensor : ""
|
||||||
|
variable_filament_sensor : "filament_switch_sensor extruder"
|
||||||
|
variable_filament_sensor1 : "filament_switch_sensor extruder1"
|
||||||
|
variable_user_temp_resume : "_USER_TEMP_RESUME"
|
||||||
variable_user_pause_macro : "_USER_PAUSE"
|
variable_user_pause_macro : "_USER_PAUSE"
|
||||||
variable_user_resume_macro: "_USER_RESUME"
|
variable_user_resume_macro: ""
|
||||||
variable_user_cancel_macro: "_USER_CANCEL"
|
variable_user_cancel_macro: "_USER_CANCEL"
|
||||||
gcode:
|
gcode:
|
||||||
# Nothing
|
# Nothing
|
||||||
@ -732,11 +770,7 @@ gcode:
|
|||||||
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE={name} VALUE="{{'restore': restore, 'temp': temp}}"
|
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE={name} VALUE="{{'restore': restore, 'temp': temp}}"
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
[gcode_macro RESUME]
|
[gcode_macro _USER_TEMP_RESUME]
|
||||||
variable_last_extruder_temp: {'restore': False, 'temp': 0}
|
|
||||||
variable_last_extruder1_temp: {'restore': False, 'temp': 0}
|
|
||||||
|
|
||||||
[gcode_macro _USER_RESUME]
|
|
||||||
gcode:
|
gcode:
|
||||||
{% set extruder_info = [
|
{% set extruder_info = [
|
||||||
{'index': 0, 'name': 'last_extruder_temp'},
|
{'index': 0, 'name': 'last_extruder_temp'},
|
||||||
@ -761,4 +795,118 @@ gcode:
|
|||||||
|
|
||||||
[gcode_macro _USER_CANCEL]
|
[gcode_macro _USER_CANCEL]
|
||||||
gcode:
|
gcode:
|
||||||
M84
|
G91
|
||||||
|
G1 Z30 F600 ; lift nozzle
|
||||||
|
M84
|
||||||
|
|
||||||
|
[gcode_macro RESUME]
|
||||||
|
description: Resume the actual running print
|
||||||
|
rename_existing: RESUME_BASE
|
||||||
|
variable_last_extruder_temp: {'restore': False, 'temp': 0}
|
||||||
|
variable_last_extruder1_temp: {'restore': False, 'temp': 0}
|
||||||
|
variable_restore_idle_timeout: 0
|
||||||
|
variable_idle_state: False
|
||||||
|
variable_filament_state: False
|
||||||
|
gcode:
|
||||||
|
##### get user parameters or use default #####
|
||||||
|
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||||
|
{% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config
|
||||||
|
else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder
|
||||||
|
{% set do_resume = False %}
|
||||||
|
{% set prompt_txt = [] %}
|
||||||
|
{% set runout = True %}
|
||||||
|
##### end of definitions #####
|
||||||
|
_FILAMENT_UPDATE
|
||||||
|
#### Printer comming from timeout idle state ####
|
||||||
|
{% if printer.idle_timeout.state|upper == "IDLE" or idle_state %}
|
||||||
|
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False
|
||||||
|
{% if last_extruder_temp.restore or last_extruder1_temp.restore %}
|
||||||
|
# we need to use the unicode (\u00B0) for the ¡ã as py2 env's would throw an error otherwise
|
||||||
|
RESPOND TYPE=echo MSG='{"Restoring \"%s\" temperature to %3.1f\u00B0C, this may take some time" % (printer.toolhead.extruder, last_extruder_temp.temp) }'
|
||||||
|
{client.user_temputer_macro|default("")}
|
||||||
|
{% set do_resume = True %}
|
||||||
|
{% elif can_extrude %}
|
||||||
|
{% set do_resume = True %}
|
||||||
|
{% else %}
|
||||||
|
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
|
||||||
|
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
|
||||||
|
{% endif %}
|
||||||
|
#### Printer comming out of regular PAUSE state ####
|
||||||
|
{% elif can_extrude %}
|
||||||
|
{% set do_resume = True %}
|
||||||
|
{% else %}
|
||||||
|
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder}'
|
||||||
|
{% set _d = prompt_txt.append("\"%s\" not hot enough, please heat up again and press RESUME" % printer.toolhead.extruder) %}
|
||||||
|
{% endif %}
|
||||||
|
_ACT_RESUME DO_RESUME={do_resume}
|
||||||
|
[gcode_macro _ACT_RESUME]
|
||||||
|
gcode:
|
||||||
|
##### get user parameters or use default #####
|
||||||
|
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||||
|
{% set velocity = printer.configfile.settings.pause_resume.recover_velocity %}
|
||||||
|
{% set sp_move = client.speed_move|default(velocity) %}
|
||||||
|
{% set do_resume = true if params.DO_RESUME|default(False)|lower == 'true' else false %}
|
||||||
|
{% set filament_state = printer['gcode_macro RESUME'].filament_state|default(False) %}
|
||||||
|
{% set restore_idle_timeout = printer['gcode_macro RESUME'].restore_idle_timeout|default(0) %}
|
||||||
|
{% set prompt_txt = [] %}
|
||||||
|
{% if filament_state %}
|
||||||
|
{% if do_resume %}
|
||||||
|
{% if restore_idle_timeout > 0 %} SET_IDLE_TIMEOUT TIMEOUT={restore_idle_timeout} {% endif %} # restore idle_timeout time
|
||||||
|
{client.user_resume_macro|default("")}
|
||||||
|
_CLIENT_EXTRUDE
|
||||||
|
RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
RESPOND TYPE=error MSG='{"Resume aborted !!! \"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder}'
|
||||||
|
{% set _d = prompt_txt.append("\"%s\" detects no filament, please load filament and press RESUME" % printer.toolhead.extruder) %}
|
||||||
|
{% endif %}
|
||||||
|
##### Generate User Information box in case of abort #####
|
||||||
|
{% if not (filament_state and do_resume) %}
|
||||||
|
RESPOND TYPE=command MSG="action:prompt_begin RESUME aborted !!!"
|
||||||
|
{% for element in prompt_txt %}
|
||||||
|
RESPOND TYPE=command MSG='{"action:prompt_text %s" % element}'
|
||||||
|
{% endfor %}
|
||||||
|
RESPOND TYPE=command MSG="action:prompt_footer_button Ok|RESPOND TYPE=command MSG=action:prompt_end|info"
|
||||||
|
RESPOND TYPE=command MSG="action:prompt_show"
|
||||||
|
{% endif %}
|
||||||
|
########################################
|
||||||
|
# filament_runout
|
||||||
|
########################################
|
||||||
|
[gcode_macro _FILAMENT_UPDATE]
|
||||||
|
gcode:
|
||||||
|
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
|
||||||
|
{% set runout_resume = True if client.filament_sensor|default("") == "" # no runout
|
||||||
|
else True if not printer[client.filament_sensor].enabled # sensor is disabled
|
||||||
|
else printer[client.filament_sensor].filament_detected %} # sensor status
|
||||||
|
{% set runout_resume1 = True if client.filament_sensor1|default("") == "" # no runout
|
||||||
|
else True if not printer[client.filament_sensor1].enabled # sensor1 is disabled
|
||||||
|
else printer[client.filament_sensor1].filament_detected %} # sensor1 status
|
||||||
|
##### filament check #####
|
||||||
|
{% if printer["dual_carriage"] is not defined %}
|
||||||
|
{% set runout = runout_resume if printer.toolhead.extruder == "extruder" else runout_resume1 %}
|
||||||
|
{% else %}
|
||||||
|
{% set current_idex_mode = printer["dual_carriage"].carriage_1|lower %}
|
||||||
|
{% if current_idex_mode == 'copy' or current_idex_mode == 'mirror' %}
|
||||||
|
{% set runout = (runout_resume == false or runout_resume1 == false) %}
|
||||||
|
{% else %}
|
||||||
|
{% set runout = runout_resume if printer.toolhead.extruder == "extruder" else runout_resume1 %}
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=filament_state VALUE={ runout }
|
||||||
|
|
||||||
|
[gcode_macro _RUNOUT_HANDLE]
|
||||||
|
description: filament state update
|
||||||
|
gcode:
|
||||||
|
_FILAMENT_UPDATE
|
||||||
|
{% if printer.print_stats.state == "printing" %}
|
||||||
|
_RUNOUT_PAUSE
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro _RUNOUT_PAUSE]
|
||||||
|
gcode:
|
||||||
|
{% set filament_state = printer['gcode_macro RESUME'].filament_state|default(False) %}
|
||||||
|
{% if not filament_state %}
|
||||||
|
{% set msg_extruder = "extruder" if printer.toolhead.extruder == "extruder" else "extruder1" %}
|
||||||
|
RESPOND TYPE=echo MSG='{"Noting! \"%s\" filament has been pulled out." % msg_extruder}'
|
||||||
|
PAUSE
|
||||||
|
{% endif %}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user