Skip to main content

This is mostly for my own reference but it may help someone in need. The 3D Touch finally works after a lot of trial and error.

Important settings:

stow_on_each_sample: True
probe_with_touch_mode: False
pin_up_touch_mode_reports_triggered: False

The last line is set to false even though the Klipper test reports true!
You may need to try a combo of true and false of these settings.
I’ve seen other threads set pin_up_touch_mode_reports_triggered to true to get it working depending on the model.
stow_on_each_sample is slower but it doesn’t work as well otherwise.

Here’s what it looks like when NOT working:

Some keywords: 3D Touch not working, blinking fast. BL Touch Clone (3D Touch) fails calibration. Red Blink. Blue Blink.

Here’s my entire printer.cfg  keep in mind it has pressure advance, bed leveling, etc. custom settings.

# 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.

 

[stepper_x]
step_pin: PC2
dir_pin: PB9
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA5
position_endstop: 0
position_max: 250
homing_speed: 65

 

[stepper_y]
step_pin: PB8
dir_pin: PB7
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA6
position_endstop: 5 #End-stop is not at 0
position_max: 235 #If endstop is 0 235 will grind
position_min: 5 #Prevents moving to 0 and griding in this direction
homing_speed: 65

 

[stepper_z]
step_pin: PB6
dir_pin: !PB5
enable_pin: !PC3
microsteps: 16
rotation_distance: 8
#endstop_pin: ^PA7 #microswitch
#position_endstop: 0.0
endstop_pin: probe:z_virtual_endstop
position_max: 250
position_min: -3
homing_speed: 30

 

#################################
########### LEVELING ############
#################################

 

[bltouch]
sensor_pin: ^PB1
control_pin: PB0
# x_offset -44, y_offset -7 for CR Touch, verified by measurement (same as used in marlin also)
x_offset: -38.5
y_offset: -10.5
speed:60 #z-hop speed while probing 30
stow_on_each_sample: true
z_offset = 2.01 #2.10 #2.29 #Higher numbers = closer to bed
probe_with_touch_mode: False
#pin_up_reports_not_triggered: False
pin_up_touch_mode_reports_triggered: False

 

[bed_mesh]
speed: 350 #80
horizontal_move_z: 3.5 #z-hop height while probing
mesh_min: 20, 20
mesh_max: 200, 200
probe_count: 3,3
algorithm: bicubic
fade_start: 1
fade_end: 10
fade_target: 0

 

#Only used during homing
[safe_z_home]
home_xy_position: 117.5,117.5 # Change coordinates to the center of your print bed
#home_xy_position: 50,50
z_hop: 5 # Move up mm
z_hop_speed: 60

 

#################################
###########   OTHER  ############
#################################

 

[extruder]
pressure_advance: 0.66
pressure_advance_smooth_time: 0.08 #Default 0.04
step_pin: PB4
dir_pin: PB3
enable_pin: !PC3
microsteps: 16
#rotation_distance: 33.24 #34.406 #Default (200*16/93)
rotation_distance:  34.406 #Default (200*16/93)
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 215 degree Celsius target # PID_CALIBRATE HEATER=extruder TARGET=215
pid_Kp=28.938
pid_Ki=2.031
pid_Kd=103.092
min_temp: 0
max_temp: 250

 

[input_shaper]
shaper_freq_x: 40.42
shaper_freq_y: 33.90
shaper_type: mzv

 

[heater_bed]
heater_pin: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control: pid
# tuned for stock hardware with 60 degree Celsius target # PID_CALIBRATE HEATER=heater_bed TARGET=60
#pid_Kp: 54.027
#pid_Ki: 0.770
#Wpid_Kd: 970 #948.182
pid_Kp=67.455
pid_Ki=0.963
pid_Kd=1181.314
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: 4500 #3000 Default
max_accel_to_decel: 4500 #3000 Default
max_z_velocity: 5
max_z_accel: 100
square_corner_velocity: 5

 

[virtual_sdcard]
path: ~/gcode_files

 

[display_status]

 

[pause_resume]

 

#PAUSE
[gcode_macro PAUSE]
description: Pause the actual running print
rename_existing: PAUSE_BASE
# change this if you need more or less extrusion
variable_extrude: 1.0
gcode:
  ##### read E from pause macro #####
  {% set E = printer[“gcode_macro PAUSE”].extrude|float %}
  ##### set park positon for x and y #####
  # default is your max posion from your printer.cfg
  {% set x_park = printer.toolhead.axis_maximum.x|float 5.0 %}
  {% set y_park = printer.toolhead.axis_maximum.y|float 5.0 %}
  ##### calculate save lift position #####
  {% set max_z = printer.toolhead.axis_maximum.z|float %}
  {% set act_z = printer.toolhead.position.z|float %}
  {% if act_z < (max_z 2.0) %}
      {% set z_safe = 2.0 %}
  {% else %}
      {% set z_safe = max_z act_z %}
  {% endif %}
  ##### end of definitions #####
  PAUSE_BASE
  G91
  {% if printer.extruder.can_extrude|lower == ‘true’ %}
    G1 E{E} F2100
  {% else %}
    {action_respond_info(“Extruder not hot enough”)}
  {% endif %}
  {% if “xyz” in printer.toolhead.homed_axes %}
    G1 Z{z_safe} F900
    G90
    G1 X{x_park} Y{y_park} F6000
  {% else %}
    {action_respond_info(“Printer not homed”)}
  {% endif %}

 

#RESUME
[gcode_macro RESUME]
description: Resume the actual running print
rename_existing: RESUME_BASE
gcode:
  ##### read E from pause macro #####
  {% set E = printer[“gcode_macro PAUSE”].extrude|float %}
  #### get VELOCITY parameter if specified ####
  {% if ‘VELOCITY’ in params|upper %}
    {% set get_params = (‘VELOCITY=’ + params.VELOCITY)  %}
  {%else %}
    {% set get_params = “” %}
  {% endif %}
  ##### end of definitions #####
  {% if printer.extruder.can_extrude|lower == ‘true’ %}
    G91
    G1 E{E} F2100
  {% else %}
    {action_respond_info(“Extruder not hot enough”)}
  {% endif %}
  RESUME_BASE {get_params}

 

#CANCEL_PRINT
[gcode_macro CANCEL_PRINT]
description: Cancel the actual running print
rename_existing: CANCEL_PRINT_BASE
gcode:
  G1 Z10 F3600 #move up
  M18 #disable steppers
  #TURN_OFF_HEATERS
  CANCEL_PRINT_BASE

 

#Disable Steppers
[gcode_macro DISABLE_STEPPERS]
gcode:
  M18

 

#*# <- SAVE_CONFIG ->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*#     0.055000, 0.022500, 0.047500
#*#     0.002500, -0.047500, 0.010000
#*#     -0.022500, -0.055000, -0.082500
#*# tension = 0.2
#*# min_x = 20.0
#*# algo = bicubic
#*# y_count = 3
#*# mesh_y_pps = 2
#*# min_y = 20.0
#*# x_count = 3
#*# max_y = 200.0
#*# mesh_x_pps = 2
#*# max_x = 200.0

 

Leave a Reply