Untitled

mail@pastecode.io avatar
unknown
plain_text
2 months ago
22 kB
15
Indexable
Never
####################################################################################
# Machine type: NEPTUNE 4 MAX
# Current configuration version: V1.4
# Date:2023-11-17
####################################################################################
# 本产品(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-V2.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 ZNP-K1-V2.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-V2.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
endstop_pin:tmc2209_stepper_x:virtual_endstop
position_min: -2 
position_endstop: 0
position_max: 430
homing_speed:50
homing_retract_dist:0
homing_positive_dir:false

[stepper_y]
step_pin:PB4
dir_pin:PB3
enable_pin:!PC15
microsteps:16
rotation_distance: 40
full_steps_per_rotation:200
endstop_pin:tmc2209_stepper_y:virtual_endstop
position_min: -2
position_endstop:0 
position_max:430
homing_speed:50
homing_retract_dist:0
homing_positive_dir:false

[stepper_z]
step_pin:PC10
dir_pin:!PA13
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: 505
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.7086  #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: -80
max_temp: 330
heater_pin: PA7
sensor_type:NTC 100K MGB18-104F39050L32
sensor_pin: PA1
max_power: 1
control = pid
pid_kp = 25.989
pid_ki = 3.397
pid_kd = 49.705
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: 30
check_gain_time:10
hysteresis: 10
heating_gain: 2

[heater_bed]
heater_pin:PB10
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: PA0
max_power: 1.0
control = pid
pid_kp = 75.397
pid_ki = 0.823
pid_kd = 1727.531
min_temp: -80
max_temp: 120

[verify_heater heater_bed]
max_error: 120
check_gain_time:300
hysteresis: 10
heating_gain: 2

#[heater_fan fan1]
#pin: PC7
#shutdown_speed: 1

[controller_fan controller_fan1]
pin: PC7
fan_speed: 1.0
idle_timeout: 900


#fan for printed model FAN2
[fan]
pin: PB7

[fan_generic fan3]
pin: PC9

[fan_generic fan4]
pin: PA8

[fan_generic fan5]
pin: PA15


[printer]
kinematics:cartesian
max_velocity: 500
max_accel: 3000
max_accel_to_decel: 3000
max_z_velocity: 20
max_z_accel: 100
square_corner_velocity: 9.0


[input_shaper]
shaper_type_x = mzv
shaper_freq_x = 62.2
shaper_type_y = ei
shaper_freq_y = 30.0
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: 239.25,194.55 
speed: 200
z_hop: 10                 
z_hop_speed: 5


[gcode_macro G29]
gcode:
      M400
      BED_MESH_CLEAR
      G28
      BED_MESH_CALIBRATE profile=6 mesh_min=10,21 mesh_max=397,404 probe_count=6 algorithm=bicubic
      M400
      G4 P2000
      G91 
      G1 Z5 F300 
      G90
      G28 Z
      G1 X215 Y215 F12000
      G1 Z0 F300

#####################################################################
# 	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:200                
horizontal_move_z:10     
mesh_min:10,21           
mesh_max:397,404        
probe_count:6,6          
algorithm:bicubic
bicubic_tension:0.2
mesh_pps: 2, 2   
fade_start:5.0
fade_end:30.0  


#####################################################################
# LED Control
#####################################################################

[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


########################################
# TMC UART configuration
########################################

[tmc2209 stepper_x]
uart_pin: PB9
run_current: 1.0
hold_current: 0.8
interpolate: True
stealthchop_threshold:0
driver_SGTHRS:90
diag_pin:^PC0

[tmc2209 stepper_y]
uart_pin: PD2
run_current: 1.4
hold_current: 1.0
interpolate: True
stealthchop_threshold:0
driver_SGTHRS:80
diag_pin:^PB8

[tmc2209 stepper_z]
uart_pin: PC5
run_current: 0.8
interpolate: True
stealthchop_threshold: 0

[tmc2209 extruder]
uart_pin: PC4
run_current: 0.8
interpolate: True
stealthchop_threshold: 0

[mcu rpi]
serial: /tmp/klipper_host_mcu

[adxl345 x]
cs_pin: rpi:None
spi_bus: spidev0.0
axes_map:x,z,-y

[adxl345 y]
cs_pin: rpi:None
spi_bus: spidev0.1
axes_map:-x,-y,-z

[resonance_tester]
accel_chip_x: adxl345 x
accel_chip_y: adxl345 y
max_smoothing:0.15
min_freq: 5
max_freq: 90
accel_per_hz: 120
hz_per_sec: 2

probe_points:
    215, 215, 20  # an example

[force_move]
enable_force_move : true


[respond]
default_type: echo
default_prefix: echo:

[virtual_sdcard]
path: ~/gcode_files
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


########################################
# PRINT_START/CANCEL_PRINT/PAUSE/RESUME/filament_switch_sensor
########################################

[print_stats]

[gcode_move]

    
[gcode_macro PRINT_START]         
gcode:
    SAVE_VARIABLE VARIABLE=was_interrupted VALUE=True
	  G92 E0                                         
	  G90             
    SET_INPUT_SHAPER SHAPER_TYPE=ei 
    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}

    M220 S100
    M221 S100
    {% 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
    M84 X Y E


[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
      M220 S100
      M221 S100
      M400 							            ; wait for buffer to clear
      G91 							            ; relative positioning
      M83 							          ; zero the extruder
      G1 E-10.0 F1200 				      ; retract filament
      TURN_OFF_HEATERS
      M107 							            ; turn off fan
    {% if (printer.gcode_move.position.z+5) < z %}   ##如果当前gcode-Z位置小于最大极限位置
      G90 							            ; absolute positioning
      G0 X{x_park} Y{y_park} Z{z+5} F6000 				      ; park nozzle at rear
    {% endif %}
    {%if (printer.gcode_move.position.z+5) >= z %}
    {%if (printer.gcode_move.position.z+5) < printer.toolhead.axis_maximum.z %}
      G91 							            ; relative positioning
      G1 Z5 F300
      G90
      G0 X{x_park} Y{y_park} F6000 				      ; park nozzle at rear
      {% else %}
      G90
      G0 X{x_park} Y{y_park} Z{printer.toolhead.axis_maximum.z} F6000 				      ; park nozzle at rear
    {% endif %}
    {% endif %}
      M84 X Y E

[pause_resume]
recover_velocity: 50.0 

[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
gcode:
    M400 
    {% set z = params.Z|default(30)|int %}                                                   
    {% set E = (params.E|default(2))|float %}
    {% 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 %} 
                                                                                  
    {% if (printer.gcode_move.position.x) <= (x_park+1) and (printer.gcode_move.position.y) >= (y_park-1) %}
      M400 
    {% else %}
      {% set position = printer.gcode_move.gcode_position %}
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=saved_x VALUE="{position.x}"
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=saved_y VALUE="{position.y}"
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=saved_z VALUE="{position.z}"
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=saved_e VALUE="{E}"
        SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target}   
        SAVE_GCODE_STATE NAME=timelapse_state_a
        M83
        G91
      {% if (printer.gcode_move.position.z+5) <  printer.toolhead.axis_maximum.z  %} 
        G1 E-2 X3 Z1 F2100
        G1 Z4 F600
      {% endif %}
        SAVE_GCODE_STATE NAME=timelapse_state_b
        G90
      {% if (printer.gcode_move.position.z+5) < z %}
        G1 Z{z+5} X{x_park} Y{y_park} E-20 F6000 
      {% else %}
        G1 X{x_park} Y{y_park} E-20 F6000
      {% endif %}
        M400
        M25
        SET_IDLE_TIMEOUT TIMEOUT=600
        M400
    {% 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
gcode:
    M24
    {% set e = params.E|default(2)|int %}   
    SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout}
    {% if printer[printer.toolhead.extruder].temperature < etemp-4 %}   
      SET_HEATER_TEMPERATURE HEATER=extruder TARGET={etemp}   
      TEMPERATURE_WAIT SENSOR=extruder MINIMUM={etemp-4} MAXIMUM={etemp+10}   
    {% endif %} 
    SET_HEATER_TEMPERATURE HEATER=extruder TARGET={etemp}   
    M17 E
    G91
    M83
    G1 E100 F200	
    G4 P2000	
    G1 X20 F15000
    G1 X-20
    G1 X20
    G1 X-20
    G1 X20
    G1 X-20
    ;G1 E-2 F600
    G90
    G92 E{saved_e}
    RESTORE_GCODE_STATE NAME=timelapse_state_b MOVE=1 MOVE_SPEED=250
    RESTORE_GCODE_STATE NAME=timelapse_state_a MOVE=1 MOVE_SPEED=250 
    SAVE_GCODE_STATE NAME=timelapse_state_a
    SAVE_GCODE_STATE NAME=timelapse_state_b
    M400
    ;M24

[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

##############################################################

 
[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 %}
    


[gcode_macro M140]
rename_existing: M99140
gcode:
      {% set s = params.S|float %}
	    {% if params.S is defined %}
      {% if params.S|float >= 100 %}
	    SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=100
      {% else %}
      SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={params.S|int}
	    {% endif %} 
      {% endif %} 
	  
[gcode_macro M190]
rename_existing: M99190
gcode:
    {% if 'S' in params %}
        {% set s = (params.S|float,100)|min %}
        {% if params.S|float >= 20 %}
          {% if printer.heater_bed.temperature >= s-2 %}
          SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={s|int}
          TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={s-2} MAXIMUM={s+10}
          G4 P10000
          {% else %}
          SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={s|int}
          TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={s-2} MAXIMUM={s+10}
          G4 P20000
          {% endif %}
        {% else %}
          {% if printer.heater_bed.temperature >= s-2 %}
          SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={s|int}
          G4 P10000
          {% else %}
          SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={s|int}
          TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={s-2} MAXIMUM={s+10}
          G4 P10000
          {% endif %} 
        {% endif %} 
    {% else %}
      M140 S0
    {% endif %}


   
[display_status]


[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 X8000 Y8000
      {% 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 %}



####################################################################
##    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 * 0.5}"
  {% 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 %}
  
[gcode_arcs]

[exclude_object]
Leave a Comment