update v1.7.0

This commit is contained in:
whb0514
2025-07-29 18:39:58 +08:00
parent adc97bc9c4
commit f2778023df
93 changed files with 15438 additions and 104 deletions

4
config/box.cfg Normal file
View File

@@ -0,0 +1,4 @@
# [include box1.cfg]
# [include box2.cfg]
# [include box3.cfg]
# [include box4.cfg]

318
config/box1.cfg Normal file
View File

@@ -0,0 +1,318 @@
[box_stepper slot0]
runout_pin: mcu_box1:PA0
step_pin: mcu_box1:PC14
dir_pin: mcu_box1:PC13
enable_pin: !mcu_box1:PC15
microsteps: 16
rotation_distance: 13.4
white_pin: mcu_box1:PA1
red_pin: mcu_box1:PA2
[box_stepper slot1]
runout_pin: mcu_box1:PB3
step_pin: mcu_box1:PB9
dir_pin: mcu_box1:PB8
enable_pin: !mcu_box1:PC0
microsteps: 16
rotation_distance: 13.4
white_pin: mcu_box1:PB4
red_pin: mcu_box1:PB5
[box_stepper slot2]
runout_pin: mcu_box1:PA13
step_pin: mcu_box1:PC12
dir_pin: mcu_box1:PC11
enable_pin: !mcu_box1:PD2
microsteps: 16
rotation_distance: 13.4
white_pin: mcu_box1:PA14
red_pin: mcu_box1:PA15
[box_stepper slot3]
runout_pin: mcu_box1:PA7
step_pin: mcu_box1:PC8
dir_pin: mcu_box1:PB2
enable_pin: !mcu_box1:PC10
microsteps: 16
rotation_distance: 13.4
white_pin: mcu_box1:PC4
red_pin: mcu_box1:PC5
[heater_generic heater_box1]
heater_pin: mcu_box1:PA3
sensor_type: AHT20_F
i2c_bus: i2c3
#i2c_software_scl_pin = mcu_box1:PA8
#i2c_software_sda_pin = mcu_box1:PC9
i2c_mcu: mcu_box1
i2c_address: 56
control: pid
pid_Kp: 63.418
pid_Ki: 1.342
pid_Kd: 749.125
min_temp: -100
max_temp: 100
target_max_temp: 90
[verify_heater heater_box1]
max_error: 400
check_gain_time: 600
[temperature_sensor heater_temp_a_box1]
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: mcu_box1:PC1
min_temp: -100
max_temp: 130
[temperature_sensor heater_temp_b_box1]
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: mcu_box1:PC2
min_temp: -100
max_temp: 130
[controller_fan heater_fan_a_box1]
pin: mcu_box1:PA4
heater: heater_box1
stepper:
idle_timeout: 60
[controller_fan heater_fan_b_box1]
pin: mcu_box1:PA5
heater: heater_box1
stepper:
idle_timeout: 60
[controller_fan board_fan_box1]
pin: mcu_box1:PA6
heater: heater_box1
stepper: box_stepper slot0, box_stepper slot1, box_stepper slot2, box_stepper slot3
[box_rfid card_reader_1]
cs_pin: mcu_box1:PC6
[box_rfid card_reader_2]
cs_pin: mcu_box1:PC7
[gcode_macro T0]
gcode:
{% set slot = printer.save_variables.variables.value_t0|default('slot0') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_LOAD SLOT={slot}
{% endif %}
[gcode_macro T1]
gcode:
{% set slot = printer.save_variables.variables.value_t1|default('slot1') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_LOAD SLOT={slot}
{% endif %}
[gcode_macro T2]
gcode:
{% set slot = printer.save_variables.variables.value_t2|default('slot2') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_LOAD SLOT={slot}
{% endif %}
[gcode_macro T3]
gcode:
{% set slot = printer.save_variables.variables.value_t3|default('slot3') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_LOAD SLOT={slot}
{% endif %}
[gcode_macro UNLOAD_T0]
gcode:
{% set slot = printer.save_variables.variables.value_t0|default('slot0') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_UNLOAD SLOT={slot}
{% endif %}
[gcode_macro UNLOAD_T1]
gcode:
{% set slot = printer.save_variables.variables.value_t1|default('slot1') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_UNLOAD SLOT={slot}
{% endif %}
[gcode_macro UNLOAD_T2]
gcode:
{% set slot = printer.save_variables.variables.value_t2|default('slot2') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_UNLOAD SLOT={slot}
{% endif %}
[gcode_macro UNLOAD_T3]
gcode:
{% set slot = printer.save_variables.variables.value_t3|default('slot3') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_UNLOAD SLOT={slot}
{% endif %}
[gcode_macro T4]
gcode:
{% set slot = printer.save_variables.variables.value_t4|default('slot4') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_LOAD SLOT={slot}
{% endif %}
[gcode_macro T5]
gcode:
{% set slot = printer.save_variables.variables.value_t5|default('slot5') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_LOAD SLOT={slot}
{% endif %}
[gcode_macro T6]
gcode:
{% set slot = printer.save_variables.variables.value_t6|default('slot6') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_LOAD SLOT={slot}
{% endif %}
[gcode_macro T7]
gcode:
{% set slot = printer.save_variables.variables.value_t7|default('slot7') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_LOAD SLOT={slot}
{% endif %}
[gcode_macro UNLOAD_T4]
gcode:
{% set slot = printer.save_variables.variables.value_t4|default('slot4') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_UNLOAD SLOT={slot}
{% endif %}
[gcode_macro UNLOAD_T5]
gcode:
{% set slot = printer.save_variables.variables.value_t5|default('slot5') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_UNLOAD SLOT={slot}
{% endif %}
[gcode_macro UNLOAD_T6]
gcode:
{% set slot = printer.save_variables.variables.value_t6|default('slot6') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_UNLOAD SLOT={slot}
{% endif %}
[gcode_macro UNLOAD_T7]
gcode:
{% set slot = printer.save_variables.variables.value_t7|default('slot7') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_UNLOAD SLOT={slot}
{% endif %}
[gcode_macro T8]
gcode:
{% set slot = printer.save_variables.variables.value_t8|default('slot8') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_LOAD SLOT={slot}
{% endif %}
[gcode_macro T9]
gcode:
{% set slot = printer.save_variables.variables.value_t9|default('slot9') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_LOAD SLOT={slot}
{% endif %}
[gcode_macro T10]
gcode:
{% set slot = printer.save_variables.variables.value_t10|default('slot10') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_LOAD SLOT={slot}
{% endif %}
[gcode_macro T11]
gcode:
{% set slot = printer.save_variables.variables.value_t11|default('slot11') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_LOAD SLOT={slot}
{% endif %}
[gcode_macro UNLOAD_T8]
gcode:
{% set slot = printer.save_variables.variables.value_t8|default('slot8') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_UNLOAD SLOT={slot}
{% endif %}
[gcode_macro UNLOAD_T9]
gcode:
{% set slot = printer.save_variables.variables.value_t9|default('slot9') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_UNLOAD SLOT={slot}
{% endif %}
[gcode_macro UNLOAD_T10]
gcode:
{% set slot = printer.save_variables.variables.value_t10|default('slot10') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_UNLOAD SLOT={slot}
{% endif %}
[gcode_macro UNLOAD_T11]
gcode:
{% set slot = printer.save_variables.variables.value_t11|default('slot11') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_UNLOAD SLOT={slot}
{% endif %}
[gcode_macro T12]
gcode:
{% set slot = printer.save_variables.variables.value_t12|default('slot12') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_LOAD SLOT={slot}
{% endif %}
[gcode_macro T13]
gcode:
{% set slot = printer.save_variables.variables.value_t13|default('slot13') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_LOAD SLOT={slot}
{% endif %}
[gcode_macro T14]
gcode:
{% set slot = printer.save_variables.variables.value_t14|default('slot14') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_LOAD SLOT={slot}
{% endif %}
[gcode_macro T15]
gcode:
{% set slot = printer.save_variables.variables.value_t15|default('slot15') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_LOAD SLOT={slot}
{% endif %}
[gcode_macro UNLOAD_T12]
gcode:
{% set slot = printer.save_variables.variables.value_t12|default('slot12') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_UNLOAD SLOT={slot}
{% endif %}
[gcode_macro UNLOAD_T13]
gcode:
{% set slot = printer.save_variables.variables.value_t13|default('slot13') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_UNLOAD SLOT={slot}
{% endif %}
[gcode_macro UNLOAD_T14]
gcode:
{% set slot = printer.save_variables.variables.value_t14|default('slot14') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_UNLOAD SLOT={slot}
{% endif %}
[gcode_macro UNLOAD_T15]
gcode:
{% set slot = printer.save_variables.variables.value_t15|default('slot15') %}
{% if printer.save_variables.variables.enable_box == 1 %}
EXTRUDER_UNLOAD SLOT={slot}
{% endif %}

94
config/box2.cfg Normal file
View File

@@ -0,0 +1,94 @@
[box_stepper slot4]
runout_pin: mcu_box2:PA0
step_pin: mcu_box2:PC14
dir_pin: mcu_box2:PC13
enable_pin: !mcu_box2:PC15
microsteps: 16
rotation_distance: 13.4
white_pin: mcu_box2:PA1
red_pin: mcu_box2:PA2
[box_stepper slot5]
runout_pin: mcu_box2:PB3
step_pin: mcu_box2:PB9
dir_pin: mcu_box2:PB8
enable_pin: !mcu_box2:PC0
microsteps: 16
rotation_distance: 13.4
white_pin: mcu_box2:PB4
red_pin: mcu_box2:PB5
[box_stepper slot6]
runout_pin: mcu_box2:PA13
step_pin: mcu_box2:PC12
dir_pin: mcu_box2:PC11
enable_pin: !mcu_box2:PD2
microsteps: 16
rotation_distance: 13.4
white_pin: mcu_box2:PA14
red_pin: mcu_box2:PA15
[box_stepper slot7]
runout_pin: mcu_box2:PA7
step_pin: mcu_box2:PC8
dir_pin: mcu_box2:PB2
enable_pin: !mcu_box2:PC10
microsteps: 16
rotation_distance: 13.4
white_pin: mcu_box2:PC4
red_pin: mcu_box2:PC5
[heater_generic heater_box2]
heater_pin: mcu_box2:PA3
sensor_type: AHT20_F
i2c_bus: i2c3
#i2c_software_scl_pin = mcu_box2:PA8
#i2c_software_sda_pin = mcu_box2:PC9
i2c_mcu: mcu_box2
i2c_address: 56
control: pid
pid_Kp: 63.418
pid_Ki: 1.342
pid_Kd: 749.125
min_temp: -100
max_temp: 100
target_max_temp: 90
[verify_heater heater_box2]
max_error: 400
check_gain_time: 600
[temperature_sensor heater_temp_a_box2]
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: mcu_box2:PC1
min_temp: -100
max_temp: 130
[temperature_sensor heater_temp_b_box2]
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: mcu_box2:PC2
min_temp: -100
max_temp: 130
[controller_fan heater_fan_a_box2]
pin: mcu_box2:PA4
heater: heater_box2
stepper:
idle_timeout: 60
[controller_fan heater_fan_b_box2]
pin: mcu_box2:PA5
heater: heater_box2
stepper:
idle_timeout: 60
[controller_fan board_fan_box2]
pin: mcu_box2:PA6
heater: heater_box2
stepper: box_stepper slot4, box_stepper slot5, box_stepper slot6, box_stepper slot7
[box_rfid card_reader_3]
cs_pin: mcu_box2:PC6
[box_rfid card_reader_4]
cs_pin: mcu_box2:PC7

94
config/box3.cfg Normal file
View File

@@ -0,0 +1,94 @@
[box_stepper slot8]
runout_pin: mcu_box3:PA0
step_pin: mcu_box3:PC14
dir_pin: mcu_box3:PC13
enable_pin: !mcu_box3:PC15
microsteps: 16
rotation_distance: 13.4
white_pin: mcu_box3:PA1
red_pin: mcu_box3:PA2
[box_stepper slot9]
runout_pin: mcu_box3:PB3
step_pin: mcu_box3:PB9
dir_pin: mcu_box3:PB8
enable_pin: !mcu_box3:PC0
microsteps: 16
rotation_distance: 13.4
white_pin: mcu_box3:PB4
red_pin: mcu_box3:PB5
[box_stepper slot10]
runout_pin: mcu_box3:PA13
step_pin: mcu_box3:PC12
dir_pin: mcu_box3:PC11
enable_pin: !mcu_box3:PD2
microsteps: 16
rotation_distance: 13.4
white_pin: mcu_box3:PA14
red_pin: mcu_box3:PA15
[box_stepper slot11]
runout_pin: mcu_box3:PA7
step_pin: mcu_box3:PC8
dir_pin: mcu_box3:PB2
enable_pin: !mcu_box3:PC10
microsteps: 16
rotation_distance: 13.4
white_pin: mcu_box3:PC4
red_pin: mcu_box3:PC5
[heater_generic heater_box3]
heater_pin: mcu_box3:PA3
sensor_type: AHT20_F
i2c_bus: i2c3
#i2c_software_scl_pin = mcu_box3:PA8
#i2c_software_sda_pin = mcu_box3:PC9
i2c_mcu: mcu_box3
i2c_address: 56
control: pid
pid_Kp: 63.418
pid_Ki: 1.342
pid_Kd: 749.125
min_temp: -100
max_temp: 100
target_max_temp: 90
[verify_heater heater_box3]
max_error: 400
check_gain_time: 600
[temperature_sensor heater_temp_a_box3]
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: mcu_box3:PC1
min_temp: -100
max_temp: 130
[temperature_sensor heater_temp_b_box3]
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: mcu_box3:PC2
min_temp: -100
max_temp: 130
[controller_fan heater_fan_a_box3]
pin: mcu_box3:PA4
heater: heater_box3
stepper:
idle_timeout: 60
[controller_fan heater_fan_b_box3]
pin: mcu_box3:PA5
heater: heater_box3
stepper:
idle_timeout: 60
[controller_fan board_fan_box3]
pin: mcu_box3:PA6
heater: heater_box3
stepper: box_stepper slot8, box_stepper slot9, box_stepper slot10, box_stepper slot11
[box_rfid card_reader_5]
cs_pin: mcu_box3:PC6
[box_rfid card_reader_6]
cs_pin: mcu_box3:PC7

94
config/box4.cfg Normal file
View File

@@ -0,0 +1,94 @@
[box_stepper slot12]
runout_pin: mcu_box4:PA0
step_pin: mcu_box4:PC14
dir_pin: mcu_box4:PC13
enable_pin: !mcu_box4:PC15
microsteps: 16
rotation_distance: 13.4
white_pin: mcu_box4:PA1
red_pin: mcu_box4:PA2
[box_stepper slot13]
runout_pin: mcu_box4:PB3
step_pin: mcu_box4:PB9
dir_pin: mcu_box4:PB8
enable_pin: !mcu_box4:PC0
microsteps: 16
rotation_distance: 13.4
white_pin: mcu_box4:PB4
red_pin: mcu_box4:PB5
[box_stepper slot14]
runout_pin: mcu_box4:PA13
step_pin: mcu_box4:PC12
dir_pin: mcu_box4:PC11
enable_pin: !mcu_box4:PD2
microsteps: 16
rotation_distance: 13.4
white_pin: mcu_box4:PA14
red_pin: mcu_box4:PA15
[box_stepper slot15]
runout_pin: mcu_box4:PA7
step_pin: mcu_box4:PC8
dir_pin: mcu_box4:PB2
enable_pin: !mcu_box4:PC10
microsteps: 16
rotation_distance: 13.4
white_pin: mcu_box4:PC4
red_pin: mcu_box4:PC5
[heater_generic heater_box4]
heater_pin: mcu_box4:PA3
sensor_type: AHT20_F
i2c_bus: i2c3
#i2c_software_scl_pin = mcu_box4:PA8
#i2c_software_sda_pin = mcu_box4:PC9
i2c_mcu: mcu_box4
i2c_address: 56
control: pid
pid_Kp: 63.418
pid_Ki: 1.342
pid_Kd: 749.125
min_temp: -100
max_temp: 100
target_max_temp: 90
[verify_heater heater_box4]
max_error: 400
check_gain_time: 600
[temperature_sensor heater_temp_a_box4]
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: mcu_box4:PC1
min_temp: -100
max_temp: 130
[temperature_sensor heater_temp_b_box4]
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: mcu_box4:PC2
min_temp: -100
max_temp: 130
[controller_fan heater_fan_a_box4]
pin: mcu_box4:PA4
heater: heater_box4
stepper:
idle_timeout: 60
[controller_fan heater_fan_b_box4]
pin: mcu_box4:PA5
heater: heater_box4
stepper:
idle_timeout: 60
[controller_fan board_fan_box4]
pin: mcu_box4:PA6
heater: heater_box4
stepper: box_stepper slot12, box_stepper slot13, box_stepper slot14, box_stepper slot15
[box_rfid card_reader_7]
cs_pin: mcu_box4:PC6
[box_rfid card_reader_8]
cs_pin: mcu_box4:PC7

11
config/drying.conf Normal file
View File

@@ -0,0 +1,11 @@
;类型 热床温度 温腔温度 时间min模板修改后使用
ABS/ASA 90 60 720
PA/PA-GF/PA-CF 90 60 720
PAHT-CF 90 60 720
PC 90 60 720
PET-CF 90 60 720
PETG/PETG-CF 70 55 720
PLA/PLA-CF 70 55 720
PPS/PPS-CF 90 60 720
TPU 90 60 720
;配置文件结束

View File

@@ -1,9 +1,4 @@
# QIDI Plus4 V1.6.0
#20241102
#1. 起始代码腔室加热将在调平后开启
#2. 腔室加热开启必须带着热床升温
#3. M141和M191宏定义修改热床低于70会开启热床加热
#4. 擦料时取消打印,会先移动一点出来
# QIDI Plus4 V1.0.0
[gcode_macro _CG28]
gcode:
@@ -205,28 +200,194 @@ gcode:
M400
M118 Nozzle cooled
[gcode_macro MOVE_TO_TRASH]
gcode:
_CG28
M204 S10000
{% if (printer.gcode_move.position.y) > 305 %}
G1 X82 Y324 F6000
G1 X95
{% else %}
G1 X82 F12000
G1 Y310 F12000
G1 Y324 F600
G1 X95 F6000
{% endif %}
# Excute when start printing, prior to gcode file
[gcode_macro PRINT_START]
gcode:
AUTOTUNE_SHAPERS
TOOL_CHANGE_END
DISABLE_ALL_SENSOR
CLEAR_PAUSE
{% set bedtemp = params.BED|int %}
{% set hotendtemp = params.HOTEND|int %}
{% set chambertemp = params.CHAMBER|default(0)|int %}
{% set extruder = params.EXTRUDER|default(0)|int %}
set_zoffset
M104 S0
M106 P2 S0
M106 P3 S0
M106 S255
{% if "xyz" in printer.toolhead.homed_axes %}
G0 X50 Y50 F6000
{% endif %}
G28
M141 S0
M140 S{bedtemp}
M106 S0
{% if printer.save_variables.variables.box_count >= 1 %}
SAVE_VARIABLE VARIABLE=load_retry_num VALUE=0
SAVE_VARIABLE VARIABLE=retry_step VALUE=None
SAVE_VARIABLE VARIABLE=is_tool_change VALUE=0
{% for i in range(16) %}
SAVE_VARIABLE VARIABLE=runout_{i} VALUE=0
G4 P100
{% endfor %}
{% if printer.save_variables.variables.enable_box == 1 %}
{% set last_load_slot = printer.save_variables.variables.last_load_slot|default("slot-1") %}
{% set value_t = printer.save_variables.variables["value_t" ~ extruder]|default("slot" ~ extruder) %}
{% if printer['hall_filament_width_sensor'].Diameter > 0.5 %}
{% if last_load_slot != value_t and last_load_slot != "slot-1" %}
CUT_FILAMENT
MOVE_TO_TRASH
M109 S{hotendtemp}
EXTRUDER_UNLOAD SLOT={last_load_slot}
M83
G1 E18 F300
T{extruder}
G1 E1 F50
G1 E28.13 F611
G1 E0.97 F50
G1 E8.73 F611
G1 E0.97 F50
G1 E8.73 F611
G1 E0.97 F50
G1 E-2 F1800
{% for i in range(1,5) %}
M106 S255
M400
G91
G1 X-3 F60
G1 X3 F60
G90
CLEAR_FLUSH
M106 S60
G1 E34.8 F611
G1 E1.2 F50
G1 E10.8 F611
G1 E1.2 F50
G1 E10.8 F611
G1 E1.2 F50
G1 E-2 F1800
{% endfor %}
{% elif last_load_slot == value_t and printer.save_variables.variables.slot_sync == "slot-1" %}
MOVE_TO_TRASH
M109 S{hotendtemp}
T{extruder}
M83
G1 E1 F50
G1 E28.13 F611
G1 E0.97 F50
G1 E8.73 F611
G1 E0.97 F50
G1 E8.73 F611
G1 E0.97 F50
G1 E-2 F1800
{% for i in range(1,5) %}
M106 S255
M400
G91
G1 X-3 F60
G1 X3 F60
G90
CLEAR_FLUSH
M106 S60
G1 E34.8 F611
G1 E1.2 F50
G1 E10.8 F611
G1 E1.2 F50
G1 E10.8 F611
G1 E1.2 F50
G1 E-2 F1800
{% endfor %}
{% endif %}
{% else %}
{% if last_load_slot != "slot-1" %}
MOVE_TO_TRASH
M109 S{hotendtemp}
M400
EXTRUDER_UNLOAD SLOT={last_load_slot}
T{extruder}
M83
G1 E1 F50
G1 E28.13 F611
G1 E0.97 F50
G1 E8.73 F611
G1 E0.97 F50
G1 E8.73 F611
G1 E0.97 F50
G1 E-2 F1800
{% for i in range(1,5) %}
M106 S255
M400
G91
G1 X-3 F60
G1 X3 F60
G90
CLEAR_FLUSH
M106 S60
G1 E34.8 F611
G1 E1.2 F50
G1 E10.8 F611
G1 E1.2 F50
G1 E10.8 F611
G1 E1.2 F50
G1 E-2 F1800
{% endfor %}
{% else %}
MOVE_TO_TRASH
M109 S{hotendtemp}
T{extruder}
M83
G1 E1 F50
G1 E28.13 F611
G1 E0.97 F50
G1 E8.73 F611
G1 E0.97 F50
G1 E8.73 F611
G1 E0.97 F50
G1 E-2 F1800
{% for i in range(1,5) %}
M106 S255
M400
G91
G1 X-3 F60
G1 X3 F60
G90
CLEAR_FLUSH
M106 S60
G1 E34.8 F611
G1 E1.2 F50
G1 E10.8 F611
G1 E1.2 F50
G1 E10.8 F611
G1 E1.2 F50
G1 E-2 F1800
{% endfor %}
{% endif %}
{% endif %}
{% endif %}
{% endif %}
M106 S0
CLEAR_NOZZLE HOTEND={hotendtemp}
M190 S{bedtemp}
# M141 S{chambertemp}
M104 S140
Z_TILT_ADJUST
G29
G0 Z50 F600
G0 X5 Y5 F6000
@@ -247,13 +408,19 @@ gcode:
RESET_FILAMENT_WIDTH_SENSOR
query_filament_width
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1
{% if printer["filament_motion_sensor box_motion_sensor"] and printer.save_variables.variables.enable_box == 1 %}
CLEAR_MOTION_DATA
SET_FILAMENT_SENSOR SENSOR=box_motion_sensor ENABLE=1
{% endif %}
[gcode_macro DISABLE_ALL_SENSOR]
gcode:
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0
{% if printer["filament_motion_sensor box_motion_sensor"] %}
SET_FILAMENT_SENSOR SENSOR=box_motion_sensor ENABLE=0
{% endif %}
DISABLE_FILAMENT_WIDTH_SENSOR
[gcode_macro AUTOTUNE_SHAPERS]
variable_autotune_shapers: 'ei'
gcode:
@@ -285,7 +452,7 @@ gcode:
SET_STEPPER_ENABLE STEPPER=stepper_z enable=1
SET_STEPPER_ENABLE STEPPER=stepper_z1 enable=1
BED_MESH_CLEAR
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0
DISABLE_ALL_SENSOR
[homing_override]
axes:xyz
@@ -342,7 +509,7 @@ gcode:
G1 Y5 F2400
G4 P2000
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR * 0.8}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR * 0.8}
G28 X
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR}
BEEP I=1 DUR=100
@@ -395,6 +562,7 @@ gcode:
M106 P2 S0
M106 P0 S0
M106 P3 S0
DISABLE_BOX_HEATER
M104 S0
M140 S0
@@ -418,6 +586,7 @@ gcode:
[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
gcode:
TOOL_CHANGE_END
{% if (printer.gcode_move.position.z) < 200 %}
G1 Z200 F600
{% endif %}
@@ -436,6 +605,7 @@ gcode:
M104 S0
M140 S0
M141 S0
DISABLE_BOX_HEATER
M220 S100
M221 S100
@@ -461,12 +631,11 @@ gcode:
{% set z = params.Z|default(35)|int %}
{% if printer['pause_resume'].is_paused|int == 0 %}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=efan VALUE={printer["fan_generic cooling_fan"].speed *255}
SET_GCODE_VARIABLE MACRO=RESUME_PRINT VARIABLE=zhop VALUE={z}
SET_GCODE_VARIABLE MACRO=RESUME_PRINT VARIABLE=etemp VALUE={printer['extruder'].target}
SET_GCODE_VARIABLE MACRO=RESUME_PRINT VARIABLE=efan VALUE={printer["fan_generic cooling_fan"].speed *255}
DISABLE_FILAMENT_WIDTH_SENSOR
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0
DISABLE_ALL_SENSOR
SAVE_GCODE_STATE NAME=PAUSE
BASE_PAUSE
G92 E0
@@ -477,7 +646,7 @@ gcode:
{% else %}
G91
G1 Z{5} F900
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0
SET_GCODE_VARIABLE MACRO=RESUME_PRINT VARIABLE=zhop VALUE=0
{% endif %}
SAVE_GCODE_STATE NAME=PAUSEPARK2
G90
@@ -490,67 +659,130 @@ gcode:
M104 S0
SET_IDLE_TIMEOUT TIMEOUT=86400
SET_STEPPER_ENABLE STEPPER=extruder enable=0
{% set slot_sync = printer.save_variables.variables.slot_sync|default("slot-1") %}
{% if printer['box_stepper ' ~ slot_sync] %}
SET_STEPPER_ENABLE STEPPER='box_stepper '{slot_sync} enable=0
{% endif %}
{% endif %}
[gcode_macro RESUME]
rename_existing: BASE_RESUME
[gcode_macro RESUME_PRINT]
variable_zhop: 0
variable_etemp: 0
variable_efan: 0
gcode:
{% set e = params.E|default(5)|int %}
{% set tool_change = params.TOOL_CHANGE|default(0)|int %}
{% if printer['pause_resume'].is_paused|int == 1 %}
SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout}
{% if etemp > 0 %}
M109 S{etemp|int}
{% if printer.save_variables.variables.box_count >= 1 and printer.save_variables.variables.enable_box == 1 and printer.save_variables.variables.is_tool_change == 1%}
SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout}
MOVE_TO_TRASH
{% if etemp > 0 %}
M109 S{etemp|int}
{% endif %}
M83
RESTORE_GCODE_STATE NAME=PAUSEPARK2 MOVE=1 MOVE_SPEED=200
RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=15
BASE_RESUME
{% else %}
SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout}
{% if etemp > 0 %}
M109 S{etemp|int}
{% endif %}
{% if printer.save_variables.variables.box_count >= 1 %}
SAVE_VARIABLE VARIABLE=retry_step VALUE=None
{% endif %}
M83
M106 S0
G1 X95 F12000
G1 Y324 F12000
G92 E0
G1 E5 F50
G92 E0
G1 E50 F200
G92 E0
G1 E-0.8 F200
G4 P300
M106 S{efan}
G1 Y318 F30000
G1 Y322 F3000
G1 Y318 F30000
G1 Y322 F3000
G1 Y318 F30000
G1 Y322 F3000
G1 Y324 F600
G1 X58 F12000
G1 X78 F12000
G1 X58 F12000
G1 X78 F12000
G1 X58 F12000
G1 X78 F12000
G1 X58 F12000
G1 X78 F12000
G1 X58 F12000
G1 X78 F12000
G1 X58 F12000
G1 X78 F12000
G1 X95 F12000
G1 Y316 F9000
G1 Y312 F600
G1 Y260 F12000
RESTORE_GCODE_STATE NAME=PAUSEPARK2 MOVE=1 MOVE_SPEED=200
RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=15
BASE_RESUME
{% if tool_change == 0 %}
ENABLE_ALL_SENSOR
{% endif %}
{% endif %}
M83
M106 S0
G1 X95 F12000
G1 Y324 F12000
G92 E0
G1 E5 F50
G92 E0
G1 E50 F200
G92 E0
G1 E-0.8 F200
G4 P300
{% endif %}
M106 S{efan}
G1 Y318 F30000
G1 Y322 F3000
G1 Y318 F30000
G1 Y322 F3000
G1 Y318 F30000
G1 Y322 F3000
G1 Y324 F600
G1 X58 F12000
G1 X78 F12000
G1 X58 F12000
G1 X78 F12000
G1 X58 F12000
G1 X78 F12000
G1 X58 F12000
G1 X78 F12000
G1 X58 F12000
G1 X78 F12000
G1 X58 F12000
G1 X78 F12000
G1 X95 F12000
G1 Y316 F9000
G1 Y312 F600
G1 Y260 F12000
RESTORE_GCODE_STATE NAME=PAUSEPARK2 MOVE=1 MOVE_SPEED=200
RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=15
BASE_RESUME
ENABLE_FILAMENT_WIDTH_SENSOR
RESET_FILAMENT_WIDTH_SENSOR
query_filament_width
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1
[gcode_macro RESUME]
rename_existing: BASE_RESUME
gcode:
{% if printer['pause_resume'].is_paused|int == 1 %}
{% if printer.save_variables.variables.box_count >= 1 %}
{% if printer.save_variables.variables.enable_box == 1 %}
{% set retry_val = printer.save_variables.variables.retry_step %}
{% if retry_val == None %}
{% if printer['hall_filament_width_sensor'].Diameter > 0.5 %}
RESUME_PRINT
{% else %}
{% if printer.save_variables.variables.is_tool_change == 1 %}
RESUME_PRINT
{% endif %}
{% endif %}
{% else %}
{% if (retry_val.startswith('QDE_004_002')
or retry_val.startswith('QDE_004_003')
or retry_val.startswith('QDE_004_004')
or retry_val.startswith('QDE_004_005')
or retry_val.startswith('QDE_004_006')
or retry_val.startswith('QDE_004_009')) %}
TRY_MOVE_AGAIN
{% else %}
{% if printer['hall_filament_width_sensor'].Diameter > 0.5 %}
RESUME_PRINT
{% else %}
{% if printer.save_variables.variables.is_tool_change == 1 %}
RESUME_PRINT
{% endif %}
{% endif %}
{% endif %}
{% endif %}
{% else %}
{% if printer['hall_filament_width_sensor'].Diameter > 0.5 %}
RESUME_PRINT
{% endif %}
{% endif %}
{% else %}
{% if printer['hall_filament_width_sensor'].Diameter > 0.5 %}
RESUME_PRINT
{% endif %}
{% endif %}
{% endif %}
[gcode_macro BEEP]

View File

@@ -0,0 +1,429 @@
[fila1]
filament = PLA
min_temp = 190
max_temp = 240
box_min_temp = 0
box_max_temp = 0
type = PLA
[fila2]
filament = PLA Matte
min_temp = 190
max_temp = 240
box_min_temp = 0
box_max_temp = 0
type = PLA
[fila3]
filament = PLA Metal
min_temp = 190
max_temp = 240
box_min_temp = 0
box_max_temp = 0
type = PLA
[fila4]
filament = PLA Silk
min_temp = 190
max_temp = 240
box_min_temp = 0
box_max_temp = 0
type = PLA
[fila5]
filament = PLA-CF
min_temp = 210
max_temp = 250
box_min_temp = 0
box_max_temp = 0
type = PLA-CF
[fila6]
filament = PLA-Wood
min_temp = 190
max_temp = 240
box_min_temp = 0
box_max_temp = 45
type = PLA
[fila7]
filament = PLA Basic
min_temp = 190
max_temp = 240
box_min_temp = 0
box_max_temp = 0
type = PLA
[fila8]
filament = PLA Matte Basic
min_temp = 190
max_temp = 230
box_min_temp =
box_max_temp =
type = PLA
[fila9]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila10]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila11]
filament = ABS
min_temp = 240
max_temp = 280
box_min_temp = 0
box_max_temp = 45
type = ABS
[fila12]
filament = ABS-GF
min_temp = 240
max_temp = 280
box_min_temp = 0
box_max_temp = 45
type = ABS-GF
[fila13]
filament = ABS-Metal
min_temp = 240
max_temp = 280
box_min_temp = 0
box_max_temp = 45
type = ABS
[fila14]
filament = ABS-Odorless
min_temp = 240
max_temp = 280
box_min_temp = 0
box_max_temp = 45
type = ABS
[fila15]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila16]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila17]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila18]
filament = ASA
min_temp = 240
max_temp = 280
box_min_temp = 0
box_max_temp = 45
type = ASA
[fila19]
filament = ASA-Aero
min_temp = 240
max_temp = 280
box_min_temp = 0
box_max_temp = 45
type = ASA-Aero
[fila20]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila21]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila22]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila23]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila24]
filament = UltraPA
min_temp = 260
max_temp = 300
box_min_temp = 0
box_max_temp = 55
type = UltraPA
[fila25]
filament = PA12-CF
min_temp = 260
max_temp = 300
box_min_temp = 0
box_max_temp = 65
type = PA12-CF
[fila26]
filament = UltraPA-CF25
min_temp = 300
max_temp = 320
box_min_temp = 0
box_max_temp = 65
type = UltraPA-CF25
[fila27]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila28]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila29]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila30]
filament = PAHT-CF
min_temp = 300
max_temp = 320
box_min_temp = 0
box_max_temp = 65
type = PAHT-CF
[fila31]
filament = PAHT-GF
min_temp = 300
max_temp = 320
box_min_temp = 0
box_max_temp = 65
type = PAHT-GF
[fila32]
filament = Support For PAHT
min_temp = 260
max_temp = 280
box_min_temp = 0
box_max_temp = 65
type = PAHT-S
[fila33]
filament = Support For PET/PA
min_temp = 260
max_temp = 280
box_min_temp = 0
box_max_temp = 65
type = PA-S
[fila34]
filament = PC/ABS-FR
min_temp = 260
max_temp = 280
box_min_temp = 0
box_max_temp = 50
type = PC-ABS-FR
[fila35]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila36]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila37]
filament = PET-CF
min_temp = 280
max_temp = 320
box_min_temp = 0
box_max_temp = 65
type = PET-CF
[fila38]
filament = PET-GF
min_temp = 280
max_temp = 320
box_min_temp = 0
box_max_temp = 50
type = PET-GF
[fila39]
filament = PETG Basic
min_temp = 240
max_temp = 280
box_min_temp = 0
box_max_temp = 45
type = PETG
[fila40]
filament = PETG-Though
min_temp = 240
max_temp = 275
box_min_temp = 0
box_max_temp = 45
type = PETG
[fila41]
filament = PETG
min_temp = 220
max_temp = 270
box_min_temp = 0
box_max_temp = 45
type = PETG
[fila42]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila43]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila44]
filament = PPS-CF
min_temp = 300
max_temp = 350
box_min_temp = 0
box_max_temp = 65
type = PPS-CF
[fila45]
filament = PETG Translucent
min_temp = 240
max_temp = 280
box_min_temp = 0
box_max_temp = 45
type = PETG
[fila46]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila47]
filament = PVA
min_temp = 210
max_temp = 250
box_min_temp = 0
box_max_temp = 50
type = PVA
[fila48]
filament =
min_temp =
max_temp =
box_min_temp =
box_max_temp =
type =
[fila49]
filament = TPU-AERO
min_temp = 200
max_temp = 250
box_min_temp = 0
box_max_temp = 0
type = TPU-AERO
[fila50]
filament = TPU
min_temp = 200
max_temp = 250
box_min_temp = 0
box_max_temp = 0
type = TPU
[colordict]
1 = #FAFAFA
2 = #060606
3 = #D9E3ED
4 = #5CF30F
5 = #63E492
6 = #2850FF
7 = #FE98FE
8 = #DFD628
9 = #228332
10 = #99DEFF
11 = #1714B0
12 = #CEC0FE
13 = #CADE4B
14 = #1353AB
15 = #5EA9FD
16 = #A878FF
17 = #FE717A
18 = #FF362D
19 = #E2DFCD
20 = #898F9B
21 = #6E3812
22 = #CAC59F
23 = #F28636
24 = #B87F2B
[vendor_list]
0 = Generic
1 = QIDI

View File

@@ -7,6 +7,7 @@
# Plugins
[include timelapse.cfg]
[include KAMP_Settings.cfg]
[include box.cfg]
[mcu]
serial: /dev/ttyS2
@@ -66,6 +67,10 @@ pause_on_runout:True
runout_gcode:
RESET_FILAMENT_WIDTH_SENSOR
M118 Filament run out
{% set can_auto_reload = printer.save_variables.variables.auto_reload_detect|default(0) %}
{% if can_auto_reload == 1 %}
AUTO_RELOAD_FILAMENT
{% endif %}
event_delay: 3.0
pause_delay: 0.5

View File

@@ -0,0 +1,115 @@
[Variables]
auto_reload_detect = 1
auto_read_rfid = 0
auto_init_detect = 0
box_count = 0
color_slot0 = 1
color_slot1 = 1
color_slot2 = 1
color_slot3 = 1
color_slot4 = 1
color_slot5 = 1
color_slot6 = 1
color_slot7 = 1
color_slot8 = 1
color_slot9 = 1
color_slot10 = 1
color_slot11 = 1
color_slot12 = 1
color_slot13 = 1
color_slot14 = 1
color_slot15 = 1
color_slot16 = 1
enable_box = 1
filament_slot0 = 1
filament_slot1 = 1
filament_slot2 = 1
filament_slot3 = 1
filament_slot4 = 1
filament_slot5 = 1
filament_slot6 = 1
filament_slot7 = 1
filament_slot8 = 1
filament_slot9 = 1
filament_slot10 = 1
filament_slot11 = 1
filament_slot12 = 1
filament_slot13 = 1
filament_slot14 = 1
filament_slot15 = 1
filament_slot16 = 1
filepath = ''
is_tool_change = 0
last_file = ''
last_load_slot = 'slot-1'
load_retry_num = 0
power_resume_z = 0.0
retry_step = None
slot0 = 0
slot1 = 0
slot2 = 0
slot3 = 0
slot4 = 0
slot5 = 0
slot6 = 0
slot7 = 0
slot8 = 0
slot9 = 0
slot10 = 0
slot11 = 0
slot12 = 0
slot13 = 0
slot14 = 0
slot15 = 0
slot_sync = 'slot-1'
value_t0 = 'slot0'
value_t1 = 'slot1'
value_t2 = 'slot2'
value_t3 = 'slot3'
value_t4 = 'slot4'
value_t5 = 'slot5'
value_t6 = 'slot6'
value_t7 = 'slot7'
value_t8 = 'slot8'
value_t9 = 'slot9'
value_t10 = 'slot10'
value_t11 = 'slot11'
value_t12 = 'slot12'
value_t13 = 'slot13'
value_t14 = 'slot14'
value_t15 = 'slot15'
vendor_slot0 = 1
vendor_slot1 = 1
vendor_slot2 = 1
vendor_slot3 = 1
vendor_slot4 = 1
vendor_slot5 = 1
vendor_slot6 = 1
vendor_slot7 = 1
vendor_slot8 = 1
vendor_slot9 = 1
vendor_slot10 = 1
vendor_slot11 = 1
vendor_slot12 = 1
vendor_slot13 = 1
vendor_slot14 = 1
vendor_slot15 = 1
vendor_slot16 = 1
was_interrupted = False
z_offset = 0
runout_0 = 0
runout_1 = 0
runout_2 = 0
runout_3 = 0
runout_4 = 0
runout_5 = 0
runout_6 = 0
runout_7 = 0
runout_8 = 0
runout_9 = 0
runout_10 = 0
runout_11 = 0
runout_12 = 0
runout_13 = 0
runout_14 = 0
runout_15 = 0

View File

@@ -0,0 +1,116 @@
[box_connected]
status1 = 0
status2 = 0
status3 = 0
status4 = 0
[spool_0]
type =
color =
supplier =
min_temp =
max_temp =
[spool_1]
type1 =
color1 =
supplier1 =
min_temp1 =
max_temp1 =
type2 =
color2 =
supplier2 =
min_temp2 =
max_temp2 =
type3 =
color3 =
supplier3 =
min_temp3 =
max_temp3 =
type4 =
color4 =
supplier4 =
min_temp4 =
max_temp4 =
[spool_2]
type1 =
color1 =
supplier1 =
min_temp1 =
max_temp1 =
type2 =
color2 =
supplier2 =
min_temp2 =
max_temp2 =
type3 =
color3 =
supplier3 =
min_temp3 =
max_temp3 =
type4 =
color4 =
supplier4 =
min_temp4 =
max_temp4 =
[spool_3]
type1 =
color1 =
supplier1 =
min_temp1 =
max_temp1 =
type2 =
color2 =
supplier2 =
min_temp2 =
max_temp2 =
type3 =
color3 =
supplier3 =
min_temp3 =
max_temp3 =
type4 =
color4 =
supplier4 =
min_temp4 =
max_temp4 =
[spool_4]
type1 =
color1 =
supplier1 =
min_temp1 =
max_temp1 =
type2 =
color2 =
supplier2 =
min_temp2 =
max_temp2 =
type3 =
color3 =
supplier3 =
min_temp3 =
max_temp3 =
type4 =
color4 =
supplier4 =
min_temp4 =
max_temp4 =