Only one Y motor turning SKR 1.4 (not turbo) TMC 2209 MPCNC Dual endstop

Yes, that one :slight_smile:

Are you sure it isn’t the one rig… Geez, Jimmy! There’s always one joker who has to ruin the family photo by making a stupid face. :crazy_face:

digging into this error, looks like this is where one of them is coming from:

// Dual/multiple endstops requirements

#if ENABLED(X_DUAL_ENDSTOPS)

#if !X2_USE_ENDSTOP

#error "You must set X2_USE_ENDSTOP with X_DUAL_ENDSTOPS."

#elif X2_USE_ENDSTOP == XMIN && DISABLED(USE_XMIN_PLUG)

#error "USE_XMIN_PLUG is required when X2_USE_ENDSTOP is _XMIN_."

#elif X2_USE_ENDSTOP == XMAX && DISABLED(USE_XMAX_PLUG)

#error "USE_XMAX_PLUG is required when X2_USE_ENDSTOP is _XMAX_."

#elif X2_USE_ENDSTOP == YMIN && DISABLED(USE_YMIN_PLUG)

#error "USE_YMIN_PLUG is required when X2_USE_ENDSTOP is _YMIN_."

#elif X2_USE_ENDSTOP == YMAX && DISABLED(USE_YMAX_PLUG)

#error "USE_YMAX_PLUG is required when X2_USE_ENDSTOP is _YMAX_."

#elif X2_USE_ENDSTOP == ZMIN && DISABLED(USE_ZMIN_PLUG)

#error "USE_ZMIN_PLUG is required when X2_USE_ENDSTOP is _ZMIN_."

#elif X2_USE_ENDSTOP == ZMAX && DISABLED(USE_ZMAX_PLUG)

#error "USE_ZMAX_PLUG is required when X2_USE_ENDSTOP is _ZMAX_."

#elif !HAS_X2_MIN && !HAS_X2_MAX

#error "X2_USE_ENDSTOP has been assigned to a nonexistent endstop!"

#elif ENABLED(DELTA)

#error "X_DUAL_ENDSTOPS is not compatible with DELTA."

#endif

#endif

Try changing the folowing in pins_BTT_SKR_V1_4.h

Lines 63-65

#else
  #define X_STOP_PIN                       P1_29  // X-STOP
#endif

to

#else
  #define X_MIN_PIN                        P1_29  // X-
  #define X_MAX_PIN                        P1_26  // X+
#endif

and

lines 74-76

from

#else
  #define Y_STOP_PIN                       P1_28  // Y-STOP
#endif

to

#else
  #define Y_MIN_PIN                        P1_28  // Y-
  #define Y_MAX_PIN                        P1_25  // Y+
#endif
1 Like

Updated the firmware and all the motors are turning nicely just checking the endstops to be sure this is all fixed

1 Like

the homing works now as well! everything moves and homes nicely.

Thanks Kees for all the coding wizardry!
Jeffb3 do you want the code to help others with SKR 1.4 boards?

1 Like

Kees is there a way to slow down the homing it just hits the end and stops, also it doesn’t do the slow repeat for accuracy

Check line 1398 in configuration.h and change to something slower (like 25*60 or so) about the second bump, Jeff has to chime in. I use GRBL for my mpcnc…

There is a home bump parameter for doing the second touch. I didn’t think the defaults in our firmware were too fast. Do you have the steps/mm right?

As for the code, the actual diff from the v1 coffee would be good to paste here. Then we can link here from the MarlinBuilder releases page

So I’ve been working on getting it all together the steps per mm is too high I drew a “50mm” square with the repetier host commands and it actually drew a 100mm square! “99.9mm”
so I will need to adjust the steps per mm, is that somewhere in the code? and what’s the best way to go about this?
It does home and double click, it just does it fast due to too high steps per mm.

In configuration.h line 746:

/**
 * Default Axis Steps Per Unit (steps/mm)
 * Override with M92
 *                                      X, Y, Z, E0 [, E1[, E2...]]
 */
#define DEFAULT_AXIS_STEPS_PER_UNIT { 200, 200, 800, 200 }

But you should also check Configuration_adv.h lines 2261 and further if microstepping is configured right (should be 32 I guess)

#if HAS_TRINAMIC_CONFIG

  #define HOLD_MULTIPLIER 0.8
  #define INTERPOLATE       true  // Interpolate X/Y/Z_MICROSTEPS to 256

  #if AXIS_IS_TMC(X)
    #define X_CURRENT 900
    #define X_CURRENT_HOME  X_CURRENT  // (mA) RMS current for sensorless homing
    #define X_MICROSTEPS 32
    #define X_RSENSE          0.11
    #define X_CHAIN_POS      -1    // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
  #endif

These are written as above, is the micro stepping set by the bridge connectors?
I removed the bridge connectors on the board under the stepper drivers could this be the issue

No, microstepping is set in firmware (Configuration_adv.h)


But what about these? Its talking about setting 1/32 steps by moving the jumpers around

That is for non-TMC drivers. In the same manual:

TMC Driver-UART Mode: (eg: TMC2208, TMC2209, TMC2225, etc.) Each
axis uses a shorting cap to connect the red frame in the figure.
The subdivision and drive current are set by firmware.

arrr ok
so i just need to change this:
#define DEFAULT_AXIS_STEPS_PER_UNIT { 200, 200, 800, 200 }
to something like this:
#define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 400, 100 }

Is that right?

Just try? You could calculate the necessary values. (microsteps * amount of steps per rotation of your stepper) / (amount of tooth on your pulleys * beltpitch).

Hi, I want to setup a Lowrider variant using the skr1.4 with dual endstops on the Y axis and I think having your files would be great or even better if just the diff patch or a repo with the changes.

I’d appreciate if you could help me out!

Hi Jonathan et al
I’ve also got a V1.4 non-turbo brd and I too have only 1 X and 1Y stepper working. I used the V1CNC_Skr1p3_2209-2.1.1.zip) 2.1.1 / 515 [untested]. This seems a very similar problem to your original post. I don’t have dual end stoppers yet (on order) hence using this plain 2209 code.
My question is did you upload your working dual2209 code in the end so that I can compare the differences?
Thanks in Advance