Ender 3 Pro Bed Problem

Basic Information:

Printer Model: Ender 3 Pro
MCU / Printerboard: BIGTREETECH SKR MINI E3 V3.0
Host / SBC Raspberry Pi 4B+

Fill out above information and in all cases attach your klippy.log file (use zip to compress it, if too big). Pasting your printer.cfg is not needed
Be sure to check our “Knowledge Base” Category first. Most relevant items, e.g. error messages, are covered there

Describe your issue:

I switched From Klipper 2 months ago and i have problems while printing. I use cr touch and the bed mesh to get as much accuracy as i can, but it almost never prints something correctly. Most of the times it fails. In some areas the z offset is too much and in others too small so i never get the results i want. I always do the probe calibration and in my slicer settings I run the BED_MESH_CALIBRATE command but it always fails.Also, I have experimented with many values of heater bed but from the previous firmware i believe that around 60 Celsius is great for PLA. Here is my printer.cfg

[include mainsail.cfg]
# This file contains common pin mappings for the BIGTREETECH SKR mini
# E3 v3.0. To use this config, the firmware should be compiled for the
# STM32G0B1 with a "8KiB bootloader" and USB communication.

# The "make flash" command does not work on the SKR mini E3. Instead,
# after running "make", copy the generated "out/klipper.bin" file to a
# file named "firmware.bin" on an SD card and then restart the SKR
# mini E3 with that SD card.

# See docs/Config_Reference.md for a description of parameters.
[exclude_object]

[bed_screws]
screw1: 50,50
screw2: 50,215
screw3: 215,50
screw4: 215,215


[screws_tilt_adjust]
screw1: 50,50
screw1_name: Front left screw
screw2: 50,215
screw2_name: Rear left screw
screw3: 215,50
screw3_name: Front right screw
screw4: 215,215
screw4_name: Rear right screw
horizontal_move_z: 10
speed: 250
screw_thread: CW-M4

[stepper_x]
step_pin: PB13
dir_pin: !PB12
enable_pin: !PB14
microsteps: 64
rotation_distance: 40
endstop_pin: ^PC0
position_endstop: 0
position_min: 0
position_max: 230
homing_speed: 50

[tmc2209 stepper_x]
uart_pin: PC11
tx_pin: PC10
uart_address: 0
run_current: 0.580
interpolate: False
stealthchop_threshold: 999999

[stepper_y]
step_pin: PB10
dir_pin: !PB2
enable_pin: !PB11
microsteps: 64
rotation_distance: 40
endstop_pin: ^PC1
position_endstop: -12
position_min: -12
position_max: 230
homing_speed: 50

[tmc2209 stepper_y]
uart_pin: PC11
tx_pin: PC10
uart_address: 2
run_current: 0.580
stealthchop_threshold: 999999
stealthchop_threshold: 999999

[stepper_z]
step_pin: PB0
dir_pin: PC5
enable_pin: !PB1
microsteps: 16
rotation_distance: 8
endstop_pin: probe:z_virtual_endstop
position_max: 250
position_min: -6


[tmc2209 stepper_z]
uart_pin: PC11
tx_pin: PC10
uart_address: 1
run_current: 0.580
interpolate: False
stealthchop_threshold: 999999

[extruder]
step_pin: PB3
dir_pin: !PB4
enable_pin: !PD1
microsteps: 64
rotation_distance: 7.71
nozzle_diameter: 0.400
filament_diameter: 1.750
max_extrude_only_distance: 100
pressure_advance: 0.04
pressure_advance_smooth_time: 0.040

heater_pin: PC8
sensor_type: ATC Semitec 104GT-2
sensor_pin: PA0
control: pid
pid_Kp: 21.527
pid_Ki: 1.063
pid_Kd: 108.982
min_temp: 0
max_temp: 300


[tmc2209 extruder]
uart_pin: PC11
tx_pin: PC10
uart_address: 3
run_current: 0.580
interpolate: False

[heater_bed]
heater_pin: PC9
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control: pid
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130

[heater_fan heatbreak_cooling_fan]
pin: PC7

[heater_fan controller_fan]
pin: PB15

[fan]
pin: PC6

[mcu]
serial: /dev/serial/by-id/usb-Klipper_stm32g0b1xx_0600240002504B5735313920-if00

[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100

[board_pins]
aliases:
    # EXP1 header
    EXP1_1=PB5,  EXP1_3=PA9,   EXP1_5=PA10, EXP1_7=PB8, EXP1_9=<GND>,
    EXP1_2=PA15, EXP1_4=<RST>, EXP1_6=PB9,  EXP1_8=PD6, EXP1_10=<5V>
    
[bltouch]
sensor_pin: ^PC14
control_pin: PA1
x_offset: -36
y_offset: 0
#z_offset: 2.10


[safe_z_home]
home_xy_position: 151,115   # Nozzle coordinates
speed: 250
z_hop: 10
z_hop_speed: 5

[bed_mesh]
speed: 80
horizontal_move_z: 5
mesh_min: 40,40     # Probe coordinates
mesh_max: 190, 190
algorithm: bicubic
bicubic_tension: 0.2
probe_count: 8, 8 
mesh_pps: 2,2
#fade_start:1
#fade_end:10
#fade_target:0

# See the sample-lcd.cfg file for definitions of common LCD displays.
[display]
lcd_type: emulated_st7920
spi_software_miso_pin: PD8 # status led, Virtual MISO
spi_software_mosi_pin: PD6
spi_software_sclk_pin: PB9
en_pin: PB8
encoder_pins: ^PA10, ^PA9
click_pin: ^!PA15

[gcode_macro START_PRINT]
gcode:
  G90 ; use absolute coordinates
  M83 ; extruder relative mode
  M106 S50 ; Fan on approx. 20% to protect cooling ducts
  M140 S{BED_TEMPERATURE} ; set bed temp
  M104 S{EXTRUDER_STANDBY_TEMPERATURE} ; set standby extruder temp
  M190 S{BED_TEMPERATURE} ; wait for bed temp
  ; M109 S170 ; wait for extruder temp
  G28 ; home all
  BED_MESH_PROFILE LOAD=default
  G29 ; calibrate bed mesh levelling
  M104 S{EXTRUDER_TEMPERATURE} ; set first layer extruder temp
  M109 S{EXTRUDER_TEMPERATURE} ; wait for extruder temp
  G1 Z2 F240
  G1 X2 Y10 F3000
  G1 Z0.28 F240
  G92 E0.0
  G1 Y210 E16.0 F1500.0 ; intro line
  G1 X2.3 F5000
  G1 Y10 E20 F1200.0 ; intro line
  G92 E0.0

#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 	-0.157500, -0.057500, -0.047500, 0.000000, 0.055000, 0.080000, 0.150000
#*# 	-0.177500, -0.100000, -0.030000, 0.015000, 0.032500, 0.090000, 0.177500
#*# 	-0.187500, -0.087500, -0.057500, -0.005000, 0.095000, 0.130000, 0.212500
#*# 	-0.207500, -0.132500, -0.087500, -0.030000, 0.067500, 0.137500, 0.215000
#*# 	-0.180000, -0.055000, -0.045000, 0.002500, 0.082500, 0.130000, 0.227500
#*# 	-0.192500, -0.117500, -0.025000, 0.027500, 0.077500, 0.117500, 0.265000
#*# 	-0.140000, -0.037500, 0.002500, 0.072500, 0.135000, 0.195000, 0.287500
#*# x_count = 7
#*# y_count = 7
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = bicubic
#*# tension = 0.2
#*# min_x = 40.0
#*# max_x = 190.0
#*# min_y = 40.0
#*# max_y = 190.0
#*#
#*# [bltouch]
#*# z_offset = 0.900

and here is my slicer start G-code

; Ender 3 Custom Start G-code
G28 ; Auto Home all axes
BED_MESH_CALIBRATE
M104 S180 ; Start pre-heating the nozzle to a safe temperature where the filament won't ooze to save time
M190 S{material_bed_temperature_layer_0} ; Start heating the bed to the target temperature specified in Print Settings and wait until the temperature is reached
G92 E0 ; Reset extruder
M104 S{material_print_temperature_layer_0} ; Start heating the nozzle to the target temperature specified in Print Settings
G1 Z2.0 F3000 ; Move Z Axis up
G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
M109 S{material_print_temperature_layer_0} ; Wait until the nozzle is heated to the target temperature specified in Print Settings
G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line
G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to the side
G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line
G92 E0 ; Reset extruder
G1 Z2.0 F3000 ; Move Z Axis up
G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish

Hello @Brear !

logs-20240603-184841.zip (7.6 KB)
Sorry, here it is.

As for the bed mes in the klippy.log

[bed_mesh default]
version = 1
points = 
	-0.157500, -0.057500, -0.047500, 0.000000, 0.055000, 0.080000, 0.150000
	-0.177500, -0.100000, -0.030000, 0.015000, 0.032500, 0.090000, 0.177500
	-0.187500, -0.087500, -0.057500, -0.005000, 0.095000, 0.130000, 0.212500
	-0.207500, -0.132500, -0.087500, -0.030000, 0.067500, 0.137500, 0.215000
	-0.180000, -0.055000, -0.045000, 0.002500, 0.082500, 0.130000, 0.227500
	-0.192500, -0.117500, -0.025000, 0.027500, 0.077500, 0.117500, 0.265000
	-0.140000, -0.037500, 0.002500, 0.072500, 0.135000, 0.195000, 0.287500
x_count = 7
y_count = 7
mesh_x_pps = 2
mesh_y_pps = 2
algo = bicubic
tension = 0.2
min_x = 40.0
max_x = 190.0
min_y = 40.0
max_y = 190.0

The is almost up to a half a millimeter difference in the bed.

For you have [screws_tilt_adjust] setup in the config, did you already levelled the bed by SCREWS_TILT_CALCULATE

See:

https://www.klipper3d.org/Manual_Level#adjusting-bed-leveling-screws-using-the-bed-probe

Yes i have leveled the bed with the SCREWS_TILT_CALCULATE method.

Have you tried to do the BED_MESH _CALIBRATE after completing heating the bed?

Yes, I tried it now, it stil doesnt print correctly. Unfortunately itdoesnt stick on some points, so it oozes and ruins the whole print

Still wondering why there is such a huge deviation between left and right of the bed

Also try Axis Twist Compensation
The Enders are notorious for twisted axes.

I rerun the SCREWS_TILT_CALCULATE and these are the new logs. I tried printing but again nothing.
logs-20240603-205907.zip (260.8 KB)

One of my enders was showing similar symptoms and it turned out to be a combination of two mechanical issues for me. The gantry had worked loose due to wear on the wheels and I found I could move it up and down about 2mm on the opposite end to the driven side where the leadscrew is.

After I adjusted the slack out of the gantry I was still having issues and it turned out to be coming from binding on the leadscrew.nut. I probably could have fixed that with and oldham coupler on the leadscrew nut or something similar but I ended up doing a belt ender conversion (from Kevinakasam) and it’s been almost hassle free ever since.

My bet is warped like a pretzel too but the bet mesh accommodates for that fine now.

2 Likes

Some settings that helped:
stow_on_each_sample: False
probe_with_touch_mode: True
pin_up_touch_mode_reports_triggered: False
set_output_mode: 5V
also a “probe_accuracy” to make sure the probe is working correctly.