Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login

    Dual Z-axis endstops

    Scheduled Pinned Locked Moved
    General Discussion
    18
    89
    20.1k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • dc42undefined
      dc42 administrators
      last edited by

      @SpeedyDad:

      This may be a stupid question but when doing this, I assume you move the extruder to the E1 connector?

      You can either use the E0 motor output for the second Z motor and E1 for the extruder (which is what I assumed in the config examples I gave above), or vice versa. Just tell the firmware which way round you have them in the M584 command.

      Duet WiFi hardware designer and firmware engineer
      Please do not ask me for Duet support via PM or email, use the forum
      http://www.escher3d.com, https://miscsolutions.wordpress.com

      1 Reply Last reply Reply Quote 0
      • SpeedyDadundefined
        SpeedyDad
        last edited by

        Thanks

        1 Reply Last reply Reply Quote 0
        • FrankNPrinterundefined
          FrankNPrinter
          last edited by

          yes there are several FT5 owners running dual home z. I am still waiting to see if going to 1 z motor and linking the 2 z axis would be a better option. I have Duet WIFI so if i don't, i will eatu p my extra extruder spot if I split Z. In series you only get half the power any way so not sure if there is an up side to 2 motors in series? I know we talked about that briefly, your thoughts are always appreciated DC42! (https://www.youtube.com/watch?v=askVj4_5f9c)

          1 Reply Last reply Reply Quote 0
          • dc42undefined
            dc42 administrators
            last edited by

            If you connect two Z motors in series, you don't lose torque at low speeds. Each provides the same torque that a single motor would at the same current setting. However, the maximum speed you can run the motors at before the torque starts dropping is halved. This isn't normally a problem because high Z speeds are not required.

            Firmware 1.19beta9 includes most of the implementation of bed leveling using multiple Z motors connected to individual drivers.

            Duet WiFi hardware designer and firmware engineer
            Please do not ask me for Duet support via PM or email, use the forum
            http://www.escher3d.com, https://miscsolutions.wordpress.com

            1 Reply Last reply Reply Quote 0
            • SpeedyDadundefined
              SpeedyDad
              last edited by

              This works great. Implemented it on my big machine and I no longer have to worry if one side sags at idle. The only oddity I've noticed is that regardless of how long the machine has been on or if the Z has already been homed, when I home the Z axis from full height, the right side is hitting the endstop before the left side by about 2 seconds. However, once I have homed it and take it back to Z0, I can do a G0 to run the machine down to 10mm above the endstop and then slowly manually move it down and the hit together. Then if I run it to Z0 and home again, same 2 second lag. Must have a digit out of place somewhere. Steps are set the same. Hmmmmm.

              For reference, this machine is like an Ultimaker but about twice the size so Z0 is up.

              1 Reply Last reply Reply Quote 0
              • SpeedyDadundefined
                SpeedyDad
                last edited by

                Got it homing evenly now. just mirrored all the settings for Z to U in the config file.

                1 Reply Last reply Reply Quote 0
                • dc42undefined
                  dc42 administrators
                  last edited by

                  I'm glad you sorted it!

                  Duet WiFi hardware designer and firmware engineer
                  Please do not ask me for Duet support via PM or email, use the forum
                  http://www.escher3d.com, https://miscsolutions.wordpress.com

                  1 Reply Last reply Reply Quote 0
                  • SpeedyDadundefined
                    SpeedyDad
                    last edited by

                    I think it was the steps

                    1 Reply Last reply Reply Quote 0
                    • dc42undefined
                      dc42 administrators
                      last edited by

                      Bear in mind that in firmware 1.19beta10, an alternative to using dual Z endstops now is to use auto bed levelling to adjust your 2 leadscrews independently to get the bed level after homing.

                      Duet WiFi hardware designer and firmware engineer
                      Please do not ask me for Duet support via PM or email, use the forum
                      http://www.escher3d.com, https://miscsolutions.wordpress.com

                      1 Reply Last reply Reply Quote 0
                      • kazolarundefined
                        kazolar
                        last edited by

                        I am considering using my 2 lead screws independently also, since I can add driver 12 to the LCD connector.
                        Your example shows assigning U axis to an unconnected driver, which in my case there will be none. So how would I configure dual lead screw (don't have auto bed leveling setup yet โ€“ I will add that in after I get the basics configured)

                        This is what I have now:

                        M584 X0 Y1 U2 V3 W4 A5 E6:7:8:9 Z10
                        so if I were to add 11 it would change to
                        M584 X0 Y1 U2 V3 W4 A5 E6:7:8:9 Z10:11 then presumably I would define B somehow? would be also 11?

                        I can remap other axis to -- as in U etc kinda like this:

                        M584 X0 Y1 V2 W3 A4 B5 E6:7:8:9 Z10:11 -- then I have U freed up as a limit switch on the primary duet as apposed to the expansion board, though I haven't notice any performance difference with 19.11 support for end stops on the expansion board.

                        Being that I have a large bed and there is the ability to add the 12th driver -- I can drop in another TB6600 and run my 2 lead screws independently.

                        1 Reply Last reply Reply Quote 0
                        • dc42undefined
                          dc42 administrators
                          last edited by

                          The recommended approach now is to use a Z probe and to drive the multiple Z leadscrews independently during bed levelling only. However, you could use the old approach of dual endstop switches instead if you want, but in your case use the B axis for the second Z leadscrew instead of U. Then you can use the M584 P parameter to hide the B axis.

                          Duet WiFi hardware designer and firmware engineer
                          Please do not ask me for Duet support via PM or email, use the forum
                          http://www.escher3d.com, https://miscsolutions.wordpress.com

                          1 Reply Last reply Reply Quote 0
                          • kazolarundefined
                            kazolar
                            last edited by

                            @dc42:

                            The recommended approach now is to use a Z probe and to drive the multiple Z leadscrews independently during bed levelling only. However, you could use the old approach of dual endstop switches instead if you want, but in your case use the B axis for the second Z leadscrew instead of U. Then you can use the M584 P parameter to hide the B axis.

                            I have different bed leveling options I will be trying once I have a bed ๐Ÿ™‚ I need to prep the PEI sheet with the automotive paint before I adhere it to the boro glass, that is on my queue for next week. I ordered the second TB6600 and will be setting it up for now to use the old method with 2 limit switches as you said, so I'm assuming
                            The correct option for me is
                            M584 X0 Y1 U2 V3 W4 A5 E6:7:8:9 Z10:11 B11 P7
                            M574 X1 Y1 Z1 U2 V2 W1 A2 B1 S1

                            then my homez.g would be

                            G91
                            M584 Z10 B11
                            G1 S1 Zxxx Bxxx
                            G92 Zxxx
                            M584 Z10:11
                            G90

                            So I can't really "hide" or prevent inadvertent moves of the B axis โ€“ since at the end of the Z homing it still assigned to 11 (which I suppose isn't critical as no standard gcode contains G1 B commands)

                            1 Reply Last reply Reply Quote 0
                            • Amiliousundefined
                              Amilious
                              last edited by

                              Question on this. Can I use my bl touch instead of endstops? I have the endstops but would rather not use if i do not have to. Can we use the Z probe for both Z and U. For example, home the bed, with bl touch this would leave space between nozzle and the bed. Then move the head to the other side of the build platform and use only the U motor to move until probe is triggered again.

                              1 Reply Last reply Reply Quote 0
                              • dc42undefined
                                dc42 administrators
                                last edited by

                                @kazolar:

                                I have different bed leveling options I will be trying once I have a bed ๐Ÿ™‚ I need to prep the PEI sheet with the automotive paint before I adhere it to the boro glass, that is on my queue for next week. I ordered the second TB6600 and will be setting it up for now to use the old method with 2 limit switches as you said, so I'm assuming
                                The correct option for me is
                                M584 X0 Y1 U2 V3 W4 A5 E6:7:8:9 Z10:11 B11 P7
                                M574 X1 Y1 Z1 U2 V2 W1 A2 B1 S1

                                then my homez.g would be

                                G91
                                M584 Z10 B11
                                G1 S1 Zxxx Bxxx
                                G92 Zxxx
                                M584 Z10:11
                                G90

                                So I can't really "hide" or prevent inadvertent moves of the B axis โ€“ since at the end of the Z homing it still assigned to 11 (which I suppose isn't critical as no standard gcode contains G1 B commands)

                                You can hide the B axis at the end of homing by adding P8 to the first M584 command and P7 to the second. The B axis will appear during Z homing but will be hidden afterwards.

                                Duet WiFi hardware designer and firmware engineer
                                Please do not ask me for Duet support via PM or email, use the forum
                                http://www.escher3d.com, https://miscsolutions.wordpress.com

                                1 Reply Last reply Reply Quote 0
                                • dc42undefined
                                  dc42 administrators
                                  last edited by

                                  @Amilious:

                                  Question on this. Can I use my bl touch instead of endstops? I have the endstops but would rather not use if i do not have to. Can we use the Z probe for both Z and U. For example, home the bed, with bl touch this would leave space between nozzle and the bed. Then move the head to the other side of the build platform and use only the U motor to move until probe is triggered again.

                                  Use the bltouch to home Z at bed centre as normal, then use the multiple leadscrew bed levelling facility described at https://duet3d.com/wiki/Bed_levelling_using_multiple_independent_Z_motors.

                                  Duet WiFi hardware designer and firmware engineer
                                  Please do not ask me for Duet support via PM or email, use the forum
                                  http://www.escher3d.com, https://miscsolutions.wordpress.com

                                  1 Reply Last reply Reply Quote 0
                                  • j3dkundefined
                                    j3dk
                                    last edited by

                                    I have have an FT-5 and want to split my Z axis when homing, my Home Z.g looks like this:
                                    ; homez.g
                                    ; called to home the Z axis
                                    ;
                                    ; generated by Jens Kej on Sun Mar 11 2018 15.00

                                    G91 ; relative mode
                                    G1 Z4 F200 ; raise head 4mm to ensure it is above the switch trigger height
                                    G90 ; back to absolute mode
                                    G1 X-305 Y-305 F1800 S1; move XY home
                                    G1 X150 Y150 F2000 ; put the head to be centered when you home Z
                                    G91 ; relative mode
                                    M584 Z2 U3 ; split Z axis in two
                                    G1 Z-400 U-400 S1 F100 ; home the Z- and U axis
                                    G92 Z0.1 ; tell the software that it 0,1 mm above bed
                                    G90 ; back to absolute mode
                                    M584 Z2:3 ; make One Z axis again

                                    the bed is moving fine up and down from web interface but only the Z axis is trying move when I push home Z, why?

                                    Jk

                                    1 Reply Last reply Reply Quote 0
                                    • dc42undefined
                                      dc42 administrators
                                      last edited by

                                      Please post your config.g file.

                                      Duet WiFi hardware designer and firmware engineer
                                      Please do not ask me for Duet support via PM or email, use the forum
                                      http://www.escher3d.com, https://miscsolutions.wordpress.com

                                      1 Reply Last reply Reply Quote 0
                                      • j3dkundefined
                                        j3dk
                                        last edited by

                                        @j3dk:

                                        I have have an FT-5 and want to split my Z axis when homing, my Home Z.g looks like this:
                                        ; homez.g
                                        ; called to home the Z axis
                                        ;
                                        ; generated by Jens Kej on Sun Mar 11 2018 15.00

                                        G91 ; relative mode
                                        G1 Z4 F200 ; raise head 4mm to ensure it is above the switch trigger height
                                        G90 ; back to absolute mode
                                        G1 X-305 Y-305 F1800 S1; move XY home
                                        G1 X150 Y150 F2000 ; put the head to be centered when you home Z
                                        G91 ; relative mode
                                        M584 Z2 U3 ; split Z axis in two
                                        G1 Z-400 U-400 S1 F100 ; home the Z- and U axis
                                        G92 Z0.1 ; tell the software that it 0,1 mm above bed
                                        G90 ; back to absolute mode
                                        M584 Z2:3 ; make One Z axis again

                                        the bed is moving fine up and down from web interface but only the Z axis is trying move when I push home Z, why?

                                        here comes my config.g:
                                        ; Configuration file for Duet WiFi (firmware version 1.17)
                                        ; executed by the firmware on start-up
                                        ;
                                        ; generated by Jens Kej on Thu Sep 21 2017 17:16:32 GMT+0200 (Rom, sommertid)

                                        ; General preferences
                                        M111 S0 ; Debugging off
                                        G21 ; Work in millimetres
                                        G90 ; Send absolute coordinatesโ€ฆ
                                        M83 ; ...but relative extruder moves
                                        M555 P2 ; Set firmware compatibility to look like Marlin
                                        M208 X0 Y0 Z0 S1 ; Set axis minima
                                        M208 X300 Y300 Z350 S0 ; Set axis maxima

                                        ; Endstops
                                        ;M574 Z1 S1 ; Define Hall sensor active high on Z-axis
                                        M574 X1 Y1 Z1 U1 S0 ; Define active low and unused microswitches
                                        :M558 P1 X0 Y0 Z0 H5 F120 T6000 ; Set Z probe type to unmodulated, the axes for which it is used and the probe + travel speeds
                                        ;G31 P600 X0 Y0 Z0 ; Set Z probe trigger value, offset and trigger height
                                        ;M557 X15:285 Y15:285 S20 ; Define mesh grid

                                        ; Drives
                                        M569 P0 S0 ; Drive 0 goes backwards
                                        M569 P1 S1 ; Drive 1 goes forwards
                                        M569 P2 S0 ; Drive 2 goes backwards
                                        M569 P3 S0 ; Drive 3 goes backwards
                                        M569 P4 S1 ; Drive 4 goes forwards
                                        M569 P5 S1 ; Drive 5 goes forwards
                                        M569 P6 S1 ; Drive 6 goes forwards

                                        M584 X0 Y1 Z2:3 U3 E4:5:6 P3; Apply custom drive mapping
                                        M350 X16 Y16 Z16 U16 E16:16:16 I1 ; Configure microstepping with interpolation
                                        M92 X80 Y80 Z400 U400 E100๐Ÿ’ฏ100 ; Set steps per mm
                                        M566 X900 Y900 Z12 U12 E120:120:120 ; Set maximum instantaneous speed changes (mm/min)
                                        M203 X6000 Y6000 Z1000 U1000 E1200:1200:1200 ; Set maximum speeds (mm/min)
                                        M201 X500 Y500 Z250 U250 E250:250:250 ; Set accelerations (mm/s^2)
                                        M906 X800 Y800 Z800 U800 E800:800:800 I30 ; Set motor currents (mA) and motor idle factor in per cent
                                        M84 S30 ; Set idle timeout

                                        ; Heaters
                                        M143 S260 ; Set maximum heater temperature to 260C
                                        M305 P0 T100000 B3950 C0 R4700 ; Set thermistor + ADC parameters for heater 0
                                        ;M305 P1 T100000 B3950 C0 R4700 ; Set thermistor + ADC parameters for heater 1
                                        M305 P1 x151 ; Thermocouple
                                        M307 H1 A626.6 C265.6 D13.9 ; hotend pid settings

                                        ; Tools
                                        M563 P0 D0 H1 ; Define tool 0
                                        G10 P0 X0 Y0 Z0 ; Set tool 0 axis offsets
                                        G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C
                                        M563 P1 D1 H1 ; Define tool 1
                                        G10 P1 X0 Y0 Z0 ; Set tool 1 axis offsets
                                        G10 P1 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C
                                        M563 P2 D2 H1 ; Define tool 2
                                        G10 P2 X0 Y0 Z0 ; Set tool 2 axis offsets
                                        G10 P2 R0 S0 ; Set initial tool 2 active and standby temperatures to 0C

                                        ; Network
                                        M550 PFT-5 DD ; Set machine name
                                        M552 S1 ; Enable network
                                        M587 Sfarce95taske53lufffe P"be81b0f702d6d23152c28d870e" ; Configure access point. You can delete this line once connected
                                        M586 P0 S1 ; Enable HTTP
                                        M586 P1 S0 ; Disable FTP
                                        M586 P2 S0 ; Disable Telnet

                                        ; Fans
                                        M106 P0 S1 I0 F500 H1 T45 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned on
                                        M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
                                        M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on

                                        ; Custom settings are not configured
                                        M501 ;Load overide config.g

                                        Jk

                                        1 Reply Last reply Reply Quote 0
                                        • dc42undefined
                                          dc42 administrators
                                          last edited by

                                          Your two M208 commands need to be moved to be after the M584 command, and you need to add U axis values to them.

                                          Duet WiFi hardware designer and firmware engineer
                                          Please do not ask me for Duet support via PM or email, use the forum
                                          http://www.escher3d.com, https://miscsolutions.wordpress.com

                                          1 Reply Last reply Reply Quote 0
                                          • j3dkundefined
                                            j3dk
                                            last edited by

                                            @dc42:

                                            Your two M208 commands need to be moved to be after the M584 command, and you need to add U axis values to them.

                                            I made something very wrong, messed it all up and had to put new configuration files on the SD-Card. Then I started all over again from scratch. Now my config.g and homez.g looks like this, much better structured, without unused comands etc. but the problem still remains the same:

                                            โ€“----------------------------------------------------------------------------------------------------------------------------------------

                                            ; config.g Dual Z-axis

                                            ; Configuration file for Duet WiFi (firmware version 1.20 or newer)
                                            ; executed by the firmware on start-up
                                            ;
                                            ; generated by RepRapFirmware Configuration Tool on Mon Mar 19 2018 17:18:48 GMT+0100 (Rom, normaltid)
                                            ; Edited by J. Kej on Mon Mar 19 2018 20:58:48 GMT+0100 (Rom, normaltid)

                                            ; General preferences
                                            G90 ; Send absolute coordinates...
                                            M83 ; ...but relative extruder moves

                                            ; Network
                                            M550 PJK'S FT-5 DD ; Set machine name
                                            M552 S1 ; Enable network
                                            M587 S"farce95taske53lufe" P"be81b0f702d6d23152c28d870e" ; Configure access point.
                                            M586 P0 S1 ; Enable HTTP
                                            M586 P1 S1 ; Enable FTP
                                            M586 P2 S1 ; Enable Telnet

                                            ; Drives
                                            M569 P0 S0 ; Drive 0 goes backwards
                                            M569 P1 S1 ; Drive 1 goes forwards
                                            M569 P2 S0 ; Drive 2 goes backwards
                                            M569 P3 S0 ; Drive 3 goes backwards
                                            M569 P4 S1 ; Drive 4 goes forwards
                                            M569 P5 S1 ; Drive 5 goes forwards
                                            M569 P6 S1 ; Drive 6 goes forwards
                                            M584 X0 Y1 Z2:3 U3 E4:5:6 P3 ; Configure drive remapping to dual Z-axis
                                            M350 X16 Y16 Z16 U16 E16:16:16 I0 ; Configure microstepping without interpolation
                                            M92 X80 Y80 Z400 U400 E100๐Ÿ’ฏ100 ; Set steps per mm
                                            M566 X900 Y900 Z12 U12 E120:120:120 ; Set maximum instantaneous speed changes (mm/min)
                                            M203 X6000 Y6000 Z1800 U1800 E1200:1200:1200 ; Set maximum speeds (mm/min)
                                            M201 X500 Y500 Z250 U250 E250:250:250 ; Set accelerations (mm/s^2)
                                            M906 X800 Y800 Z800 U800 E800:800:800 I30 ; Set motor currents (mA) and motor idle factor in per cent
                                            M84 S30 ; Set idle timeout

                                            ; Axis Limits
                                            M208 X0 Y0 Z0 U1 S1 ; Set axis minima
                                            M208 X300 Y300 Z350 U350 S0 ; Set axis maxima

                                            ; Endstops
                                            M574 X1 Y1 Z1 U1 S0 ; Set active low endstops

                                            ; Z-Probe
                                            M558 P0 H3 F120 T6000 ; Disable Z probe but set dive height, probe speed and travel speed
                                            M557 X15:285 Y15:285 S20 ; Define mesh grid

                                            ; Heaters
                                            M305 P0 T100000 B4138 C0 R4700 ; Set thermistor + ADC parameters for heater 0
                                            M143 H0 S120 ; Set temperature limit for heater 0 to 120C
                                            M305 P1 X151 ; Configure thermocouple for heater 1
                                            M143 H1 S280 ; Set temperature limit for heater 1 to 280C

                                            ; Fans
                                            M106 P0 S0.3 I0 F500 H-1 ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
                                            M106 P1 S1 I0 F500 H1 T45 ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
                                            M106 P2 S1 I0 F500 H1 T45 ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on

                                            ; Tools
                                            M563 P0 D0 H1 ; Define tool 0
                                            G10 P0 X0 Y0 Z0.1 ; Set tool 0 axis offsets
                                            G10 P0 R0 S0 ; Set initial tool 0 active and standby temperatures to 0C
                                            M563 P1 D1 H1 ; Define tool 1
                                            G10 P1 X0 Y0 Z0.1 ; Set tool 1 axis offsets
                                            G10 P1 R0 S0 ; Set initial tool 1 active and standby temperatures to 0C
                                            M563 P2 D2 H1 ; Define tool 2
                                            G10 P2 X0 Y0 Z0.1 ; Set tool 2 axis offsets
                                            G10 P2 R0 S0 ; Set initial tool 2 active and standby temperatures to 0C
                                            M563 P3 D0:1:2 H1 ; Define tool 3
                                            G10 P3 X0 Y0 Z0.1 ; Set tool 3 axis offsets
                                            G10 P3 R0 S0 ; Set initial tool 3 active and standby temperatures to 0C
                                            M568 P3 S1 ; Enable mixing for tool 3
                                            M567 P3 E0.33:0.33:0.34 ; Set mixing ratios for tool 3

                                            ; Automatic saving after power loss is not enabled

                                            ; Custom settings


                                            ; homez.g
                                            ; called to home the Z axis
                                            ;
                                            ; generated by RepRapFirmware Configured for Dual Z-axis by J. Kej on Mon Mar 19 2018 20:18:47 GMT+0100 (Rom, normaltid)
                                            ;
                                            M584 Z2 U3 P3
                                            G1 S1 Z-355 U-355
                                            G92 Z0.1
                                            M584 Z2:3 P3

                                            Jk

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post
                                            Unless otherwise noted, all forum content is licensed under CC-BY-SA