Z_Tilt Issue, z fine, z1 going up to probe

Basic Information:

Printer Model: Longer LK5 Pro
MCU / Printerboard: Manta M8P V2.0
Host / SBC: CB1
Stepper Drivers:
TMC5160 - Motors 1-4
TMC2209 - Motors 5-8
klippy.log (3.7 MB)
printer.cfg

# This file contains common pin mappings for the BIGTREETECH Manta M8P V2.0
# To use this config, the firmware should be compiled for the
# STM32H723 with a "128KiB bootloader" "25 MHz crystal"
# and "USB (on PA11/PA12)", "CAN bus (on PD0/PD1)" or Serial (on USART1 PA10/PA9).

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

[include mainsail.cfg]

# Motor1
[stepper_x]
step_pin: PE6
dir_pin: PE5
enable_pin: !PC14
microsteps: 16
rotation_distance: 40
microsteps: 256
full_steps_per_rotation: 200
endstop_pin: ^PF4
position_endstop: 0
position_max: 305
homing_speed: 50

# Motor2
[stepper_y]
step_pin: PE2
dir_pin: !PE1
enable_pin: !PE4
microsteps: 16
rotation_distance: 40
microsteps: 256
full_steps_per_rotation: 200
endstop_pin: ^PF3
position_endstop: 0
position_max: 315
homing_speed: 50

# Motor3
[stepper_z]
step_pin: PB8
dir_pin: PB7
enable_pin: !PE0
microsteps: 16
rotation_distance: 8
microsteps: 256
full_steps_per_rotation: 200
endstop_pin: probe:z_virtual_endstop
#position_endstop: 0
position_max: 300
position_min: -5.0
homing_speed: 8
second_homing_speed: 3
homing_retract_dist: 3

# Motor4
[stepper_z1]
step_pin: PB4
dir_pin: PB3
enable_pin: !PB6
microsteps: 16
rotation_distance: 8
microsteps: 256
full_steps_per_rotation: 200
endstop_pin: probe:z_virtual_endstop
#position_endstop: 0
#position_max: 300
#position_min: -5.0
#homing_speed: 8
#second_homing_speed: 3
#homing_retract_dist: 3

# Motor5
[extruder]
step_pin: PG13
dir_pin: !PG12
enable_pin: !PG15
microsteps: 16
rotation_distance: 26.161838
#full_steps_per_rotation:
gear_ratio: 5.65:1
#   See the "stepper" section for a description of the above
#   parameters. If none of the above parameters are specified then no
#   stepper will be associated with the nozzle hotend (though a
#   SYNC_EXTRUDER_MOTION command may associate one at run-time).
nozzle_diameter: 0.4
#   Diameter of the nozzle orifice (in mm). This parameter must be
#   provided.
filament_diameter: 1.75
#   The nominal diameter of the raw filament (in mm) as it enters the
#   extruder. This parameter must be provided.
#max_extrude_cross_section:
#   Maximum area (in mm^2) of an extrusion cross section (eg,
#   extrusion width multiplied by layer height). This setting prevents
#   excessive amounts of extrusion during relatively small XY moves.
#   If a move requests an extrusion rate that would exceed this value
#   it will cause an error to be returned. The default is: 4.0 *
#   nozzle_diameter^2
#instantaneous_corner_velocity: 1.000
#   The maximum instantaneous velocity change (in mm/s) of the
#   extruder during the junction of two moves. The default is 1mm/s.
max_extrude_only_distance: 120.0
#   Maximum length (in mm of raw filament) that a retraction or
#   extrude-only move may have. If a retraction or extrude-only move
#   requests a distance greater than this value it will cause an error
#   to be returned. The default is 50mm.
#max_extrude_only_velocity:
#max_extrude_only_accel:
#   Maximum velocity (in mm/s) and acceleration (in mm/s^2) of the
#   extruder motor for retractions and extrude-only moves. These
#   settings do not have any impact on normal printing moves. If not
#   specified then they are calculated to match the limit an XY
#   printing move with a cross section of 4.0*nozzle_diameter^2 would
#   have.
#pressure_advance: 0.0
#   The amount of raw filament to push into the extruder during
#   extruder acceleration. An equal amount of filament is retracted
#   during deceleration. It is measured in millimeters per
#   millimeter/second. The default is 0, which disables pressure
#   advance.
#pressure_advance_smooth_time: 0.040
#   A time range (in seconds) to use when calculating the average
#   extruder velocity for pressure advance. A larger value results in
#   smoother extruder movements. This parameter may not exceed 200ms.
#   This setting only applies if pressure_advance is non-zero. The
#   default is 0.040 (40 milliseconds).
#
# The remaining variables describe the extruder heater.
heater_pin: PA0 # HE0
#   PWM output pin controlling the heater. This parameter must be
#   provided.
#max_power: 1.0
#   The maximum power (expressed as a value from 0.0 to 1.0) that the
#   heater_pin may be set to. The value 1.0 allows the pin to be set
#   fully enabled for extended periods, while a value of 0.5 would
#   allow the pin to be enabled for no more than half the time. This
#   setting may be used to limit the total power output (over extended
#   periods) to the heater. The default is 1.0.
sensor_type : Dyze500
#   Type of sensor - common thermistors are "EPCOS 100K B57560G104F",
#   "ATC Semitec 104GT-2", "ATC Semitec 104NT-4-R025H42G", "Generic
#   3950","Honeywell 100K 135-104LAG-J01", "NTC 100K MGB18-104F39050L32",
#   "SliceEngineering 450", and "TDK NTCG104LH104JT1". See the
#   "Temperature sensors" section for other sensors. This parameter
#   must be provided.
sensor_pin: PB0 # T0
#   Analog input pin connected to the sensor. This parameter must be
#   provided.
#pullup_resistor: 4700
#   The resistance (in ohms) of the pullup attached to the thermistor.
#   This parameter is only valid when the sensor is a thermistor. The
#   default is 4700 ohms.
#smooth_time: 1.0
#   A time value (in seconds) over which temperature measurements will
#   be smoothed to reduce the impact of measurement noise. The default
#   is 1 seconds.
control: pid
#   Control algorithm (either pid or watermark). This parameter must
#   be provided.
pid_Kp: 13.931 # 270 DEGREES
pid_Ki: 0.356 # 270 DEGREES
pid_Kd: 136.350 # 270 DEGREES
#   The proportional (pid_Kp), integral (pid_Ki), and derivative
#   (pid_Kd) settings for the PID feedback control system. Klipper
#   evaluates the PID settings with the following general formula:
#     heater_pwm = (Kp*error + Ki*integral(error) - Kd*derivative(error)) / 255
#   Where "error" is "requested_temperature - measured_temperature"
#   and "heater_pwm" is the requested heating rate with 0.0 being full
#   off and 1.0 being full on. Consider using the PID_CALIBRATE
#   command to obtain these parameters. The pid_Kp, pid_Ki, and pid_Kd
#   parameters must be provided for PID heaters.
#max_delta: 2.0
#   On 'watermark' controlled heaters this is the number of degrees in
#   Celsius above the target temperature before disabling the heater
#   as well as the number of degrees below the target before
#   re-enabling the heater. The default is 2 degrees Celsius.
#pwm_cycle_time: 0.100
#   Time in seconds for each software PWM cycle of the heater. It is
#   not recommended to set this unless there is an electrical
#   requirement to switch the heater faster than 10 times a second.
#   The default is 0.100 seconds.
min_extrude_temp: 0
#   The minimum temperature (in Celsius) at which extruder move
#   commands may be issued. The default is 170 Celsius.
min_temp: 0
max_temp: 480
#   The maximum range of valid temperatures (in Celsius) that the
#   heater must remain within. This controls a safety feature
#   implemented in the micro-controller code - should the measured
#   temperature ever fall outside this range then the micro-controller
#   will go into a shutdown state. This check can help detect some
#   heater and sensor hardware failures. Set this range just wide
#   enough so that reasonable temperatures do not result in an error.
#   These parameters must be provided.

[thermistor Dyze500]
#based on https://docs.dyzedesign.com/general-support/temperature-sensors.html#_500%C2%B0c-thermistor
temperature1: 25
resistance1: 4500000
temperature2: 260
resistance2: 2240
temperature3: 460
resistance3: 125.4

# End-Stop 5
[filament_motion_sensor Orthus]
detection_length: 1.5
#   The minimum length of filament pulled through the sensor to trigger a state change on the switch_pin (see table below)
extruder: extruder
#   The name of the extruder section this sensor is associated with (the same name used in your config file).
#   This parameter must be provided.
switch_pin: PF0
pause_on_runout: True
#runout_gcode: YourRunoutGcode
#insert_gcode: YourInsertGcode
#event_delay:
#pause_delay:

[heater_bed]
heater_pin: PF5
sensor_pin: PB1 # TB
sensor_type: Generic 3950
min_temp: 0
max_temp: 110
control: pid
pid_Kp:54.940 # 85 DEGREES
pid_Ki:0.647 # 85 DEGREES
pid_Kd:1166.105 # 85 DEGREES

#[fan_generic soc-fan]
#pin: gpio26  #CB1
#pin: host:gpio79  #CM4

# Fan0
[fan]
pin: PF7

## Fan1
#[heater_fan fan1]
#pin: PF9

## Fan2
#[heater_fan fan2]
#pin: PF6

## Fan3
#[heater_fan fan3]
#pin: PF8

## Fan4
#[heater_fan fan4]
#pin: PA4

## Fan5
#[heater_fan fan5]
#pin: PA6
#tachometer_pin: PC2

## Fan6
#[heater_fan fan6]
#pin: PA2
#tachometer_pin: PC1

[temperature_sensor Heater]
sensor_pin: PC5 # THB1
sensor_type: Generic 3950
min_temp: 10
max_temp: 110

[temperature_sensor CB1]
sensor_type: temperature_host
min_temp: 10
max_temp: 100

[temperature_sensor MCU]
sensor_type: temperature_mcu

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

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

#[mcu rpi]
#serial: /tmp/klipper_host_mcu

#[adxl345]
#cs_pin: rpi:None

#[resonance_tester]
#accel_chip: adxl345
#probe_points:
#    100, 100, 20  # an example

########################################
# TMC5160 configuration
########################################

#Motor1
[tmc5160 stepper_x]
cs_pin: PC13
spi_software_mosi_pin: PG6
spi_software_miso_pin: PG7
spi_software_sclk_pin: PG8
diag1_pin: PF4
run_current: 0.8
stealthchop_threshold: 999999

#Motor2
[tmc5160 stepper_y]
cs_pin: PE3
spi_software_mosi_pin: PG6
spi_software_miso_pin: PG7
spi_software_sclk_pin: PG8
diag1_pin: PF3
run_current: 0.8
stealthchop_threshold: 999999

#Motor3
[tmc5160 stepper_z]
cs_pin: PB9
spi_software_mosi_pin: PG6
spi_software_miso_pin: PG7
spi_software_sclk_pin: PG8
diag1_pin: PF2
run_current: 0.8
stealthchop_threshold: 999999

#Motor4
[tmc5160 stepper_z1]
cs_pin: PB5
spi_software_mosi_pin: PG6
spi_software_miso_pin: PG7
spi_software_sclk_pin: PG8
diag1_pin: PF1
run_current: 0.8
stealthchop_threshold: 999999

########################################
# TMC2209 configuration
########################################

#Motor5
[tmc2209 extruder]
uart_pin: PG14
run_current: 0.800
stealthchop_threshold: 999999

## Motor6
#[tmc2209 extruder1]
#uart_pin: PG10
#run_current: 0.800
#stealthchop_threshold: 999999

## Motor7
#[tmc2209 extruder2]
#uart_pin: PD5
#run_current: 0.800
#stealthchop_threshold: 999999

## Motor8
#[tmc2209 extruder3]
#uart_pin: PC6
#run_current: 0.800
#stealthchop_threshold: 999999

#[board_pins]
#aliases:
    # EXP1 header
    #EXP1_1=PE7, EXP1_2=PG1,
    #EXP1_3=PG0, EXP1_4=PF15,
    #EXP1_5=PF14, EXP1_6=PF13,    # Slot in the socket on this side
    #EXP1_7=PF12, EXP1_8=PF11,
    #EXP1_9=<GND>, EXP1_10=<5V>,

    # EXP2 header
    #EXP2_1=PE13, EXP2_2=PE12,
    #EXP2_3=PE15, EXP2_4=PE11,
    #EXP2_5=PE10, EXP2_6=PE14,      # Slot in the socket on this side
    #EXP2_7=PE8, EXP2_8=<RST>,
    #EXP2_9=<GND>, EXP2_10=<NC>

# See the sample-lcd.cfg file for definitions of common LCD displays.

[probe]
pin: !PF2
x_offset: 0.0
y_offset: 0.0
z_offset: 1
speed: 5.0

[safe_z_home]
home_xy_position: 165, 179
#   A X, Y coordinate (e.g. 100, 100) where the Z homing should be
#   performed. This parameter must be provided.
#speed: 50.0
#   Speed at which the toolhead is moved to the safe Z home
#   coordinate. The default is 50 mm/s
z_hop: 10
#   Distance (in mm) to lift the Z axis prior to homing. This is
#   applied to any homing command, even if it doesn't home the Z axis.
#   If the Z axis is already homed and the current Z position is less
#   than z_hop, then this will lift the head to a height of z_hop. If
#   the Z axis is not already homed the head is lifted by z_hop.
#   The default is to not implement Z hop.

[bed_screws]
screw1: 45, 59
screw1_name: front left screw
screw2: 285, 59
screw2_name: front right screw
screw3: 285, 300
screw3_name: rear right screw
screw4: 45, 300
screw4_name: rear left screw

[screws_tilt_adjust]
screw1: 45, 59
screw1_name: front left screw
screw2: 285, 59
screw2_name: front right screw
screw3: 285, 300
screw3_name: rear right screw
screw4: 45, 300
screw4_name: rear left screw
horizontal_move_z: 10.
speed: 200
screw_thread: CW-M3

[z_tilt]
z_positions: -16, 179
  349, 179
#   A list of X, Y coordinates (one per line; subsequent lines
#   indented) describing the location of each bed "pivot point". The
#   "pivot point" is the point where the bed attaches to the given Z
#   stepper. It is described using nozzle coordinates (the X, Y position
#   of the nozzle if it could move directly above the point). The
#   first entry corresponds to stepper_z, the second to stepper_z1,
#   the third to stepper_z2, etc. This parameter must be provided.
points: 45, 179
  285, 179
#   A list of X, Y coordinates (one per line; subsequent lines
#   indented) that should be probed during a Z_TILT_ADJUST command.
#   Specify coordinates of the nozzle and be sure the probe is above
#   the bed at the given nozzle coordinates. This parameter must be
#   provided.
speed: 200
#   The speed (in mm/s) of non-probing moves during the calibration.
#   The default is 50.
horizontal_move_z: 5
#   The height (in mm) that the head should be commanded to move to
#   just prior to starting a probe operation. The default is 5.
retries: 20
#   Number of times to retry if the probed points aren't within
#   tolerance.
retry_tolerance: 0.02
#   If retries are enabled then retry if largest and smallest probed
#   points differ more than retry_tolerance. Note the smallest unit of
#   change here would be a single step. However if you are probing
#   more points than steppers then you will likely have a fixed
#   minimum value for the range of probed points which you can learn
#   by observing command output.

#[bed_mesh]
#speed: 50
#horizontal_move_z: 10
#mesh_min:20,50
#mesh_max:170,200
#probe_count: 3,3

#[adxl345]
#cs_pin: PA15
#spi_bus: spi3a

#[bltouch]
#sensor_pin: PD13
#control_pin: PD12

#[hall_filament_width_sensor]
#adc1: PC0
#adc2: PF10

#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 54.940
#*# pid_ki = 0.647
#*# pid_kd = 1166.105
#*#
#*# [extruder]

Issue:

z motor plugged into motor 3a port
z1 motor plugged into motor 4 port.

When homing both motors seem to be going in the correct direction.

When I try doing the z_tilt the left side probes fine, the right side moves X to the position commanded but goes up instead of down to probe. I hit the emergency stop after it did this twice. I’m really not sure why it’s doing this. I have tried looking it up in past conversations but I did not find anything like this.

Only your first z stepper shall have an endstop.
Setting microsteps: 256 probably quite quickly will lead to overloading the board and also does not offer any appreciable benefits

I will comment out the endstop for z1.

What should the microsteps be set to? Should I just comment that line out?

16 is of common use.

As I do not use Stealth Chop, I usually settle for something between 64 and 128. This gives nice noise reduction and does not overly stress the MCU. The more dynamic axes rather 64 and, e.g., Z rather 128.

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.