Skip to content

Instantly share code, notes, and snippets.

@SrPhilippe
Created November 15, 2023 21:41
Show Gist options
  • Save SrPhilippe/53a1492852fd427c6493cb619a9d6638 to your computer and use it in GitHub Desktop.
Save SrPhilippe/53a1492852fd427c6493cb619a9d6638 to your computer and use it in GitHub Desktop.
This file was requested by a reddit fella
####################################################################################
# Machine type: NEPTUNE 4
# Current configuration version: V1.3
# Date:2023-11-7
####################################################################################
# 本产品(Neptune 4/4pro/4plus/4max)使用自定义的klipper固件,不支持用户自行
# 更新官方Klipper/Fluidd/Moonraker,否则会导致机器无法正常使用。如果
# 您希望自行DIY,是这方面的专家或者对这方面感兴趣,我们建议先自备烧
# 录镜像的工具,以防止意外导致机器无法正常使用时可以进行恢复,烧录镜像
# 教程请联系售后支持团队获取,感谢您的配合!
####################################################################################
# This product (Neptune 4/4pro/4plus/4max) adopts Klipper firmware
# and does not support users to update the official klipper/fluidd
# /moonraker by themselves, otherwise the machine will not work properly.
# If you want to DIY and are an expert or interested in this field,
# we recommend that you prepare your own tools for burning images so
# that you can restore them if problems arise. Please contact after-sales
# support team for tutorials on burning images. Thank you for your cooperation!
####################################################################################
# This file contains common pin mappings for ZNP-K1-V1.0
# boards. To use this config, the firmware should be compiled for the
# STM32F402. When running "make menuconfig", enable "extra low-level
# configuration setup", select the 32KiB bootloader, and serial (on
# USART1 PA10/PA9) communication.
# The "make flash" command does not work on the ZN-K1-V1.0. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "elegoo_k1.bin" on an SD card and then restart the ZNP-K1-V1.0
# with that SD card.
# See docs/Config_Reference.md for a description of parameters.
####################################################################################
[include plr.cfg]
[mcu]
# The hardware use USART1 PA10/PA9 connect to RK3328
serial: /dev/ttyS0
restart_method: command
[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
position_endstop:-4
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:0
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 ## PB12 for Z-max; endstop have'!' is NO
## 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_endstop:-5
position_max: 268
position_min: -5
homing_speed: 8
homing_retract_dist: 5
second_homing_speed: 3
[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 : 26.213
# pid_ki : 1.304
# pid_kd : 131.721
pressure_advance: 0.020
pressure_advance_smooth_time: 0.005
instantaneous_corner_velocity: 2.5
max_extrude_only_distance: 300
max_extrude_only_velocity:60
max_extrude_only_accel:5000
max_extrude_cross_section: 99
min_extrude_temp:0
[verify_heater extruder]
max_error: 120
check_gain_time: 30
hysteresis: 10
heating_gain: 2
[heater_bed]
heater_pin:PB10
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: PA0
max_power: 1.0
control = watermark
min_temp: 0
max_temp: 120
[verify_heater heater_bed]
max_error: 120
check_gain_time: 120
hysteresis: 10
heating_gain: 1
[respond]
default_type: echo
default_prefix: echo:
[virtual_sdcard]
path: ~/printer_data/gcodes
on_error_gcode:
# test OK
G91
G1 Z25 F900
G90
TURN_OFF_HEATERS
M106 S100
M84 X Y E
M300 P10000 S1
G4 P300
M300
M300
M300
M300
M300
M300
M300
M300
M300
M300
M300
#####################################################################
# Macros START / END / PAUSE / RESUME / CANCEL
#####################################################################
[gcode_macro PRINT_START]
gcode:
SAVE_VARIABLE VARIABLE=was_interrupted VALUE=True
G92 E0
BED_MESH_CLEAR
G90
BED_MESH_PROFILE LOAD=11
CLEAR_PAUSE
M117 Printing
[gcode_macro PRINT_END]
gcode:
SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False
RUN_SHELL_COMMAND CMD=clear_plr
clear_last_file
{% set RUN_VELOCITY = printer.configfile.settings['printer'].max_velocity|float %}
{% set RUN_ACCEL = printer.configfile.settings['printer'].max_accel|float %}
{% set RUN_DECEL = printer.configfile.settings['printer'].max_accel_to_decel|float %}
SET_VELOCITY_LIMIT VELOCITY={RUN_VELOCITY} ACCEL={RUN_ACCEL} ACCEL_TO_DECEL={RUN_DECEL}
{% set z = params.Z|default(100)|int %}
{% if (printer.gcode_move.position.z+5) < z %} # If the current gcode-Z position is less than the maximum limit position
G90 # absolute positioning
G1 Z{z+5} F6000 # park nozzle at rear
{% endif %}
TURN_OFF_HEATERS
M107
G1 X115 Y230 # Present print
M84 X Y E
[pause_resume]
[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
gcode:
# Parameters
{% set z = params.Z|default(10)|int %} # z hop amount
{% set e = params.E|default(1) %}
{% if printer['pause_resume'].is_paused|int == 0 %}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} # set z hop variable for reference in resume macro
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} # set hotend temp variable for reference in resume macro
# SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0 # disable filament sensor
SAVE_GCODE_STATE NAME=PAUSE # save current print position for resume
BASE_PAUSE # pause print
{% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} # check that zhop doesn't exceed z max
G91 # relative positioning
G1 Z{z} F900 # raise Z up by z hop amount
{% else %}
# { action_respond_info("Pause zhop exceeds maximum Z height.") } # if z max is exceeded, show message and set zhop value for resume to 0
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0
{% endif %}
G1 E-{e} F2100
SAVE_GCODE_STATE NAME=PAUSEPARK
G90 # absolute positioning
G1 X-4 Y0 F6000 ; park toolhead at front center
#M104 S0 # turn off hotend
SET_IDLE_TIMEOUT TIMEOUT=43200 # set timeout to 12 hours
{% endif %}
[gcode_macro RESUME]
rename_existing: BASE_RESUME
variable_zhop: 0
variable_etemp: 0
variable_saved_extruder_temp: 0
variable_saved_x: 0.0
variable_saved_y: 0.0
variable_saved_z: 0.0
variable_saved_e: 0.0
variable_zhop: 0
variable_etemp: 0
gcode:
# Parameters
{% set e = params.E|default(2.5)|int %} ; hotend prime amount (in mm)
{% if printer['pause_resume'].is_paused|int == 1 %}
#SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1 ; enable filament sensor
#INITIAL_RGB ; reset LCD color
SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value
{% if etemp > 0 %}
M109 S{etemp|int} ; wait for hotend to heat back up
{% endif %}
RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 ; go back to parked position in case toolhead was moved during pause (otherwise the return zhop can error)
G91 ; relative extruder positioning
M83 ; restore position
{% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %}
G1 Z{zhop * -1} E{e} F900 ; prime nozzle by E, lower Z back down
{% else %}
G1 Z{zhop * -1} F900 ; lower Z back down without priming (just in case we are testing the macro with cold hotend)
{% endif %}
M400
RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60
BASE_RESUME ; resume print
{% endif %} # resume print
[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
gcode:
SAVE_VARIABLE VARIABLE=was_interrupted VALUE=False
RUN_SHELL_COMMAND CMD=clear_plr
clear_last_file
{% set RUN_VELOCITY = printer.configfile.settings['printer'].max_velocity|float %}
{% set RUN_ACCEL = printer.configfile.settings['printer'].max_accel|float %}
{% set RUN_DECEL = printer.configfile.settings['printer'].max_accel_to_decel|float %}
SET_VELOCITY_LIMIT VELOCITY={RUN_VELOCITY} ACCEL={RUN_ACCEL} ACCEL_TO_DECEL={RUN_DECEL}
{% set z = params.Z|default(100)|int %}
{% set x_park = params.X|default(printer.toolhead.axis_minimum.x+5)|int %}
{% set y_park = params.Y|default(printer.toolhead.axis_maximum.y-5)|int %}
SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout}
SDCARD_RESET_FILE
M400
G91
M83
G1 E-10.0 F1200
TURN_OFF_HEATERS
M107
{% if (printer.gcode_move.position.z+5) < z %}
G90
G0 X{x_park} Y{y_park} Z{z+5} F6000
{% endif %}
{%if (printer.gcode_move.position.z+5) >= z %}
{%if (printer.gcode_move.position.z+5) < printer.toolhead.axis_maximum.z %}
G91
G1 Z5 F300
G90
G0 X{x_park} Y{y_park} F6000
{% else %}
G90
G0 X{x_park} Y{y_park} Z{printer.toolhead.axis_maximum.z} F6000
{% endif %}
{% endif %}
M84 X Y E
[filament_switch_sensor fila]
pause_on_runout: True
runout_gcode:
SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1
insert_gcode:
event_delay: 3.0
pause_delay: 1.0
switch_pin: PA12
##############################################################
#fan for printed model FAN0
[fan]
pin: PC9
#fan for hotend FAN1
#[heater_fan fan1]
#pin: PA8
#shutdown_speed: 1
[controller_fan controller_fan1]
pin: PA8
fan_speed: 1.0
idle_timeout: 900
[printer]
kinematics:cartesian
max_velocity: 500
max_accel: 5000
max_accel_to_decel: 2500
max_z_velocity: 20
max_z_accel: 100
square_corner_velocity: 9.0
[input_shaper]
shaper_freq_x: 66.66
shaper_freq_y: 42.05
shaper_type_x: mzv
shaper_type_y: ei
#damping_ratio_x: 0.1
#damping_ratio_y: 0.1
####################################################################
# Homing and Gantry Adjustment Routines
#####################################################################
[idle_timeout]
timeout: 3600
gcode:
{% if printer.pause_resume.is_paused %}
{action_respond_info("Extruder powered down on idle timeout.")}
SET_GCODE_VARIABLE MACRO=resume VARIABLE=saved_extruder_temp VALUE="{
printer[printer.toolhead.extruder].target}"
M104 S0; Turn off extruder but leave the bed on.
{% else %}
M104 S0; Turn off extruder but leave the bed on.
M84 E
{% endif %}
[safe_z_home]
home_xy_position: 141.75,97.05
speed: 200
z_hop: 10
z_hop_speed: 5
[gcode_macro G29]
gcode:
M400
BED_MESH_CLEAR
G28
BED_MESH_CALIBRATE profile=11 mesh_min=10,21 mesh_max=200,220 probe_count=11 algorithm=bicubic
M400
G4 P2000
G91
G1 Z5 F300
G90
G28 Z
G1 X117.5 Y117.5 F12000
G1 Z0 F300
#####################################################################
# Screw tilt adjust / Bed screws
#####################################################################
[screws_tilt_adjust] # Gives the palpation values on the bed and indicates the changes to be made.
screw1: 56.75, 12.05
screw1_name: front left screw
screw2: 226.75, 12.05
screw2_name: front right screw
screw3: 226.75, 182.05
screw3_name: rear right screw
screw4: 56.75, 182.05
screw4_name: rear left screw
horizontal_move_z: 10.0
speed: 150.0
screw_thread: CW-M4
[bed_screws] # Place the nozzle at the screws to make manual adjustments
screw1: 32.5, 32.5
screw1_name: front left screw
screw2: 202.5, 32.5
screw2_name: front right screw
screw3: 202.5, 202.5
screw3_name: rear right screw
screw4: 32.5, 202.5
screw4_name: rear left screw
horizontal_move_z: 10.0
speed: 150.0
#####################################################################
# Probe
#####################################################################
[probe]
pin:^PA11
x_offset: -24.25
y_offset: 20.45
z_offset: 0.0
speed: 10.0
samples: 2
samples_result: median
sample_retract_dist: 3.0
samples_tolerance: 0.05
samples_tolerance_retries: 5
[bed_mesh]
speed:500
horizontal_move_z:10
mesh_min:10,21
mesh_max:210,211
probe_count:6,6
algorithm:bicubic
bicubic_tension:0.2
mesh_pps: 2, 2
fade_start:5.0
fade_end:30.0
#####################################################################
# LED Control
#####################################################################
[output_pin caselight]
pin: PB7
pwm: false
shutdown_value:0
value:0.0
[output_pin caselight1]
pin: PC7
pwm: false
shutdown_value:0
value:0.0
[gcode_macro FLASHLIGHT_ON]
description: Turn on Hotend LEDs
gcode:
SET_PIN PIN=caselight VALUE=1
[gcode_macro FLASHLIGHT_OFF]
description: Turn off Hotend LEDs
gcode:
SET_PIN PIN=caselight VALUE=0
[gcode_macro MODLELIGHT_ON]
description: Turn on Logo LEDs
gcode:
SET_PIN PIN=caselight1 VALUE=1
[gcode_macro MODLELIGHT_OFF]
description: Turn off Logo LEDs
gcode:
SET_PIN PIN=caselight1 VALUE=0
#####################################################################
# Temperature
#####################################################################
[temperature_sensor mcu_temp]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100
[temperature_sensor Host]
sensor_type: temperature_host
min_temp: 10
max_temp: 100
########################################
# TMC UART configuration
########################################
[tmc2209 stepper_x]
uart_pin: PB9
# run_current: 0.55
run_current: 1.0
hold_current: 0.8
interpolate: True
# interpolate: False
stealthchop_threshold:0
# stealthchop_threshold:999999
[tmc2209 stepper_y]
uart_pin: PD2
# run_current: 0.55
run_current: 1.1
hold_current: 0.8
interpolate: True
# interpolate: False
stealthchop_threshold:0
# stealthchop_threshold:999999
[tmc2209 stepper_z]
uart_pin: PC5
run_current: 0.8
hold_current: 0.8
interpolate: True
# interpolate: False
stealthchop_threshold:0
[tmc2209 extruder]
uart_pin: PC4
run_current: 0.8
hold_current: 0.5
interpolate: True
# interpolate: False
stealthchop_threshold: 0
[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 # an example
[force_move]
enable_force_move : true
[gcode_macro M109]
rename_existing: M99109
gcode:
#Parameters
{% if 'S' in params %}
{% set s = params.S|float %}
M104 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %}
{% if printer[printer.toolhead.extruder].temperature >= s-4 %}
M104 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %}
{% else %}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={s-4} MAXIMUM={s+10}
{% endif %}
{% else %}
M104 S0
{% endif %}
[display_status]
#####################################################################
# Macros Change Filament
#####################################################################
[gcode_macro M600]
description: Pause for color change
gcode:
#default_parameter_X: 10
#default_parameter_Y: 10
#default_parameter_Z: 10
{% set X = params.X|default(50)|float %}
{% set Y = params.Y|default(0)|float %}
{% set Z = params.Z|default(10)|float %}
SAVE_GCODE_STATE NAME=M600_state
PAUSE
G91
G1 E-.8 F2700
G1 Z{Z}
G90
G1 X{X} Y{Y} F3000
G91
G1 E-90 F1000
RESTORE_GCODE_STATE NAME=M600_state
#####################################################################
# Macros Load / Unload Filament
#####################################################################
[gcode_macro UNLOAD_FILAMENT] #unload filament
gcode:
G91
# G1 E10 F300
G1 E-80 F800
G90
[gcode_macro LOAD_FILAMENT] #load filament
gcode:
G91
G1 E20 F800
G1 E60 F300
G90
#####################################################################
# Macros PID
#####################################################################
[gcode_macro PID_EXTRUDER]
gcode:
G28
M106 S255
PID_CALIBRATE HEATER=extruder TARGET=220
SAVE_CONFIG
[gcode_macro PID_BED]
gcode:
G28
M106 S255
PID_CALIBRATE HEATER=heater_bed TARGET=60
SAVE_CONFIG
#####################################################################
# Other Macros
#####################################################################
[gcode_macro M17]
gcode:
{% if 'X' in params or 'Y' in params or 'Z' in params or 'E' in params %}
{% if 'X' in params %}
SET_STEPPER_ENABLE STEPPER=stepper_x enable=1
{% endif %}
{% if 'Y' in params %}
SET_STEPPER_ENABLE STEPPER=stepper_y enable=1
{% endif %}
{% if 'Z' in params %}
SET_STEPPER_ENABLE STEPPER=stepper_z enable=1
{% endif %}
{% if 'E' in params %}
SET_STEPPER_ENABLE STEPPER=extruder enable=1
{% endif %}
{% else %}
SET_STEPPER_ENABLE STEPPER=stepper_x enable=1
SET_STEPPER_ENABLE STEPPER=stepper_y enable=1
SET_STEPPER_ENABLE STEPPER=stepper_z enable=1
#SET_STEPPER_ENABLE STEPPER=extruder enable=1
{% endif %}
[gcode_macro M84]
rename_existing:M84.1
gcode:
{% if 'X' in params or 'Y' in params or 'Z' in params or 'E' in params %}
{% if 'X' in params %}
SET_STEPPER_ENABLE STEPPER=stepper_x enable=0
{% endif %}
{% if 'Y' in params %}
SET_STEPPER_ENABLE STEPPER=stepper_y enable=0
{% endif %}
{% if 'Z' in params %}
SET_STEPPER_ENABLE STEPPER=stepper_z enable=0
{% endif %}
{% if 'E' in params %}
SET_STEPPER_ENABLE STEPPER=extruder enable=0
{% endif %}
{% else %}
SET_STEPPER_ENABLE STEPPER=stepper_x enable=0
SET_STEPPER_ENABLE STEPPER=stepper_y enable=0
SET_STEPPER_ENABLE STEPPER=stepper_z enable=0
SET_STEPPER_ENABLE STEPPER=extruder enable=0
{% endif %}
[delayed_gcode KINEMATIC_POSITION]
initial_duration:3.0
gcode:
{% set s = 50 %}
SET_KINEMATIC_POSITION X=110
SET_KINEMATIC_POSITION Y=110
SET_KINEMATIC_POSITION Z=0
M201 X20000 Y20000
{% if printer[printer.toolhead.extruder].temperature > s
or printer[printer.toolhead.extruder].temperature < -10
or printer.heater_bed.temperature < -10 %}
G91
G1 X0.7 F15 ;If the target temperature is reached, use this command to start the fan.
G1 X-0.7 F15
G1 F180
G90
M84 X
{% endif %}
[gcode_macro M190]
rename_existing: M99190
gcode:
{% set s = (params.S|float,120)|min %}
{% if params.S is defined %}
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={s|int}
{% if printer.heater_bed.temperature <= s-2 %}
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={s-2} MAXIMUM={s+10}
G4 P20000
{% else %}
G4 P10000
{% endif %}
{% else %}
M140 S0
{% endif %}
[gcode_macro M140]
rename_existing: M99140
gcode:
{% set s = (params.S|float,120)|min %}
{% if params.S is defined %}
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={s|int}
{% else %}
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=0
{% endif %}
####################################################################
## G-code宏定义
#####################################################################
[gcode_macro M205]
description: Sets square corner velocity.
Usage: M205 [X<velocity>] [Y<velocity>]
gcode:
{% set max_square_corner_velocity = 30 %}
{% if 'X' in params or 'Y' in params %}
SET_VELOCITY_LIMIT SQUARE_CORNER_VELOCITY="{(params.X|default(0)|float, params.Y|default(0)|float,max_square_corner_velocity)|min}"
{% else %}
SET_VELOCITY_LIMIT
{% endif %}
[gcode_macro M203]
description: Sets maximum velocity.
Usage: M203 [X<velocity>] [Y<velocity>]
gcode:
{% if 'X' in params or 'Y' in params %}
{% set velocity = (params.X|default(params.Y)|float,
params.Y|default(params.X)|float,500)|min %}
SET_VELOCITY_LIMIT VELOCITY="{velocity}"
{% else %}
SET_VELOCITY_LIMIT
{% endif %}
# [gcode_macro m600]
# description: Pauses the current print.
# Usage: M600 [B<beeps>] [E<pos>] [L<pos>] [R<temp>] [U<pos>] [X<pos>] [Y<pos>]
# [Z<pos>]
# gcode:
# PAUSE P=2{% for k in params|select("in", "BEXYZ") %}{
# ' '~k~'="'~params[k]~'"'}{% endfor %}
[gcode_macro m204]
description: Sets maximum accelleration.
Usage: M204 [S<accel>] [P<accel> T<accel>]
rename_existing: M99204
gcode:
{% set max_accel = printer["gcode_macro m201"].max_accel %}
{% set accel = 0.0 %}
{% if 'S' in params %}
{% set accel = (params.S|float, max_accel)|min %}
{% elif 'P' in params %}
{% set accel = (params.P|float, params.T|default(params.P)|float,
max_accel)|min %}
{% endif %}
{% if accel %}
SET_VELOCITY_LIMIT ACCEL="{accel
}" ACCEL_TO_DECEL="{accel * 1}"
{% else %}
SET_VELOCITY_LIMIT
{% endif %}
[gcode_macro m201]
description: Sets maximum accelleration.
Usage: M201 [X<accel>] [Y<accel>]
variable_max_accel: 1.7976931348623157e+308
gcode:
{% if 'X' in params or 'Y' in params %}
{% set accel = (params.X|default(params.Y)|float,
params.Y|default(params.X)|float)|min %}
SET_GCODE_VARIABLE MACRO=m201 VARIABLE=max_accel VALUE="{accel}"
{% if accel < printer.toolhead.max_accel %}
SET_VELOCITY_LIMIT ACCEL="{accel
}" ACCEL_TO_DECEL="{accel * 1}"
{% endif %}
{% else %}
SET_VELOCITY_LIMIT
{% endif %}
################ Buzzer configuration ##################
[output_pin beeper]
pin: PA2
pwm: true
shutdown_value:0
value:0.0
[gcode_macro m300]
description: Emits and audible beep.
Usage: M300 [P<duration>] [S<frequency>]
gcode:
{% set settings = printer.configfile.settings %}
{% if "output_pin beeper" in printer %}
{% set P = (params.P|default(100)|int, 0)|max %}
{% set S = (params.S|default(1000)|int, 10000)|min %}
SET_PIN PIN=beeper VALUE={
settings["output_pin beeper"].scale|default(1.0) * 0.5
}{% if settings["output_pin beeper"].pwm %} CYCLE_TIME={
1.0 / S }{% endif %}
G4 P{P}
SET_PIN PIN=beeper VALUE=0
{% else %}
{action_respond_info(
"M300 is disabled. To enable create an [output_pin beeper] config.")}
{% endif %}
# Enable object exclusion
[exclude_object]
# Enable arcs support
[gcode_arcs]
resolution: 0.1
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 28.124
#*# pid_ki = 2.180
#*# pid_kd = 90.699
#*#
#*# [bed_mesh 11]
#*# version = 1
#*# points =
#*# -0.108750, -0.048750, -0.041250, -0.046250, -0.030000, 0.003750, 0.005000, -0.013750, -0.016250, -0.030000, -0.046250
#*# -0.111250, -0.066250, -0.048750, -0.055000, -0.040000, -0.007500, 0.000000, -0.020000, -0.033750, -0.041250, -0.072500
#*# -0.081250, -0.047500, -0.026250, -0.022500, -0.011250, 0.012500, 0.023750, 0.001250, -0.010000, -0.027500, -0.066250
#*# -0.077500, -0.050000, -0.033750, -0.035000, -0.022500, 0.005000, 0.007500, -0.015000, -0.013750, -0.035000, -0.078750
#*# -0.103750, -0.085000, -0.067500, -0.072500, -0.062500, -0.046250, -0.046250, -0.053750, -0.063750, -0.090000, -0.131250
#*# -0.097500, -0.070000, -0.046250, -0.061250, -0.052500, -0.033750, -0.023750, -0.036250, -0.036250, -0.051250, -0.095000
#*# -0.116250, -0.093750, -0.068750, -0.086250, -0.081250, -0.060000, -0.055000, -0.068750, -0.072500, -0.090000, -0.125000
#*# -0.112500, -0.091250, -0.087500, -0.088750, -0.087500, -0.063750, -0.061250, -0.077500, -0.082500, -0.098750, -0.122500
#*# -0.130000, -0.120000, -0.113750, -0.115000, -0.116250, -0.097500, -0.096250, -0.106250, -0.111250, -0.117500, -0.155000
#*# -0.151250, -0.121250, -0.128750, -0.135000, -0.132500, -0.106250, -0.100000, -0.105000, -0.107500, -0.106250, -0.102500
#*# -0.151250, -0.148750, -0.157500, -0.175000, -0.177500, -0.163750, -0.153750, -0.162500, -0.162500, -0.157500, -0.176250
#*# tension = 0.2
#*# min_x = 10.0
#*# algo = bicubic
#*# y_count = 11
#*# mesh_y_pps = 2
#*# min_y = 21.0
#*# x_count = 11
#*# max_y = 219.9
#*# mesh_x_pps = 2
#*# max_x = 200.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment