TMC2209 X and Y homing problem

Basic Information:

Printer Model: Corexy
MCU / Printerboard:BTT Skr3 TMC 2209 driver
klippy.log
klippy.log (145.8 KB)

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:

Hello,
I am new on the Klipper.
I have homing and bed mesh problem on Corexy printer.
I installed diag pins for sensorless homing.

When I press the home buttons for X and Y, they do not go to the home position.
When disabling the stepper motors and manually moving X and Y to the home position then I press the home all button, X and Y are placed in middle of the table and Z probbing with 3D touch.
And then, if I press the X or Y home button, not move both stepper. But the position values are being zero on screen.

I would be very happy, if you help.

Have you tried different values for driver_sgthrs?

First try setting it lower (say “30” - you have it at “125” now) and see if things start moving.

1 Like

Thanks Myke,
Yes, I have change the driver_sgthrs firstly 50, 30 and than 20 but there are no differences.

I think, there are a relative position problems for x and y .
With each home all positioning, the x and y values are increasing by half the value of the table size. Every last point like (0,0)

I find it easier to reduce the current for homing. For normal operation I use 0.8A, like you do and for homing, I set it for 0.6A in a macro like:

[gcode_macro global] ### Global Variables 
variable_xy_run_current:  0.8 
variable_xy_home_current: 0.6
gcode:

[gcode_macro _HOME_X]
gcode:
    SET_TMC_CURRENT STEPPER=stepper_x CURRENT={printer["gcode_macro global"].xy_home_current}
    SET_TMC_CURRENT STEPPER=stepper_y CURRENT={printer["gcode_macro global"].xy_home_current}

    G4 P500                                          # Wait for StallGuard registers to clear

    G28 X

    SET_TMC_CURRENT STEPPER=stepper_x CURRENT={printer["gcode_macro global"].xy_run_current}
    SET_TMC_CURRENT STEPPER=stepper_y CURRENT={printer["gcode_macro global"].xy_run_current}
    
    G91                                              # Move away to centre of build surface
    G1 X125 F1200                                    # Changed for Micro Swiss NG
3 Likes

I’m sorry, it’s my mistake. I forgot to write that my drivers are EZ2209.
I did some research. There were differences between TMC2209 and EZ2209 about diag.

mykepredko, you were right. I replaced the drivers with MKS TMC2209. (I don’t know if there is a difference between BTT TMC2209 and MKS TMC2209. I also had MKS.) When I set the driver_sgthrs value to 70, it started working.
Thanks a lot mykepredko.

1 Like

I did a moderately deep dive in the different “standard” (ie not EZ2209) TMC2209 modules and, if I remember correctly, they are all basically the same with the major differences being whether or not they have the serial pins at the front end of the module and if they don’t do they have the vias on the PCB to allow you to solder them in.

Sorry, I can’t find a link to the posting.

Electrically, the major difference was if you wanted to use the two status outputs (“diag” and an “error” line). As the basic operation uses diag, for all intents and purposes, they were identical.

With this caveat, you should be able to use the BTT or MKS versions of the TMC2209 interchangeably.

1 Like

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