dual z drivers and dual z endstops

i had a thought of having individual z drivers and then add another Z endstop

would this allow me to sync the 2 steppers so that X axis is level? tried to look in the web config tool for an explanation but failed

Comments

  • edited November 2017
    hmm

    am i correct in this?

    i need to enable FEATURE_TWO_ZSTEPPER
    then set correct socket in "Mirror stepper socket"
    then set ENDSTOP_PULLUP_Z2_MINMAX/ENDSTOP_Z2_MINMAX_INVERTING correctly 
    select the right connector on Z2_MINMAX_PIN

  • Yes you are correct. Z2_MINMAX corresponds to second z motor. Then it should work.
  • thanks for quick reply

    are there an offset should i need it? ie if one endstop is ever so slightly higher or lower than the other?
  • There are no offsets - you need to tweak endstop position or correct it in bed leveling.

  • i came arround to do this... is this the correct setup? https://imgur.com/a/hji6e

    i dont want to destroy things
  • it kind of worked

    i checked both endstops for Z and they work as they should

    with repetier host i can drive Z up and down and both steppers move normally, 

    but when homing only one Z stepper stops... the other tries to continue even thou endstop is activated
  • here is the endstop check

    16:01:14.053 : endstops hit: x_max:L y_max:L z_max:L z2_minmax:L Z-probe state:L
    16:01:49.041 : endstops hit: x_max:L y_max:L z_max:H z2_minmax:L Z-probe state:L
    16:02:01.954 : endstops hit: x_max:L y_max:L z_max:L z2_minmax:H Z-probe state:L
    16:02:04.228 : endstops hit: x_max:L y_max:L z_max:L z2_minmax:L Z-probe state:L

  • when homing i have to hit reset botton, but switch states are now:

    16:03:46.963 : endstops hit: x_max:L y_max:L z_max:H z2_minmax:L Z-probe state:L

    so its seems that it stops Z2 but not Z1
  • even thou its not logical to me i tried to switch arround the endstops... so the one that was connected to Z1 stepper is now connected to Z2 instead

    and i tried by hand to place the 2 z steppers very differently and they now stop as expected
  • If you look into printer.h

        static INLINE void startZStep() {

    #if MULTI_ZENDSTOP_HOMING

            if(Printer::multiZHomeFlags & 1) {

                WRITE(Z_STEP_PIN, START_STEP_WITH_HIGH);

            }

    #if FEATURE_TWO_ZSTEPPER

            if(Printer::multiZHomeFlags & 2) {

                WRITE(Z2_STEP_PIN, START_STEP_WITH_HIGH);

            }

    #endif


    You see normal motor is linked to 1 and second motor to 2.

    In checkEndstops you see

    #if MULTI_ZENDSTOP_HOMING

                    {

                        if(Printer::isHoming()) {

                            if(isZNegativeMove()) {

                                if(Endstops::zMin())

                                    Printer::multiZHomeFlags &= ~1;

                                if(Endstops::z2MinMax())

                                    Printer::multiZHomeFlags &= ~2;

                                if(Printer::multiZHomeFlags == 0)

                                    setZMoveFinished();

                            } else if(isZPositiveMove()) {

                                if(Endstops::zMax())

                                    Printer::multiZHomeFlags &= ~1;

                                if(Endstops::z2MinMax())

                                    Printer::multiZHomeFlags &= ~2;

                                if(Printer::multiZHomeFlags == 0) {

    #if MAX_HARDWARE_ENDSTOP_Z

                                    Printer::stepsRemainingAtZHit = stepsRemaining;

    #endif

                                    setZMoveFinished();

                                }

                            }

    You see z2minmax is linked to 2, so I wonder that you needed to cross the endstops. I really do not see this in the code. Can you double check that you did not just use wrong sockets (flipped) so you just mimic wrong hardware connection.

    In any case I'm glad it is now working.


  • i double checked and also my logic was that before i added the extra stepper driver  endstop1 would be connected to stepper driver1

    so i just add a stepper driver where extruder1 was empty and connected one more endstop and took one stepper motor and connected it to extruder 1

    i think i might have connected the wrong stepper to extruder one, all the wires are in cable sleeve and secured to the printer
  • Ok, thank you.
Sign In or Register to comment.