mirror of
https://github.com/steeb-k/troodonBackup
synced 2025-01-09 22:23:29 -07:00
892 lines
26 KiB
INI
892 lines
26 KiB
INI
|
[include fluidd.cfg]
|
|||
|
[virtual_sdcard]
|
|||
|
path: /home/biqu/printer_data/gcodes
|
|||
|
on_error_gcode: CANCEL_PRINT
|
|||
|
|
|||
|
# This file contains common pin mappings for the BigTreeTech Octopus X7
|
|||
|
# To use this config, the firmware should be compiled for the STM32F407 with a "32KiB bootloader"
|
|||
|
|
|||
|
# after running "make", copy the generated "klipper/out/klipper.bin" file to a
|
|||
|
# file named "firmware.bin" on an SD card and then restart the OctoPus with that SD card.
|
|||
|
|
|||
|
# See docs/Config_Reference.md for a description of parameters.
|
|||
|
|
|||
|
## Formbot / Vivedino Troodon Mini
|
|||
|
## Firmware Version: 1.4
|
|||
|
## Compiled By: YGK3D
|
|||
|
## Release Date: 15/02/24
|
|||
|
|
|||
|
## *** THINGS TO CHANGE/CHECK: ***
|
|||
|
## MCU paths [mcu] section
|
|||
|
## Thermistor types [extruder] and [heater_bed] sections - See https://www.klipper3d.org/Config_Reference.html#common-thermistors for common thermistor types
|
|||
|
## Z Endstop Switch location [safe_z_home] section
|
|||
|
## Homing end position [gcode_macro G32] section
|
|||
|
## Z Endstop Switch offset for Z0 [stepper_z] section
|
|||
|
## Probe points [quad_gantry_level] section
|
|||
|
## Min & Max gantry corner postions [quad_gantry_level] section
|
|||
|
## PID tune [extruder] and [heater_bed] sections
|
|||
|
## Probe pin [probe] section
|
|||
|
## Fine tune E steps [extruder] section
|
|||
|
|
|||
|
[include mainsail.cfg]
|
|||
|
[include KAMP_Settings.cfg]
|
|||
|
[exclude_object]
|
|||
|
[firmware_retraction]
|
|||
|
[exclude_object]
|
|||
|
|
|||
|
[mcu]
|
|||
|
## Obtain definition by "ls -l /dev/serial/by-id/" then unplug to verify
|
|||
|
##--------------------------------------------------------------------
|
|||
|
serial: /dev/serial/by-id/usb-Klipper_stm32f407xx_340041001047333133343238-if00
|
|||
|
restart_method: command
|
|||
|
##--------------------------------------------------------------------
|
|||
|
|
|||
|
#####################################################################
|
|||
|
# Accelerometer Settings - Uncomment to Enable
|
|||
|
#####################################################################
|
|||
|
|
|||
|
#[mcu adxl]
|
|||
|
## Obtain serial number by "ls -l /dev/serial/by-id/"
|
|||
|
#serial: /dev/serial/by-id/usb-Klipper_rp2040_E6626005A7867B33-if00 #usb-Klipper_rp2040_E6625887D33B9337-if00
|
|||
|
|
|||
|
#[adxl345]
|
|||
|
#cs_pin: adxl:gpio9
|
|||
|
#spi_software_sclk_pin: adxl:gpio10
|
|||
|
#spi_software_mosi_pin: adxl:gpio11
|
|||
|
#spi_software_miso_pin: adxl:gpio12
|
|||
|
|
|||
|
#[resonance_tester]
|
|||
|
#accel_chip: adxl345
|
|||
|
#probe_points:
|
|||
|
# 125, 125, 20
|
|||
|
|
|||
|
##--------------------------------------------------------------------
|
|||
|
|
|||
|
[printer]
|
|||
|
kinematics: corexy
|
|||
|
max_velocity: 600
|
|||
|
max_accel: 20000 #Max 4000
|
|||
|
max_z_velocity: 15 #Max 15 for 12V TMC Drivers, can increase for 24V
|
|||
|
max_z_accel: 350
|
|||
|
square_corner_velocity: 5.0
|
|||
|
|
|||
|
#####################################################################
|
|||
|
# X/Y Stepper Settings
|
|||
|
#####################################################################
|
|||
|
|
|||
|
## B Stepper - Left
|
|||
|
## Connected to MOTOR_0
|
|||
|
## Endstop connected to DIAG_0
|
|||
|
[stepper_x]
|
|||
|
step_pin: PA3
|
|||
|
dir_pin: PA4
|
|||
|
enable_pin: !PA1
|
|||
|
rotation_distance: 40
|
|||
|
microsteps: 32
|
|||
|
full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper
|
|||
|
endstop_pin: PF2
|
|||
|
position_min: 0
|
|||
|
##--------------------------------------------------------------------
|
|||
|
|
|||
|
position_endstop: 250
|
|||
|
position_max: 250
|
|||
|
|
|||
|
##--------------------------------------------------------------------
|
|||
|
homing_speed: 100 #Max 100
|
|||
|
homing_retract_dist: 5
|
|||
|
homing_positive_dir: true
|
|||
|
|
|||
|
[tmc2209 stepper_x]
|
|||
|
uart_pin: PA2
|
|||
|
interpolate: false
|
|||
|
run_current: 0.8
|
|||
|
sense_resistor: 0.110
|
|||
|
stealthchop_threshold: 0
|
|||
|
|
|||
|
## A Stepper - Right
|
|||
|
## Connected to MOTOR_1
|
|||
|
## Endstop connected to DIAG_1
|
|||
|
[stepper_y]
|
|||
|
step_pin: PC2
|
|||
|
dir_pin: PC3
|
|||
|
enable_pin: !PC1
|
|||
|
rotation_distance: 40
|
|||
|
microsteps: 32
|
|||
|
full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper
|
|||
|
endstop_pin: PC15
|
|||
|
position_min: 0
|
|||
|
position_endstop: y
|
|||
|
position_max: y+8
|
|||
|
|
|||
|
##--------------------------------------------------------------------
|
|||
|
|
|||
|
position_endstop: 250
|
|||
|
position_max: 250
|
|||
|
|
|||
|
##--------------------------------------------------------------------
|
|||
|
homing_speed: 100 #Max 100
|
|||
|
homing_retract_dist: 5
|
|||
|
homing_positive_dir: true
|
|||
|
|
|||
|
## Make sure to update below for your relevant driver (2208 or 2209)
|
|||
|
[tmc2209 stepper_y]
|
|||
|
uart_pin: PC0
|
|||
|
interpolate: false
|
|||
|
run_current: 0.8
|
|||
|
sense_resistor: 0.110
|
|||
|
stealthchop_threshold: 0
|
|||
|
|
|||
|
#####################################################################
|
|||
|
# Z Stepper Settings
|
|||
|
#####################################################################
|
|||
|
|
|||
|
## Z0 Stepper - Front Left
|
|||
|
## Connected to MOTOR_4
|
|||
|
## Endstop connected to DIAG_4
|
|||
|
[stepper_z]
|
|||
|
step_pin: PB10
|
|||
|
dir_pin: PB11
|
|||
|
enable_pin: !PE15
|
|||
|
rotation_distance: 40
|
|||
|
gear_ratio: 80:16
|
|||
|
microsteps: 32
|
|||
|
#endstop_pin: PC13
|
|||
|
endstop_pin: probe:z_virtual_endstop
|
|||
|
## Z-position of nozzle (in mm) to z-endstop trigger point relative to print surface (Z0)
|
|||
|
## (+) value = endstop above Z0, (-) value = endstop below
|
|||
|
## Increasing position_endstop brings nozzle closer to the bed
|
|||
|
## After you run Z_ENDSTOP_CALIBRATE, position_endstop will be stored at the very end of your config
|
|||
|
##--------------------------------------------------------------------
|
|||
|
|
|||
|
position_max: 230
|
|||
|
|
|||
|
##--------------------------------------------------------------------
|
|||
|
position_min: -5
|
|||
|
homing_speed: 100
|
|||
|
second_homing_speed: 3
|
|||
|
homing_retract_dist: 3
|
|||
|
|
|||
|
## Make sure to update below for your relevant driver (2208 or 2209)
|
|||
|
[tmc2209 stepper_z]
|
|||
|
uart_pin: PE14
|
|||
|
interpolate: false
|
|||
|
run_current: 0.8
|
|||
|
sense_resistor: 0.110
|
|||
|
stealthchop_threshold: 0
|
|||
|
|
|||
|
## Z1 Stepper - Rear Left
|
|||
|
## Connected to MOTOR_3
|
|||
|
[stepper_z1]
|
|||
|
step_pin: PE11
|
|||
|
dir_pin: !PE12
|
|||
|
enable_pin: !PE10
|
|||
|
rotation_distance: 40
|
|||
|
gear_ratio: 80:16
|
|||
|
microsteps: 32
|
|||
|
|
|||
|
## Make sure to update below for your relevant driver (2208 or 2209)
|
|||
|
[tmc2209 stepper_z1]
|
|||
|
uart_pin: PE9
|
|||
|
interpolate: false
|
|||
|
run_current: 0.8
|
|||
|
sense_resistor: 0.110
|
|||
|
stealthchop_threshold: 0
|
|||
|
|
|||
|
## Z2 Stepper - Rear Right
|
|||
|
## Connected to MOTOR_6
|
|||
|
[stepper_z2]
|
|||
|
step_pin: PE7
|
|||
|
dir_pin: PE8
|
|||
|
enable_pin: !PG1
|
|||
|
rotation_distance: 40
|
|||
|
gear_ratio: 80:16
|
|||
|
microsteps: 32
|
|||
|
|
|||
|
## Make sure to update below for your relevant driver (2208 or 2209)
|
|||
|
[tmc2209 stepper_z2]
|
|||
|
uart_pin: PG0
|
|||
|
interpolate: false
|
|||
|
run_current: 0.8
|
|||
|
sense_resistor: 0.110
|
|||
|
stealthchop_threshold: 0
|
|||
|
|
|||
|
## Z3 Stepper - Front Right
|
|||
|
## Connected to MOTOR_5
|
|||
|
[stepper_z3]
|
|||
|
step_pin: PF13
|
|||
|
dir_pin: !PF14
|
|||
|
enable_pin: !PF12
|
|||
|
rotation_distance: 40
|
|||
|
gear_ratio: 80:16
|
|||
|
microsteps: 32
|
|||
|
|
|||
|
## Make sure to update below for your relevant driver (2208 or 2209)
|
|||
|
[tmc2209 stepper_z3]
|
|||
|
uart_pin: PF11
|
|||
|
interpolate: false
|
|||
|
run_current: 0.8
|
|||
|
sense_resistor: 0.110
|
|||
|
stealthchop_threshold: 0
|
|||
|
|
|||
|
|
|||
|
#####################################################################
|
|||
|
# Extruder
|
|||
|
#####################################################################
|
|||
|
|
|||
|
## Connected to MOTOR_2
|
|||
|
## Heater - HE0
|
|||
|
## Thermistor - T0
|
|||
|
[extruder]
|
|||
|
step_pin: PB0
|
|||
|
dir_pin: PB1
|
|||
|
enable_pin: !PC5
|
|||
|
## Update value below when you perform extruder calibration
|
|||
|
## If you ask for 100mm of filament, but in reality it is 98mm:
|
|||
|
## rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / 100
|
|||
|
## 22.6789511 is a good starting point
|
|||
|
#rotation_distance: 22.5267 #PLA - perfect #Bondtech 5mm Drive Gears
|
|||
|
#rotation_distance: 22.3464 #PETG
|
|||
|
rotation_distance: 22.22254 #ABS
|
|||
|
## Update Gear Ratio depending on your Extruder Type
|
|||
|
## Use 50:10 for Stealthburner/Clockwork 2
|
|||
|
## Use 50:17 for Afterburner/Clockwork (BMG Gear Ratio)
|
|||
|
## Use 80:20 for M4, M3.1
|
|||
|
gear_ratio: 50:10 #Stealthburner/Clockwork 2
|
|||
|
microsteps: 32
|
|||
|
full_steps_per_rotation: 200 #200 for 1.8 degree, 400 for 0.9 degree
|
|||
|
nozzle_diameter: 0.400
|
|||
|
filament_diameter: 1.75
|
|||
|
heater_pin: PB9
|
|||
|
## Check what thermistor type you have. See https://www.klipper3d.org/Config_Reference.html#common-thermistors for common thermistor types.
|
|||
|
## Use "Generic 3950" for NTC 100k 3950 thermistors
|
|||
|
sensor_type: PT1000
|
|||
|
sensor_pin: PF3
|
|||
|
min_temp: 10
|
|||
|
max_temp: 270
|
|||
|
max_power: 1.0
|
|||
|
min_extrude_temp: 170
|
|||
|
max_extrude_only_distance: 150
|
|||
|
control = pid
|
|||
|
pid_kp = 26.213
|
|||
|
pid_ki = 1.304
|
|||
|
pid_kd = 131.721
|
|||
|
## Try to keep pressure_advance below 1.0
|
|||
|
#pressure_advance: 0.024
|
|||
|
pressure_advance: 0.046
|
|||
|
## Default is 0.040, leave stock
|
|||
|
#pressure_advance_smooth_time: 0.040
|
|||
|
|
|||
|
## E0 on MOTOR_2
|
|||
|
## Make sure to update below for your relevant driver (2208 or 2209)
|
|||
|
[tmc2209 extruder]
|
|||
|
uart_pin: PC4
|
|||
|
interpolate: false
|
|||
|
run_current: 0.56 #0.3 #0.5
|
|||
|
sense_resistor: 0.110
|
|||
|
stealthchop_threshold: 0
|
|||
|
|
|||
|
|
|||
|
#####################################################################
|
|||
|
# Bed Heater
|
|||
|
#####################################################################
|
|||
|
|
|||
|
## SSR Pin - HE1
|
|||
|
## Thermistor - TB
|
|||
|
[heater_bed]
|
|||
|
## Uncomment the following line if using the default SSR wiring from the docs site
|
|||
|
#heater_pin: PA3
|
|||
|
## Other wiring guides may use BED_OUT to control the SSR. Uncomment the following line for those cases
|
|||
|
heater_pin: PD12
|
|||
|
## Check what thermistor type you have. See https://www.klipper3d.org/Config_Reference.html#common-thermistors for common thermistor types.
|
|||
|
## Use "Generic 3950" for Keenovo heaters
|
|||
|
sensor_type: Generic 3950
|
|||
|
sensor_pin: PA0
|
|||
|
## Adjust Max Power so your heater doesn't warp your bed. Rule of thumb is 0.4 watts / cm^2 .
|
|||
|
max_power: 0.6
|
|||
|
min_temp: 0
|
|||
|
max_temp: 120
|
|||
|
#control: pid
|
|||
|
#pid_kp: 58.437
|
|||
|
#pid_ki: 2.347
|
|||
|
#pid_kd: 363.769
|
|||
|
|
|||
|
#####################################################################
|
|||
|
# Probe
|
|||
|
#####################################################################
|
|||
|
|
|||
|
[probe]
|
|||
|
pin: PF4
|
|||
|
x_offset: 0
|
|||
|
y_offset: 0
|
|||
|
#z_offset: 0
|
|||
|
speed: 50.0
|
|||
|
samples: 3
|
|||
|
samples_result: median
|
|||
|
sample_retract_dist: 3.0
|
|||
|
samples_tolerance: 0.05
|
|||
|
samples_tolerance_retries: 5
|
|||
|
|
|||
|
activate_gcode:
|
|||
|
{% set PROBE_TEMP = 150 %}
|
|||
|
{% set MAX_TEMP = PROBE_TEMP + 5 %}
|
|||
|
{% set ACTUAL_TEMP = printer.extruder.temperature %}
|
|||
|
{% set TARGET_TEMP = printer.extruder.target %}
|
|||
|
|
|||
|
{% if TARGET_TEMP > PROBE_TEMP %}
|
|||
|
{ action_respond_info('Extruder temperature target of %.1fC is too high, lowering to %.1fC' % (TARGET_TEMP, PROBE_TEMP)) }
|
|||
|
M109 S{ PROBE_TEMP }
|
|||
|
{% else %}
|
|||
|
# Temperature target is already low enough, but nozzle may still be too hot.
|
|||
|
{% if ACTUAL_TEMP > MAX_TEMP %}
|
|||
|
{ action_respond_info('Extruder temperature %.1fC is still too high, waiting until below %.1fC' % (ACTUAL_TEMP, MAX_TEMP)) }
|
|||
|
TEMPERATURE_WAIT SENSOR=extruder MAXIMUM={ MAX_TEMP }
|
|||
|
{% endif %}
|
|||
|
{% endif %}
|
|||
|
|
|||
|
#####################################################################
|
|||
|
# Fan Control
|
|||
|
#####################################################################
|
|||
|
|
|||
|
## Print Cooling Fan - FAN0
|
|||
|
[fan]
|
|||
|
pin: PB7
|
|||
|
kick_start_time: 0.5
|
|||
|
## Depending on your fan, you may need to increase this value
|
|||
|
## if your fan will not start. Can change cycle_time (increase)
|
|||
|
## if your fan is not able to slow down effectively
|
|||
|
off_below: 0.10
|
|||
|
|
|||
|
|
|||
|
## Hotend Fan - FAN1
|
|||
|
[heater_fan hotend_fan]
|
|||
|
pin: PB8
|
|||
|
max_power: 1.0
|
|||
|
kick_start_time: 0.5
|
|||
|
heater: extruder
|
|||
|
heater_temp: 50.0
|
|||
|
## If you are experiencing back flow, you can reduce fan_speed
|
|||
|
#fan_speed: 1.0
|
|||
|
|
|||
|
## Controller fan - FAN2
|
|||
|
[controller_fan controller_fan]
|
|||
|
pin: PC6
|
|||
|
kick_start_time: 0.5
|
|||
|
fan_speed: 1.0
|
|||
|
stepper: extruder
|
|||
|
|
|||
|
## Exhaust fan - FAN3 - Temperature Controlled
|
|||
|
#[heater_fan exhaust_fan]
|
|||
|
#pin: PE5
|
|||
|
#max_power: 1.0
|
|||
|
#shutdown_speed: 0.0
|
|||
|
#kick_start_time: 5.0
|
|||
|
#heater: heater_bed
|
|||
|
#heater_temp: 60
|
|||
|
#fan_speed: 1.0
|
|||
|
|
|||
|
## Exhaust fan - FAN3 - Manually Controlled
|
|||
|
[fan_generic exhaust_fan]
|
|||
|
pin: PE5
|
|||
|
max_power: 1.0
|
|||
|
shutdown_speed: 0.0
|
|||
|
kick_start_time: 5.0
|
|||
|
|
|||
|
#####################################################################
|
|||
|
# LED Control
|
|||
|
#####################################################################
|
|||
|
|
|||
|
## Chamber Lighting - HE2 Connector (Optional)
|
|||
|
|
|||
|
[output_pin case_light]
|
|||
|
pin: PE6
|
|||
|
pwm:false
|
|||
|
shutdown_value: 0
|
|||
|
value:1
|
|||
|
|
|||
|
#####################################################################
|
|||
|
# Homing and Gantry Adjustment Routines
|
|||
|
#####################################################################
|
|||
|
|
|||
|
[idle_timeout]
|
|||
|
timeout: 1800
|
|||
|
|
|||
|
[safe_z_home]
|
|||
|
## XY Location of the Z Endstop Switch
|
|||
|
## Update -10,-10 to the XY coordinates of your endstop pin
|
|||
|
## (such as 157,305) after going through Z Endstop Pin
|
|||
|
## Location Definition step.
|
|||
|
home_xy_position: 125,125
|
|||
|
speed:200
|
|||
|
z_hop:10
|
|||
|
|
|||
|
|
|||
|
## Use QUAD_GANTRY_LEVEL to level a gantry.
|
|||
|
## Min & Max gantry corners - measure from nozzle at MIN (0,0) and
|
|||
|
## MAX (250, 250), (300,300), or (350,350) depending on your printer size
|
|||
|
## to respective belt positions
|
|||
|
[quad_gantry_level]
|
|||
|
|
|||
|
speed: 300
|
|||
|
|
|||
|
#--------------------------------------------------------------------
|
|||
|
## Gantry Corners for 250mm Build
|
|||
|
## Uncomment for 250mm build
|
|||
|
gantry_corners:
|
|||
|
-60,-10
|
|||
|
310, 320
|
|||
|
# Probe points
|
|||
|
points:
|
|||
|
25,25
|
|||
|
25,225
|
|||
|
225,225
|
|||
|
225,25
|
|||
|
#--------------------------------------------------------------------
|
|||
|
speed: 300
|
|||
|
horizontal_move_z: 1
|
|||
|
retries: 5
|
|||
|
retry_tolerance: 0.05
|
|||
|
max_adjust: 10
|
|||
|
|
|||
|
########################################
|
|||
|
# EXP1 / EXP2 (display) pins
|
|||
|
########################################
|
|||
|
|
|||
|
#[board_pins]
|
|||
|
#aliases:
|
|||
|
# # EXP1 header
|
|||
|
# EXP1_1=PG5, EXP1_2=PG4,
|
|||
|
# EXP1_3=PG3, EXP1_4=PG2,
|
|||
|
# EXP1_5=PD15, EXP1_6=PD14, # Slot in the socket on this side
|
|||
|
# EXP1_7=PD13, EXP1_8=PD11,
|
|||
|
# EXP1_9=<GND>, EXP1_10=<5V>,
|
|||
|
|
|||
|
# # EXP2 header
|
|||
|
# EXP2_1=PB14, EXP2_2=PB13,
|
|||
|
# EXP2_3=PD10, EXP2_4=PB12,
|
|||
|
# EXP2_5=PD9, EXP2_6=PB15, # Slot in the socket on this side
|
|||
|
# EXP2_7=PD8, EXP2_8=<RST>,
|
|||
|
# EXP2_9=<GND>, EXP2_10=<5V>
|
|||
|
|
|||
|
#--------------------------------------------------------------------
|
|||
|
|
|||
|
[pause_resume]
|
|||
|
recover_velocity: 50.
|
|||
|
# When capture/restore is enabled, the speed at which to return to
|
|||
|
# the captured position (in mm/s). Default is 50.0 mm/s.
|
|||
|
|
|||
|
[respond]
|
|||
|
default_type: echo
|
|||
|
# Sets the default prefix of the "M118" and "RESPOND" output to one
|
|||
|
# of the following:
|
|||
|
# echo: "echo: " (This is the default)
|
|||
|
# command: "// "
|
|||
|
# error: "!! "
|
|||
|
#default_prefix: echo:
|
|||
|
# Directly sets the default prefix. If present, this value will
|
|||
|
# override the "default_type".
|
|||
|
|
|||
|
#####################################################################
|
|||
|
# Filament Runout Sensor
|
|||
|
#####################################################################
|
|||
|
|
|||
|
[filament_switch_sensor filament_sensor]
|
|||
|
pause_on_runout: True
|
|||
|
# When set to True, a PAUSE will execute immediately after a runout
|
|||
|
# is detected. Note that if pause_on_runout is False and the
|
|||
|
# runout_gcode is omitted then runout detection is disabled. Default
|
|||
|
# is True.
|
|||
|
runout_gcode:
|
|||
|
M600
|
|||
|
# A list of G-Code commands to execute after a filament runout is
|
|||
|
# detected. See docs/Command_Templates.md for G-Code format. If
|
|||
|
# pause_on_runout is set to True this G-Code will run after the
|
|||
|
# PAUSE is complete. The default is not to run any G-Code commands.
|
|||
|
#insert_gcode:
|
|||
|
# A list of G-Code commands to execute after a filament insert is
|
|||
|
# detected. See docs/Command_Templates.md for G-Code format. The
|
|||
|
# default is not to run any G-Code commands, which disables insert
|
|||
|
# detection.
|
|||
|
#event_delay: 3.0
|
|||
|
# The minimum amount of time in seconds to delay between events.
|
|||
|
# Events triggered during this time period will be silently
|
|||
|
# ignored. The default is 3 seconds.
|
|||
|
#pause_delay: 0.5
|
|||
|
# The amount of time to delay, in seconds, between the pause command
|
|||
|
# dispatch and execution of the runout_gcode. It may be useful to
|
|||
|
# increase this delay if OctoPrint exhibits strange pause behavior.
|
|||
|
# Default is 0.5 seconds.
|
|||
|
switch_pin: PC14
|
|||
|
# The pin on which the switch is connected. This parameter must be
|
|||
|
# provided
|
|||
|
|
|||
|
#####################################################################
|
|||
|
# User Modifications
|
|||
|
#####################################################################
|
|||
|
|
|||
|
## Bed Mesh Configuration
|
|||
|
# Uncomment BED_MESH_CALIBRATE in the PRINT_START macro below to enable bed levelling.
|
|||
|
|
|||
|
[bed_mesh]
|
|||
|
speed: 300
|
|||
|
horizontal_move_z: 5
|
|||
|
mesh_min: 50,25
|
|||
|
mesh_max: 200,175
|
|||
|
probe_count: 5, 5
|
|||
|
|
|||
|
# Idle Timeout Configuration
|
|||
|
# This block increases the idle timeout from 10 minutes to 8 hours.
|
|||
|
# This may be longer that you are comfortable with.
|
|||
|
# Reduce the timeout value if you want the heaters to shut off sooner.
|
|||
|
# A longer timeout is necesary if you want to recover from filament runout or M600 filament change.
|
|||
|
|
|||
|
[idle_timeout]
|
|||
|
#gcode:
|
|||
|
# A list of G-Code commands to execute on an idle timeout. See
|
|||
|
# docs/Command_Templates.md for G-Code format. The default is to run
|
|||
|
# "TURN_OFF_HEATERS" and "M84".
|
|||
|
timeout: 28800
|
|||
|
# Idle time (in seconds) to wait before running the above G-Code
|
|||
|
# commands. The default is 600 seconds.
|
|||
|
|
|||
|
|
|||
|
#####################################################################
|
|||
|
# Macros
|
|||
|
#####################################################################
|
|||
|
|
|||
|
|
|||
|
[gcode_macro G32]
|
|||
|
gcode:
|
|||
|
SAVE_GCODE_STATE NAME=STATE_G32
|
|||
|
G90
|
|||
|
G28
|
|||
|
M109 S150
|
|||
|
NOZZLE_CLEAN
|
|||
|
G28 Z
|
|||
|
QUAD_GANTRY_LEVEL
|
|||
|
G0 X125 Y125 Z30 F3600
|
|||
|
RESTORE_GCODE_STATE NAME=STATE_G32
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
# Use PRINT_START for the slicer starting script - please customise for your slicer of choice
|
|||
|
[gcode_macro PRINT_START]
|
|||
|
gcode:
|
|||
|
M104 S150
|
|||
|
{% set temp_extruder = params.EXTRUDER|int %}
|
|||
|
G32 ; home all axes
|
|||
|
BED_MESH_CALIBRATE ; Uncomment to add mesh bed levelling
|
|||
|
G90 ; absolute positioning
|
|||
|
G1 Z20 F3000 ; move nozzle away from bed
|
|||
|
M109 S{temp_extruder}
|
|||
|
NOZZLE_PRIME
|
|||
|
|
|||
|
|
|||
|
[gcode_macro START_PRINT]
|
|||
|
gcode:
|
|||
|
G28 # Home the printer
|
|||
|
G92 E0 # Reset extruder
|
|||
|
M104 S150
|
|||
|
G32
|
|||
|
#BED_MESH_CALIBRATE PROFILE=mesh1 METHOD=automatic
|
|||
|
#BED_MESH_PROFILE LOAD=mesh1
|
|||
|
# Move to wait position
|
|||
|
#G28 X
|
|||
|
G90
|
|||
|
#G1 X175 Y175
|
|||
|
|
|||
|
[gcode_macro END_PRINT]
|
|||
|
#variable_machine_depth: printer.configfile.settings.stepper_z.position_max
|
|||
|
gcode:
|
|||
|
; layer end
|
|||
|
G91 ;relative positioning
|
|||
|
G1 E-5.00 F1000 ;retract 5mm of filament
|
|||
|
G1 Z+1.00 X+20.0 Y+20.0 F20000 ;short quick move to disengage from print
|
|||
|
G1 Z+10.00 F20000 ;move Z-Axis 10mm away from part
|
|||
|
G90 ;absolute positioning
|
|||
|
G28 X0 Y0 ; move gantry close to home
|
|||
|
G91 ; relative positioning
|
|||
|
G1 E-5.00 F500 ;retract additional filament to prevent oozing
|
|||
|
G90 ;absolute positioning
|
|||
|
M104 S0 ;turn off hotend
|
|||
|
M140 S0 ;turn off heatbed
|
|||
|
M106 S0 ; shut off blower
|
|||
|
#M84 ;motors off -- disabled so that head can still be moved after print finishes
|
|||
|
|
|||
|
# Use PRINT_END for the slicer ending script - please customise for your slicer of choice
|
|||
|
[gcode_macro PRINT_END]
|
|||
|
gcode:
|
|||
|
# safe anti-stringing move coords
|
|||
|
{% set th = printer.toolhead %}
|
|||
|
{% set x_safe = th.position.x + 20 * (1 if th.axis_maximum.x - th.position.x > 20 else -1) %}
|
|||
|
{% set y_safe = th.position.y + 20 * (1 if th.axis_maximum.y - th.position.y > 20 else -1) %}
|
|||
|
{% set z_safe = [th.position.z + 2, th.axis_maximum.z]|min %}
|
|||
|
|
|||
|
SAVE_GCODE_STATE NAME=STATE_PRINT_END
|
|||
|
|
|||
|
M400 ; wait for buffer to clear
|
|||
|
G92 E0 ; zero the extruder
|
|||
|
G1 E-5.0 F1800 ; retract filament
|
|||
|
|
|||
|
TURN_OFF_HEATERS
|
|||
|
|
|||
|
G90 ; absolute positioning
|
|||
|
G0 X{x_safe} Y{y_safe} Z{z_safe} F20000 ; move nozzle to remove stringing
|
|||
|
G0 X{th.axis_maximum.x//2} Y{th.axis_maximum.y - 2} F3600 ; park nozzle at rear
|
|||
|
M107 ; turn off fan
|
|||
|
|
|||
|
BED_MESH_CLEAR
|
|||
|
RESTORE_GCODE_STATE NAME=STATE_PRINT_END
|
|||
|
|
|||
|
#####
|
|||
|
# COLOR CHANGE
|
|||
|
#####
|
|||
|
[gcode_macro M600]
|
|||
|
description: Executes a color change by pausing the printer an unloading the filament.
|
|||
|
gcode:
|
|||
|
PAUSE
|
|||
|
UNLOAD_FILAMENT
|
|||
|
M117 Please load new filament and resume
|
|||
|
RESPOND MSG="Please load new filament and resume"
|
|||
|
|
|||
|
#####
|
|||
|
# FILAMENT MANAGEMENT
|
|||
|
#####
|
|||
|
|
|||
|
[gcode_macro UNLOAD_FILAMENT]
|
|||
|
description: Unloads the filament. Note: be careful with PETG, make sure you inspect the tip of your filament before reloading to avoid jams.
|
|||
|
gcode:
|
|||
|
SAVE_GCODE_STATE NAME=unload_state
|
|||
|
G91
|
|||
|
{% if params.TEMP is defined or printer.extruder.can_extrude|lower == 'false' %}
|
|||
|
M117 Heating...
|
|||
|
# Heat up hotend to provided temp or 220 as default as that should work OK with most filaments.
|
|||
|
M104 S{params.TEMP|default(220, true)}
|
|||
|
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={params.TEMP|default(220, true)}
|
|||
|
{% endif %}
|
|||
|
M117 Unloading filament...
|
|||
|
# Extract filament to cold end area
|
|||
|
G0 E-5 F3600
|
|||
|
# Wait for three seconds
|
|||
|
G4 P3000
|
|||
|
# Push back the filament to smash any stringing
|
|||
|
G0 E5 F3600
|
|||
|
# Extract back fast in to the cold zone
|
|||
|
G0 E-15 F3600
|
|||
|
# Continue extraction slowly, allow the filament time to cool solid before it reaches the gears
|
|||
|
G0 E-130 F300
|
|||
|
M117 Filament unloaded!
|
|||
|
RESPOND MSG="Filament unloaded! Please inspect the tip of the filament before reloading."
|
|||
|
RESTORE_GCODE_STATE NAME=unload_state
|
|||
|
|
|||
|
[gcode_macro LOAD_FILAMENT]
|
|||
|
description: Loads new filament. Note: be careful with PETG, make sure you inspect the tip of your filament before loading to avoid jams.
|
|||
|
gcode:
|
|||
|
SAVE_GCODE_STATE NAME=load_state
|
|||
|
G91
|
|||
|
# Heat up hotend to provided temp or 220 as default as that should work OK with most filaments.
|
|||
|
{% if params.TEMP is defined or printer.extruder.can_extrude|lower == 'false' %}
|
|||
|
M117 Heating...
|
|||
|
M104 S{params.TEMP|default(220, true)}
|
|||
|
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={params.TEMP|default(220, true)}
|
|||
|
{% endif %}
|
|||
|
M117 Loading filament...
|
|||
|
# Load the filament into the hotend area.
|
|||
|
G0 E100 F600
|
|||
|
# Wait a secod
|
|||
|
G4 P1000
|
|||
|
# Purge
|
|||
|
G0 E40 F100
|
|||
|
# Wait for purge to complete
|
|||
|
M400e
|
|||
|
M117 Filament loaded!
|
|||
|
RESPOND MSG="Filament loaded!"
|
|||
|
RESTORE_GCODE_STATE NAME=load_state
|
|||
|
|
|||
|
[gcode_macro NOZZLE_CLEAN]
|
|||
|
description: wipes nozzle on brush to clean it
|
|||
|
gcode:
|
|||
|
G90
|
|||
|
G1 X95 Y250 F6000
|
|||
|
G1 Z0.5 F3000
|
|||
|
G1 X145 Y250 F10000
|
|||
|
G1 X95 Y250 F10000
|
|||
|
G1 X145 Y250 F10000
|
|||
|
G1 X95 Y250 F10000
|
|||
|
G1 X145 Y250 F10000
|
|||
|
G1 X95 Y250 F10000
|
|||
|
G1 Z10 F6000
|
|||
|
|
|||
|
[gcode_macro NOZZLE_PRIME]
|
|||
|
description: prime the nozzle before printing
|
|||
|
gcode:
|
|||
|
G92 E0
|
|||
|
G1 E-3 F1800
|
|||
|
G1 X0 Y0 F10000
|
|||
|
G1 Z0.3 F500
|
|||
|
G92 E0
|
|||
|
G1 E3 F500
|
|||
|
G92 E0
|
|||
|
G1 E-0.30000 F3600
|
|||
|
G1 Z0.2500 F1000
|
|||
|
G1 X250 Y0 E50 F1000
|
|||
|
G92 E0
|
|||
|
G1 E-0.30000 F5400
|
|||
|
G1 Z10 F500
|
|||
|
|
|||
|
[gcode_macro PAUSE]
|
|||
|
description: Pause the actual running print
|
|||
|
rename_existing: PAUSE_BASE
|
|||
|
gcode:
|
|||
|
PAUSE_BASE
|
|||
|
_TOOLHEAD_PARK_PAUSE_CANCEL
|
|||
|
|
|||
|
[gcode_macro _TOOLHEAD_PARK_PAUSE_CANCEL]
|
|||
|
description: Helper: park toolhead used in PAUSE and CANCEL_PRINT
|
|||
|
variable_extrude: 1.0
|
|||
|
gcode:
|
|||
|
##### set park positon for x and y #####
|
|||
|
# default is your max posion from your printer.cfg
|
|||
|
{% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %}
|
|||
|
{% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
|
|||
|
{% set z_park_delta = 10.0 %}
|
|||
|
##### calculate save lift position #####
|
|||
|
{% set max_z = printer.toolhead.axis_maximum.z|float %}
|
|||
|
{% set act_z = printer.toolhead.position.z|float %}
|
|||
|
{% if act_z < (max_z - z_park_delta) %}
|
|||
|
{% set z_safe = z_park_delta %}
|
|||
|
{% else %}
|
|||
|
{% set z_safe = max_z - act_z %}
|
|||
|
{% endif %}
|
|||
|
##### end of definitions #####
|
|||
|
{% if printer.extruder.can_extrude|lower == 'true' %}
|
|||
|
M83
|
|||
|
G1 E-{extrude} F2100
|
|||
|
{% if printer.gcode_move.absolute_extrude |lower == 'true' %} M82 {% endif %}
|
|||
|
{% else %}
|
|||
|
{action_respond_info("Extruder not hot enough")}
|
|||
|
{% endif %}
|
|||
|
{% if "xyz" in printer.toolhead.homed_axes %}
|
|||
|
G91
|
|||
|
G1 Z{z_safe} F900
|
|||
|
G90
|
|||
|
G1 X{x_park} Y{y_park} F6000
|
|||
|
{% if printer.gcode_move.absolute_coordinates|lower == 'false' %} G91 {% endif %}
|
|||
|
{% else %}
|
|||
|
{action_respond_info("Printer not homed")}
|
|||
|
{% endif %}
|
|||
|
|
|||
|
[gcode_macro _USER_VARIABLE]
|
|||
|
description: Helper: Contains User defined printer variables
|
|||
|
variable_disable_turnoff: 0
|
|||
|
gcode:
|
|||
|
|
|||
|
[gcode_macro RESONANCES_TEST]
|
|||
|
description: Run input shaper test
|
|||
|
gcode:
|
|||
|
{% set user = printer['gcode_macro _USER_VARIABLE'] %}
|
|||
|
_CG28 ; home if needed
|
|||
|
TURN_OFF_HEATERS ; turn off heaters
|
|||
|
M107 ; turn off fan
|
|||
|
{% if user.hw.chamber.fan %} M141 {% endif %} ; exhaust fan off
|
|||
|
{% if user.hw.filter.ena %} _SET_FILTER {% endif %} ; filter off
|
|||
|
_PRINT_AR T="INPUT SHAPER: Noise values, check if sensor is installed"
|
|||
|
MEASURE_AXES_NOISE ; get noise value in log
|
|||
|
_PRINT_AR T="INPUT SHAPER: Resonance Tests starting"
|
|||
|
_PRINT_AR T="INPUT SHAPER: Mesasure X axis"
|
|||
|
TEST_RESONANCES AXIS=X ; measure X
|
|||
|
_PRINT_AR T="INPUT SHAPER: Mesasure Y axis"
|
|||
|
TEST_RESONANCES AXIS=Y ; measure Y
|
|||
|
_PRINT_AR T="INPUT SHAPER: Resonance Tests done"
|
|||
|
_PRINT_AR T="INPUT SHAPER: Generate graph in backround"
|
|||
|
RUN_SHELL_COMMAND CMD=plot_graph PARAMS=SHAPER
|
|||
|
|
|||
|
[gcode_macro M486]
|
|||
|
gcode:
|
|||
|
# Parameters known to M486 are as follows:
|
|||
|
# [C<flag>] Cancel the current object
|
|||
|
# [P<index>] Cancel the object with the given index
|
|||
|
# [S<index>] Set the index of the current object.
|
|||
|
# If the object with the given index has been canceled, this will cause
|
|||
|
# the firmware to skip to the next object. The value -1 is used to
|
|||
|
# indicate something that isn’t an object and shouldn’t be skipped.
|
|||
|
# [T<count>] Reset the state and set the number of objects
|
|||
|
# [U<index>] Un-cancel the object with the given index. This command will be
|
|||
|
# ignored if the object has already been skipped
|
|||
|
|
|||
|
{% if 'exclude_object' not in printer %}
|
|||
|
{action_raise_error("[exclude_object] is not enabled")}
|
|||
|
{% endif %}
|
|||
|
|
|||
|
{% if 'T' in params %}
|
|||
|
EXCLUDE_OBJECT RESET=1
|
|||
|
|
|||
|
{% for i in range(params.T | int) %}
|
|||
|
EXCLUDE_OBJECT_DEFINE NAME={i}
|
|||
|
{% endfor %}
|
|||
|
{% endif %}
|
|||
|
|
|||
|
{% if 'C' in params %}
|
|||
|
EXCLUDE_OBJECT CURRENT=1
|
|||
|
{% endif %}
|
|||
|
|
|||
|
{% if 'P' in params %}
|
|||
|
EXCLUDE_OBJECT NAME={params.P}
|
|||
|
{% endif %}
|
|||
|
|
|||
|
{% if 'S' in params %}
|
|||
|
{% if params.S == '-1' %}
|
|||
|
{% if printer.exclude_object.current_object %}
|
|||
|
EXCLUDE_OBJECT_END NAME={printer.exclude_object.current_object}
|
|||
|
{% endif %}
|
|||
|
{% else %}
|
|||
|
EXCLUDE_OBJECT_START NAME={params.S}
|
|||
|
{% endif %}
|
|||
|
{% endif %}
|
|||
|
|
|||
|
{% if 'U' in params %}
|
|||
|
EXCLUDE_OBJECT RESET=1 NAME={params.U}
|
|||
|
{% endif %}
|
|||
|
|
|||
|
[gcode_macro Calibrate_Probe_Offset]
|
|||
|
gcode:
|
|||
|
PROBE_CALIBRATE
|
|||
|
|
|||
|
#*# <---------------------- SAVE_CONFIG ---------------------->
|
|||
|
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
|
|||
|
#*#
|
|||
|
#*# [input_shaper]
|
|||
|
#*# shaper_type_x = 3hump_ei
|
|||
|
#*# shaper_freq_x = 88.4
|
|||
|
#*# shaper_type_y = zv
|
|||
|
#*# shaper_freq_y = 55.4
|
|||
|
#*#
|
|||
|
#*# [probe]
|
|||
|
#*# z_offset = -1.170
|
|||
|
#*#
|
|||
|
#*# [extruder]
|
|||
|
#*#
|
|||
|
#*# [heater_bed]
|
|||
|
#*# control = pid
|
|||
|
#*# pid_kp = 40.040
|
|||
|
#*# pid_ki = 1.648
|
|||
|
#*# pid_kd = 243.242
|
|||
|
#*#
|
|||
|
#*# [bed_mesh default]
|
|||
|
#*# version = 1
|
|||
|
#*# points =
|
|||
|
#*# 0.026037, 0.022287, 0.032287
|
|||
|
#*# 0.012287, 0.003537, 0.019787
|
|||
|
#*# 0.007287, 0.002287, 0.007287
|
|||
|
#*# 0.016037, -0.000213, 0.028537
|
|||
|
#*# x_count = 3
|
|||
|
#*# y_count = 4
|
|||
|
#*# mesh_x_pps = 2
|
|||
|
#*# mesh_y_pps = 2
|
|||
|
#*# algo = lagrange
|
|||
|
#*# tension = 0.2
|
|||
|
#*# min_x = 95.0
|
|||
|
#*# max_x = 155.0
|
|||
|
#*# min_y = 64.0
|
|||
|
#*# max_y = 175.0
|