Ajouter printer.cfg
This commit is contained in:
797
printer.cfg
Normal file
797
printer.cfg
Normal file
@@ -0,0 +1,797 @@
|
|||||||
|
# Auto-generated on 2026-01-09T14:20:19 | printer_model: n4pro | current: 1.2
|
||||||
|
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
# ____ _ __ __ ____
|
||||||
|
# / __ \___ ___ ___ / |/ /__ ___ / /_/ / /__ _____ ___
|
||||||
|
# / /_/ / _ \/ -_) _ \/ / -_) _ \/ __/_ _/ // / _ \/ -_)
|
||||||
|
# \____/ .__/\__/_//_/_/|_/\__/ .__/\__/ /_/ \_,_/_//_/\__/
|
||||||
|
# /_/ /_/
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
; Neptune 4 Series Custom Image by (OpenNeptune3D/OpenNept4une):
|
||||||
|
#----------------------------------------------------------------------------
|
||||||
|
; Wiki : https://github.com/OpenNeptune3D/OpenNept4une/wiki
|
||||||
|
; Discord : https://discord.com/invite/X6kwchT6WM
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# External Config Includes
|
||||||
|
#############################################################################
|
||||||
|
[include mainsail.cfg] ; mainsail runs on port 81 (http://IP_ADDRESS:81)
|
||||||
|
[include fluidd.cfg]
|
||||||
|
[include KAMP_Settings.cfg]
|
||||||
|
[include ./KAMP/Smart_Park.cfg]
|
||||||
|
[include ./KAMP/Line_Purge.cfg]
|
||||||
|
#[include klipper_debug.cfg]
|
||||||
|
#[include adxl.cfg] ; Comment this out when you disconnect the Pico/MellowFly
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# Base Config
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[mcu]
|
||||||
|
serial: /dev/ttyS0 ; The hardware use USART1 PA10/PA9 connect to RK3328
|
||||||
|
baud: 250000
|
||||||
|
restart_method: command
|
||||||
|
|
||||||
|
[printer]
|
||||||
|
kinematics:cartesian
|
||||||
|
max_velocity: 250
|
||||||
|
max_accel: 3000
|
||||||
|
max_z_velocity: 8
|
||||||
|
max_z_accel: 120
|
||||||
|
square_corner_velocity: 5.0
|
||||||
|
minimum_cruise_ratio: 0.0
|
||||||
|
|
||||||
|
[respond]
|
||||||
|
[gcode_arcs]
|
||||||
|
[pause_resume]
|
||||||
|
[display_status]
|
||||||
|
[exclude_object]
|
||||||
|
[firmware_retraction]
|
||||||
|
[virtual_sdcard]
|
||||||
|
path: ~/printer_data/gcodes
|
||||||
|
[force_move]
|
||||||
|
enable_force_move : True
|
||||||
|
[idle_timeout]
|
||||||
|
timeout: 2100 ; 35min idle timeout (when not paused or printing)
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# Print Start & End Macros
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[gcode_macro PRINT_START]
|
||||||
|
variable_small_print: False
|
||||||
|
variable_outer_bed_force_activation_temp: 80
|
||||||
|
variable_force_outer_bed_heater: False
|
||||||
|
|
||||||
|
gcode:
|
||||||
|
Frame_Light_ON
|
||||||
|
Part_Light_ON
|
||||||
|
G92 E0
|
||||||
|
G90 ; Use absolute coordinates
|
||||||
|
BED_MESH_CLEAR
|
||||||
|
|
||||||
|
{% set BED_TEMP = params.BED_TEMP|default(60)|float %}
|
||||||
|
{% set BED_HEAT_SOAK_MINUTES = params.BED_HEAT_SOAK_MINUTES|default(0)|float %}
|
||||||
|
{% set BED_MESH = params.BED_MESH|default('adaptive')|string %} ; One of: adaptive (default), full, default (or any other value as the bed mesh profile name), none
|
||||||
|
{% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(200)|float %}
|
||||||
|
|
||||||
|
{% set area_start = params.AREA_START|default('0,0')|string %}
|
||||||
|
{% set area_end = params.AREA_END|default('0,0')|string %}
|
||||||
|
|
||||||
|
{% set start_coords = area_start.split(',')|map('float')|list %}
|
||||||
|
{% set end_coords = area_end.split(',')|map('float')|list %}
|
||||||
|
|
||||||
|
{% set center_min_x = 62.5 %} ; define centre area bounds
|
||||||
|
{% set center_min_y = 62.5 %}
|
||||||
|
{% set center_max_x = 172.5 %}
|
||||||
|
{% set center_max_y = 172.5 %}
|
||||||
|
|
||||||
|
; Check if print is within center area
|
||||||
|
{% if start_coords[0] >= center_min_x and start_coords[1] >= center_min_y and end_coords[0] <= center_max_x and end_coords[1] <= center_max_y %}
|
||||||
|
SET_GCODE_VARIABLE MACRO=PRINT_START VARIABLE=small_print VALUE=True
|
||||||
|
{% else %} ; print extends beyond center, set temperatures for both beds
|
||||||
|
SET_GCODE_VARIABLE MACRO=PRINT_START VARIABLE=small_print VALUE=False
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
# If the bed is particularly hot, use both heaters in any case, wether it is a small print or not
|
||||||
|
{% if BED_TEMP >= outer_bed_force_activation_temp %}
|
||||||
|
SET_GCODE_VARIABLE MACRO=PRINT_START VARIABLE=force_outer_bed_heater VALUE=True
|
||||||
|
{% else %}
|
||||||
|
# Print extends beyond center, set temperatures for both beds
|
||||||
|
SET_GCODE_VARIABLE MACRO=PRINT_START VARIABLE=force_outer_bed_heater VALUE=False
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
SET_BED_TEMPERATURE TARGET={BED_TEMP} ; Heat Bed to target temp
|
||||||
|
BED_TEMPERATURE_WAIT MINIMUM={BED_TEMP-2} MAXIMUM={BED_TEMP+4} ; Waits until the bed reaches close to target
|
||||||
|
{% if BED_HEAT_SOAK_MINUTES > 0 %}
|
||||||
|
RESPOND MSG="Waiting {BED_HEAT_SOAK_MINUTES} minutes for the bed to settle."
|
||||||
|
G4 P{BED_HEAT_SOAK_MINUTES * 60000}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
CG28
|
||||||
|
|
||||||
|
{% if BED_MESH == 'full' %}
|
||||||
|
BED_MESH_CALIBRATE
|
||||||
|
{% elif BED_MESH == 'adaptive' %}
|
||||||
|
BED_MESH_CALIBRATE ADAPTIVE=1
|
||||||
|
{% elif BED_MESH != 'none' %}
|
||||||
|
BED_MESH_PROFILE LOAD={BED_MESH}
|
||||||
|
{% endif %}
|
||||||
|
Smart_Park
|
||||||
|
SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1
|
||||||
|
SET_HEATER_TEMPERATURE HEATER=extruder TARGET={EXTRUDER_TEMP} ; Set and heat the final extruder temperature
|
||||||
|
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={EXTRUDER_TEMP-4} MAXIMUM={EXTRUDER_TEMP+10} ; Wait for extruder to reach near target temperature
|
||||||
|
LINE_PURGE ; KAMP Line Purge near print
|
||||||
|
G92 E0 ; Reset Extruder
|
||||||
|
G1 Z2.0 F3000 ; Move Z Axis up
|
||||||
|
M117 Printing
|
||||||
|
|
||||||
|
[gcode_macro PRINT_END]
|
||||||
|
gcode:
|
||||||
|
Frame_Light_OFF
|
||||||
|
Part_Light_OFF
|
||||||
|
M400 ; wait for buffer to clear
|
||||||
|
TURN_OFF_HEATERS
|
||||||
|
G92 E0 ; zero the extruder
|
||||||
|
G91 ; Relative positioning
|
||||||
|
G1 E-2 F2700 ; Retract a bit
|
||||||
|
G1 X5 Y5 F3000 ; Wipe out
|
||||||
|
G1 E-2 Z0.2 F1600 ; Retract and raise Z
|
||||||
|
G1 Z4 F3000 ; Raise Z more
|
||||||
|
G90 ; Absolute positioning
|
||||||
|
G1 X0 Y230 ; Present print
|
||||||
|
M107 ; turn off fan
|
||||||
|
M84 ; turn off steppers
|
||||||
|
SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0
|
||||||
|
M117
|
||||||
|
END_TUNE ; Print End Beeper Jingle
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# Pause, Resume & Cancel Macros
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[gcode_macro PAUSE]
|
||||||
|
rename_existing: BASE_PAUSE
|
||||||
|
gcode:
|
||||||
|
PAUSE_TUNE
|
||||||
|
{% set z = params.Z|default(30)|int %}
|
||||||
|
{% if printer['pause_resume'].is_paused|int == 0 %}
|
||||||
|
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target|default(220)}
|
||||||
|
# Store current extruder temperature before cooling
|
||||||
|
SET_GCODE_VARIABLE MACRO=LOAD_FILAMENT VARIABLE=prev_temp VALUE={printer['extruder'].target|default(220)}
|
||||||
|
SET_GCODE_VARIABLE MACRO=UNLOAD_FILAMENT VARIABLE=prev_temp VALUE={printer['extruder'].target|default(220)}
|
||||||
|
# Store Z-hop value for RESUME
|
||||||
|
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z}
|
||||||
|
SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0
|
||||||
|
SAVE_GCODE_STATE NAME=PAUSE
|
||||||
|
BASE_PAUSE
|
||||||
|
G91
|
||||||
|
{% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %}
|
||||||
|
G1 E-2 F2700
|
||||||
|
G1 X3 Y3 F3000
|
||||||
|
G1 E-2 Z{z} F1600
|
||||||
|
SAVE_GCODE_STATE NAME=ZLIFT
|
||||||
|
{% else %}
|
||||||
|
{ action_respond_info("Pause zhop exceeds maximum Z height.") }
|
||||||
|
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0
|
||||||
|
G1 E-2 F2700
|
||||||
|
G1 X3 Y3 F3000
|
||||||
|
G1 E-2 F1600
|
||||||
|
SAVE_GCODE_STATE NAME=ZLIFT
|
||||||
|
{% endif %}
|
||||||
|
G90
|
||||||
|
G1 X{printer.toolhead.axis_minimum.x+5} Y{printer.toolhead.axis_maximum.y-5} F6000
|
||||||
|
SAVE_GCODE_STATE NAME=PAUSEPARK
|
||||||
|
SET_HEATER_TEMPERATURE HEATER=extruder TARGET=175
|
||||||
|
SET_IDLE_TIMEOUT TIMEOUT=43200
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro RESUME]
|
||||||
|
rename_existing: BASE_RESUME
|
||||||
|
variable_zhop: 0
|
||||||
|
variable_etemp: 0
|
||||||
|
gcode:
|
||||||
|
{% if printer['pause_resume'].is_paused|int == 1 %}
|
||||||
|
SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=1 ; enable filament sensor
|
||||||
|
SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value
|
||||||
|
{% if etemp > 0 %}
|
||||||
|
SET_HEATER_TEMPERATURE HEATER=extruder TARGET={etemp|int}
|
||||||
|
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={etemp|int - 4} MAXIMUM={etemp|int + 10} ; wait for hotend to heat back up to print temp
|
||||||
|
{% endif %}
|
||||||
|
RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 ; go back to park position in case toolhead was moved during pause ; enable extruder stepper motor
|
||||||
|
G91 ; relative positioning
|
||||||
|
M83 ; set extruder to relative mode
|
||||||
|
G1 E80 F200 ; extrude 80mm of filament to prime the nozzle
|
||||||
|
G4 P2000 ; wait for 2 seconds to stabilise pressure
|
||||||
|
G1 X20 F15000 ; wiggle movement to ensure free movement of purge
|
||||||
|
G1 X-20
|
||||||
|
G1 X20
|
||||||
|
G1 X-20
|
||||||
|
G1 X20
|
||||||
|
G1 X-20
|
||||||
|
RESTORE_GCODE_STATE NAME=ZLIFT MOVE=1 MOVE_SPEED=60 ; restore to the zlift position above the print
|
||||||
|
G1 X-3 Y-3 F3000 ; Undo the pause Wipe out
|
||||||
|
G1 Z{zhop * -1} F900
|
||||||
|
RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60 ; restore to the paused position (lowers to final print location)
|
||||||
|
M400 ; wait for all moves to complete
|
||||||
|
BASE_RESUME ; resume print
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro CANCEL_PRINT]
|
||||||
|
rename_existing: BASE_CANCEL_PRINT
|
||||||
|
gcode:
|
||||||
|
SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value
|
||||||
|
CLEAR_PAUSE
|
||||||
|
SDCARD_RESET_FILE
|
||||||
|
PRINT_END
|
||||||
|
BASE_CANCEL_PRINT
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# Filament Sensor & Change Macros
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[filament_switch_sensor filament_sensor]
|
||||||
|
pause_on_runout: True
|
||||||
|
insert_gcode:
|
||||||
|
M117 Insert Detected
|
||||||
|
runout_gcode:
|
||||||
|
M117 Runout Detected
|
||||||
|
SET_GCODE_VARIABLE MACRO=UNLOAD_FILAMENT VARIABLE=prev_temp VALUE={printer.extruder.target|int}
|
||||||
|
UNLOAD_FILAMENT
|
||||||
|
event_delay: 3.0
|
||||||
|
pause_delay: 1.0
|
||||||
|
switch_pin: PA12
|
||||||
|
|
||||||
|
[delayed_gcode DISABLE_FILAMENT_SENSOR]
|
||||||
|
initial_duration: 1
|
||||||
|
gcode:
|
||||||
|
SET_FILAMENT_SENSOR SENSOR=filament_sensor ENABLE=0
|
||||||
|
|
||||||
|
[gcode_macro M600]
|
||||||
|
description: Pause for colour change
|
||||||
|
gcode:
|
||||||
|
PAUSE
|
||||||
|
|
||||||
|
[gcode_macro LOAD_FILAMENT]
|
||||||
|
variable_prev_temp: 0
|
||||||
|
variable_load_distance: 25
|
||||||
|
variable_purge_distance: 75
|
||||||
|
gcode:
|
||||||
|
{%
|
||||||
|
# pick the first non-zero value: prev_temp → current target → 220
|
||||||
|
set target_temp = prev_temp|int or printer.extruder.target|round(0) or 220
|
||||||
|
%}
|
||||||
|
{% if prev_temp|int == 0 and printer.extruder.target|round(0) == 0 %}
|
||||||
|
RESPOND PREFIX="LOAD_FILAMENT" MSG="No temp set — defaulting to {target_temp}°C"
|
||||||
|
{% endif %}
|
||||||
|
SET_HEATER_TEMPERATURE HEATER=extruder TARGET={target_temp}
|
||||||
|
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={target_temp - 4} MAXIMUM={target_temp + 40}
|
||||||
|
{% set speed = params.SPEED|default(300) %}
|
||||||
|
{% set max_vel = printer.configfile.settings.extruder.max_extrude_only_velocity * 30 %}
|
||||||
|
SAVE_GCODE_STATE NAME=load_state
|
||||||
|
G91
|
||||||
|
G92 E0
|
||||||
|
G1 E{load_distance} F{max_vel}
|
||||||
|
G1 E{purge_distance} F{speed}
|
||||||
|
RESTORE_GCODE_STATE NAME=load_state
|
||||||
|
|
||||||
|
[gcode_macro UNLOAD_FILAMENT]
|
||||||
|
variable_prev_temp: 0
|
||||||
|
variable_unload_distance: 75
|
||||||
|
variable_purge_distance: 15
|
||||||
|
gcode:
|
||||||
|
{%
|
||||||
|
set target_temp = prev_temp|int or printer.extruder.target|round(0) or 220
|
||||||
|
%}
|
||||||
|
{% if prev_temp|int == 0 and printer.extruder.target|round(0) == 0 %}
|
||||||
|
RESPOND PREFIX="UNLOAD_FILAMENT" MSG="No temp set — defaulting to {target_temp}°C"
|
||||||
|
{% endif %}
|
||||||
|
SET_HEATER_TEMPERATURE HEATER=extruder TARGET={target_temp}
|
||||||
|
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={target_temp - 4} MAXIMUM={target_temp + 40}
|
||||||
|
{% set speed = params.SPEED|default(300) %}
|
||||||
|
{% set max_vel = printer.configfile.settings.extruder.max_extrude_only_velocity * 30 %}
|
||||||
|
SAVE_GCODE_STATE NAME=unload_state
|
||||||
|
G91
|
||||||
|
G92 E0
|
||||||
|
G1 E{purge_distance} F{speed}
|
||||||
|
G1 E-{unload_distance} F{max_vel}
|
||||||
|
RESTORE_GCODE_STATE NAME=unload_state
|
||||||
|
{% if printer['pause_resume'].is_paused|int == 1 %}
|
||||||
|
G4 P3000 ; wait 3 s before cooling
|
||||||
|
SET_HEATER_TEMPERATURE HEATER=extruder TARGET=175
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# X/Y/Z Stepper Config
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[stepper_x]
|
||||||
|
step_pin: PC14
|
||||||
|
dir_pin: PC13
|
||||||
|
enable_pin: !PC15
|
||||||
|
microsteps: 16
|
||||||
|
rotation_distance: 40
|
||||||
|
full_steps_per_rotation:200 ; set to 400 for 0.9 degree stepper
|
||||||
|
endstop_pin: PC0
|
||||||
|
position_min: -6.5
|
||||||
|
position_endstop: -6.5
|
||||||
|
position_max: 235
|
||||||
|
homing_speed: 50
|
||||||
|
homing_retract_dist: 5
|
||||||
|
homing_positive_dir: false
|
||||||
|
|
||||||
|
[stepper_y]
|
||||||
|
step_pin: PB4
|
||||||
|
dir_pin: PB3
|
||||||
|
enable_pin: !PB5
|
||||||
|
microsteps: 16
|
||||||
|
rotation_distance: 40
|
||||||
|
full_steps_per_rotation:200 ; set to 400 for 0.9 degree stepper
|
||||||
|
endstop_pin: PB8
|
||||||
|
position_min: -2
|
||||||
|
position_endstop: -2
|
||||||
|
position_max: 235
|
||||||
|
homing_speed:50
|
||||||
|
homing_retract_dist: 5
|
||||||
|
homing_positive_dir:false
|
||||||
|
|
||||||
|
[stepper_z]
|
||||||
|
step_pin: PC10
|
||||||
|
dir_pin: !PA15
|
||||||
|
enable_pin: !PC11
|
||||||
|
microsteps: 16
|
||||||
|
rotation_distance: 8
|
||||||
|
full_steps_per_rotation: 200
|
||||||
|
endstop_pin:probe:z_virtual_endstop
|
||||||
|
position_max: 268
|
||||||
|
position_min: -5
|
||||||
|
homing_speed: 8
|
||||||
|
second_homing_speed: 3
|
||||||
|
homing_retract_dist: 5
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# TMC Stepper-driver UART Config
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[tmc2209 stepper_x]
|
||||||
|
uart_pin: PB9
|
||||||
|
run_current: 1.2
|
||||||
|
interpolate: True
|
||||||
|
stealthchop_threshold: 999999
|
||||||
|
|
||||||
|
[tmc2209 stepper_y]
|
||||||
|
uart_pin: PD2
|
||||||
|
run_current: 1.2
|
||||||
|
interpolate: True
|
||||||
|
stealthchop_threshold: 999999
|
||||||
|
|
||||||
|
[tmc2209 stepper_z]
|
||||||
|
uart_pin: PC5
|
||||||
|
run_current: 0.8
|
||||||
|
interpolate: True
|
||||||
|
|
||||||
|
[tmc2209 extruder]
|
||||||
|
uart_pin: PC4
|
||||||
|
run_current: 0.9
|
||||||
|
interpolate: false
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# Extruder Config
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[extruder]
|
||||||
|
step_pin:PA5
|
||||||
|
dir_pin:!PA6
|
||||||
|
enable_pin:!PA4
|
||||||
|
microsteps: 16
|
||||||
|
rotation_distance: 28.888 ; 31.4 Bondtech 5mm Drive Gears
|
||||||
|
gear_ratio: 52:10
|
||||||
|
full_steps_per_rotation: 200 ; 200 for 1.8 degree, 400 for 0.9 degree
|
||||||
|
nozzle_diameter: 0.400
|
||||||
|
filament_diameter: 1.750
|
||||||
|
min_temp: 0
|
||||||
|
max_temp: 330
|
||||||
|
heater_pin: PA7
|
||||||
|
sensor_type:NTC 100K MGB18-104F39050L32
|
||||||
|
sensor_pin: PA1
|
||||||
|
max_power: 1
|
||||||
|
control = pid
|
||||||
|
pid_kp = 25.825
|
||||||
|
pid_ki = 1.979
|
||||||
|
pid_kd = 84.254
|
||||||
|
pressure_advance: 0.02725
|
||||||
|
pressure_advance_smooth_time: 0.02
|
||||||
|
max_extrude_cross_section: 5 ; standard klipper default 4* (NozzleDiam^2)
|
||||||
|
instantaneous_corner_velocity: 5.0
|
||||||
|
max_extrude_only_distance: 100
|
||||||
|
max_extrude_only_velocity:45
|
||||||
|
max_extrude_only_accel:2000
|
||||||
|
step_pulse_duration:0.000002
|
||||||
|
|
||||||
|
[verify_heater extruder]
|
||||||
|
max_error: 120
|
||||||
|
check_gain_time: 30
|
||||||
|
hysteresis: 10
|
||||||
|
heating_gain: 2
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# Bed Heater Config
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[heater_bed]
|
||||||
|
heater_pin:PB10
|
||||||
|
sensor_type: NTC 100K MGB18-104F39050L32
|
||||||
|
sensor_pin: PA0
|
||||||
|
max_power: 1.0
|
||||||
|
control = pid
|
||||||
|
pid_kp = 68.601
|
||||||
|
pid_ki = 1.550
|
||||||
|
pid_kd = 758.895
|
||||||
|
min_temp: 0
|
||||||
|
max_temp: 120
|
||||||
|
pwm_cycle_time: 0.3
|
||||||
|
|
||||||
|
[verify_heater heater_bed]
|
||||||
|
max_error: 120
|
||||||
|
check_gain_time: 120
|
||||||
|
hysteresis: 10
|
||||||
|
heating_gain: 1
|
||||||
|
|
||||||
|
#####################################################################
|
||||||
|
# Outer Bed Heater Config
|
||||||
|
#####################################################################
|
||||||
|
|
||||||
|
[heater_generic heater_bed_outer]
|
||||||
|
heater_pin:PC8
|
||||||
|
max_power:1.0
|
||||||
|
sensor_type: NTC 100K MGB18-104F39050L32
|
||||||
|
sensor_pin:PC2
|
||||||
|
control = pid
|
||||||
|
pid_kp = 75.301
|
||||||
|
pid_ki = 1.383
|
||||||
|
pid_kd = 1025.032
|
||||||
|
min_temp:0
|
||||||
|
max_temp:120
|
||||||
|
pwm_cycle_time: 0.3
|
||||||
|
|
||||||
|
[verify_heater heater_bed_outer] ; heating bed temperature tolerance configuration
|
||||||
|
max_error: 600 ; maximum error
|
||||||
|
check_gain_time:120 ; tolerance time
|
||||||
|
hysteresis: 10 ; tolerance temperature
|
||||||
|
heating_gain: 1 ; heating gain
|
||||||
|
|
||||||
|
[gcode_macro SET_BED_TEMPERATURE] ; macros for innner & outer bed temperature depending on the print size
|
||||||
|
gcode:
|
||||||
|
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={params.TARGET}
|
||||||
|
{% if printer["gcode_macro PRINT_START"].force_outer_bed_heater or not printer["gcode_macro PRINT_START"].small_print %}
|
||||||
|
SET_HEATER_TEMPERATURE HEATER=heater_bed_outer TARGET={params.TARGET}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro BED_TEMPERATURE_WAIT]
|
||||||
|
gcode:
|
||||||
|
{% if params.MINIMUM is defined and params.MAXIMUM is defined %}
|
||||||
|
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={params.MINIMUM} MAXIMUM={params.MAXIMUM}
|
||||||
|
{% if printer["gcode_macro PRINT_START"].force_outer_bed_heater or not printer["gcode_macro PRINT_START"].small_print %}
|
||||||
|
TEMPERATURE_WAIT SENSOR="heater_generic heater_bed_outer" MINIMUM={params.MINIMUM} MAXIMUM={params.MAXIMUM}
|
||||||
|
{% endif %}
|
||||||
|
{% elif params.MINIMUM is defined %}
|
||||||
|
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={params.MINIMUM}
|
||||||
|
{% if printer["gcode_macro PRINT_START"].force_outer_bed_heater or not printer["gcode_macro PRINT_START"].small_print %}
|
||||||
|
TEMPERATURE_WAIT SENSOR="heater_generic heater_bed_outer" MINIMUM={params.MINIMUM}
|
||||||
|
{% endif %}
|
||||||
|
{% elif params.MAXIMUM is defined %}
|
||||||
|
TEMPERATURE_WAIT SENSOR=heater_bed MAXIMUM={params.MAXIMUM}
|
||||||
|
{% if printer["gcode_macro PRINT_START"].force_outer_bed_heater or not printer["gcode_macro PRINT_START"].small_print %}
|
||||||
|
TEMPERATURE_WAIT SENSOR="heater_generic heater_bed_outer" MAXIMUM={params.MAXIMUM}
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
RESPOND TYPE=error MSG="Error on 'BED_TEMPERATURE_WAIT': missing MINIMUM or MAXIMUM."
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro M140] ; redefine the existing M140
|
||||||
|
rename_existing: M99140
|
||||||
|
gcode:
|
||||||
|
{% if params.S is defined %}
|
||||||
|
SET_BED_TEMPERATURE TARGET={params.S|int}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro M141]
|
||||||
|
gcode:
|
||||||
|
{% if params.S is defined %}
|
||||||
|
SET_HEATER_TEMPERATURE HEATER=heater_bed_outer TARGET={params.S|int}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro M190]
|
||||||
|
rename_existing: M99190
|
||||||
|
gcode:
|
||||||
|
{% if params.S is defined %}
|
||||||
|
SET_BED_TEMPERATURE TARGET={params.S|int}
|
||||||
|
BED_TEMPERATURE_WAIT MINIMUM={(params.S|int)-2} MAXIMUM={(params.S|int)+4}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[gcode_macro M191]
|
||||||
|
gcode:
|
||||||
|
{% if params.S is defined %}
|
||||||
|
SET_HEATER_TEMPERATURE HEATER=heater_bed_outer TARGET={params.S|int}
|
||||||
|
TEMPERATURE_WAIT SENSOR="heater_generic heater_bed_outer" MINIMUM={(params.S|int)-2} MAXIMUM={(params.S|int)+4}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# Probe Config
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[probe]
|
||||||
|
pin:^PA11
|
||||||
|
x_offset: -24.25
|
||||||
|
y_offset: 20.45
|
||||||
|
#z_offset = 0.0
|
||||||
|
speed: 6.0
|
||||||
|
samples: 3
|
||||||
|
samples_result: median
|
||||||
|
sample_retract_dist: 3.0
|
||||||
|
samples_tolerance: 0.025
|
||||||
|
samples_tolerance_retries: 3
|
||||||
|
|
||||||
|
[bed_mesh]
|
||||||
|
speed:150
|
||||||
|
horizontal_move_z:5
|
||||||
|
mesh_min: 10,21
|
||||||
|
mesh_max: 210,211
|
||||||
|
probe_count:11,11
|
||||||
|
algorithm:bicubic
|
||||||
|
bicubic_tension:0.2
|
||||||
|
mesh_pps: 4, 4
|
||||||
|
fade_start: 1.0
|
||||||
|
fade_end: 10.0
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# LED Config
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[output_pin Frame_Light]
|
||||||
|
pin: PB7
|
||||||
|
|
||||||
|
[output_pin Part_Light]
|
||||||
|
pin: PC7
|
||||||
|
|
||||||
|
[gcode_macro Frame_Light_ON]
|
||||||
|
gcode:
|
||||||
|
SET_PIN PIN=Frame_Light VALUE=1
|
||||||
|
|
||||||
|
[gcode_macro Frame_Light_OFF]
|
||||||
|
gcode:
|
||||||
|
SET_PIN PIN=Frame_Light VALUE=0
|
||||||
|
|
||||||
|
[gcode_macro Part_Light_ON]
|
||||||
|
gcode:
|
||||||
|
SET_PIN PIN=Part_Light VALUE=1
|
||||||
|
|
||||||
|
[gcode_macro Part_Light_OFF]
|
||||||
|
gcode:
|
||||||
|
SET_PIN PIN=Part_Light VALUE=0
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# Beeper Config
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[pwm_cycle_time beeper]
|
||||||
|
pin: PA2
|
||||||
|
value: 0
|
||||||
|
shutdown_value: 0
|
||||||
|
cycle_time: 0.0005 ; Default PWM frequency: 2 kHz
|
||||||
|
|
||||||
|
[gcode_macro M300]
|
||||||
|
gcode:
|
||||||
|
{% set S = params.S|default(2000)|int %} ; Set frequency (S), default to 2 kHz if omitted or invalid
|
||||||
|
{% set P = params.P|default(100)|int %} ; Set duration (P), default to 100ms if omitted or invalid
|
||||||
|
SET_PIN PIN=beeper VALUE=0.8 CYCLE_TIME={ 1.0/S if S > 0 else 1 } ; Activate the beeper at a 80% duty cycle
|
||||||
|
G4 P{P} ; Hold the beep for the specified duration
|
||||||
|
SET_PIN PIN=beeper VALUE=0 ; Turn off the beeper
|
||||||
|
|
||||||
|
[gcode_macro PAUSE_TUNE]
|
||||||
|
gcode:
|
||||||
|
M300 S784 P300
|
||||||
|
M300 S587 P600
|
||||||
|
|
||||||
|
[gcode_macro END_TUNE]
|
||||||
|
gcode:
|
||||||
|
M300 S392 P250
|
||||||
|
M300 S494 P250
|
||||||
|
M300 S587 P250
|
||||||
|
M300 S523 P300
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# Fan & Temp Monitoring Config
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[fan]
|
||||||
|
pin: PC9
|
||||||
|
|
||||||
|
[controller_fan heatbreak+mainboard_fan]
|
||||||
|
pin: PA8
|
||||||
|
fan_speed: 1.0
|
||||||
|
idle_speed: 0.5
|
||||||
|
idle_timeout: 43200 ; 50% speed for 12h then OFF
|
||||||
|
shutdown_speed: 1
|
||||||
|
heater: extruder, heater_bed, heater_bed_outer
|
||||||
|
stepper: stepper_x, stepper_y, stepper_z, extruder
|
||||||
|
|
||||||
|
[delayed_gcode start_fan_at_idle_speed]
|
||||||
|
initial_duration: 5. ; 5s wait after boot
|
||||||
|
gcode:
|
||||||
|
# Gcode Hack to trigger the mainboard fan from printer boot
|
||||||
|
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=1 ; bed heat to 1degC
|
||||||
|
G4 P2000 ; wait 2s
|
||||||
|
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=0 ; bed heat off
|
||||||
|
|
||||||
|
[temperature_sensor RockchipHost]
|
||||||
|
sensor_type: temperature_host
|
||||||
|
min_temp: 10
|
||||||
|
max_temp: 80
|
||||||
|
|
||||||
|
[temperature_sensor STM32MCU]
|
||||||
|
sensor_type: temperature_mcu
|
||||||
|
min_temp: 10
|
||||||
|
max_temp: 85
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# Homing & Levelling Config/Macros
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[gcode_macro CG28]
|
||||||
|
gcode:
|
||||||
|
{% if "xyz" not in printer.toolhead.homed_axes %}
|
||||||
|
G28
|
||||||
|
{% else %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
[safe_z_home]
|
||||||
|
home_xy_position: 141.75,97.05
|
||||||
|
speed: 100
|
||||||
|
z_hop: 10
|
||||||
|
z_hop_speed: 5
|
||||||
|
|
||||||
|
[axis_twist_compensation]
|
||||||
|
calibrate_start_x: 30
|
||||||
|
calibrate_end_x: 210
|
||||||
|
calibrate_y: 117.5
|
||||||
|
|
||||||
|
[gcode_macro Axis_Twist_Comp_Tune]
|
||||||
|
gcode:
|
||||||
|
CG28
|
||||||
|
AXIS_TWIST_COMPENSATION_CALIBRATE
|
||||||
|
|
||||||
|
[screws_tilt_adjust]
|
||||||
|
screw1: 56.75, 182.05
|
||||||
|
screw1_name: rear left screw
|
||||||
|
screw2: 56.75, 12.05
|
||||||
|
screw2_name: front left screw
|
||||||
|
screw3: 226.75, 12.05
|
||||||
|
screw3_name: front right screw
|
||||||
|
screw4: 226.75, 182.05
|
||||||
|
screw4_name: rear right screw
|
||||||
|
horizontal_move_z: 5
|
||||||
|
speed: 150
|
||||||
|
screw_thread: CW-M4
|
||||||
|
|
||||||
|
[gcode_macro Bed_Level_Screws_Tune]
|
||||||
|
gcode:
|
||||||
|
BED_MESH_CLEAR
|
||||||
|
{% set current = printer.heater_bed.target|round(0) %}
|
||||||
|
{% set target = current or 60 %}
|
||||||
|
{% if current == 0 %}
|
||||||
|
RESPOND PREFIX="Bed_Level_Screws_Tune" MSG="No bed target, heating to {target} °C"
|
||||||
|
SET_BED_TEMPERATURE TARGET={target}
|
||||||
|
{% else %}
|
||||||
|
RESPOND PREFIX="Bed_Level_Screws_Tune" MSG="Waiting for bed to reach {target} °C"
|
||||||
|
{% endif %}
|
||||||
|
BED_TEMPERATURE_WAIT MINIMUM={target - 2} MAXIMUM={target + 5}
|
||||||
|
CG28
|
||||||
|
SCREWS_TILT_CALCULATE
|
||||||
|
|
||||||
|
[gcode_macro Calibrate_Probe_Z_Offset]
|
||||||
|
gcode:
|
||||||
|
CG28
|
||||||
|
PROBE_CALIBRATE
|
||||||
|
|
||||||
|
[gcode_macro Auto_Full_Bed_Level]
|
||||||
|
gcode:
|
||||||
|
RESPOND PREFIX="info" MSG="Running Custom Bed Leveling Macro"
|
||||||
|
BED_MESH_CLEAR
|
||||||
|
SET_BED_TEMPERATURE TARGET=60
|
||||||
|
BED_TEMPERATURE_WAIT MINIMUM=58 MAXIMUM=65
|
||||||
|
CG28
|
||||||
|
BED_MESH_CALIBRATE
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# PID Tuning Macros
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[gcode_macro PID_Tune_EXTRUDER]
|
||||||
|
gcode:
|
||||||
|
{% set temperature = params.TEMPERATURE|default(210) %}
|
||||||
|
CG28
|
||||||
|
M106 S255
|
||||||
|
PID_CALIBRATE HEATER=extruder TARGET={temperature}
|
||||||
|
SAVE_CONFIG
|
||||||
|
|
||||||
|
[gcode_macro PID_Tune_BED]
|
||||||
|
gcode:
|
||||||
|
{% set temperature = params.TEMPERATURE|default(60) %}
|
||||||
|
CG28
|
||||||
|
M106 S255 ;Sets Print Fans to 100%
|
||||||
|
PID_CALIBRATE HEATER=heater_bed TARGET={temperature}
|
||||||
|
SAVE_CONFIG
|
||||||
|
|
||||||
|
[gcode_macro PID_Tune_Outer_BED]
|
||||||
|
gcode:
|
||||||
|
{% set temperature = params.TEMPERATURE|default(60) %}
|
||||||
|
G28
|
||||||
|
M106 S255 ;Sets Print Fans to 100%
|
||||||
|
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={temperature} ;Heats Inner Zone at the same time for better tuning
|
||||||
|
PID_CALIBRATE HEATER=heater_bed_outer TARGET={temperature}
|
||||||
|
SAVE_CONFIG
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# SPI Accelerometer Config
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[mcu rpi]
|
||||||
|
serial: /tmp/klipper_host_mcu
|
||||||
|
|
||||||
|
#[adxl345]
|
||||||
|
#cs_pin: rpi:None
|
||||||
|
#spi_bus: spidev0.2
|
||||||
|
|
||||||
|
#[resonance_tester]
|
||||||
|
#accel_chip: adxl345
|
||||||
|
#probe_points:
|
||||||
|
# 100, 100, 20
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
# Input Shaper Config
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[input_shaper]
|
||||||
|
shaper_type_x: mzv
|
||||||
|
shaper_freq_x: 111.6
|
||||||
|
shaper_type_y: mzv
|
||||||
|
shaper_freq_y: 32.4
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
[include user_settings.cfg] ; Users custom macros
|
||||||
|
|
||||||
|
|
||||||
|
#############################################################################
|
||||||
|
|
||||||
|
#*# <---------------------- SAVE_CONFIG ---------------------->
|
||||||
|
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
|
||||||
|
#*#
|
||||||
|
#*# [bed_mesh default]
|
||||||
|
#*# version = 1
|
||||||
|
#*# points =
|
||||||
|
#*# 0.060000, 0.040000, 0.035000, 0.032500, 0.032500, 0.047500, 0.057500, 0.075000, 0.087500, 0.092500, 0.110000
|
||||||
|
#*# 0.050000, 0.035000, 0.010000, 0.002500, 0.007500, 0.022500, 0.022500, 0.040000, 0.045000, 0.062500, 0.050000
|
||||||
|
#*# 0.042500, 0.007500, 0.002500, -0.010000, -0.015000, -0.002500, 0.000000, 0.005000, 0.010000, 0.017500, 0.032500
|
||||||
|
#*# 0.017500, 0.000000, -0.030000, -0.035000, -0.017500, -0.002500, -0.010000, -0.005000, -0.012500, 0.010000, 0.007500
|
||||||
|
#*# 0.015000, -0.015000, -0.045000, -0.047500, -0.030000, -0.020000, -0.025000, -0.027500, -0.030000, -0.020000, 0.007500
|
||||||
|
#*# 0.005000, -0.010000, -0.045000, -0.047500, -0.025000, -0.002500, -0.010000, -0.017500, -0.017500, 0.007500, 0.010000
|
||||||
|
#*# 0.020000, -0.005000, -0.030000, -0.030000, -0.015000, -0.005000, -0.010000, -0.010000, -0.012500, -0.002500, 0.017500
|
||||||
|
#*# 0.022500, 0.017500, -0.007500, -0.007500, 0.007500, 0.022500, 0.012500, 0.015000, 0.007500, 0.030000, 0.025000
|
||||||
|
#*# 0.017500, 0.000000, -0.005000, -0.010000, -0.005000, 0.010000, 0.010000, 0.012500, 0.015000, 0.022500, 0.037500
|
||||||
|
#*# -0.002500, 0.005000, -0.010000, -0.015000, -0.010000, 0.010000, 0.010000, 0.020000, 0.025000, 0.045000, 0.042500
|
||||||
|
#*# -0.007500, -0.015000, -0.015000, -0.010000, -0.007500, 0.007500, 0.015000, 0.030000, 0.042500, 0.060000, 0.077500
|
||||||
|
#*# x_count = 11
|
||||||
|
#*# y_count = 11
|
||||||
|
#*# mesh_x_pps = 4
|
||||||
|
#*# mesh_y_pps = 4
|
||||||
|
#*# algo = bicubic
|
||||||
|
#*# tension = 0.2
|
||||||
|
#*# min_x = 10.0
|
||||||
|
#*# max_x = 210.0
|
||||||
|
#*# min_y = 21.0
|
||||||
|
#*# max_y = 211.0
|
||||||
|
#*#
|
||||||
|
#*# [probe]
|
||||||
|
#*# z_offset = 1.130
|
||||||
Reference in New Issue
Block a user