764 lines
18 KiB
INI
764 lines
18 KiB
INI
# This is a configuration file for the Creatbot F430NX.
|
|
[include mainsail.cfg]
|
|
|
|
[virtual_sdcard]
|
|
path: ~/printer_data/gcodes
|
|
on_error_gcode: CANCEL_PRINT
|
|
|
|
[save_variables]
|
|
filename: ~/printer_data/config/config_variables.cfg
|
|
|
|
[exclude_object]
|
|
|
|
[gcode_arcs]
|
|
resolution: 1.0
|
|
|
|
[force_move]
|
|
enable_force_move: True
|
|
|
|
[idle_timeout]
|
|
gcode:
|
|
{% if printer.webhooks.state|lower == 'ready' %}
|
|
{% if printer.pause_resume.is_paused %}
|
|
{% if printer["extruder"] is defined %}
|
|
SET_HEATER_TEMPERATURE HEATER=extruder
|
|
{% endif %}
|
|
{% if printer["extruder1"] is defined %}
|
|
SET_HEATER_TEMPERATURE HEATER=extruder1
|
|
{% endif %}
|
|
{% else %}
|
|
TURN_OFF_HEATERS
|
|
{% endif %}
|
|
{% endif %}
|
|
timeout: 1800 # 0.5 hour timeout
|
|
|
|
# F446 MotherBoard ID
|
|
[mcu]
|
|
canbus_uuid: 000000000010
|
|
canbus_interface: can0
|
|
|
|
[printer]
|
|
kinematics: cartesian
|
|
max_velocity: 300
|
|
max_accel: 3000
|
|
max_z_velocity: 10
|
|
max_z_accel: 100
|
|
square_corner_velocity: 5.0
|
|
|
|
[bed_mesh]
|
|
speed: 100
|
|
horizontal_move_z: 5
|
|
mesh_min: 34.6,17.4
|
|
mesh_max: 420, 300
|
|
probe_count: 5,4
|
|
mesh_pps: 2,2
|
|
algorithm: bicubic
|
|
bicubic_tension: 0.2
|
|
|
|
[stepper_x]
|
|
step_pin: PD1
|
|
dir_pin: !PD0
|
|
enable_pin: !PA15
|
|
rotation_distance: 50.8
|
|
microsteps: 64
|
|
full_steps_per_rotation: 200
|
|
endstop_pin: ^PC10
|
|
position_min: -20
|
|
position_endstop: -20
|
|
position_max: 475
|
|
homing_speed: 100
|
|
homing_retract_dist: 10
|
|
|
|
[tmc5160 stepper_x]
|
|
cs_pin: PE2
|
|
spi_software_sclk_pin: PB3
|
|
spi_software_mosi_pin: PB5
|
|
spi_software_miso_pin: PB4
|
|
run_current: 1.0
|
|
interpolate: True
|
|
sense_resistor: 0.075
|
|
stealthchop_threshold: 200
|
|
|
|
[dual_carriage]
|
|
axis: x
|
|
step_pin: PE11
|
|
dir_pin: !PE10
|
|
enable_pin: !PE9
|
|
rotation_distance: 50.8
|
|
microsteps: 64
|
|
full_steps_per_rotation: 200
|
|
endstop_pin: ^PE7
|
|
position_endstop: 475
|
|
position_min: 55
|
|
position_max: 475
|
|
homing_speed: 100
|
|
homing_retract_dist: 10
|
|
safe_distance: 75
|
|
|
|
[tmc5160 dual_carriage]
|
|
cs_pin: PE8
|
|
spi_software_sclk_pin: PB3
|
|
spi_software_mosi_pin: PB5
|
|
spi_software_miso_pin: PB4
|
|
run_current: 1.0
|
|
interpolate: True
|
|
sense_resistor: 0.075
|
|
stealthchop_threshold: 200
|
|
|
|
[stepper_y]
|
|
step_pin: PD4
|
|
dir_pin: !PD3
|
|
enable_pin: !PD2
|
|
rotation_distance: 73.152
|
|
microsteps: 128
|
|
full_steps_per_rotation: 200
|
|
gear_ratio: 1:1
|
|
endstop_pin: ^PC11
|
|
position_min: 0
|
|
position_endstop: 0
|
|
position_max: 300
|
|
homing_speed: 60
|
|
homing_retract_dist: 10
|
|
|
|
[tmc5160 stepper_y]
|
|
cs_pin: PE3
|
|
spi_software_sclk_pin: PB3
|
|
spi_software_mosi_pin: PB5
|
|
spi_software_miso_pin: PB4
|
|
run_current: 2.3
|
|
interpolate: True
|
|
sense_resistor: 0.075
|
|
stealthchop_threshold: 200
|
|
|
|
[stepper_z]
|
|
step_pin: PD7
|
|
dir_pin: PD6
|
|
enable_pin: !PD5
|
|
rotation_distance: 5
|
|
gear_ratio: 2.5:1
|
|
microsteps: 16
|
|
full_steps_per_rotation: 200
|
|
endstop_pin: probe:z_virtual_endstop
|
|
position_max: 300
|
|
position_min: -4
|
|
homing_speed: 10
|
|
second_homing_speed: 1
|
|
homing_retract_dist: 2.0
|
|
|
|
[tmc5160 stepper_z]
|
|
cs_pin: PE4
|
|
spi_software_sclk_pin: PB3
|
|
spi_software_mosi_pin: PB5
|
|
spi_software_miso_pin: PB4
|
|
run_current: 0.8
|
|
interpolate: True
|
|
sense_resistor: 0.075
|
|
stealthchop_threshold: 0
|
|
|
|
[heater_bed]
|
|
heater_pin: PD12
|
|
sensor_type: Generic 3950
|
|
sensor_pin: PC0
|
|
max_power: 1.0
|
|
min_temp: 0
|
|
max_temp: 150
|
|
# control: pid
|
|
# pid_kp: 40.673
|
|
# pid_ki: 0.837
|
|
# pid_kd: 494.176
|
|
|
|
[verify_heater heater_bed]
|
|
max_error: 20
|
|
check_gain_time:90
|
|
hysteresis: 5
|
|
heating_gain: 2
|
|
|
|
[heater_generic chamber]
|
|
heater_pin: PD15
|
|
max_power: 1.0
|
|
sensor_type: Generic 3950
|
|
sensor_pin: PC3
|
|
min_temp: 0
|
|
max_temp: 70
|
|
# control: pid
|
|
# pid_kp: 30.68
|
|
# pid_ki: 0.21
|
|
# pid_kd: 0
|
|
|
|
[verify_heater chamber]
|
|
max_error: 120
|
|
hysteresis: 0
|
|
check_gain_time: 3600
|
|
heating_gain: 0.01
|
|
|
|
[multi_pin fan]
|
|
pins: L_tool:PA10, R_tool:PA10
|
|
|
|
[fan]
|
|
pin: multi_pin:fan
|
|
max_power: 1.0
|
|
shutdown_speed: 0.0
|
|
kick_start_time: 1.0
|
|
off_below: 0.15
|
|
|
|
[fan_generic Air_filter_fan]
|
|
pin: PC8
|
|
max_power: 1.0
|
|
shutdown_speed: 0.0
|
|
kick_start_time: 1.0
|
|
|
|
[delayed_gcode INIT_LIGHT]
|
|
initial_duration:0.01
|
|
gcode:
|
|
{% set svv = printer.save_variables.variables %}
|
|
{% set luminance = svv.interior_lighting|default(0)|float %}
|
|
SET_LED LED=Interior_lighting WHITE={luminance} TRANSMIT=1 SYNC=0
|
|
|
|
[led Interior_lighting]
|
|
white_pin: PC7
|
|
cycle_time: 0.010
|
|
initial_WHITE: 0
|
|
|
|
[neopixel _Status_light]
|
|
pin: PB8
|
|
chain_count: 1
|
|
color_order: RGB
|
|
initial_RED: 0.3
|
|
initial_GREEN: 0.3
|
|
initial_BLUE: 0.3
|
|
|
|
[filament_switch_sensor extruder]
|
|
pause_on_runout: True
|
|
runout_gcode:
|
|
event_delay: 3.0
|
|
pause_delay: 0.5
|
|
switch_pin: ^PC14
|
|
|
|
[filament_switch_sensor extruder1]
|
|
pause_on_runout: True
|
|
runout_gcode:
|
|
event_delay: 3.0
|
|
pause_delay: 0.5
|
|
switch_pin: ^PC15
|
|
|
|
# F072 Left nozzle ID
|
|
[mcu L_tool]
|
|
canbus_uuid: 000000000001
|
|
canbus_interface: can0
|
|
|
|
[adxl345]
|
|
spi_speed: 5000000
|
|
cs_pin: L_tool:PB12
|
|
spi_software_sclk_pin:L_tool:PB13
|
|
spi_software_mosi_pin:L_tool:PB15
|
|
spi_software_miso_pin:L_tool:PB14
|
|
axes_map: -x, -z, -y
|
|
rate: 3200
|
|
|
|
[resonance_tester]
|
|
accel_chip: adxl345
|
|
probe_points: 200, 150, 20
|
|
min_freq: 20
|
|
max_freq: 70
|
|
accel_per_hz: 200
|
|
hz_per_sec: 1
|
|
|
|
[heater_fan Sink_fan_0]
|
|
pin:L_tool:PA9
|
|
max_power: 1.0
|
|
kick_start_time: 0.5
|
|
heater: extruder
|
|
heater_temp: 100
|
|
fan_speed:1.0
|
|
|
|
[extruder]
|
|
sensor_type: MAX31855
|
|
sensor_pin: L_tool:PA15
|
|
spi_software_sclk_pin:L_tool:PB3
|
|
spi_software_mosi_pin:L_tool:PB5
|
|
spi_software_miso_pin:L_tool:PB4
|
|
[verify_heater extruder]
|
|
max_error: 5
|
|
check_gain_time:30
|
|
hysteresis: 25
|
|
heating_gain: 2
|
|
|
|
[extruder]
|
|
step_pin: L_tool:PB1
|
|
dir_pin: !L_tool:PB2
|
|
enable_pin: !L_tool:PB0
|
|
microsteps: 16
|
|
full_steps_per_rotation: 200
|
|
rotation_distance:23.5619445
|
|
gear_ratio: 2.53:1
|
|
nozzle_diameter: 0.400
|
|
filament_diameter: 1.750
|
|
max_extrude_only_distance: 500.0
|
|
max_extrude_only_velocity: 60.0
|
|
max_extrude_only_accel: 1000.0
|
|
max_extrude_cross_section:5
|
|
heater_pin: L_tool:PA8
|
|
max_power: 1.0
|
|
min_temp: 0
|
|
max_temp: 450
|
|
min_extrude_temp: 150
|
|
pressure_advance: 0.032
|
|
pressure_advance_smooth_time:0.040
|
|
# control = pid
|
|
# pid_kp = 39.960
|
|
# pid_ki = 2.537
|
|
# pid_kd = 157.344
|
|
|
|
[tmc2209 extruder]
|
|
uart_pin:L_tool:PB7
|
|
interpolate: False
|
|
run_current: 0.6
|
|
sense_resistor: 0.110
|
|
stealthchop_threshold: 0
|
|
|
|
[probe]
|
|
pin: ^!L_tool:PA1
|
|
x_offset: 34.6
|
|
y_offset: 17.4
|
|
# z_offset: 0
|
|
speed: 10.0
|
|
samples: 3
|
|
samples_result: median
|
|
sample_retract_dist: 2.0
|
|
samples_tolerance: 0.05
|
|
samples_tolerance_retries: 3
|
|
deactivate_on_each_sample: False
|
|
activate_gcode: PROBE_SERVO_OPEN
|
|
deactivate_gcode: PROBE_SERVO_CLOSE
|
|
|
|
[servo probe_servo]
|
|
pin:L_tool:PA5
|
|
maximum_servo_angle: 180
|
|
minimum_pulse_width: 0.000900
|
|
maximum_pulse_width: 0.002100
|
|
initial_angle: 160
|
|
# initial_pulse_width:
|
|
|
|
|
|
[input_shaper]
|
|
#shaper_freq_x: 0
|
|
#shaper_freq_y: 0
|
|
shaper_type: mzv
|
|
#shaper_type_x:
|
|
#shaper_type_y:
|
|
damping_ratio_x: 0.1
|
|
damping_ratio_y: 0.1
|
|
|
|
# F072 Right nozzle ID
|
|
[mcu R_tool]
|
|
canbus_uuid: 000000000002
|
|
canbus_interface: can0
|
|
|
|
[heater_fan Sink_fan_1]
|
|
pin:R_tool:PA9
|
|
max_power: 1.0
|
|
kick_start_time: 0.5
|
|
heater: extruder1
|
|
heater_temp: 100
|
|
fan_speed: 1
|
|
|
|
[extruder1]
|
|
sensor_type: MAX31855
|
|
sensor_pin: R_tool:PA15
|
|
spi_software_sclk_pin:R_tool:PB3
|
|
spi_software_mosi_pin:R_tool:PB5
|
|
spi_software_miso_pin:R_tool:PB4
|
|
[verify_heater extruder1]
|
|
max_error: 5
|
|
check_gain_time:30
|
|
hysteresis: 25
|
|
heating_gain: 2
|
|
|
|
[extruder1]
|
|
step_pin: R_tool:PB1
|
|
dir_pin: R_tool:PB2
|
|
enable_pin: !R_tool:PB0
|
|
microsteps: 16
|
|
full_steps_per_rotation: 200
|
|
rotation_distance:23.5619445
|
|
gear_ratio: 2.53:1
|
|
nozzle_diameter: 0.400
|
|
filament_diameter: 1.750
|
|
max_extrude_only_distance: 500.0
|
|
max_extrude_only_velocity: 60.0
|
|
max_extrude_only_accel: 1000.0
|
|
max_extrude_cross_section:5
|
|
heater_pin: R_tool:PA8
|
|
max_power: 1.0
|
|
min_temp: 0
|
|
max_temp: 450
|
|
min_extrude_temp: 150
|
|
pressure_advance: 0.032
|
|
pressure_advance_smooth_time:0.040
|
|
# control = pid
|
|
# pid_kp = 39.960
|
|
# pid_ki = 2.537
|
|
# pid_kd = 157.344
|
|
|
|
|
|
|
|
[tmc2209 extruder1]
|
|
uart_pin:R_tool:PB7
|
|
interpolate: False
|
|
run_current: 0.6
|
|
sense_resistor: 0.110
|
|
stealthchop_threshold: 0
|
|
|
|
[safe_z_home]
|
|
home_xy_position:200,150
|
|
speed:150
|
|
z_hop:5
|
|
|
|
[gcode_macro ENABLE_FORCE_MOVE]
|
|
gcode:
|
|
SET_KINEMATIC_POSITION X=200 Y=150 Z=150
|
|
|
|
[gcode_macro _RESTORE_DEFAULT_EXTRUDER]
|
|
gcode:
|
|
SET_GCODE_OFFSET Z=0
|
|
SET_GCODE_OFFSET Y=0
|
|
SET_GCODE_OFFSET X=0
|
|
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
|
SET_DUAL_CARRIAGE CARRIAGE=0
|
|
|
|
[gcode_macro _PARK_extruder]
|
|
gcode:
|
|
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
|
SET_DUAL_CARRIAGE CARRIAGE=0
|
|
G1 X-20 F6000
|
|
|
|
[gcode_macro T0]
|
|
gcode:
|
|
{% if "x" not in printer.toolhead.homed_axes %}
|
|
G28 X
|
|
{% set x_home = true %}
|
|
{% endif %}
|
|
{% if printer.toolhead.extruder != 'extruder' or x_home %}
|
|
SAVE_GCODE_STATE NAME=park0
|
|
G90
|
|
_PARK_{printer.toolhead.extruder}
|
|
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
|
SET_DUAL_CARRIAGE CARRIAGE=0
|
|
SET_GCODE_OFFSET Z=0
|
|
SET_GCODE_OFFSET Y=0
|
|
SET_GCODE_OFFSET X=0
|
|
G1 X0 F6000
|
|
RESTORE_GCODE_STATE NAME=park0
|
|
{% endif %}
|
|
|
|
[gcode_macro _PARK_extruder1]
|
|
gcode:
|
|
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
|
SET_DUAL_CARRIAGE CARRIAGE=1
|
|
G1 X475 F6000
|
|
|
|
[gcode_macro T1]
|
|
gcode:
|
|
{% set svv = printer.save_variables.variables %}
|
|
{% set x_offset = svv.dual_x_offset|default(0)|float %}
|
|
{% set y_offset = svv.dual_y_offset|default(0)|float %}
|
|
{% set z_offset = svv.dual_z_offset|default(0)|float %}
|
|
|
|
{% if "x" not in printer.toolhead.homed_axes %}
|
|
G28 X
|
|
{% set x_home = true %}
|
|
{% endif %}
|
|
|
|
{% if printer.toolhead.extruder != 'extruder1' or x_home %}
|
|
SAVE_GCODE_STATE NAME=park1
|
|
G90
|
|
_PARK_{printer.toolhead.extruder}
|
|
ACTIVATE_EXTRUDER EXTRUDER=extruder1
|
|
SET_DUAL_CARRIAGE CARRIAGE=1
|
|
SET_GCODE_OFFSET Z={z_offset}
|
|
SET_GCODE_OFFSET Y={y_offset}
|
|
SET_GCODE_OFFSET X={x_offset}
|
|
G1 X455 F6000
|
|
RESTORE_GCODE_STATE NAME=park1
|
|
{% endif %}
|
|
|
|
|
|
[gcode_macro ACTIVATE_COPY_MODE]
|
|
gcode:
|
|
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
|
|
G1 X0 F6000
|
|
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
|
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
|
|
G1 X227.5 F6000
|
|
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=COPY
|
|
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder
|
|
|
|
[gcode_macro ACTIVATE_MIRROR_MODE]
|
|
gcode:
|
|
SET_DUAL_CARRIAGE CARRIAGE=0 MODE=PRIMARY
|
|
G1 X0 F6000
|
|
ACTIVATE_EXTRUDER EXTRUDER=extruder
|
|
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=PRIMARY
|
|
G1 X455 F6000
|
|
SET_DUAL_CARRIAGE CARRIAGE=1 MODE=MIRROR
|
|
SYNC_EXTRUDER_MOTION EXTRUDER=extruder1 MOTION_QUEUE=extruder
|
|
|
|
|
|
[gcode_macro PROBE_SERVO_OPEN]
|
|
gcode:
|
|
SET_SERVO SERVO=probe_servo angle=45
|
|
G4 P500
|
|
|
|
[gcode_macro PROBE_SERVO_CLOSE]
|
|
gcode:
|
|
G4 P500
|
|
SET_SERVO SERVO=probe_servo angle=135
|
|
|
|
|
|
[gcode_macro START_PRINT]
|
|
gcode:
|
|
{% set BED_TEMP = params.BED|default(0)|float %}
|
|
{% set EXTRUDER_TEMP = params.EXTRUDER|default(0)|float %}
|
|
{% set EXTRUDER_TEMP1 = params.EXTRUDER1|default(0)|float %}
|
|
{% set CHAMBER_TEMP = params.CHAMBER|default(0)|float %}
|
|
{% if params.BED is defined %}
|
|
M140 S{BED_TEMP}
|
|
{% endif %}
|
|
{% if params.EXTRUDER is defined %}
|
|
M104 T0 S{EXTRUDER_TEMP}
|
|
{% endif %}
|
|
{% if params.EXTRUDER1 is defined %}
|
|
M104 T1 S{EXTRUDER_TEMP1}
|
|
{% endif %}
|
|
{% if params.CHAMBER is defined %}
|
|
M141 S{CHAMBER_TEMP}
|
|
{% endif %}
|
|
G28
|
|
# BED_MESH_CALIBRATE
|
|
{% if BED_TEMP != 0 %}
|
|
M190 S{BED_TEMP}
|
|
{% endif %}
|
|
{% if EXTRUDER_TEMP != 0 %}
|
|
M109 T0 S{EXTRUDER_TEMP}
|
|
{% endif %}
|
|
{% if EXTRUDER_TEMP1 != 0 %}
|
|
M109 T1 S{EXTRUDER_TEMP1}
|
|
{% endif %}
|
|
{% if CHAMBER_TEMP != 0 %}
|
|
M191 S{CHAMBER_TEMP}
|
|
{% endif %}
|
|
G92 E0
|
|
M117 Printing star...
|
|
|
|
[gcode_macro END_PRINT]
|
|
gcode:
|
|
M400
|
|
G92 E0
|
|
G1 E-10.0 F3600
|
|
G91
|
|
{% if printer["dual_carriage"] is defined %}
|
|
G0 Z1.00 F6000
|
|
_PARK_extruder
|
|
_PARK_extruder1
|
|
{% else %}
|
|
G0 Z1.00 X20.0 Y20.0 F6000
|
|
{% endif %}
|
|
TURN_OFF_HEATERS
|
|
M107
|
|
G1 Z2 F3000
|
|
G90
|
|
G0 Y300 F3600
|
|
# BED_MESH_CLEAR
|
|
|
|
[gcode_macro SET_LED]
|
|
rename_existing: LED_SET
|
|
gcode:
|
|
{% set led_name = params.LED %}
|
|
{% set red = params.RED|default(0)|float %}
|
|
{% set green = params.GREEN|default(0)|float %}
|
|
{% set blue = params.BLUE|default(0)|float %}
|
|
{% set white = params.WHITE|default(0)|float %}
|
|
{% set index = params.INDEX|default(0)|float %}
|
|
{% set transmit = params.TRANSMIT|default(0)|int %}
|
|
{% set sync = params.SYNC|default(0)|int %}
|
|
|
|
{% if led_name == "Interior_lighting" %}
|
|
{% if white != 0 %}
|
|
{% set white = 1 %}
|
|
{% endif %}
|
|
SAVE_VARIABLE VARIABLE=interior_lighting VALUE={white}
|
|
{% endif %}
|
|
{% if index == 0 %}
|
|
LED_SET LED={led_name} RED={red} GREEN={green} BLUE={blue} WHITE={white} TRANSMIT={transmit} SYNC={sync}
|
|
{% else %}
|
|
LED_SET LED={led_name} RED={red} GREEN={green} BLUE={blue} WHITE={white} INDEX={index} TRANSMIT={transmit} SYNC={sync}
|
|
{% endif %}
|
|
|
|
[gcode_macro SET_X_OFFSET]
|
|
gcode:
|
|
{% set svv = printer.save_variables.variables %}
|
|
{% set dual_x_offset=params.S|default(0)|float %}
|
|
SAVE_VARIABLE VARIABLE=dual_x_offset VALUE={dual_x_offset}
|
|
|
|
[gcode_macro SET_Y_OFFSET]
|
|
gcode:
|
|
{% set svv = printer.save_variables.variables %}
|
|
{% set dual_y_offset=params.S|default(0)|float %}
|
|
SAVE_VARIABLE VARIABLE=dual_y_offset VALUE={dual_y_offset}
|
|
|
|
[gcode_macro SET_Z_OFFSET]
|
|
gcode:
|
|
{% set svv = printer.save_variables.variables %}
|
|
{% set dual_z_offset=params.S|default(0)|float %}
|
|
SAVE_VARIABLE VARIABLE=dual_z_offset VALUE={dual_z_offset}
|
|
|
|
[gcode_macro ENABLE_FORCE_MOVE]
|
|
gcode:
|
|
SET_KINEMATIC_POSITION X=200 Y=150 Z=150
|
|
|
|
[gcode_macro LOAD_FILAMENT]
|
|
variable_load_distance: 90
|
|
variable_purge_distance: 20
|
|
gcode:
|
|
{% set speed = params.SPEED|default(200) %}
|
|
{% set max_velocity = printer.configfile.settings['extruder'].max_extrude_only_velocity * 20 %}
|
|
SAVE_GCODE_STATE NAME=load_state
|
|
G91
|
|
G92 E0
|
|
G1 E{load_distance} F{max_velocity} # fast-load
|
|
G1 E{purge_distance} F{speed} # purge
|
|
RESTORE_GCODE_STATE NAME=load_state
|
|
|
|
[gcode_macro UNLOAD_FILAMENT]
|
|
variable_unload_distance: 90
|
|
variable_purge_distance: 20
|
|
gcode:
|
|
{% set speed = params.SPEED|default(200) %}
|
|
{% set max_velocity = printer.configfile.settings['extruder'].max_extrude_only_velocity * 20 %}
|
|
SAVE_GCODE_STATE NAME=unload_state
|
|
G91
|
|
G92 E0
|
|
G1 E{purge_distance} F{speed} # purge
|
|
G1 E-{unload_distance} F{max_velocity} # fast-unload
|
|
RESTORE_GCODE_STATE NAME=unload_state
|
|
|
|
[gcode_macro G28]
|
|
rename_existing: C28
|
|
gcode:
|
|
{% set homing_cmd = ''%}
|
|
{% set do_x = 'X' in params|string %}
|
|
{% set do_y = 'Y' in params|string %}
|
|
{% set do_z = 'Z' in params|string %}
|
|
|
|
{% if do_x %}
|
|
{% set homing_cmd = 'X ' %}
|
|
{% endif %}
|
|
{% if do_y %}
|
|
{% set homing_cmd = homing_cmd + 'Y ' %}
|
|
{% endif %}
|
|
{% if do_z %}
|
|
{% if 'x' not in printer.toolhead.homed_axes|lower or 'y' not in printer.toolhead.homed_axes|lower %}
|
|
{% set homing_cmd = 'X Y Z' %}
|
|
{% else %}
|
|
{% set homing_cmd = homing_cmd + 'Z' %}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% if not homing_cmd %}
|
|
C28
|
|
_RESTORE_DEFAULT_EXTRUDER
|
|
{% else %}
|
|
C28 {homing_cmd}
|
|
{% if 'X' in homing_cmd %}
|
|
_RESTORE_DEFAULT_EXTRUDER
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
[gcode_macro M141]
|
|
gcode:
|
|
{% set s = params.S|default(0)|float %}
|
|
{% if params.S is defined %}
|
|
SET_HEATER_TEMPERATURE HEATER=chamber target={s|int}
|
|
{% endif %}
|
|
|
|
[gcode_macro M191]
|
|
gcode:
|
|
{% set s = params.S|default(0)|float %}
|
|
{% if params.S is defined %}
|
|
M141 S{s}
|
|
{% if s != 0 %}
|
|
TEMPERATURE_WAIT SENSOR="heater_generic chamber" MINIMUM={s-2} MAXIMUM={s+2}
|
|
{% endif %}
|
|
{% endif %}
|
|
|
|
[gcode_macro M84]
|
|
rename_existing: C84
|
|
gcode:
|
|
C84
|
|
SET_STEPPER_ENABLE STEPPER=stepper_z enable=1
|
|
_RESTORE_DEFAULT_EXTRUDER
|
|
|
|
[gcode_macro _CLIENT_VARIABLE]
|
|
variable_use_custom_pos : True
|
|
variable_custom_park_x : 200.0
|
|
variable_custom_park_y : 250.0
|
|
variable_custom_park_dz : 20.0
|
|
variable_retract : 2.0
|
|
variable_cancel_retract : 10.0
|
|
variable_speed_retract : 60.0
|
|
variable_unretract : 20.0
|
|
variable_speed_unretract : 6.0
|
|
variable_speed_hop : 5.0
|
|
variable_speed_move : 100.0
|
|
variable_park_at_cancel : False
|
|
variable_park_at_cancel_x : None
|
|
variable_park_at_cancel_y : None
|
|
variable_use_fw_retract : False
|
|
variable_idle_timeout : 600
|
|
variable_runout_sensor : ""
|
|
variable_user_pause_macro : "_USER_PAUSE"
|
|
variable_user_resume_macro: "_USER_RESUME"
|
|
variable_user_cancel_macro: "_USER_CANCEL"
|
|
gcode:
|
|
# Nothing
|
|
|
|
[gcode_macro _USER_PAUSE]
|
|
gcode:
|
|
{% set extruderTools = [('extruder', 'last_extruder_temp'),
|
|
('extruder1', 'last_extruder1_temp')] %}
|
|
{% for extruder_name, name in extruderTools %}
|
|
{% set temp = printer[extruder_name].target if extruder_name in printer else 0 %}
|
|
{% set restore = False if printer[extruder_name] == ''
|
|
else True if params.RESTORE|default(1)|int == 1 else False %}
|
|
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE={name} VALUE="{{'restore': restore, 'temp': temp}}"
|
|
{% endfor %}
|
|
|
|
[gcode_macro RESUME]
|
|
variable_last_extruder_temp: {'restore': False, 'temp': 0}
|
|
variable_last_extruder1_temp: {'restore': False, 'temp': 0}
|
|
|
|
[gcode_macro _USER_RESUME]
|
|
gcode:
|
|
{% set extruder_info = [
|
|
{'index': 0, 'name': 'last_extruder_temp'},
|
|
{'index': 1, 'name': 'last_extruder1_temp'}] %}
|
|
|
|
{% for info in extruder_info %}
|
|
{% set variable = printer["gcode_macro RESUME"][info.name] %}
|
|
{% if variable.restore %}
|
|
M104 T{ info.index } S{ variable.temp }
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% for info in extruder_info %}
|
|
{% set variable = printer["gcode_macro RESUME"][info.name] %}
|
|
{% if variable.restore %}
|
|
{% set tool = "extruder" if info.index == 0 else "extruder1" %}
|
|
{% set needwait = True if printer[tool].temperature < variable.temp else False %}
|
|
{% if needwait %}
|
|
M109 T{info.index} S{variable.temp}
|
|
{% endif %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
|
|
[gcode_macro _USER_CANCEL]
|
|
gcode:
|
|
M84 |