Hi guys, here is my config.
I’m using the original nozzle, CR-touch, CR-touch bracket.
printer.cfg
# This file contains pin mappings for the stock 2020 Creality Ender 3
# V2. To use this config, during "make menuconfig" select the
# STM32F103 with a "28KiB bootloader" and serial (on USART1 PA10/PA9)
# communication.
# If you prefer a direct serial connection, in "make menuconfig"
# select "Enable extra low-level configuration options" and select
# serial (on USART3 PB11/PB10), which is broken out on the 10 pin IDC
# cable used for the LCD module as follows:
# 3: Tx, 4: Rx, 9: GND, 10: VCC
# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must end in ".bin" and must not match the last filename
# that was flashed.
# See docs/Config_Reference.md for a description of parameters.
[include fluidd.cfg]
[include macro.cfg]
[stepper_x]
step_pin: PC2
dir_pin: PB9
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA5
position_endstop: 0
position_max: 255
homing_speed: 50
[stepper_y]
step_pin: PB8
dir_pin: PB7
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA6
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_z]
step_pin: PB6
dir_pin: !PB5
enable_pin: !PC3
microsteps: 16
rotation_distance: 8
endstop_pin: probe:z_virtual_endstop #^PA7
#position_endstop: 0.0
position_max: 250
position_min: -3
[extruder]
max_extrude_only_distance: 100.0
step_pin: PB4
dir_pin: PB3
enable_pin: !PC3
microsteps: 16
rotation_distance: 32.0 #34.406
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
#control: pid
# tuned for stock hardware with 200 degree Celsius target
#pid_Kp: 21.527
#pid_Ki: 1.063
#pid_Kd: 108.982
min_temp: 0
max_temp: 270
min_extrude_temp: 0
pressure_advance: 0.274
[heater_bed]
heater_pin: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
#control: pid
# tuned for stock hardware with 50 degree Celsius target
#pid_Kp: 54.027
#pid_Ki: 0.770
#pid_Kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: PA0
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[bltouch]
sensor_pin: ^PB1
control_pin: PB0
x_offset: -45.5
y_offset: -6
#z_offset: 1.35 #1.40
[safe_z_home]
home_xy_position: 117.5,117.5 # Change coordinates to the center of your print bed
z_hop: 10 # Move up 10mm z_hop_speed: 5
[bed_mesh]
speed: 120
horizontal_move_z: 5
mesh_min: 5, 5
mesh_max: 200, 200
probe_count: 5,5
algorithm: bicubic
fade_start: 1
fade_end: 10
fade_target: 0
[screws_tilt_adjust]
screw1_name: Middle
screw1: 155,122.5
screw2: 70.5,37.5
screw2_name: front left screw
screw3: 235,37.5
screw3_name: front right screw
screw4: 235,207.5
screw4_name: rear right screw
screw5: 70.5,207.5
screw5_name: rear left screw
horizontal_move_z: 10
speed: 50
screw_thread: CW-M4
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 26.196
#*# pid_ki = 1.648
#*# pid_kd = 104.130
#*#
#*# [bltouch]
#*# z_offset = 1.430
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 0.162500, 0.155000, 0.145000, 0.100000, 0.075000
#*# 0.137500, 0.167500, 0.165000, 0.097500, 0.047500
#*# 0.190000, 0.185000, 0.177500, 0.192500, 0.112500
#*# 0.207500, 0.245000, 0.242500, 0.192500, 0.120000
#*# 0.202500, 0.160000, 0.165000, 0.235000, 0.125000
#*# tension = 0.2
#*# min_x = 5.0
#*# algo = bicubic
#*# y_count = 5
#*# mesh_y_pps = 2
#*# min_y = 5.0
#*# x_count = 5
#*# max_y = 200.0
#*# mesh_x_pps = 2
#*# max_x = 200.0
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 74.295
#*# pid_ki = 1.457
#*# pid_kd = 947.264
macro.cfg
# ABL
[gcode_macro G29]
variable_parameter_AREA_START : 0,0
variable_parameter_AREA_END : 0,0
gcode:
BED_MESH_CLEAR
BED_MESH_CALIBRATE AREA_START={params.AREA_START} AREA_END={params.AREA_END}
G0 X150 Y150 Z150 F6000
# level gantry
[gcode_macro G34]
gcode:
Z_TILT_ADJUST
# Park toolhead
[gcode_macro M125]
gcode:
SAVE_GCODE_STATE NAME=parking
PLAY_SINGLE_FEEDBACK_SOUND
G91
G1 Z{params.ZLIFT|default(10)|int} F3000
G90
G1 X{params.XPOS|default(15)|int} Y{params.YPOS|default(15)|int} F3000
RESTORE_GCODE_STATE NAME=parking
# load filament. Slow feed filament into the gear, fast load to cold zone then slow load to nozzle.
[gcode_macro M701]
gcode:
SAVE_GCODE_STATE NAME=loading_filament
PLAY_SINGLE_FEEDBACK_SOUND
PRINT MSG="Loading Fil."
M83
G92 E0.0
MIN_TEMP_CHECK
G1 E{params.FEED_LENGTH|default(10)|int} F200 ; slow feed filament
G1 E{params.FAST_LOAD_LENGTH|default(50)|int} F2000 ; Fast load to cold zone
G1 E{params.SLOW_LOAD_LENGTH|default(50)|int} F100 ; Slow load to nozzle
G92 E0.0
PLAY_SINGLE_FEEDBACK_SOUND
PRINT MSG="Ready"
RESTORE_GCODE_STATE NAME=loading_filament
# Unload filament. Extrude a small amount, quick pull then slow pull
[gcode_macro M702]
gcode:
SAVE_GCODE_STATE NAME=unloading_filament
PLAY_SINGLE_FEEDBACK_SOUND
PRINT MSG="Unloading Fil."
MIN_TEMP_CHECK
G91 ; set relative
G1 E{params.FEED_LENGTH|default(10)|int} F100
G92 E0.0
G1 E-{params.FAST_UNLOAD_LENGTH|default(70)|int} F2000 ; fast unload
G92 E0.0
G1 E-{params.SLOW_UNLOAD_LENGTH|default(40)|int} F1000 ; slow unload
G92 E0.0
PLAY_SINGLE_FEEDBACK_SOUND
PRINT MSG="Ready"
RESTORE_GCODE_STATE NAME=unloading_filament
# filament change
[gcode_macro M600]
gcode:
PAUSE
PRINT MSG="Filament change!"
[gcode_macro M900]
gcode:
SET_PRESSURE_ADVANCE ADVANCE={params.K|default(0)|float}
[gcode_macro MIN_TEMP_CHECK]
gcode:
{% if printer.extruder.target != 0 %} # if there is a setpoint for extruder
{% if printer.extruder.temperature < printer.extruder.target %} # if not reached, heat
PLAY_LONG_FEEDBACK_SOUND
M109 S{printer.extruder.target|float}
{% endif %}
{% else %} # if no setpoint for extruder
PLAY_LONG_FEEDBACK_SOUND
M109 S{params.T|default(200)|float}
{% endif %}
PLAY_DOUBLE_FEEDBACK_SOUND
# START_PRINT EXTRUDER_TEMP={material_print_temperature_layer_0} BED_TEMP={material_bed_temperature_layer_0} AREA_START=%MINX%,%MINY% AREA_END=%MAXX%,%MAXY% FILAMENT_TYPE={material_type}
[gcode_macro START_PRINT]
variable_parameter_EXTRUDER_TEMP: 190
variable_parameter_BED_TEMP: 60
; gcode parameters for area bed mesh
variable_parameter_AREA_START : 0,0
variable_parameter_AREA_END : 0,0
variable_parameter_FILAMENT_TYPE : "PLA"
gcode:
CLEAR_PAUSE
M220 S100 ; reset feedrate
;SET_FILAMENT_SENSOR SENSOR=bear_ir ENABLE=1
{% if printer.homed_axes != "XYZ" %}
PRINT MSG="Homing..."
G28
PRINT MSG="Aligning Z..."
G34 ; level gantry
{% else %}
PRINT MSG="Homing..."
G28
{% endif %}
G90
G0 X90 Y90 Z50 F3000
SET_FAN_SPEED FAN=filter_fan SPEED=0.5 ; filter fan slow mode
SET_FAN_SPEED FAN=bed_fan SPEED=1.0 ; turn on bed fan
PRINT MSG="Waiting for temperature"
; preheat temp
M140 S{params.BED_TEMP|default(60)|float - 10}
M104 S150
; wait
M190 S{params.BED_TEMP|default(60)|float - 10}
; set real temp
M140 S{params.BED_TEMP|default(60)|float}
M104 S{params.EXTRUDER_TEMP|default(200)|float}
; wait
M190 S{params.BED_TEMP|default(60)|float}
M109 S{params.EXTRUDER_TEMP|default(200)|float}
M300
PRINT MSG="Homing Z..."
G28 Z ;re-home Z
;SET_GCODE_OFFSET Z=0.525
BED_MESH_CALIBRATE AREA_START={params.AREA_START|default("0,0")} AREA_END={params.AREA_END|default("0,0")}
;BED_MESH_PROFILE LOAD="default"
SET_FILAMENT_PROFILE TYPE={params.FILAMENT_TYPE|default("PLA")}
PRINT MSG="Prime Line"
G92 E0 ;Reset Extruder
G0 X-3 Y180 F3000 ; move outside print area
G1 Z0.2 F1000 ;Move to start position
G1 Y95 E9 F1000 ;Draw the first line
G1 Y85 F3000 ;Move to side a little
G1 Y0 E21 F1500.0 ;Draw the second line
G92 E0 ;Reset Extruder
G1 Z2.0 F1000 ;Move Z Axis up
M221 S93 ; Tunned flow
PRINT MSG="{printer.print_stats.filename}"
[gcode_macro END_PRINT]
gcode:
PRINT MSG="Done printing!"
M300
G91 ; relative
G1 E-2 F300
{% if printer.toolhead.position.z <= 60 %}
G90
G0 Z70 F3000
G91
{% else %}
G0 Z5 F3000
{% endif %}
G90 ; absolute pos
G1 X30 Y170 F3000
TURN_OFF_HEATERS ; heaters off
;M84 ; disable steppers
M107 ; fan off
BED_MESH_CLEAR
SET_FAN_SPEED FAN=filter_fan SPEED=1.0 ; filter fan max speed
UPDATE_DELAYED_GCODE ID=TURN_OFF_FILTER_FAN_TIMER DURATION=600 ; set timer to turn off after 10 mins
[gcode_macro CANCEL_PRINT]
rename_existing: CANCEL_PRINT_OLD
gcode:
PRINT MSG="Aborted!"
M300
G91 ; relative
G1 E-2 F300 ; retract
{% if printer.toolhead.position.z <= 60 %}
G90
G0 Z70 F3000
G91
{% else %}
G0 Z5 F3000
{% endif %}
G90
G0 X30 Y170 F3000 ; park toolhead
CLEAR_PAUSE
TURN_OFF_HEATERS
;M84 ; disable steppers
M107 ; fan off
BED_MESH_CLEAR
;SET_FILAMENT_SENSOR SENSOR=bear_ir ENABLE=1
CANCEL_PRINT_OLD
SDCARD_RESET_FILE
SET_FAN_SPEED FAN=filter_fan SPEED=1.0 ; filter fan max speed
UPDATE_DELAYED_GCODE ID=TURN_OFF_FILTER_FAN_TIMER DURATION=600 ; set timer to turn off after 10 mins
[gcode_macro DISABLE_XY_MOTOR]
gcode:
SET_STEPPER_ENABLE STEPPER=stepper_x ENABLE=0
SET_STEPPER_ENABLE STEPPER=stepper_y ENABLE=0
[gcode_macro M300]
gcode:
SET_PIN PIN=BEEPER_pin VALUE={params.S|default(100)|int}
G4 P{params.P|default(1000)|int}
SET_PIN PIN=BEEPER_pin VALUE=0
[gcode_macro RESUME]
rename_existing: RESUME_OLD
gcode:
G91
G92 E0 ;Reset Extruder
G1 E0.5 F300
G90
;SET_FILAMENT_SENSOR SENSOR=bear_ir ENABLE=1
RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1
PRINT MSG="{printer.print_stats.filename}"
RESUME_OLD
[gcode_macro PAUSE]
rename_existing: PAUSE_OLD
gcode:
SAVE_GCODE_STATE NAME=PAUSE_state
PAUSE_OLD
G91
G92 E0 ;Reset Extruder
G1 E-2 F300
M125 ; parking
;SET_FILAMENT_SENSOR SENSOR=bear_ir ENABLE=0
PRINT MSG="Paused!"
[gcode_macro PLAY_SINGLE_FEEDBACK_SOUND]
gcode:
M300 S100 P100
M300 S1 P100
[gcode_macro PLAY_DOUBLE_FEEDBACK_SOUND]
gcode:
M300 S100 P100
M300 S1 P100
M300 S100 P100
M300 S1 P100
[gcode_macro PLAY_LONG_FEEDBACK_SOUND]
gcode:
M300 S100 P1000
M300 S1 P100
[gcode_macro UPDATE_BED_MESH]
gcode:
PRINT MSG="Homing..."
G28
PRINT MSG="Aligning Z..."
G34
PRINT MSG="Probing..."
BED_MESH_CLEAR
BED_MESH_CALIBRATE
PRINT MSG="Saving..."
SAVE_CONFIG
[delayed_gcode TURN_OFF_PSU]
initial_duration: 0.
gcode:
{% if printer.idle_timeout.state == "Idle" or printer.idle_timeout.state == "Ready" %}
{% if printer.extruder.temperature < 50 %}
M84 ; disable steppers
{action_call_remote_method("set_device_power", device="PSU", state="off")}
{% else %}
UPDATE_DELAYED_GCODE ID=TURN_OFF_PSU DURATION=300
{% endif %}
{% endif %}
# run on startup
[delayed_gcode INIT]
initial_duration: 1
gcode:
PRINT MSG="Init..."
; enable auto power off
UPDATE_DELAYED_GCODE ID=TURN_OFF_PSU DURATION=1200
; set deault state of enclosure led
SAVE_VARIABLE VARIABLE=led_status VALUE=1
PRINT MSG="Ready"
# send custom msg
# OUTPUT_TARGET 0 : Both LCD and terminal , 1 : Terminal only , 2 : LCD only
[gcode_macro PRINT]
variable_parameter_MSG : ''
variable_parameter_OUTPUT_TARGET : 0
gcode:
{% if params.OUTPUT_TARGET|default(0)|int == 0 %}
M117 {params.MSG | string}
{ action_respond_info((params.MSG) | string)}
{% elif params.OUTPUT_TARGET|default(0)|int == 1 %}
{ action_respond_info((params.MSG) | string)}
{% else %}
M117 {params.MSG | string}
{% endif %}
[delayed_gcode TURN_OFF_FILTER_FAN_TIMER]
gcode:
{% if printer.idle_timeout.state == "Idle" %}
SET_FAN_SPEED FAN=filter_fan SPEED=0.0 ; turn off filter fan
{% endif %}
[gcode_macro DUMP_VARS]
gcode:
{% for name1 in printer %}
{% for name2 in printer[name1] %}
{% if (name1 != "configfile") and (name1 != "bed_mesh" and name2!="mesh_matrix") and (name1 != "mcu" and name2!="mcu_constants") and (name1 != "mcu" and name2!="last_stats") and (name2 != "color_data") and (andm1 != "gcode_macro") %}
{ action_respond_info("printer['%s'].%s = %s" % (name1, name2, printer[name1][name2])) }
{% else %}
{ action_respond_info("printer['%s'].%s = %s" % (name1, name2, "...")) }
{% endif %}
{% endfor %}
{% endfor %}
[gcode_macro AUTO_SAVE_CONFIG]
gcode:
{% if printer.configfile.save_config_pending %}
PRINT MSG="Saving config"
SAVE_CONFIG
{% endif %}
[gcode_macro TOGGLE_LED]
gcode:
{% if printer.save_variables.variables.led_status|int == 1 %}
SAVE_VARIABLE VARIABLE=led_status VALUE=0
SET_LED LED=led RED=0.13 GREEN=0.23 BLUE=0.23
{% else %}
SAVE_VARIABLE VARIABLE=led_status VALUE=1
SET_LED LED=led RED=0.58 GREEN=1 BLUE=1
{% endif %}
{ action_respond_info("Toggle led.")}
[gcode_macro CHECK_MESH]
gcode:
{% set ns = namespace(min_point = printer.bed_mesh.probed_matrix[0][0] ,max_point = printer.bed_mesh.probed_matrix[0][0]) %}
{% for data_row in printer.bed_mesh.probed_matrix %}
{% for probe_point in data_row %}
{% if ns.min_point > probe_point %}
{% set ns.min_point = probe_point %}
{% endif %}
{% if ns.max_point < probe_point %}
{% set ns.max_point = probe_point %}
{% endif %}
{% endfor %}
{% endfor %}
{ action_respond_info( "Mesh delta : " + (ns.max_point - ns.min_point) | string)}
{% if ns.max_point - ns.min_point > params.THRESHOLD|default(0.3)|float %}
{ action_respond_info("Mesh Error!")}
;CANCEL_PRINT
{% else %}
{ action_respond_info("Mesh OK!")}
{% endif %}
[gcode_macro BED_MESH_CALIBRATE]
rename_existing: BED_MESH_CALIBRATE_BASE
; gcode parameters
variable_parameter_AREA_START : 0,0
variable_parameter_AREA_END : 0,0
; the clearance between print area and probe area
variable_mesh_area_offset : 5.0
; number of sample per probe point
variable_probe_samples : 2
; minimum and maximum probe count
variable_min_probe_count : 3
; scale up the probe count, the vlaue should be 1.0 ~ < max/min probe count
variable_probe_count_scale_factor : 1.0
gcode:
{% if params.AREA_START and params.AREA_END %}
{% set bedMeshConfig = printer["configfile"].config["bed_mesh"] %}
{% set safe_min_x = bedMeshConfig.mesh_min.split(",")[0]|float %}
{% set safe_min_y = bedMeshConfig.mesh_min.split(",")[1]|float %}
{% set safe_max_x = bedMeshConfig.mesh_max.split(",")[0]|float %}
{% set safe_max_y = bedMeshConfig.mesh_max.split(",")[1]|float %}
{% set area_min_x = params.AREA_START.split(",")[0]|float %}
{% set area_min_y = params.AREA_START.split(",")[1]|float %}
{% set area_max_x = params.AREA_END.split(",")[0]|float %}
{% set area_max_y = params.AREA_END.split(",")[1]|float %}
{% set meshPointX = bedMeshConfig.probe_count.split(",")[0]|int %}
{% set meshPointY = bedMeshConfig.probe_count.split(",")[1]|int %}
{% set meshMaxPointX = meshPointX %}
{% set meshMaxPointY = meshPointY %}
{% if (area_min_x < area_max_x) and (area_min_y < area_max_y) %}
{% if area_min_x - mesh_area_offset >= safe_min_x %}
{% set area_min_x = area_min_x - mesh_area_offset %}
{% else %}
{% set area_min_x = safe_min_x %}
{% endif %}
{% if area_min_y - mesh_area_offset >= safe_min_y %}
{% set area_min_y = area_min_y - mesh_area_offset %}
{% else %}
{% set area_min_y = safe_min_y %}
{% endif %}
{% if area_max_x + mesh_area_offset <= safe_max_x %}
{% set area_max_x = area_max_x + mesh_area_offset %}
{% else %}
{% set area_max_x = safe_max_x %}
{% endif %}
{% if area_max_y + mesh_area_offset <= safe_max_y %}
{% set area_max_y = area_max_y + mesh_area_offset %}
{% else %}
{% set area_max_y = safe_max_y %}
{% endif %}
PRINT MSG="Set custom mesh area to ({area_min_x},{area_min_y}),({area_max_x},{area_max_y})" OUTPUT_TARGET=1
{% set meshPointX = (meshPointX * (area_max_x - area_min_x) / (safe_max_x - safe_min_x) * probe_count_scale_factor|float)|round(0)|int %}
{% if meshPointX < min_probe_count %}
{% set meshPointX = min_probe_count %}
{% endif %}
{% if meshPointX > meshMaxPointX %}
{% set meshPointX = meshMaxPointX %}
{% endif %}
{% set meshPointY = (meshPointY * (area_max_y -area_min_y ) / (safe_max_y - safe_min_y) * probe_count_scale_factor|float)|round(0)|int %}
{% if meshPointY < min_probe_count %}
{% set meshPointY = min_probe_count %}
{% endif %}
{% if meshPointY > meshMaxPointY %}
{% set meshPointY = meshMaxPointY %}
{% endif %}
PRINT MSG="Set custom mesh matrix to {meshPointX}x{meshPointY}" OUTPUT_TARGET=1
PRINT MSG="Mesh: {meshPointX}x{meshPointY}" OUTPUT_TARGET=2
BED_MESH_CALIBRATE_BASE mesh_min={area_min_x},{area_min_y} mesh_max={area_max_x},{area_max_y} probe_count={meshPointX},{meshPointY} samples={probe_samples|int}
{% else %}
PRINT MSG="Invalid custom mesh parameters, probe using default setting" OUTPUT_TARGET=1
PRINT MSG="Mesh: default" OUTPUT_TARGET=2
BED_MESH_CALIBRATE_BASE
{% endif %}
{% else %}
PRINT MSG="Invalid custom mesh parameters, probe using default setting" OUTPUT_TARGET=1
PRINT MSG="Mesh: default" OUTPUT_TARGET=2
BED_MESH_CALIBRATE_BASE
{% endif %}
[gcode_macro DISPLAY_GCODE_PROGRESS]
variable_parameter_TOTAL_LAYER : 0
variable_parameter_CURRENT_LAYER : 0
variable_parameter_PROGRESS : 0
variable_parameter_REMAIN : 0
gcode:
#PRINT MSG="Layer:{params.CURRENT_LAYER}/{params.TOTAL_LAYER} Progress:{params.PROGRESS}% Remain:{params.REMAIN}" OUTPUT_TARGET=1
PRINT MSG="GCODE_PROGRESS,{params.CURRENT_LAYER}/{params.TOTAL_LAYER},{params.PROGRESS},{params.REMAIN}" OUTPUT_TARGET=2
[gcode_macro SET_FILAMENT_PROFILE]
gcode:
{% if params.TYPE|default("PLA") == "PLA" %}
PRINT MSG="Set filament profile : PLA" OUTPUT_TARGET=1
# M221 S91 ; Tunned flow
SET_PRESSURE_ADVANCE ADVANCE=0.05
{% elif params.TYPE|default("PLA") == "PETG" %}
PRINT MSG="Set filament profile : PETG" OUTPUT_TARGET=1
# M221 S91 ; Tunned flow
SET_PRESSURE_ADVANCE ADVANCE=0.08
{% elif params.TYPE|default("PLA") == "ABS" %}
PRINT MSG="Set filament profile : ABS" OUTPUT_TARGET=1
# M221 S91 ; Tunned flow
SET_PRESSURE_ADVANCE ADVANCE=0.04
{% elif params.TYPE|default("PLA") == "PC" %}
PRINT MSG="Set filament profile : PC" OUTPUT_TARGET=1
# M221 S91 ; Tunned flow
SET_PRESSURE_ADVANCE ADVANCE=0.07
{% elif params.TYPE|default("PLA") == "CFPC" %}
PRINT MSG="Set filament profile : CFPC" OUTPUT_TARGET=1
# M221 S91 ; Tunned flow
SET_PRESSURE_ADVANCE ADVANCE=0.05
{% else %}
PRINT MSG="Set filament profile : Defalut" OUTPUT_TARGET=1
# M221 S91 ; Tunned flow
SET_PRESSURE_ADVANCE ADVANCE=0.00
{% endif %}
[gcode_macro DEBUG]
gcode:
{% set tmp = "this is test" %}
PRINT MSG="{tmp.split(',')|length}"