更新PLUS4版本

This commit is contained in:
whb0514
2024-09-02 15:08:35 +08:00
parent 9bfe742131
commit 2e89398424
7 changed files with 1415 additions and 0 deletions

8
.gitmodules vendored Normal file
View File

@@ -0,0 +1,8 @@
[submodule "klipper"]
path = klipper
url = https://github.com/QIDITECH/klipper.git
branch = PLUS4
[submodule "moonraker"]
path = moonraker
url = https://github.com/QIDITECH/moonraker.git
branch = PLUS4

BIN
UI/xindi_800_480.HMI Normal file

Binary file not shown.

BIN
UI/xindi_800_480.tft Normal file

Binary file not shown.

938
config/gcode_macro.cfg Normal file
View File

@@ -0,0 +1,938 @@
# QIDI Plus4 V1.0.0
[gcode_macro _CG28]
gcode:
{% if "xyz" not in printer.toolhead.homed_axes %}
G28
{% endif %}
[gcode_macro zoffset]
gcode:
SET_GCODE_OFFSET Z={printer.probe.last_z_result} MOVE=1
# Development test
[gcode_macro test_zoffset]
gcode:
G28
get_zoffset
G1 X{150 - printer.probe["x_offset"]} Y{150 - printer.probe["y_offset"]} F9000
G1 Z10 F600
probe
M400
G4 P5000
G1 Z10 F600
[gcode_macro move_subzoffset]
gcode:
G1 Z{printer.probe.last_z_result} F600
[gcode_macro get_zoffset]
gcode:
TOGGLE_CHAMBER_FAN
G1 Z10 F600
Z_VIBRATE
QIDI_PROBE_PIN_1
m204 S50
G4 P500
probe probe_speed=5 lift_speed=5 samples=5 sample_retract_dist=5
move_subzoffset
M114
{% set p=(-0.11 + printer.gcode_move.homing_origin.z)|float %}
SET_KINEMATIC_POSITION Z={p}
G1 Z30 F600
QIDI_PROBE_PIN_2
m204 S10000
TOGGLE_CHAMBER_FAN
[gcode_macro save_zoffset]
gcode:
{% if printer.gcode_move.homing_origin.z < 0.5 %}
SAVE_VARIABLE VARIABLE=z_offset VALUE={printer.gcode_move.homing_origin.z}
{% endif %}
[gcode_macro set_zoffset]
gcode:
{% set z = printer.save_variables.variables.z_offset %}
SET_GCODE_OFFSET Z={z} MOVE=0
# Specialized for power lose recovery
[gcode_macro CLEAR_NOZZLE_PLR]
gcode:
{% set hotendtemp = params.HOTEND|default(250)|int %}
{% if (printer.gcode_move.position.z ) < 35 %}
G1 Z35 F900
{% else %}
G91
G1 Z{5} F900
G90
{% endif %}
G1 X56 F12000
G1 Y310 F12000
G1 Y324 F600
G1 X95 F600
M400
M106 S0
M109 S{hotendtemp}
G92 E0
G1 E5 F50
G92 E0
G1 E80 F200
G92 E0
G1 E-2 F200
G4 P300
M106 S255
G1 Y316 F30000
G1 Y320 F3000
G1 Y316 F30000
G1 Y320 F3000
G1 Y316 F30000
G1 Y320 F3000
G1 Y316 F12000
G1 Y312 F600
[gcode_macro CLEAR_NOZZLE]
gcode:
{% set hotendtemp = params.HOTEND|default(250)|int %}
{% if (printer.gcode_move.position.z ) < 35 %}
G1 Z35 F900
{% else %}
G91
G1 Z{5} F900
G90
{% endif %}
G1 X56 F12000
G1 Y310 F12000
G1 Y324 F600
G1 X95 F600
M400
M109 S{hotendtemp}
G92 E0
G1 E5 F50
G92 E0
G1 E80 F200
G92 E0
G1 E-2 F200
M106 S255
G4 P5000
M104 S140
G1 Y318 F9000
G1 Y322 F600
G1 Y318 F9000
G1 Y322 F600
G1 Y308 F30000
G1 Y324 F600
G1 X124 E-1 F1000
TEMPERATURE_WAIT SENSOR=extruder MAXIMUM={170}
G1 X133 F200
G1 Y321 F200
G2 I0.5 J0.5 F600
G2 I0.5 J0.5 F600
G2 I0.5 J0.5 F600
G1 Y319 F150
G1 X132
G1 Y324
G1 X131
G1 Y319
G1 X130
G1 Y324
G1 X129
G1 Y319
G1 X113 F200
G1 Y320
G1 X125
G1 X113
G1 X125
G2 I0.5 J0.5 F200
G2 I0.5 J0.5 F200
G2 I0.5 J0.5 F200
G1 Y300 F600
G1 X95 F12000
G1 Y314 F9000
G1 Y324 F600
G1 X58 F12000
G1 X78 F12000
G1 Y324
G1 X58 F12000
G1 X78 F12000
G1 Y323.5
G1 X58 F12000
G1 X78 F12000
G1 Y323
G1 X58 F12000
G1 X78 F12000
G1 Y322.5
G1 X58 F12000
G1 X78 F12000
G1 Y322
G1 X58 F12000
G1 X75 F12000
G1 Y321.5
G2 I0.8 J0.8 F600
G2 I0.8 J0.8 F600
G2 I0.8 J0.8 F600
G1 Y324 F600
M106 S0
G1 X95 F12000
G1 Y316 F9000
G1 Y312 F600
M400
M118 Nozzle cleared
G1 Y10 F12000
G1 X10 F12000
TEMPERATURE_WAIT SENSOR=extruder MAXIMUM={150}
M107
M106 P2 S0
M400
M118 Nozzle cooled
# Excute when start printing, prior to gcode file
[gcode_macro PRINT_START]
gcode:
AUTOTUNE_SHAPERS
{% set bedtemp = params.BED|int %}
{% set hotendtemp = params.HOTEND|int %}
{% set chambertemp = params.CHAMBER|default(0)|int %}
set_zoffset
M104 S0
M141 S{chambertemp}
M106 P2 S0
M106 P3 S0
M106 S255
M140 S{bedtemp}
# M141 S{chambertemp}
G28
M106 S0
CLEAR_NOZZLE HOTEND={hotendtemp}
M191 S{chambertemp}
M190 S{bedtemp}
M104 S140
G29
G0 Z50 F600
G0 X5 Y5 F6000
{% if chambertemp == 0 %}
M106 P3 S255
{% endif %}
M109 S{hotendtemp}
M141 S{chambertemp}
M204 S10000
SET_PRINT_STATS_INFO CURRENT_LAYER=1
ENABLE_ALL_SENSOR
save_last_file
[gcode_macro ENABLE_ALL_SENSOR]
gcode:
ENABLE_FILAMENT_WIDTH_SENSOR
RESET_FILAMENT_WIDTH_SENSOR
query_filament_width
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1
[gcode_macro DISABLE_ALL_SENSOR]
gcode:
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0
DISABLE_FILAMENT_WIDTH_SENSOR
[gcode_macro AUTOTUNE_SHAPERS]
variable_autotune_shapers: 'ei'
gcode:
[gcode_macro M84]
rename_existing:M84.1
gcode:
M84.1
SET_STEPPER_ENABLE STEPPER=stepper_x enable=0
SET_STEPPER_ENABLE STEPPER=stepper_y enable=0
SET_STEPPER_ENABLE STEPPER=stepper_z enable=1
SET_STEPPER_ENABLE STEPPER=stepper_z1 enable=1
SET_STEPPER_ENABLE STEPPER=extruder enable=0
# Used for power lose recovery detection
[gcode_macro DETECT_INTERRUPTION]
gcode:
{% set was_interrupted = printer.save_variables.variables.was_interrupted %}
{% if was_interrupted %}
M118 Detected unexpected interruption during the last print. Do you want to resume printing? (Do not move the extruder before resuming.)
M118 Yes: RESUME_INTERRUPTED
M118 No: CLEAR_LAST_FILE
{% endif %}
# Excute when klipper init
[delayed_gcode PRINTER_INIT]
initial_duration:0.2
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
[homing_override]
axes:xyz
gcode:
{% set HOME_CUR = 1 %}
{% set driver_config = printer.configfile.settings['tmc2240 stepper_x'] %}
{% set RUN_CUR = driver_config.run_current %}
{% set HOLD_CUR = driver_config.hold_current %}
m204 S10000
M220 S100
{% if params.X is defined %}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR * 0.7}
G28 X
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CUR}
BEEP I=1 DUR=100
G1 X10 F1200
{% endif %}
{% if params.Y is defined %}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR * 0.9}
G28 Y
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR}
BEEP I=1 DUR=100
G1 Y10 F1200
{% endif %}
{% if params.Z is defined %}
G28 x
G28 Y
G28 X
G1 X150 Y150 F7800
SET_KINEMATIC_POSITION Z={printer.toolhead.axis_maximum.z-5}
QIDI_PROBE_PIN_2
probe samples=2
SET_KINEMATIC_POSITION Z=1.9
G1 Z10 F600
Z_VIBRATE
QIDI_PROBE_PIN_1
probe probe_speed=10
SET_KINEMATIC_POSITION Z=-0.1
G1 Z30 F480
{% endif %}
{% if params.X is undefined %}
{% if params.Y is undefined %}
{% if params.Z is undefined %}
SET_KINEMATIC_POSITION X=0
SET_KINEMATIC_POSITION Y=0
SET_KINEMATIC_POSITION Z={printer.toolhead.axis_maximum.z-10}
G91
G1 Z7 F600
G1 X5 F2400
G1 Y5 F2400
G4 P2000
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
G1 X45 F1200
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR * 0.9}
G28 Y
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CUR}
BEEP I=1 DUR=100
G1 Y10 F1200
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
G1 X10 F1200
SET_KINEMATIC_POSITION Z={printer.toolhead.axis_maximum.z-10}
G90
G1 X150 Y150 F7800
G91
QIDI_PROBE_PIN_2
G28 Z
G1 Z30 F600
{% endif %}
{% endif %}
{% endif %}
SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CUR}
SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CUR}
M204 S10000
G90
QIDI_PROBE_PIN_2
[gcode_macro SHAPER_CALIBRATE]
rename_existing: RESHAPER_CALIBRATE
gcode:
RESHAPER_CALIBRATE FREQ_START=20 FREQ_END=150
# Excute when print end, after gcode file
[gcode_macro PRINT_END]
gcode:
{% if printer.gcode_move.homing_origin.z < 0.5 %}
SAVE_VARIABLE VARIABLE=z_offset VALUE={printer.gcode_move.homing_origin.z}
{% endif %}
SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout}
CLEAR_PAUSE
M400
G4 P5000
M106 P2 S0
M106 P0 S0
M106 P3 S0
M104 S0
M140 S0
M141 S0
M220 S100
M221 S100
SET_STEPPER_ENABLE STEPPER=stepper_x enable=0
SET_STEPPER_ENABLE STEPPER=stepper_y enable=0
SET_STEPPER_ENABLE STEPPER=stepper_z enable=1
SET_STEPPER_ENABLE STEPPER=stepper_z1 enable=1
SET_STEPPER_ENABLE STEPPER=extruder enable=0
DISABLE_ALL_SENSOR
BED_MESH_CLEAR
G31
CLEAR_LAST_FILE
M84
BEEP I=2 DUR=500
[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
gcode:
{% if (printer.gcode_move.position.z) < 200 %}
G1 Z200 F600
{% endif %}
G1 X0 Y0 F7800
save_zoffset
SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout}
CLEAR_PAUSE
M106 P2 S0
M106 P0 S0
M106 P3 S0
M104 S0
M140 S0
M141 S0
M220 S100
M221 S100
SET_STEPPER_ENABLE STEPPER=stepper_x enable=0
SET_STEPPER_ENABLE STEPPER=stepper_y enable=0
SET_STEPPER_ENABLE STEPPER=stepper_z enable=1
SET_STEPPER_ENABLE STEPPER=stepper_z1 enable=1
SET_STEPPER_ENABLE STEPPER=extruder enable=0
DISABLE_ALL_SENSOR
BED_MESH_CLEAR
G31
BEEP I=2 DUR=500
M84
SDCARD_RESET_FILE
BASE_CANCEL_PRINT
CLEAR_LAST_FILE
[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
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}
DISABLE_FILAMENT_WIDTH_SENSOR
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0
SAVE_GCODE_STATE NAME=PAUSE
BASE_PAUSE
G92 E0
G1 E-5 F1800
{% if (printer.gcode_move.position.z ) < z %}
G91
G1 Z{z} F900
{% else %}
G91
G1 Z{5} F900
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0
{% endif %}
SAVE_GCODE_STATE NAME=PAUSEPARK2
G90
G1 X95 F12000
G1 Y312 F12000
G1 Y316 F600
G1 Y320 F9000
G1 Y324 F600
SAVE_GCODE_STATE NAME=PAUSEPARK
M104 S0
SET_IDLE_TIMEOUT TIMEOUT=86400
SET_STEPPER_ENABLE STEPPER=extruder enable=0
{% endif %}
[gcode_macro RESUME]
rename_existing: BASE_RESUME
variable_zhop: 0
variable_etemp: 0
variable_efan: 0
gcode:
{% set e = params.E|default(5)|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}
{% 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
ENABLE_FILAMENT_WIDTH_SENSOR
RESET_FILAMENT_WIDTH_SENSOR
query_filament_width
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1
{% endif %}
[gcode_macro BEEP]
gcode:
{% set i = params.I|default(1)|int %}
{% set dur = params.DUR|default(100)|int %}
{% if printer["output_pin sound"].value|int == 1 %}
{% for iteration in range(i|int) %}
SET_PIN PIN=beeper VALUE=1
G4 P{dur}
SET_PIN PIN=beeper VALUE=0
G4 P{dur}
{% endfor %}
{% endif %}
[gcode_macro M141]
gcode:
{% if printer["heater_generic chamber"] is defined %}
{% set s = params.S|float %}
SET_HEATER_TEMPERATURE HEATER=chamber TARGET={([s, 65]|min)}
{% endif %}
[gcode_macro M191]
gcode:
{% if printer["heater_generic chamber"] is defined %}
{% set s = params.S|float %}
M141 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %}
{% if s != 0 %}
TEMPERATURE_WAIT SENSOR="heater_generic chamber" MINIMUM={([s, 65]|min)-2}
{% endif %}
{% endif %}
[gcode_macro M106]
gcode:
{% set p = params.P|default(0)|int %}
{% if p == 2 %}
{% if params.S is defined %}
SET_FAN_SPEED FAN=auxiliary_cooling_fan SPEED={(params.S|float / 255.0)}
{% else %}
SET_FAN_SPEED FAN=auxiliary_cooling_fan SPEED=1
{% endif %}
{% endif %}
{% if p == 0 %}
{% if params.S is defined %}
SET_FAN_SPEED FAN=cooling_fan SPEED={(params.S|float / 255.0)}
{% else %}
SET_FAN_SPEED FAN=cooling_fan SPEED=1
{% endif %}
{% endif %}
{% if p == 3 %}
{% if params.S is defined %}
SET_FAN_SPEED FAN=chamber_circulation_fan SPEED={(params.S|float / 255.0)}
{% else %}
SET_FAN_SPEED FAN=chamber_circulation_fan SPEED=1
{% endif %}
{% endif %}
[gcode_macro M107]
gcode:
SET_FAN_SPEED FAN=cooling_fan SPEED=0
[gcode_macro M303]
gcode:
{% if params.E is defined %}
{% if params.S is defined %}
{% if (params.E|int)==-1 %}
PID_CALIBRATE HEATER=heater_bed TARGET={params.S|int}
{% endif %}
{% if (params.E|int)==0 %}
PID_CALIBRATE HEATER=extruder TARGET={params.S|int}
{% endif %}
{% endif %}
{% endif %}
[gcode_macro M8029]
gcode:
{% if params.D is defined %}
{% if (params.D|int)==1 %}
ENABLE_FILAMENT_WIDTH_SENSOR
{% endif %}
{% if (params.D|int)==0 %}
DISABLE_FILAMENT_WIDTH_SENSOR
{% endif %}
{% endif %}
[gcode_macro M900]
gcode:
{% if params.K is defined %}
SET_PRESSURE_ADVANCE ADVANCE={params.K}
{% endif %}
{% if params.T is defined %}
SET_PRESSURE_ADVANCE SMOOTH_TIME={params.T}
{% endif %}
[gcode_macro M290]
gcode:
SET_GCODE_OFFSET Z_ADJUST={params.Z}
[gcode_macro M901]
gcode:
G28
SHAPER_CALIBRATE
M118 Input shaping complete
SAVE_CONFIG
[gcode_macro M0]
gcode:
PAUSE
[gcode_macro M25]
rename_existing: M9925
gcode:
PAUSE
[gcode_macro RESPOND_INFO]
variable_S:0
gcode:
{% if params.S is defined %}
{% set s = params.S|int %}
{% if s == 0 %}
{ action_respond_info("Nozzle cooled") }
{% endif %}
{% endif %}
[gcode_macro M4027]
gcode:
G1 X{150 - printer.probe["x_offset"]} Y{150 - printer.probe["y_offset"]} F9000
probe
SAVE_Z_OFFSET_TO_BED_MESH
G1 z10 F600
SET_GCODE_OFFSET Z=0 MOVE=1
BED_MESH_CALIBRATE
G0 Z50 F600
G0 X0 Y0 F9000
M400
M118 Bed mesh calibrate complete
SAVE_CONFIG
[gcode_macro M4028]
gcode:
G28
get_zoffset
M400
M118 Position init complete
[gcode_macro M4029]
gcode:
M104 S140
SAVE_VARIABLE VARIABLE=z_offset VALUE=0
G28
M400
M118 Position init complete
CLEAR_NOZZLE HOTEND=280
G28
get_zoffset
[gcode_macro M4030]
gcode:
BED_MESH_CLEAR
SET_GCODE_OFFSET Z=0 MOVE=0
G28
get_zoffset
G1 X150 Y150 F9000
G1 Z0 F600
[gcode_macro M4031]
gcode:
SET_KINEMATIC_POSITION Z=20
G1 Z30 F300
SET_TMC_CURRENT STEPPER=stepper_z CURRENT={printer.configfile.settings['tmc2209 stepper_z'].run_current * 0.7 }
SET_TMC_CURRENT STEPPER=stepper_z1 CURRENT={printer.configfile.settings['tmc2209 stepper_z1'].run_current * 0.7 }
REVERSE_HOMING
SET_TMC_CURRENT STEPPER=stepper_z CURRENT={printer.configfile.settings['tmc2209 stepper_z'].run_current}
SET_TMC_CURRENT STEPPER=stepper_z1 CURRENT={printer.configfile.settings['tmc2209 stepper_z1'].run_current}
G91
G1 Z-30 F600
G90
SET_TMC_CURRENT STEPPER=stepper_z CURRENT={printer.configfile.settings['tmc2209 stepper_z'].run_current * 0.7 }
SET_TMC_CURRENT STEPPER=stepper_z1 CURRENT={printer.configfile.settings['tmc2209 stepper_z1'].run_current * 0.7 }
REVERSE_HOMING
SET_TMC_CURRENT STEPPER=stepper_z CURRENT={printer.configfile.settings['tmc2209 stepper_z'].run_current}
SET_TMC_CURRENT STEPPER=stepper_z1 CURRENT={printer.configfile.settings['tmc2209 stepper_z1'].run_current}
G91
G1 Z-30 F600
G90
[gcode_macro M603]
description: Unload filament
gcode:
{% set hotendtemp = params.S|default(250)|int %}
{% set accel = printer.toolhead.max_accel|int %}
_CG28
M204 S10000
G1 Y150 F9000
G1 X305 F9000
G1 Y20 F9000
G1 Y5 F3000
G4 P500
G1 Y20 F9000
G1 Y5 F3000
G4 P500
G1 Y20 F9000
G1 X56 F12000
G1 Y310 F12000
G1 Y324 F600
G1 X95 F600
M106 S0
M109 S{hotendtemp}
M118 Heat up complete
G92 E0
G1 E5 F50
G1 E50 F200
G92 E0
G1 E-0.8 F200
G4 P300
M106 S255
M104 S{hotendtemp-100}
G4 P5000
G1 Y318 F9000
G1 Y322 F600
G1 Y318 F9000
G1 Y322 F600
G1 Y308 F30000
G1 Y324 F600
M106 S0
M400
M204 S{accel}
M118 Unload finish
[gcode_macro M604]
description: Load filament
gcode:
{% set hotendtemp = params.S|default(250)|int %}
{% set current_state = params.F|default(1)|int %}
{% set accel = printer.toolhead.max_accel|int %}
M204 S10000
M104 S{hotendtemp}
_CG28
{% if current_state == 1 %}
{% if (printer.gcode_move.position.y) > 300 %}
G91
G1 Y-20 F9000
G90
{% endif %}
G1 X95 F12000
G1 Y312 F12000
G1 Y316 F600
G1 Y320 F9000
G1 Y324 F600
{% endif %}
M109 S{hotendtemp}
M118 Heat up complete
G1 X95 F600
G1 Y324 F600
G92 E0
G1 E5 F50
G92 E0
G1 E120 F300
G92 E0
G1 E-0.8 F200
G4 P300
M106 S255
M104 S{hotendtemp-100}
G4 P5000
G1 Y318 F9000
G1 Y322 F600
G1 Y318 F9000
G1 Y322 F600
G1 Y308 F30000
G1 Y324 F600
M106 S0
M400
M204 S{accel}
M118 Load finish
[output_pin sound]
pin:PA1
value:0
[gcode_macro beep_on]
gcode:
SET_PIN PIN=sound VALUE=1
[gcode_macro beep_off]
gcode:
SET_PIN PIN=sound VALUE=0
[gcode_arcs]
resolution: 1.0
[gcode_macro M109]
rename_existing: M99109
gcode:
{% set s = params.S|float %}
M104 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %}
{% if s != 0 %}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={s} MAXIMUM={s+1}
{% endif %}
[exclude_object]
[gcode_macro G31]
gcode:
SET_GCODE_VARIABLE MACRO=G29 VARIABLE=k VALUE=1
[gcode_macro G32]
gcode:
SET_GCODE_VARIABLE MACRO=G29 VARIABLE=k VALUE=0
[gcode_macro G29]
variable_k:1
gcode:
{% set temp = printer["heater_generic chamber"].target %}
M141 S0
BED_MESH_CLEAR
{% if k|int==1 %}
G28
get_zoffset
M141 S{temp}
G1 X{150 - printer.probe["x_offset"]} Y{150 - printer.probe["y_offset"]} F9000
G1 Z10 F600
probe
SAVE_Z_OFFSET_TO_BED_MESH
G1 z10 F600
BED_MESH_CALIBRATE PROFILE=kamp
SAVE_VARIABLE VARIABLE=profile_name VALUE='"kamp"'
G4 P5000
SAVE_CONFIG_QD
{% else %}
g28
get_zoffset
BED_MESH_PROFILE LOAD=default
SAVE_VARIABLE VARIABLE=profile_name VALUE='"default"'
{% endif %}
[gcode_macro M204]
rename_existing: M99204
gcode:
{% if params.S is defined %}
{% set s = params.S|float %}
{% endif %}
{% if params.P is defined %}
{% if params.T is defined %}
{% set s = [params.P|float ,params.T|float] | min %}
{% endif %}
{% endif %}
SET_VELOCITY_LIMIT ACCEL={s}
SET_VELOCITY_LIMIT ACCEL_TO_DECEL={s/2}
[gcode_macro Z_VIBRATE]
gcode:
m204 S400
G90
G0 Z4
G91
#G4 P3000
SET_PIN PIN=ctlyd VALUE=1
{% for z in range(1,50) %}
G1 Z1 F1200
# G4 P50
G1 Z-1 F1200
# G4 P50
{% endfor %}
M204 S100
SET_PIN PIN=ctlyd VALUE=0
G4 P1000
G1 Z4
G90

467
config/printer.cfg Normal file
View File

@@ -0,0 +1,467 @@
# QIDI Plus4 V1.0.0
[include plr.cfg]
[include gcode_macro.cfg]
[include time_update.cfg]
# Plugins
[include timelapse.cfg]
[include KAMP_Settings.cfg]
[mcu]
serial: /dev/ttyS2
restart_method: command
baud:500000
[mcu U_1]
serial: /dev/ttyS0
restart_method: command
baud:500000
[temperature_sensor GD32]
sensor_type: temperature_mcu
sensor_mcu: mcu
[respond]
default_type: echo
[save_variables]
filename =/home/mks/printer_data/config/saved_variables.cfg
[resonance_tester]
accel_per_hz: 150
max_smoothing:0.5
[duplicate_pin_override]
pins:
[bed_screws]
screw1:25,21
screw1_name: Front left
screw2: 285,21
screw2_name: Front right
screw3: 285,281
screw3_name: Last right
screw4: 25,281
#[screws_tilt_adjust]
#screw_thread: CW-M4
[hall_filament_width_sensor]
adc1: PA2
adc2: PA3
cal_dia1: 1.50
cal_dia2: 2.0
raw_dia1: 14197
raw_dia2: 15058
default_nominal_filament_diameter: 1.75
max_difference: 0
measurement_delay: 50
enable: false
measurement_interval: 10
logging: False
min_diameter: 0.3
use_current_dia_while_delay: False
pause_on_runout:True
runout_gcode:
RESET_FILAMENT_WIDTH_SENSOR
M118 Filament run out
event_delay: 3.0
pause_delay: 0.5
[extruder]
step_pin:PB9
dir_pin:PB8
enable_pin:!PC15
rotation_distance: 53.7 #22.6789511 Bondtech 5mm Drive Gears
gear_ratio: 1517:170
microsteps: 16
full_steps_per_rotation: 200 #200 for 1.8 degree, 400 for 0.9 degree
nozzle_diameter: 0.400
filament_diameter: 1.75
min_temp: 0
max_temp: 360
min_extrude_temp: 175
smooth_time: 0.000001
heater_pin:PB3
sensor_type:MAX6675
sensor_pin:PB12
spi_speed: 100000
spi_software_sclk_pin:PB13
spi_software_mosi_pin:PA11
spi_software_miso_pin:PB14
max_power: 1
control : pid
pid_Kp=33.555
pid_Ki=4.76
pid_Kd=59.141
pressure_advance: 0.032
pressure_advance_smooth_time: 0.03
max_extrude_cross_section:500
instantaneous_corner_velocity: 10.000
max_extrude_only_distance: 1000.0
max_extrude_only_velocity:5000
max_extrude_only_accel:5000
step_pulse_duration:0.000002
[tmc2209 extruder]
uart_pin:PC13
interpolate: True
run_current: 0.714
stealthchop_threshold: 0
[adxl345]
cs_pin:PA4
spi_software_sclk_pin:PA5
spi_software_mosi_pin:PA7
spi_software_miso_pin:PA6
axes_map: -x, z, -y
[printer]
kinematics:corexy
max_velocity: 600
max_accel: 20000
max_accel_to_decel: 10000
max_z_velocity: 20
max_z_accel: 500
square_corner_velocity: 8
[stepper_x]
step_pin:U_1:PB4
dir_pin:!U_1:PB3
enable_pin:!U_1:PB5
microsteps:32
rotation_distance: 38.82
full_steps_per_rotation:200 # set to 400 for 0.9 degree stepper
endstop_pin:tmc2240_stepper_x:virtual_endstop
position_min: -1.5
position_endstop: -1.5
position_max:307
homing_speed:50
homing_retract_dist:0
homing_positive_dir:False
step_pulse_duration:0.0000001
[stepper_y]
step_pin:U_1:PC14
dir_pin:!U_1:PC13
enable_pin:!U_1:PC15
microsteps: 32
rotation_distance: 38.82
full_steps_per_rotation:200 # set to 400 for 0.9 degree stepper
endstop_pin:tmc2240_stepper_y:virtual_endstop
position_min: -2
position_endstop: -2
position_max:325
homing_speed:50
homing_retract_dist:0
homing_positive_dir:False
step_pulse_duration:0.0000001
[stepper_z]
step_pin:U_1:PB1
dir_pin:U_1:PB6
enable_pin:!U_1:PB0
microsteps: 128
rotation_distance: 4
full_steps_per_rotation: 200
endstop_pin:probe:z_virtual_endstop # U_1:PC3 for Z-max
endstop_pin_reverse:tmc2209_stepper_z:virtual_endstop
position_endstop:1
position_endstop_reverse:285
position_max:285
position_min: -4
homing_speed: 10
homing_speed_reverse: 10
second_homing_speed: 5
homing_retract_dist: 5.0
homing_positive_dir:false
homing_positive_dir_reverse:true
#step_pulse_duration:0.0000001
[stepper_z1]
step_pin:U_1:PC10
dir_pin:U_1:PA15
enable_pin:!U_1:PC11
microsteps: 128
rotation_distance: 4
full_steps_per_rotation: 200
endstop_pin_reverse:tmc2209_stepper_z1:virtual_endstop
#step_pulse_duration:0.0000001
[z_tilt]
z_positions:
-17.5,138.5
335.7,138.5
points:
0,138.5
255,138.5
speed: 150
horizontal_move_z: 5
retries: 2
retry_tolerance: 0.05
[tmc2240 stepper_y]
cs_pin:U_1:PB9
spi_software_sclk_pin:U_1:PA5
spi_software_mosi_pin:U_1:PA7
spi_software_miso_pin:U_1:PA6
spi_speed:200000
run_current: 1.07
#hold_current: 0.5
interpolate:true
stealthchop_threshold:0
diag0_pin:!U_1:PC0
driver_SGT:1
[tmc2240 stepper_x]
cs_pin:U_1:PD2
spi_software_sclk_pin:U_1:PA5
spi_software_mosi_pin:U_1:PA7
spi_software_miso_pin:U_1:PA6
spi_speed:200000
run_current: 1.07
# hold_current: 0.5
interpolate:true
stealthchop_threshold:0
diag0_pin:!U_1:PB8
driver_SGT:1
[tmc2209 stepper_z]
uart_pin:U_1: PB7
run_current: 1.07
# hold_current: 0.17
interpolate: True
stealthchop_threshold: 9999999999
diag_pin:^U_1:PA13
driver_SGTHRS:100
[tmc2209 stepper_z1]
uart_pin:U_1: PC5
run_current: 1.07
# hold_current: 0.17
interpolate: True
stealthchop_threshold: 9999999999
diag_pin:^U_1:PC12
driver_SGTHRS:100
[heater_bed]
heater_pin: U_1:PB10
sensor_type:NTC 100K MGB18-104F39050L32
sensor_pin:U_1: PA0
max_power: 1.0
control = pid
pid_Kp=63.418
pid_Ki=1.342
pid_Kd=749.125
pwm_cycle_time:0.001
min_temp: -60
max_temp: 125
[heater_generic chamber]
heater_pin:U_1:PC8
max_power:0.7
sensor_type:NTC 100K MGB18-104F39050L32
sensor_pin:U_1:PA1
control = pid
pid_Kp=63.418
pid_Ki=1.342
pid_Kd=749.125
min_temp:-100
max_temp:70
[verify_heater chamber]
max_error: 300
check_gain_time:480
hysteresis: 5
heating_gain: 1
[temperature_sensor Chamber_Thermal_Protection_Sensor]
sensor_type:NTC 100K MGB18-104F39050L32
sensor_pin:U_1:PC2
min_temp:-100
max_temp:130
[verify_heater extruder]
max_error: 120
check_gain_time:20
hysteresis: 5
heating_gain: 1
[verify_heater heater_bed]
max_error: 200
check_gain_time:60
hysteresis: 10
heating_gain: 1
[fan_generic auxiliary_cooling_fan]
pin: U_1:PA8
shutdown_speed: 0.0
cycle_time: 0.0100
hardware_pwm: false
kick_start_time: 0.100
off_below: 0.0
[fan_generic chamber_circulation_fan]
pin: U_1:PC9
shutdown_speed: 0.0
cycle_time: 0.0100
hardware_pwm: false
kick_start_time: 0.100
off_below: 0.0
[chamber_fan chamber_fan]
pin:U_1:PA4
max_power: 1.0
shutdown_speed: 0
kick_start_time: 0.5
heater:chamber
fan_speed: 1.0
off_below: 0
idle_timeout:60
idle_speed:1.0
[heater_fan hotend_fan]
pin:PB5
max_power: 1.0
shutdown_speed:1.0
kick_start_time: 0.5
heater: extruder
heater_temp: 50.0
fan_speed: 1.0
off_below: 0
[heater_fan hotend_fan2]
pin:PB4
max_power: 1.0
shutdown_speed:1.0
kick_start_time: 0.5
heater: extruder
heater_temp: 50.0
fan_speed: 1.0
off_below: 0
[heater_fan hotend_fan3]
pin:PB10
max_power: 1.0
shutdown_speed:1.0
kick_start_time: 0.5
heater: extruder
heater_temp: 50.0
fan_speed: 1.0
off_below: 0
[fan_generic cooling_fan]
pin:PA8
max_power: 1.0
shutdown_speed:0
cycle_time: 0.010
hardware_pwm: False
kick_start_time: 0.100
off_below: 0.0
tachometer_pin:PA9
tachometer_ppr: 2
tachometer_poll_interval: 0.0015
[controller_fan board_fan]
pin:U_1:PC4
max_power:1.0
shutdown_speed:1.0
cycle_time:0.01
fan_speed: 1.0
stepper:stepper_x,stepper_y
[output_pin caselight]
pin: U_1:PC7
pwm: false
shutdown_value:1
value:1
[output_pin beeper]
pin:U_1: PA2
pwm: false
shutdown_value:0
value:0
[output_pin ctlyd]
pin:U_1: PA14
pwm: false
shutdown_value:0
value:0
[smart_effector]
pin:U_1:PC1
recovery_time:0
x_offset: 25
y_offset: 1.3
z_offset: 0.000001
speed:5
lift_speed:5
probe_accel:50
samples: 2
samples_result: submaxmin
sample_retract_dist: 5
samples_tolerance: 0.05
samples_tolerance_retries:5
[qdprobe]
pin:!PA10
z_offset:0.000001
[bed_mesh]
speed:150
horizontal_move_z:5
mesh_min:25,10
mesh_max:295,295
probe_count:9,9
algorithm:bicubic
bicubic_tension:0.4
mesh_pps: 2,2
[filament_switch_sensor fila]
pause_on_runout: True
runout_gcode:
M118 Filament tangle detected
event_delay: 3.0
pause_delay: 0.5
switch_pin:U_1:PC3
[resonance_tester]
accel_chip:adxl345
probe_points:
150, 150, 10
[idle_timeout]
timeout: 43200
gcode:
PRINT_END
[pause_resume]
[display_status]
[gcode_macro_break]
[virtual_sdcard]
path: ~/printer_data/gcodes
on_error_gcode:CANCEL_PRINT
[print_stats]
[force_move]
enable_force_move : True
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [input_shaper]
#*# shaper_type_x = mzv
#*# shaper_freq_x = 48.2
#*# shaper_type_y = zv
#*# shaper_freq_y = 38.0

1
klipper Submodule

Submodule klipper added at b90736975b

1
moonraker Submodule

Submodule moonraker added at f8fad844d7