Sensorless Homing - BTT Octopus Pro - TMC5160

Basic Information:

Printer Model:
MCU / Printerboard:
klippy.log
Printer Model - Technically it’s an Ender 3v2, but none of the parts outside of the extrusions are original. It’s functionally fully custom
MCU - BTT Octopus Pro + Pi4
Klippy.log is attached
klippy (3).log (633.8 KB)

Describe your issue:

I have reached the end of my knowledge and I am now hoping that someone here is smarter than I am.
I am attempting to configure sensorless homing, but am having exactly zero luck doing so.
The behavior is: I issue G28 X0, my toolhead never stops. It rams the frame and stalls, making a terrible noise.
As far as I can tell, my config is correct. I have quadruple checked the pin naming, run through the setup in the Klipper documentation, found an example from Voron that matches my exact setup to no avail, etc.
I soldered the diag pin onto the 5160 myself, the joint is good. The pin is the same length as the pins that came factory soldered, so it shouldn’t be a contact issue. I know with 100% confidence that it’s in diag1. They’re BTT steppers and I followed their pinout.
The steppers function correctly outside of this. They’re correctly jumped for SPI. Stallguard is also correctly jumped on the board. USB power is disabled per BTT documentation.
I am genuinely at a loss. If anybody has ideas I am willing to try just about anything, even if I think I’ve tried it before.

Thanks in advance!

N

OTE:  FOR TMC 5160 PRO AND NO  TMC5160
########################################
# TMC5160 configuration
########################################
[tmc5160 stepper_x]
cs_pin: PC4
spi_software_mosi_pin = PA7
spi_software_miso_pin = PA6
spi_software_sclk_pin = PA5
interpolate: True
diag1_pin: ^!PG6 # use the same pin that was previously the endstop_pin! 
driver_SGT: -64  # -64 is most sensitive value, 63 is least sensitive
run_current: 2.00
#hold_current: 0.2
sense_resistor: 0.075
#stealthchop_threshold: 999999

[tmc5160 stepper_y]
cs_pin: PD11
spi_software_mosi_pin = PA7
spi_software_miso_pin = PA6
spi_software_sclk_pin = PA5
interpolate: True
diag1_pin: ^!PG9 # use the same pin that was previously the endstop_pin! 
driver_SGT: -64  # -64 is most sensitive value, 63 is least sensitive
run_current: 2.00
#hold_current: 0.2
sense_resistor: 0.075
#stealthchop_threshold: 999999

[tmc5160 stepper_z]
cs_pin: PC6
spi_software_mosi_pin = PA7
spi_software_miso_pin = PA6
spi_software_sclk_pin = PA5
interpolate: True
diag1_pin: ^!PG10 # use the same pin that was previously the endstop_pin! 
driver_SGT: -64  # -64 is most sensitive value, 63 is least sensitive
run_current: 2.00
#hold_current: 0.2
sense_resistor: 0.075
#stealthchop_threshold: 999999


[tmc5160 extruder]
cs_pin: PF2
spi_software_mosi_pin = PA7
spi_software_miso_pin = PA6
spi_software_sclk_pin = PA5
interpolate: True
run_current: 2.00
#hold_current: 0.2
sense_resistor: 0.075
#stealthchop_threshold: 999999


[tmc5160 extruder_stepper belted_extruder]
cs_pin: PE4
spi_software_mosi_pin = PA7
spi_software_miso_pin = PA6
spi_software_sclk_pin = PA5
interpolate: True
run_current: 2.00
#hold_current: 0.2
sense_resistor: 0.075
#stealthchop_threshold: 999999`Preformatted text`

Hello,

Massimiliano replied with a config that should work. But I think that the setting that you are missing that he added is the driver_SGT: -64. Simply add it to all of the axis where you want to use sensorless homing, and it should work. I had this same problem but with BTT tmc 2209’s. The carriage would slam into the carriage, and make a horrible sound every time.

However, one more important thing. -64 may be to sensitive, and if the carriage tries to start homing, but starts, acts like it homed and then moves the other way without actually hitting the "endstop, you will have to slowly decreasing the -64 value to -55 ,-45, -35, -25, -15, -5, 5, 15, 25, 35, 45, 55, in that order. As massimiliano says, -64 is the most sensitive value, and 64 is the least sensitive. So just start with -64, and if you get the problem I described, slowly start to “decrease” the value in the order I listed above until you get a value that homes without slamming to hard on your “endstop”, but also successfully homes. There’s a happy medium. If you had 2209’s I would be happy to give you my settings. however, as you do not, my setting would probably ruin your drivers if you tried to use them with you 5160’s.

Happy Printing,
Blake

I agree, I can add that the stepper 5160 Pro are problematic, the configuration should be right at least it perfectly adheres to the Klipper documentation, but you can not achieve a correct operation. I also have the TMC 2209 V1.2 steppers and these go perfectly on BTT Octopus Pro 1.0…There may be a problem in Klipper

prova anche questo adattandolo:



[tmc5160 stepper_x]
cs_pin: PA15
spi_bus: spi3a
#diag1_pin: PB10
#microsteps: 16
run_current: 1.8  # with watercooling
hold_current: 1.8
stealthchop_threshold: 0
sense_resistor = 0.075
# from reddit
# spi_speed: 500000
driver_IHOLDDELAY: 6
driver_TPOWERDOWN: 10
driver_TBL: 2
driver_tpfd: 0
driver_pwm_autoscale: True
driver_pwm_autograd: True
driver_pwm_freq: 2
driver_PWM_GRAD: 0
driver_PWM_OFS: 0
driver_PWM_REG: 0
driver_PWM_LIM: 0
# 36V settings for TMC5160 taken from marlin
driver_TOFF: 5
driver_HEND: 5
driver_HSTRT: 3

[tmc5160 stepper_y]
cs_pin: PG15
spi_bus: spi3a
#diag1_pin: PE12
#microsteps: 16
run_current: 1.8   # with watercooling
hold_current: 1.8
stealthchop_threshold: 0
sense_resistor = 0.075
# from reddit
# spi_speed: 500000
driver_IHOLDDELAY: 6
driver_TPOWERDOWN: 10
driver_TBL: 2
driver_tpfd: 0
driver_pwm_autoscale: True
driver_pwm_autograd: True
driver_pwm_freq: 2
driver_PWM_GRAD: 0
driver_PWM_OFS: 0
driver_PWM_REG: 0
driver_PWM_LIM: 0
# 36V settings for TMC5160 taken from marlin
driver_TOFF: 5
driver_HEND: 5
driver_HSTRT: 3

[tmc5160 stepper_z]
cs_pin: PB9
spi_bus: spi3a
#diag1_pin: PG8
#microsteps: 16
run_current: 1.8
hold_current: 1.0
stealthchop_threshold: 0
sense_resistor = 0.075
# from reddit
# spi_speed: 500000
driver_IHOLDDELAY: 6
driver_TPOWERDOWN: 10
driver_TBL: 2
driver_tpfd: 0
driver_pwm_autoscale: True
driver_pwm_autograd: True
driver_pwm_freq: 2
driver_PWM_GRAD: 0
driver_PWM_OFS: 0
driver_PWM_REG: 0
driver_PWM_LIM: 0
# 36V settings for TMC5160 taken from marlin
driver_TOFF: 5
driver_HEND: 5
driver_HSTRT: 3

[tmc5160 extruder]
cs_pin: PB3
spi_bus: spi3a
#diag1_pin: PE15
#microsteps: 16
run_current: 1
hold_current: 0.6
stealthchop_threshold: 0
sense_resistor = 0.075
# from reddit
# spi_speed: 500000
driver_IHOLDDELAY: 6
driver_TPOWERDOWN: 10
driver_TBL: 2
driver_tpfd: 0
driver_pwm_autoscale: True
driver_pwm_autograd: True
driver_pwm_freq: 2
driver_PWM_GRAD: 0
driver_PWM_OFS: 0
driver_PWM_REG: 0
driver_PWM_LIM: 0
# 36V settings for TMC5160 taken from marlin
driver_TOFF: 5
driver_HEND: 5
driver_HSTRT: 3

[extruder1]
step_pin: PD13 #Extuder 2, Stepstick socket 6
dir_pin: !PG9
enable_pin: !PF0
#step_distance: 0.002409638554217
rotation_distance:7.710843373
microsteps:16

nozzle_diameter: 0.4
filament_diameter: 1.750
max_extrude_only_distance: 5000.0
max_extrude_only_velocity: 120
max_extrude_only_accel: 9000
pressure_advance: 0.05
pressure_advance_smooth_time: 0.02

heater_pin: PD14 # Heat1
sensor_pin:  PF5 # T2 Header
sensor_type: ATC Semitec 104GT-2
smooth_time: 2
control: pid
pid_Kp: 21.619
pid_Ki: 1.044 
pid_Kd: 111.880
min_temp: 5
max_temp: 300
min_extrude_temp: 170
max_power: 1
pwm_cycle_time: 0.020 #s

[verify_heater extruder1]
check_gain_time:40

[tmc5160 extruder1]
cs_pin: PG12
spi_bus: spi3a
#diag1_pin: PE15
#microsteps: 16
run_current: 0.8
hold_current: 0.4
stealthchop_threshold: 0
sense_resistor = 0.075
# from reddit
# spi_speed: 500000
driver_IHOLDDELAY: 6
driver_TPOWERDOWN: 10
driver_TBL: 2
driver_tpfd: 0
driver_pwm_autoscale: True
driver_pwm_autograd: True
driver_pwm_freq: 2
driver_PWM_GRAD: 0
driver_PWM_OFS: 0
driver_PWM_REG: 0
driver_PWM_LIM: 0
# 36V settings for TMC5160 taken from marlin
driver_TOFF: 5
driver_HEND: 5
driver_HSTRT: 3

Did you test the respective endstop pin with a mechanical switch?
Do you use a reduced homing current instead of the full 2 amps?