更新配置文件 新增开门检测文件

This commit is contained in:
zkk 2025-05-07 09:20:14 +00:00
parent 812c10499e
commit 28884f05d0
6 changed files with 260 additions and 95 deletions

View File

@ -0,0 +1 @@
../../module/door_detect.cfg

View File

@ -9,6 +9,10 @@ filename: ~/printer_data/config/config_variables.cfg
[exclude_object] [exclude_object]
[board_pins]
aliases:
DOOR_PIN=PC5
[gcode_arcs] [gcode_arcs]
resolution: 1.0 resolution: 1.0
@ -103,14 +107,16 @@ position_min: -4
homing_speed: 10 homing_speed: 10
second_homing_speed: 1 second_homing_speed: 1
homing_retract_dist: 2.0 homing_retract_dist: 2.0
step_pulse_duration: 0.000005
[heater_bed] [heater_bed]
heater_pin: PD12 heater_pin: PD12
sensor_type: Generic 3950 sensor_type: Generic 3950
sensor_pin: PC0 sensor_pin: PC0
max_power: 1.0 max_power: 1.0
min_temp: 0 min_temp: -20
max_temp: 130 max_temp: 100
overshoot: 10
# control: pid # control: pid
# pid_kp: 17.22 # pid_kp: 17.22
# pid_ki: 0.9 # pid_ki: 0.9
@ -127,8 +133,9 @@ heater_pin:PD15
max_power:1.0 max_power:1.0
sensor_type: Generic 3950 sensor_type: Generic 3950
sensor_pin:PC3 sensor_pin:PC3
min_temp: 0 min_temp: -20
max_temp: 70 max_temp: 60
overshoot: 10
pwm_cycle_time: 0.3 pwm_cycle_time: 0.3
# control: pid # control: pid
# pid_kp: 30.68 # pid_kp: 30.68
@ -246,8 +253,9 @@ max_extrude_only_accel: 1000.0
max_extrude_cross_section:5 max_extrude_cross_section:5
heater_pin: tool:PC6 heater_pin: tool:PC6
max_power: 1.0 max_power: 1.0
min_temp: 0 min_temp: -20
max_temp: 435 max_temp: 420
overshoot: 20
min_extrude_temp: 180 min_extrude_temp: 180
pressure_advance: 0.03 pressure_advance: 0.03
pressure_advance_smooth_time:0.040 pressure_advance_smooth_time:0.040
@ -295,8 +303,9 @@ max_extrude_only_accel: 1000.0
max_extrude_cross_section:5 max_extrude_cross_section:5
heater_pin: tool:PC7 heater_pin: tool:PC7
max_power: 1.0 max_power: 1.0
min_temp: 0 min_temp: -20
max_temp: 435 max_temp: 420
overshoot: 20
min_extrude_temp: 180 min_extrude_temp: 180
pressure_advance: 0.032 pressure_advance: 0.032
pressure_advance_smooth_time:0.040 pressure_advance_smooth_time:0.040
@ -363,7 +372,10 @@ gcode:
[gcode_macro T0] [gcode_macro T0]
gcode: gcode:
{% set filament_insert = printer["filament_switch_sensor extruder"].filament_detected|default(False) %} {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set filament_insert = True if client.filament_sensor|default("") == ""
else True if not printer[client.filament_sensor].enabled
else printer[client.filament_sensor].filament_detected|default(False) %}
{% set printing = printer.print_stats.state == "printing" %} {% set printing = printer.print_stats.state == "printing" %}
{% if filament_insert or printing == False %} {% if filament_insert or printing == False %}
SET_SERVO SERVO=switch_nozzle angle=135 SET_SERVO SERVO=switch_nozzle angle=135
@ -390,7 +402,10 @@ gcode:
{% set y_offset = sv.nozzle_y_offset_val|default(0)|float %} {% set y_offset = sv.nozzle_y_offset_val|default(0)|float %}
{% set z_offset = sv.nozzle_z_offset_val|default(0)|float %} {% set z_offset = sv.nozzle_z_offset_val|default(0)|float %}
{% set x_offset = x_offset - 59 %} {% set x_offset = x_offset - 59 %}
{% set filament_insert = printer["filament_switch_sensor extruder1"].filament_detected|default(False) %} {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set filament_insert = True if client.filament_sensor1|default("") == ""
else True if not printer[client.filament_sensor1].enabled
else printer[client.filament_sensor1].filament_detected|default(False) %}
{% set printing = (printer.print_stats.state == "printing") %} {% set printing = (printer.print_stats.state == "printing") %}
{% if filament_insert or printing == False %} {% if filament_insert or printing == False %}
SET_SERVO SERVO=switch_nozzle angle=135 SET_SERVO SERVO=switch_nozzle angle=135
@ -654,13 +669,14 @@ gcode:
[gcode_macro _USER_PAUSE] [gcode_macro _USER_PAUSE]
gcode: gcode:
{% set extruderTools = [('extruder', 'last_extruder_temp'), {% set heaters = [('extruder', 'last_extruder_temp'),
('extruder1', 'last_extruder1_temp')] %} ('extruder1', 'last_extruder1_temp'),
('heater_bed', 'last_bed_temp')] %}
{% set act = printer.gcode_move.gcode_position %} {% set act = printer.gcode_move.gcode_position %}
SAVE_VARIABLE VARIABLE=power_resume_z VALUE={act.z} SAVE_VARIABLE VARIABLE=power_resume_z VALUE={act.z}
{% for extruder_name, name in extruderTools %} {% for heater, name in heaters %}
{% set temp = printer[extruder_name].target if extruder_name in printer else 0 %} {% set temp = printer[heater].target if heater in printer else 0 %}
{% set restore = False if printer[extruder_name] == '' {% set restore = False if printer[heater] == ''
else True if params.RESTORE|default(1)|int == 1 else False %} else True if params.RESTORE|default(1)|int == 1 else False %}
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 %}
@ -711,6 +727,10 @@ gcode:
{% set extruder_info = [ {% set extruder_info = [
{'index': 0, 'name': 'last_extruder_temp'}, {'index': 0, 'name': 'last_extruder_temp'},
{'index': 1, 'name': 'last_extruder1_temp'}] %} {'index': 1, 'name': 'last_extruder1_temp'}] %}
{% set value = printer["gcode_macro RESUME"]["last_bed_temp"].temp %}
{% if value != 0 %}
M190 S{value}
{% endif %}
{% set temperature = "last_extruder_temp" if printer.toolhead.extruder == "extruder" else "last_extruder1_temp" %} {% set temperature = "last_extruder_temp" if printer.toolhead.extruder == "extruder" else "last_extruder1_temp" %}
{% set value = printer["gcode_macro RESUME"][temperature].temp %} {% set value = printer["gcode_macro RESUME"][temperature].temp %}
{% if printer[printer.toolhead.extruder].temperature < value-3 %} {% if printer[printer.toolhead.extruder].temperature < value-3 %}
@ -770,11 +790,28 @@ gcode:
{% endif %} {% endif %}
{% endif %} {% endif %}
[gcode_macro _REAPPLY_OFFSET]
gcode:
{% set re_extruder = printer['gcode_macro RESUME'].resume_extruder|default("extruder") %}
{% set svv = printer.save_variables.variables %}
{% set x_offset = svv.nozzle_x_offset_val|default(0)|float %}
{% set y_offset = svv.nozzle_y_offset_val|default(0)|float %}
{% set z_offset = svv.nozzle_z_offset_val|default(0)|float %}
{% set x_offset = x_offset - 59 %}
{% set is_extruder = printer.toolhead.extruder == "extruder" %}
{% if printer.toolhead.extruder!= re_extruder %}
SET_GCODE_OFFSET Z={0 if is_extruder else z_offset} MOVE=1
SET_GCODE_OFFSET Y={0 if is_extruder else y_offset}
SET_GCODE_OFFSET X={0 if is_extruder else x_offset}
{% endif %}
[gcode_macro RESUME] [gcode_macro RESUME]
description: Resume the actual running print description: Resume the actual running print
rename_existing: RESUME_BASE rename_existing: RESUME_BASE
variable_last_extruder_temp: {'restore': False, 'temp': 0} variable_last_extruder_temp: {'restore': False, 'temp': 0}
variable_last_extruder1_temp: {'restore': False, 'temp': 0} variable_last_extruder1_temp: {'restore': False, 'temp': 0}
variable_last_bed_temp: {'restore': False, 'temp': 0}
variable_restore_idle_timeout: 0 variable_restore_idle_timeout: 0
variable_idle_state: False variable_idle_state: False
variable_filament_state: "" variable_filament_state: ""
@ -786,7 +823,7 @@ gcode:
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set do_resume = False %} {% set do_resume = False %}
{% set runout = True %} {% set runout = True %}
##### end of definitions ##### {% macro resume_action() %}
_FILAMENT_UPDATE _FILAMENT_UPDATE
_RESUME_EXTRUDER AUTOSHIFT={autoshift} _RESUME_EXTRUDER AUTOSHIFT={autoshift}
_EXTRUDER_TEMPERATURE_HANDLE _EXTRUDER_TEMPERATURE_HANDLE
@ -796,18 +833,31 @@ gcode:
#### Printer comming from timeout idle state #### #### Printer comming from timeout idle state ####
{% if printer.idle_timeout.state|upper == "IDLE" or idle_state or autoshift %} {% if printer.idle_timeout.state|upper == "IDLE" or idle_state or autoshift %}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False
{% endif %}
{% if last_extruder_temp.restore or last_extruder1_temp.restore %} {% 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 { client.user_temp_macro|default("") }
{client.user_temp_macro|default("")}
{% set do_resume = True %} {% set do_resume = True %}
{% elif can_extrude %} {% elif can_extrude %}
{% set do_resume = True %} {% set do_resume = True %}
{% endif %} {% endif %}
#### Printer comming out of regular PAUSE state #### _ACT_RESUME DO_RESUME={ do_resume }
{% elif can_extrude %} {% endmacro %}
{% set do_resume = True %} {% if printer['gcode_button _door_detection'] %}
{% set sv = printer.save_variables.variables %}
{% set door_function = sv.door_detect|default("Disabled") %}
{% set door_state = printer['gcode_button _door_detection'].state|default('released')|lower %}
{% if door_function == 'Pause Print' and door_state == 'released' %}
RESPOND TYPE=command MSG="action:prompt_begin"
RESPOND TYPE=command MSG="action:prompt_text Please close the door and click Resume to proceed."
RESPOND TYPE=command MSG="action:prompt_footer_button Ok|RESPOND TYPE=command MSG=action:prompt_end"
RESPOND TYPE=command MSG="action:prompt_show"
{% else %}
{ resume_action() }
{% endif %}
{% else %}
{ resume_action() }
{% endif %} {% endif %}
_ACT_RESUME DO_RESUME={do_resume}
[gcode_macro _ACT_RESUME] [gcode_macro _ACT_RESUME]
gcode: gcode:
@ -826,6 +876,7 @@ gcode:
{client.user_resume_macro|default("")} {client.user_resume_macro|default("")}
_CLIENT_EXTRUDE _CLIENT_EXTRUDE
RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)} RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}
_REAPPLY_OFFSET
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE="None" SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE="None"
{% else %} {% else %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %} {% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
@ -928,7 +979,7 @@ gcode:
RUN_SHELL_COMMAND CMD=_CLEAR_PLR RUN_SHELL_COMMAND CMD=_CLEAR_PLR
SAVE_VARIABLE VARIABLE=last_file VALUE='"{ filename }"' SAVE_VARIABLE VARIABLE=last_file VALUE='"{ filename }"'
SAVE_VARIABLE VARIABLE=filepath VALUE='"{ filepath }"' SAVE_VARIABLE VARIABLE=filepath VALUE='"{ filepath }"'
{% set zero_vars = ['power_resume_x', 'power_resume_y', 'power_resume_z'] %} {% set zero_vars = ['power_resume_position', 'power_resume_line'] %}
{% for var in zero_vars %} {% for var in zero_vars %}
SAVE_VARIABLE VARIABLE={var} VALUE=0 SAVE_VARIABLE VARIABLE={var} VALUE=0
{% endfor %} {% endfor %}
@ -946,9 +997,9 @@ gcode:
{% set park_dz = client.custom_park_dz|default(2.0)|abs %} {% set park_dz = client.custom_park_dz|default(2.0)|abs %}
RESPOND TYPE=command MSG="action:prompt_end" RESPOND TYPE=command MSG="action:prompt_end"
SET_GCODE_OFFSET Z=0 MOVE=0 SET_GCODE_OFFSET Z=0 MOVE=0
{% set z_height = params.Z_HEIGHT|default(sv.power_resume_z)|float %}
{% set is_paused = sv.power_loss_paused|default(False) %} {% set is_paused = sv.power_loss_paused|default(False) %}
{% set last_file = params.GCODE_FILE|default(sv.last_file)|string %} {% set filepath = params.GCODE_FILE|default(sv.filepath)|string %}
{% set last_file = filepath.split('/')[-1] %}
{% set hotend = sv.power_resume_extruder|default("extruder")%} {% set hotend = sv.power_resume_extruder|default("extruder")%}
{% set z_offset = sv.nozzle_z_offset_val|default(0)|float %} {% set z_offset = sv.nozzle_z_offset_val|default(0)|float %}
{% set z_offset_total = park_dz if is_paused else 0 %} {% set z_offset_total = park_dz if is_paused else 0 %}
@ -958,7 +1009,7 @@ gcode:
SET_STEPPER_ENABLE STEPPER=stepper_z ENABLE=1 SET_STEPPER_ENABLE STEPPER=stepper_z ENABLE=1
G4 P300 G4 P300
M118 Recovery in progress, please wait M118 Recovery in progress, please wait
RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_height} \"{last_file}\" \"{z_offset_total}\"" RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_offset_total}"
SDCARD_PRINT_FILE FILENAME=.plr/"{last_file}" SDCARD_PRINT_FILE FILENAME=.plr/"{last_file}"
SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False
@ -1141,3 +1192,5 @@ gcode:
gcode: gcode:
RUN_SHELL_COMMAND CMD=fetch_assets PARAMS="\"Gcode\" \"D1000HS\" \"NozzleAglin.zip\"" RUN_SHELL_COMMAND CMD=fetch_assets PARAMS="\"Gcode\" \"D1000HS\" \"NozzleAglin.zip\""
SDCARD_PRINT_FILE FILENAME=".PresetModel/NozzleAglin.gcode" SDCARD_PRINT_FILE FILENAME=".PresetModel/NozzleAglin.gcode"
[include module/*.cfg]

View File

@ -0,0 +1 @@
../../module/door_detect.cfg

View File

@ -9,6 +9,10 @@ filename: ~/printer_data/config/config_variables.cfg
[exclude_object] [exclude_object]
[board_pins]
aliases:
DOOR_PIN=PC5
[gcode_arcs] [gcode_arcs]
resolution: 1.0 resolution: 1.0
@ -103,14 +107,16 @@ position_min: -4
homing_speed: 10 homing_speed: 10
second_homing_speed: 1 second_homing_speed: 1
homing_retract_dist: 2.0 homing_retract_dist: 2.0
step_pulse_duration: 0.000005
[heater_bed] [heater_bed]
heater_pin: PD12 heater_pin: PD12
sensor_type: Generic 3950 sensor_type: Generic 3950
sensor_pin: PC0 sensor_pin: PC0
max_power: 1.0 max_power: 1.0
min_temp: 0 min_temp: -20
max_temp: 130 max_temp: 100
overshoot: 10
# control: pid # control: pid
# pid_kp: 59.368 # pid_kp: 59.368
# pid_ki: 1.656 # pid_ki: 1.656
@ -127,8 +133,9 @@ heater_pin:PD15
max_power:1.0 max_power:1.0
sensor_type: Generic 3950 sensor_type: Generic 3950
sensor_pin:PC3 sensor_pin:PC3
min_temp: 0 min_temp: -20
max_temp: 80 max_temp: 70
overshoot: 10
pwm_cycle_time: 0.3 pwm_cycle_time: 0.3
# control: pid # control: pid
# pid_kp: 30.68 # pid_kp: 30.68
@ -246,8 +253,9 @@ max_extrude_only_accel: 1000.0
max_extrude_cross_section:5 max_extrude_cross_section:5
heater_pin: tool:PC6 heater_pin: tool:PC6
max_power: 1.0 max_power: 1.0
min_temp: 0 min_temp: -20
max_temp: 435 max_temp: 420
overshoot: 20
min_extrude_temp: 180 min_extrude_temp: 180
pressure_advance: 0.03 pressure_advance: 0.03
pressure_advance_smooth_time:0.040 pressure_advance_smooth_time:0.040
@ -295,8 +303,9 @@ max_extrude_only_accel: 1000.0
max_extrude_cross_section:5 max_extrude_cross_section:5
heater_pin: tool:PC7 heater_pin: tool:PC7
max_power: 1.0 max_power: 1.0
min_temp: 0 min_temp: -20
max_temp: 435 max_temp: 420
overshoot: 20
min_extrude_temp: 180 min_extrude_temp: 180
pressure_advance: 0.032 pressure_advance: 0.032
pressure_advance_smooth_time:0.040 pressure_advance_smooth_time:0.040
@ -363,7 +372,10 @@ gcode:
[gcode_macro T0] [gcode_macro T0]
gcode: gcode:
{% set filament_insert = printer["filament_switch_sensor extruder"].filament_detected|default(False) %} {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set filament_insert = True if client.filament_sensor|default("") == ""
else True if not printer[client.filament_sensor].enabled
else printer[client.filament_sensor].filament_detected|default(False) %}
{% set printing = printer.print_stats.state == "printing" %} {% set printing = printer.print_stats.state == "printing" %}
{% if filament_insert or printing == False %} {% if filament_insert or printing == False %}
SET_SERVO SERVO=switch_nozzle angle=135 SET_SERVO SERVO=switch_nozzle angle=135
@ -390,7 +402,10 @@ gcode:
{% set y_offset = sv.nozzle_y_offset_val|default(0)|float %} {% set y_offset = sv.nozzle_y_offset_val|default(0)|float %}
{% set z_offset = sv.nozzle_z_offset_val|default(0)|float %} {% set z_offset = sv.nozzle_z_offset_val|default(0)|float %}
{% set x_offset = x_offset - 59 %} {% set x_offset = x_offset - 59 %}
{% set filament_insert = printer["filament_switch_sensor extruder1"].filament_detected|default(False) %} {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set filament_insert = True if client.filament_sensor1|default("") == ""
else True if not printer[client.filament_sensor1].enabled
else printer[client.filament_sensor1].filament_detected|default(False) %}
{% set printing = (printer.print_stats.state == "printing") %} {% set printing = (printer.print_stats.state == "printing") %}
{% if filament_insert or printing == False %} {% if filament_insert or printing == False %}
SET_SERVO SERVO=switch_nozzle angle=135 SET_SERVO SERVO=switch_nozzle angle=135
@ -417,7 +432,7 @@ 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=170
G4 P2000 G4 P2000
[gcode_macro _START_PRINT_BASE] [gcode_macro _START_PRINT_BASE]
@ -538,12 +553,18 @@ 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 %}
SET_STEPPER_ENABLE STEPPER=stepper_z ENABLE=1
G4 P300
{% if 'x' not in printer.toolhead.homed_axes|lower or 'y' not in printer.toolhead.homed_axes|lower %} {% if 'x' not in printer.toolhead.homed_axes|lower or 'y' not in printer.toolhead.homed_axes|lower %}
{% set homing_cmd = 'X Y Z' %} {% set homing_cmd = 'X Y Z' %}
{% else %} {% else %}
@ -551,6 +572,10 @@ 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
SET_STEPPER_ENABLE STEPPER=stepper_z ENABLE=1
G4 P300
C28 C28
_ACTIVATE_DEFAULT_EXTRUDER _ACTIVATE_DEFAULT_EXTRUDER
{% else %} {% else %}
@ -645,13 +670,14 @@ gcode:
[gcode_macro _USER_PAUSE] [gcode_macro _USER_PAUSE]
gcode: gcode:
{% set extruderTools = [('extruder', 'last_extruder_temp'), {% set heaters = [('extruder', 'last_extruder_temp'),
('extruder1', 'last_extruder1_temp')] %} ('extruder1', 'last_extruder1_temp'),
('heater_bed', 'last_bed_temp')] %}
{% set act = printer.gcode_move.gcode_position %} {% set act = printer.gcode_move.gcode_position %}
SAVE_VARIABLE VARIABLE=power_resume_z VALUE={act.z} SAVE_VARIABLE VARIABLE=power_resume_z VALUE={act.z}
{% for extruder_name, name in extruderTools %} {% for heater, name in heaters %}
{% set temp = printer[extruder_name].target if extruder_name in printer else 0 %} {% set temp = printer[heater].target if heater in printer else 0 %}
{% set restore = False if printer[extruder_name] == '' {% set restore = False if printer[heater] == ''
else True if params.RESTORE|default(1)|int == 1 else False %} else True if params.RESTORE|default(1)|int == 1 else False %}
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 %}
@ -702,6 +728,10 @@ gcode:
{% set extruder_info = [ {% set extruder_info = [
{'index': 0, 'name': 'last_extruder_temp'}, {'index': 0, 'name': 'last_extruder_temp'},
{'index': 1, 'name': 'last_extruder1_temp'}] %} {'index': 1, 'name': 'last_extruder1_temp'}] %}
{% set value = printer["gcode_macro RESUME"]["last_bed_temp"].temp %}
{% if value != 0 %}
M190 S{value}
{% endif %}
{% set temperature = "last_extruder_temp" if printer.toolhead.extruder == "extruder" else "last_extruder1_temp" %} {% set temperature = "last_extruder_temp" if printer.toolhead.extruder == "extruder" else "last_extruder1_temp" %}
{% set value = printer["gcode_macro RESUME"][temperature].temp %} {% set value = printer["gcode_macro RESUME"][temperature].temp %}
{% if printer[printer.toolhead.extruder].temperature < value-3 %} {% if printer[printer.toolhead.extruder].temperature < value-3 %}
@ -761,11 +791,28 @@ gcode:
{% endif %} {% endif %}
{% endif %} {% endif %}
[gcode_macro _REAPPLY_OFFSET]
gcode:
{% set re_extruder = printer['gcode_macro RESUME'].resume_extruder|default("extruder") %}
{% set svv = printer.save_variables.variables %}
{% set x_offset = svv.nozzle_x_offset_val|default(0)|float %}
{% set y_offset = svv.nozzle_y_offset_val|default(0)|float %}
{% set z_offset = svv.nozzle_z_offset_val|default(0)|float %}
{% set x_offset = x_offset - 59 %}
{% set is_extruder = printer.toolhead.extruder == "extruder" %}
{% if printer.toolhead.extruder!= re_extruder %}
SET_GCODE_OFFSET Z={0 if is_extruder else z_offset} MOVE=1
SET_GCODE_OFFSET Y={0 if is_extruder else y_offset}
SET_GCODE_OFFSET X={0 if is_extruder else x_offset}
{% endif %}
[gcode_macro RESUME] [gcode_macro RESUME]
description: Resume the actual running print description: Resume the actual running print
rename_existing: RESUME_BASE rename_existing: RESUME_BASE
variable_last_extruder_temp: {'restore': False, 'temp': 0} variable_last_extruder_temp: {'restore': False, 'temp': 0}
variable_last_extruder1_temp: {'restore': False, 'temp': 0} variable_last_extruder1_temp: {'restore': False, 'temp': 0}
variable_last_bed_temp: {'restore': False, 'temp': 0}
variable_restore_idle_timeout: 0 variable_restore_idle_timeout: 0
variable_idle_state: False variable_idle_state: False
variable_filament_state: "" variable_filament_state: ""
@ -777,29 +824,41 @@ gcode:
{% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %} {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set do_resume = False %} {% set do_resume = False %}
{% set runout = True %} {% set runout = True %}
##### end of definitions ##### {% macro resume_action() %}
_FILAMENT_UPDATE _FILAMENT_UPDATE
_RESUME_EXTRUDER AUTOSHIFT={autoshift} _RESUME_EXTRUDER AUTOSHIFT={autoshift}
_EXTRUDER_TEMPERATURE_HANDLE _EXTRUDER_TEMPERATURE_HANDLE
{% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config {% set can_extrude = True if printer.toolhead.extruder == '' # no extruder defined in config
else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder else printer[printer.toolhead.extruder].can_extrude %} # status of active extruder
#### Printer comming from timeout idle state #### #### Printer comming from timeout idle state ####
{% if printer.idle_timeout.state|upper == "IDLE" or idle_state or autoshift %} {% if printer.idle_timeout.state|upper == "IDLE" or idle_state or autoshift %}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=idle_state VALUE=False
{% endif %}
{% if last_extruder_temp.restore or last_extruder1_temp.restore %} {% 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 { client.user_temp_macro|default("") }
{client.user_temp_macro|default("")}
{% set do_resume = True %} {% set do_resume = True %}
{% elif can_extrude %} {% elif can_extrude %}
{% set do_resume = True %} {% set do_resume = True %}
{% endif %} {% endif %}
#### Printer comming out of regular PAUSE state #### _ACT_RESUME DO_RESUME={ do_resume }
{% elif can_extrude %} {% endmacro %}
{% set do_resume = True %} {% if printer['gcode_button _door_detection'] %}
{% set sv = printer.save_variables.variables %}
{% set door_function = sv.door_detect|default("Disabled") %}
{% set door_state = printer['gcode_button _door_detection'].state|default('released')|lower %}
{% if door_function == 'Pause Print' and door_state == 'released' %}
RESPOND TYPE=command MSG="action:prompt_begin"
RESPOND TYPE=command MSG="action:prompt_text Please close the door and click Resume to proceed."
RESPOND TYPE=command MSG="action:prompt_footer_button Ok|RESPOND TYPE=command MSG=action:prompt_end"
RESPOND TYPE=command MSG="action:prompt_show"
{% else %}
{ resume_action() }
{% endif %}
{% else %}
{ resume_action() }
{% endif %} {% endif %}
_ACT_RESUME DO_RESUME={do_resume}
[gcode_macro _ACT_RESUME] [gcode_macro _ACT_RESUME]
gcode: gcode:
@ -818,6 +877,7 @@ gcode:
{client.user_resume_macro|default("")} {client.user_resume_macro|default("")}
_CLIENT_EXTRUDE _CLIENT_EXTRUDE
RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)} RESUME_BASE VELOCITY={params.VELOCITY|default(sp_move)}
_REAPPLY_OFFSET
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE="None" SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=change_runout VALUE="None"
{% else %} {% else %}
{% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %} {% set msg = "Left" if printer.toolhead.extruder == "extruder" else "Right" %}
@ -920,7 +980,7 @@ gcode:
RUN_SHELL_COMMAND CMD=_CLEAR_PLR RUN_SHELL_COMMAND CMD=_CLEAR_PLR
SAVE_VARIABLE VARIABLE=last_file VALUE='"{ filename }"' SAVE_VARIABLE VARIABLE=last_file VALUE='"{ filename }"'
SAVE_VARIABLE VARIABLE=filepath VALUE='"{ filepath }"' SAVE_VARIABLE VARIABLE=filepath VALUE='"{ filepath }"'
{% set zero_vars = ['power_resume_x', 'power_resume_y', 'power_resume_z'] %} {% set zero_vars = ['power_resume_position', 'power_resume_line'] %}
{% for var in zero_vars %} {% for var in zero_vars %}
SAVE_VARIABLE VARIABLE={var} VALUE=0 SAVE_VARIABLE VARIABLE={var} VALUE=0
{% endfor %} {% endfor %}
@ -938,9 +998,9 @@ gcode:
{% set park_dz = client.custom_park_dz|default(2.0)|abs %} {% set park_dz = client.custom_park_dz|default(2.0)|abs %}
RESPOND TYPE=command MSG="action:prompt_end" RESPOND TYPE=command MSG="action:prompt_end"
SET_GCODE_OFFSET Z=0 MOVE=0 SET_GCODE_OFFSET Z=0 MOVE=0
{% set z_height = params.Z_HEIGHT|default(sv.power_resume_z)|float %}
{% set is_paused = sv.power_loss_paused|default(False) %} {% set is_paused = sv.power_loss_paused|default(False) %}
{% set last_file = params.GCODE_FILE|default(sv.last_file)|string %} {% set filepath = params.GCODE_FILE|default(sv.filepath)|string %}
{% set last_file = filepath.split('/')[-1] %}
{% set hotend = sv.power_resume_extruder|default("extruder")%} {% set hotend = sv.power_resume_extruder|default("extruder")%}
{% set z_offset = sv.nozzle_z_offset_val|default(0)|float %} {% set z_offset = sv.nozzle_z_offset_val|default(0)|float %}
{% set z_offset_total = park_dz if is_paused else 0 %} {% set z_offset_total = park_dz if is_paused else 0 %}
@ -950,7 +1010,7 @@ gcode:
SET_STEPPER_ENABLE STEPPER=stepper_z ENABLE=1 SET_STEPPER_ENABLE STEPPER=stepper_z ENABLE=1
G4 P300 G4 P300
M118 Recovery in progress, please wait M118 Recovery in progress, please wait
RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_height} \"{last_file}\" \"{z_offset_total}\"" RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_offset_total}"
SDCARD_PRINT_FILE FILENAME=.plr/"{last_file}" SDCARD_PRINT_FILE FILENAME=.plr/"{last_file}"
SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False
@ -1133,3 +1193,5 @@ gcode:
gcode: gcode:
RUN_SHELL_COMMAND CMD=fetch_assets PARAMS="\"Gcode\" \"D600Pro2HS\" \"NozzleAglin.zip\"" RUN_SHELL_COMMAND CMD=fetch_assets PARAMS="\"Gcode\" \"D600Pro2HS\" \"NozzleAglin.zip\""
SDCARD_PRINT_FILE FILENAME=".PresetModel/NozzleAglin.gcode" SDCARD_PRINT_FILE FILENAME=".PresetModel/NozzleAglin.gcode"
[include module/*.cfg]

View File

@ -48,7 +48,7 @@ square_corner_velocity: 5.0
speed: 100 speed: 100
horizontal_move_z: 7 horizontal_move_z: 7
mesh_min: 34.6,17.4 mesh_min: 34.6,17.4
mesh_max: 420, 300 mesh_max: 420, 290
probe_count: 5,4 probe_count: 5,4
mesh_pps: 2,2 mesh_pps: 2,2
fade_end: 5 fade_end: 5
@ -65,7 +65,7 @@ full_steps_per_rotation: 200
endstop_pin: ^PC10 endstop_pin: ^PC10
position_min: -20 position_min: -20
position_endstop: -20 position_endstop: -20
position_max: 475 position_max: 400
homing_speed: 100 homing_speed: 100
homing_retract_dist: 10 homing_retract_dist: 10
step_pulse_duration:0.0000025 step_pulse_duration:0.0000025
@ -152,8 +152,9 @@ heater_pin: PD12
sensor_type: Generic 3950 sensor_type: Generic 3950
sensor_pin: PC0 sensor_pin: PC0
max_power: 1.0 max_power: 1.0
min_temp: 0 min_temp: -20
max_temp: 150 max_temp: 140
overshoot: 10
# control: pid # control: pid
# pid_kp: 40.673 # pid_kp: 40.673
# pid_ki: 0.837 # pid_ki: 0.837
@ -170,8 +171,9 @@ heater_pin: PD15
max_power: 1.0 max_power: 1.0
sensor_type: Generic 3950 sensor_type: Generic 3950
sensor_pin: PC3 sensor_pin: PC3
min_temp: 0 min_temp: -20
max_temp: 80 max_temp: 70
overshoot: 10
# control: pid # control: pid
# pid_kp: 30.68 # pid_kp: 30.68
# pid_ki: 0.21 # pid_ki: 0.21
@ -298,8 +300,9 @@ max_extrude_only_accel: 1000.0
max_extrude_cross_section:5 max_extrude_cross_section:5
heater_pin: L_tool:PA8 heater_pin: L_tool:PA8
max_power: 1.0 max_power: 1.0
min_temp: 0 min_temp: -20
max_temp: 450 max_temp: 450
overshoot: 20
min_extrude_temp: 150 min_extrude_temp: 150
pressure_advance: 0.032 pressure_advance: 0.032
pressure_advance_smooth_time:0.040 pressure_advance_smooth_time:0.040
@ -391,8 +394,9 @@ max_extrude_only_accel: 1000.0
max_extrude_cross_section:5 max_extrude_cross_section:5
heater_pin: R_tool:PA8 heater_pin: R_tool:PA8
max_power: 1.0 max_power: 1.0
min_temp: 0 min_temp: -20
max_temp: 450 max_temp: 450
overshoot: 20
min_extrude_temp: 150 min_extrude_temp: 150
pressure_advance: 0.032 pressure_advance: 0.032
pressure_advance_smooth_time:0.040 pressure_advance_smooth_time:0.040
@ -442,7 +446,10 @@ gcode:
[gcode_macro T0] [gcode_macro T0]
gcode: gcode:
{% set filament_insert = printer["filament_switch_sensor extruder"].filament_detected|default(False) %} {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set filament_insert = True if client.filament_sensor|default("") == ""
else True if not printer[client.filament_sensor].enabled
else printer[client.filament_sensor].filament_detected|default(False) %}
{% set printing = printer.print_stats.state == "printing" %} {% set printing = printer.print_stats.state == "printing" %}
{% if filament_insert or printing == False %} {% if filament_insert or printing == False %}
{% if "x" not in printer.toolhead.homed_axes %} {% if "x" not in printer.toolhead.homed_axes %}
@ -490,7 +497,10 @@ gcode:
{% set y_offset = svv.nozzle_y_offset_val|default(0)|float %} {% set y_offset = svv.nozzle_y_offset_val|default(0)|float %}
{% set z_offset = svv.nozzle_z_offset_val|default(0)|float %} {% set z_offset = svv.nozzle_z_offset_val|default(0)|float %}
{% set filament_insert = printer["filament_switch_sensor extruder1"].filament_detected|default(False) %} {% set client = printer['gcode_macro _CLIENT_VARIABLE']|default({}) %}
{% set filament_insert = True if client.filament_sensor1|default("") == ""
else True if not printer[client.filament_sensor1].enabled
else printer[client.filament_sensor1].filament_detected|default(False) %}
{% set printing = (printer.print_stats.state == "printing") %} {% set printing = (printer.print_stats.state == "printing") %}
{% if filament_insert or printing == False %} {% if filament_insert or printing == False %}
{% if "x" not in printer.toolhead.homed_axes %} {% if "x" not in printer.toolhead.homed_axes %}
@ -838,13 +848,14 @@ gcode:
[gcode_macro _USER_PAUSE] [gcode_macro _USER_PAUSE]
gcode: gcode:
{% set extruderTools = [('extruder', 'last_extruder_temp'), {% set heaters = [('extruder', 'last_extruder_temp'),
('extruder1', 'last_extruder1_temp')] %} ('extruder1', 'last_extruder1_temp'),
('heater_bed', 'last_bed_temp')] %}
{% set act = printer.gcode_move.gcode_position %} {% set act = printer.gcode_move.gcode_position %}
SAVE_VARIABLE VARIABLE=power_resume_z VALUE={act.z} SAVE_VARIABLE VARIABLE=power_resume_z VALUE={act.z}
{% for extruder_name, name in extruderTools %} {% for heater, name in heaters %}
{% set temp = printer[extruder_name].target if extruder_name in printer else 0 %} {% set temp = printer[heater].target if heater in printer else 0 %}
{% set restore = False if printer[extruder_name] == '' {% set restore = False if printer[heater] == ''
else True if params.RESTORE|default(1)|int == 1 else False %} else True if params.RESTORE|default(1)|int == 1 else False %}
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 %}
@ -864,6 +875,10 @@ gcode:
{% set extruder_info = [ {% set extruder_info = [
{'index': 0, 'name': 'last_extruder_temp'}, {'index': 0, 'name': 'last_extruder_temp'},
{'index': 1, 'name': 'last_extruder1_temp'}] %} {'index': 1, 'name': 'last_extruder1_temp'}] %}
{% set value = printer["gcode_macro RESUME"]["last_bed_temp"].temp %}
{% if value != 0 %}
M190 S{value}
{% endif %}
{% set temperature = "last_extruder_temp" if printer.toolhead.extruder == "extruder" else "last_extruder1_temp" %} {% set temperature = "last_extruder_temp" if printer.toolhead.extruder == "extruder" else "last_extruder1_temp" %}
{% set value = printer["gcode_macro RESUME"][temperature].temp %} {% set value = printer["gcode_macro RESUME"][temperature].temp %}
{% for info in extruder_info %} {% for info in extruder_info %}
@ -980,6 +995,7 @@ description: Resume the actual running print
rename_existing: RESUME_BASE rename_existing: RESUME_BASE
variable_last_extruder_temp: {'restore': False, 'temp': 0} variable_last_extruder_temp: {'restore': False, 'temp': 0}
variable_last_extruder1_temp: {'restore': False, 'temp': 0} variable_last_extruder1_temp: {'restore': False, 'temp': 0}
variable_last_bed_temp: {'restore': False, 'temp': 0}
variable_restore_idle_timeout: 0 variable_restore_idle_timeout: 0
variable_idle_state: False variable_idle_state: False
variable_resume_dual: False variable_resume_dual: False
@ -1146,7 +1162,7 @@ gcode:
RUN_SHELL_COMMAND CMD=_CLEAR_PLR RUN_SHELL_COMMAND CMD=_CLEAR_PLR
SAVE_VARIABLE VARIABLE=last_file VALUE='"{ filename }"' SAVE_VARIABLE VARIABLE=last_file VALUE='"{ filename }"'
SAVE_VARIABLE VARIABLE=filepath VALUE='"{ filepath }"' SAVE_VARIABLE VARIABLE=filepath VALUE='"{ filepath }"'
{% set zero_vars = ['power_resume_x', 'power_resume_y', 'power_resume_z'] %} {% set zero_vars = ['power_resume_position', 'power_resume_line'] %}
{% for var in zero_vars %} {% for var in zero_vars %}
SAVE_VARIABLE VARIABLE={var} VALUE=0 SAVE_VARIABLE VARIABLE={var} VALUE=0
{% endfor %} {% endfor %}
@ -1164,9 +1180,9 @@ gcode:
{% set park_dz = client.custom_park_dz|default(2.0)|abs %} {% set park_dz = client.custom_park_dz|default(2.0)|abs %}
RESPOND TYPE=command MSG="action:prompt_end" RESPOND TYPE=command MSG="action:prompt_end"
SET_GCODE_OFFSET Z=0 MOVE=0 SET_GCODE_OFFSET Z=0 MOVE=0
{% set z_height = params.Z_HEIGHT|default(sv.power_resume_z)|float %}
{% set is_paused = sv.power_loss_paused|default(False) %} {% set is_paused = sv.power_loss_paused|default(False) %}
{% set last_file = params.GCODE_FILE|default(sv.last_file)|string %} {% set filepath = params.GCODE_FILE|default(sv.filepath)|string %}
{% set last_file = filepath.split('/')[-1] %}
{% set hotend = sv.power_resume_extruder|default("extruder")%} {% set hotend = sv.power_resume_extruder|default("extruder")%}
{% set z_offset = sv.nozzle_z_offset_val|default(0)|float %} {% set z_offset = sv.nozzle_z_offset_val|default(0)|float %}
{% set z_offset_total = park_dz if is_paused else 0 %} {% set z_offset_total = park_dz if is_paused else 0 %}
@ -1176,7 +1192,7 @@ gcode:
SET_STEPPER_ENABLE STEPPER=stepper_z ENABLE=1 SET_STEPPER_ENABLE STEPPER=stepper_z ENABLE=1
G4 P300 G4 P300
M118 Recovery in progress, please wait M118 Recovery in progress, please wait
RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_height} \"{last_file}\" \"{z_offset_total}\"" RUN_SHELL_COMMAND CMD=_POWER_LOSS_RECOVERY PARAMS="{z_offset_total}"
SDCARD_PRINT_FILE FILENAME=.plr/"{last_file}" SDCARD_PRINT_FILE FILENAME=.plr/"{last_file}"
SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False

View File

@ -0,0 +1,32 @@
[gcode_button _door_detection]
pin: DOOR_PIN
press_gcode:
release_gcode:
{% set sv = printer.save_variables.variables %}
{% set door_function = sv.door_detect|default("Disabled") %}
{% if door_function != "Disabled" %}
M118 Printer door is opening!
{% endif %}
_DOOR_DETECTION_HANDLE STATUS='open'
[gcode_macro _DOOR_DETECTION_HANDLE]
gcode:
{% set sv = printer.save_variables.variables %}
{% set door_function = sv.door_detect|default("Disabled") %}
{% set status = params.STATUS|default("close") %}
{% set printing_state = printer.print_stats.state %}
{% if status=='open' and printing_state == 'printing' %}
{% if door_function == 'Emergency Stop' %}
M112
{% elif door_function == 'Pause Print' %}
PAUSE
{% endif %}
{% endif %}
[gcode_macro _DOOR_START_PRINT_BASE]
description: Call handle door is open when starting to print
gcode:
RESPOND TYPE=command MSG="action:prompt_begin"
RESPOND TYPE=command MSG="action:prompt_text Printer door is opened. Please close the door and then start printing."
RESPOND TYPE=command MSG="action:prompt_footer_button Ok|RESPOND TYPE=command MSG=action:prompt_end"
RESPOND TYPE=command MSG="action:prompt_show"