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

    2 Z motors, to endstops

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    5
    21
    2.0k
    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.
    • Torroundefined
      Torro
      last edited by

      Hi there,

      no success with the probe, so i want to go back to "normal" endstops. my printer has 2 Z motors and i always had small problems with them because they are not synced.

      parts are printed, endstops on the way, so i´ve read a lot about this topic.
      here´s my starting point (only config.g for the moment)

      M667 S1 ; Select CoreXY mode

      ; Network
      M550 P"MKC" ; Set machine name
      M552 S1 ; Enable network
      M586 P0 S1 ; Enable HTTP
      M586 P1 S0 ; Disable FTP
      M586 P2 S0 ; Disable Telnet

      ; Specials

      M307 H2 A-1 C-1 D-1 ; disable the heater functionality

      ; Drives
      M569 P0 S1 ; Drive 0 goes forwards
      M569 P1 S1 ; Drive 1 goes forwards
      M569 P2 S1 ; Drive 2 goes forwards
      M569 P3 S1 ; Drive 3 goes forwards
      M350 X16 Y16 Z16 E16 I1 ; Configure microstepping with interpolation
      M92 X80.00 Y80.00 Z160 E420.00 ; Set steps per mm
      M566 X900.00 Y900.00 Z12.00 E120.00 ; Set maximum instantaneous speed changes (mm/min)
      M203 X30000.00 Y30000.00 Z4000.00 E4000.00 ; Set maximum speeds (mm/min)
      M201 X1500.00 Y1500.00 Z500.00 E10000.00 ; Set accelerations (mm/s^2)
      M906 X800.00 Y800.00 Z800.00 E800.00 I40 ; Set motor currents (mA) and motor idle factor in per cent
      M84 S30 ; Set idle timeout

      ; Axis Limits
      M208 X0 Y-1 Z0 S1 ; Set axis minima
      M208 X240 Y260 Z300 S0 ; Set axis maxima

      ; Endstops
      M574 X1 Y1 S0

      ; Z-Probe
      ;M558 P0 H5 F120 T6000 ; Disable Z probe but set dive height, probe speed and travel speed
      ;M557 X14:13 Y14:195 S20 ; Define mesh grid

      now the changes. Z motors are on drive 2 and 4.
      I added/edited the marked lines

      ; Drives
      M569 P0 S1 ; Drive 0 goes forwards
      M569 P1 S1 ; Drive 1 goes forwards
      M569 P2 S1 ; Drive 2 goes forwards Z @ Xmax
      M569 P3 S1 ; Drive 3 goes forwards
      M569 P4 S1 ; Drive 4 goes forwards Z @ Xmin
      M584 X0 Y1 Z2:4 E3 U4 P3 ; two Z motors connected to driver outputs Z and E1 Hide U
      M350 X16 Y16 Z16 U16 E16 I1 ; Configure microstepping with interpolation
      M92 X80.00 Y80.00 Z160 U160 E420.00 ; Set steps per mm
      M566 X900.00 Y900.00 Z12.00 U12.00 E120.00 ; Set maximum instantaneous speed changes (mm/min)
      M203 X30000.00 Y30000.00 Z4000.00 U4000.00 E4000.00 ; Set maximum speeds (mm/min)
      M201 X1500.00 Y1500.00 Z500.00 U500.00 E10000.00 ; Set accelerations (mm/s^2)
      M906 X800.00 Y800.00 Z800.00 U800.00 E800.00 I40 ; Set motor currents (mA) and motor idle factor in per cent

      ; Axis Limits
      M208 X0 Y-1 Z0 S1 ; Set axis minima
      M208 X240 Y260 Z300 S0 ; Set axis maxima

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

      the motor connected to Z is at Xmax of the bed and gets the endstop connected to Z.
      the motor connected to E1 is at Xmin and gets the endstop E1

      correct so far? not really sure about the M584 and M574

      Thanks in advance

      1 Reply Last reply Reply Quote 0
      • SupraGuyundefined
        SupraGuy
        last edited by

        It appears to me that you have most of the groundwork done. I'm still able to auto-level using the probe, so this isn't going to be my solution.

        You will want to add Z and U to your M574 endstop definitions.

        The U endstop should be connected to the E1 (drive 4) endstop.

        I don't know offhand the correct way to handle the homez.g and homeall.g files from that point. My expectation would be to "lift" the U axis by a small amount to ensure that the Z endstop homes first, then use a G0 S1 Z-300 to home the Z axis, then G0 S1 U-5 to home the U axis afterwards, but then there is very probably a better way to do that.

        Using this logic, homez.g might look like:

        ;homez.g
        G91                 ; relative positioning
        G1 U2 S2 F3000      ; Raise the "U" axis by 2mm -- home Z first please.
        G1 Z-300 S1 F300    ; Home the Z endstop
        G1 U-3 S1 F300      ; home the U endstop
        G1 Z3 F6000         ; Lift a few mm
        G1 Z-5 F300 S1      ; Re-home to the Z switch
        

        It won't deal with much of a difference between U and Z, it will error if U was more than 1mm higher than Z, and could get ugly if U was more than 2mm lower than Z.

        Lead screw driven printer, powered by Duet 2 Wifi
        MPCNC powered by Duet 2 Wifi
        CoreXY printer driven by Duet 3 6HC
        LowRider CNC powered by Duet 2 Wifi

        1 Reply Last reply Reply Quote 0
        • Torroundefined
          Torro
          last edited by

          Hi.

          Thanks. In the guide is described, how to split Z to U and Z for homing. It's on the list for Today

          1 Reply Last reply Reply Quote 0
          • Torroundefined
            Torro
            last edited by

            paste and copy from the guide. just changed 3 to 4
            unfortunately, the endstops are not delivered. i hope for tomorrow...
            i´ll test asap

            M584 Z2:4 U4 P4 ; split z control

            G1 S1 Z-350 U-350 F1000
            G1 Z5 U5 F500
            G1 S1 Z-10 U-10
            M584 Z2:4 P3 ; combine Z
            G90
            G92 Z0

            1 Reply Last reply Reply Quote 0
            • aidarundefined
              aidar
              last edited by

              This might help : https://duet3d.dozuki.com/Guide/Independent+Z+motors+and+endstop+switches/18?lang=en

              1 Reply Last reply Reply Quote 0
              • Torroundefined
                Torro
                last edited by

                Hi there,

                i got it working. but not with drive 2&4. U didn´t move. tried a few things, no luck. So i changed it to 2&3 for Z and 4 for the extruder. worked immediately. i don´t know why, but it´s ok. maybe drive 4 has to be the V axis?

                now, there is one small issue. when i power on the printer, i have to home Z first. when i try to home X or Y before, nothing happens???
                what could that be?

                config.g and homing files:

                homez
                G91 ; relative positioning

                M584 Z2 U3 P4 ; split z control

                G1 S1 Z-350 U-350 F2000
                G1 Z5 U5 F400
                G1 S1 Z-10 U-10
                M584 Z2:3 P3 ; combine Z
                G90
                G92 Z0

                homey
                G91 ; relative positioning
                G1 S1 Y-300 F5000 ; move quickly to Y axis endstop and stop there (first pass)
                G1 Y5 F3600 ; go back a few mm
                G1 S1 Y-206 F360 ; move slowly to Y axis endstop once more (second pass)
                G90 ; absolute positioning

                homex
                G91 ; relative positioning
                G1 S1 X-300 F5000 ; move quickly to X axis endstop and stop there (first pass)
                G1 X5 F360 ; go back a few mm
                G1 S1 X-206 F360 ; move slowly to X axis endstop once more (second pass)
                G90 ; absolute positioning

                homeall
                G91 ; relative positioning
                G1 S1 X-300 Y-300 F5000 ; move quickly to X or Y endstop and stop there (first pass)
                G1 S1 X-300
                G1 S1 Y-300
                G1 X10 Y10 F6000 ; go back a few mm
                G1 S1 X-20 F360 ; move slowly to X axis endstop once more (second pass)
                G1 S1 Y-20 ; then move slowly to Y axis endstop
                M98 Phomez.g

                config.g
                ; Drives
                M569 P0 S1 ; Drive 0 goes forwards
                M569 P1 S1 ; Drive 1 goes forwards
                M569 P2 S1 ; Drive 2 goes forwards Z @ Xmax
                M569 P3 S1 ; Drive 3 goes forwards Z @ Xmin
                M569 P4 S1 ; Drive 4 goes forwards
                M584 X0 Y1 Z2:3 U3 E4 P3 ; two Z motors connected to driver outputs Z and E0 Hide U
                M350 X16 Y16 Z16 U16 E16 I1 ; Configure microstepping with interpolation
                M92 X80.00 Y80.00 Z160 U160 E420.00 ; Set steps per mm
                M566 X900.00 Y900.00 Z12.00 U12.00 E120.00 ; Set maximum instantaneous speed changes (mm/min)
                M203 X30000.00 Y30000.00 Z4000.00 U4000.00 E4000.00 ; Set maximum speeds (mm/min)
                M201 X1500.00 Y1500.00 Z500.00 U500.00 E10000.00 ; Set accelerations (mm/s^2)
                M906 X800.00 Y800.00 Z800.00 U800.00 E800.00 I40 ; Set motor currents (mA) and motor idle factor in per cent
                M84 S3000 ; Set idle timeout

                ; Axis Limits
                M208 X0 Y-1 Z0 S1 ; Set axis minima
                M208 X240 Y260 Z288 S0 ; Set axis maxima

                ; Endstops
                M574 X1 Y1 S0 ; Set active high endstops
                M574 Z1 U1 S1

                aidarundefined Phaedruxundefined 2 Replies Last reply Reply Quote 0
                • aidarundefined
                  aidar @Torro
                  last edited by

                  @torro said in 2 Z motors, to endstops:

                  when i power on the printer, i have to home Z first. when i try to home X or Y before, nothing happens???

                  This sounds like your Z motor is connected to X (drive 0) connector. If you home Z, what DWC shows? Homed X i guess.

                  1 Reply Last reply Reply Quote 0
                  • Torroundefined
                    Torro
                    last edited by

                    No, all is running correct AFTER i homed Z.
                    nothing moves if Z is not homed.

                    1 Reply Last reply Reply Quote 0
                    • aidarundefined
                      aidar
                      last edited by

                      Please post your full config.g as well as config-override.g, (those on duet sd card, not somewhere in your computer, to eliminate possibilty that your backup ones in computer are not up to date)

                      1 Reply Last reply Reply Quote 0
                      • Torroundefined
                        Torro
                        last edited by

                        Hi,

                        no config-override in the system.

                        ; Configuration file for Duet WiFi (firmware version 1.21)
                        ; executed by the firmware on start-up
                        ;
                        ; generated by RepRapFirmware Configuration Tool v2 on Sat Nov 24 2018 10:45:17 GMT+0100 (Mitteleuropäische Normalzeit)

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

                        M667 S1 ; Select CoreXY mode

                        ; Network
                        M550 P"MKC" ; Set machine name
                        M552 S1 ; Enable network
                        M586 P0 S1 ; Enable HTTP
                        M586 P1 S0 ; Disable FTP
                        M586 P2 S0 ; Disable Telnet

                        ; Specials

                        M307 H2 A-1 C-1 D-1 ; disable the heater functionality

                        ; Drives
                        M569 P0 S1 ; Drive 0 goes forwards
                        M569 P1 S1 ; Drive 1 goes forwards
                        M569 P2 S1 ; Drive 2 goes forwards Z @ Xmin
                        M569 P3 S1 ; Drive 3 goes forwards
                        M569 P4 S1 ; Drive 4 goes forwards Z @ Xmax
                        M584 X0 Y1 Z2:3 U3 E4 P3 ; two Z motors connected to driver outputs Z and E1 Hide U
                        M350 X16 Y16 Z16 U16 E16 I1 ; Configure microstepping with interpolation
                        M92 X80.00 Y80.00 Z160 U160 E420.00 ; Set steps per mm
                        M566 X900.00 Y900.00 Z12.00 U12.00 E120.00 ; Set maximum instantaneous speed changes (mm/min)
                        M203 X30000.00 Y30000.00 Z4000.00 U4000.00 E4000.00 ; Set maximum speeds (mm/min)
                        M201 X1500.00 Y1500.00 Z500.00 U500.00 E10000.00 ; Set accelerations (mm/s^2)
                        M906 X800.00 Y800.00 Z800.00 U800.00 E800.00 I40 ; Set motor currents (mA) and motor idle factor in per cent
                        M84 S3000 ; Set idle timeout

                        ; Axis Limits
                        M208 X0 Y-1 Z0 S1 ; Set axis minima
                        M208 X240 Y260 Z288 S0 ; Set axis maxima

                        ; Endstops
                        M574 X1 Y1 S0 ; Set active high endstops
                        M574 Z1 U1 S1

                        ; Z-Probe
                        ;M558 P1 H5 F120 T6000 ; Disable Z probe but set dive height, probe speed and travel speed;
                        ;G31 P500 X0 Y50 Z1.45
                        ;M557 X20:220 Y70:240 S20 ; Define mesh grid

                        ; Heaters
                        M305 P0 T100000 B4388 C7.060000e-8 R4700 ; Set thermistor + ADC parameters for heater 0
                        M143 H0 S130 ; Set temperature limit for heater 0 to 120C
                        M305 P1 T100000 B4388 C7.060000e-8 R4700 ; Set thermistor + ADC parameters for heater 1
                        M143 H1 S280 ; Set temperature limit for heater 1 to 280C
                        M307 H1 A438.2 C134.9 D3.9 B0

                        ; Fans
                        M106 P0 S0 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 T45:55 H100:101:102 ; Set fan 2 value,
                        M912 P0 S-3,5

                        ; 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

                        ; Automatic power saving
                        M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; Set voltage thresholds and actions to run on power loss

                        ; Custom settings are not configured

                        ;

                        1 Reply Last reply Reply Quote 0
                        • aidarundefined
                          aidar
                          last edited by

                          Ok, config seems to be ok. So what exactly happens if you send G28 from DWC gcode console? If nothing moves, there should be some response message from duet why nothing moves. What that message says?

                          1 Reply Last reply Reply Quote 0
                          • Torroundefined
                            Torro
                            last edited by

                            Just started a print...

                            yesterday, there was no message from DWC.
                            A click on "home all" did nothing, but i couldn´t move the motors by hand anymore.

                            will test G28 asap

                            1 Reply Last reply Reply Quote 0
                            • Torroundefined
                              Torro
                              last edited by

                              after powering up the printer, a single G28 without any parameter does nothing. the circle in the "send" button spins and spins and spins. when i click "emergency stop", a message "homing failed" appears.

                              then i homed only Z. works. after that, G28 works without any issue, same as the button "homeall"

                              1 Reply Last reply Reply Quote 0
                              • aidarundefined
                                aidar
                                last edited by

                                That is odd. You are not supposed to be able home Z at all before X and Y are not homed. What firmware version are you using and what version of DWC?

                                1 Reply Last reply Reply Quote 0
                                • Torroundefined
                                  Torro
                                  last edited by

                                  Duet Web Control 2.0.0-RC3

                                  Electronics: Duet WiFi 1.02 or later
                                  Firmware: RepRapFirmware for Duet 2 WiFi/Ethernet 2.02(RTOS) (2018-12-24b1)
                                  Duet WiFi Server Version: 1.22

                                  1 Reply Last reply Reply Quote 0
                                  • Phaedruxundefined
                                    Phaedrux Moderator @Torro
                                    last edited by

                                    @torro said in 2 Z motors, to endstops:

                                    homeall
                                    G91 ; relative positioning
                                    G1 S1 X-300 Y-300 F5000 ; move quickly to X or Y endstop and stop there (first pass)
                                    G1 S1 X-300
                                    G1 S1 Y-300
                                    G1 X10 Y10 F6000 ; go back a few mm
                                    G1 S1 X-20 F360 ; move slowly to X axis endstop once more (second pass)
                                    G1 S1 Y-20 ; then move slowly to Y axis endstop
                                    M98 Phomez.g

                                    Try changing M98 Phomez.g to G28 Z

                                    Z-Bot CoreXY Build | Thingiverse Profile

                                    Torroundefined 1 Reply Last reply Reply Quote 0
                                    • Torroundefined
                                      Torro
                                      last edited by

                                      Ok. I will try.

                                      1 Reply Last reply Reply Quote 0
                                      • Torroundefined
                                        Torro
                                        last edited by

                                        I didn't test it yet, but i have an idea, i could put the home Z order on top in the first line. I Guess it works... 🙂

                                        1 Reply Last reply Reply Quote 0
                                        • thweundefined
                                          thwe
                                          last edited by thwe

                                          On my CoreXY also with 2 Z-Motors and 2 Endstops (1 for Z and 1 for U - Drive 2 and 3) i have to home Z also at first.

                                          Only for example - without any garanty - see my homeall.g:

                                          ; ##############  homeall.g -> called to home all axes  ##############
                                          
                                          M98 Phomez.g                 ; X homing
                                          
                                          M98 Phomex.g                 ; Y homing
                                          
                                          M98 Phomey.g                 ; Z homing
                                          
                                          G90
                                          
                                          
                                          ; #################    checking trigger height + Z null adjusting    #################
                                          G1 X144 Y150 F12000
                                          G1 Z20 F1800
                                          G1 Z15 F1200
                                          G1 Z10 F600
                                          T0
                                          G30                            ; Probe the bed at the current XY position, set the Z coordinate to the probe trigger height
                                          G4 P200
                                          G1 Z50 F1800
                                          
                                          ; END OF FILE
                                          

                                          and my homez.g:

                                          ; ##############  homez.g -> called to home the Z axis  ##############
                                          
                                          G91                         ; relative positioning
                                          
                                          M584 Z2 U3 P4               ; Split Z into 2 (Z+U)
                                          
                                          G1 S1 Z999 U999 F600        ; Move the bed down in the Z direction. S1 to stop if endstop is triggered
                                          G1 S2 Z-3 U-3 F600          ; Move the bed up 3mm in the -Z direction, ignore if axis are not homed
                                          G1 S1 Z9 U9 F200            ; Move slowly in the +Z direction again to stop exactly at the homing switch
                                          M400                        ; Wait for current moves to finish
                                          
                                          G4 P100
                                          G1 S2 Z0.00 U0.00 F200      ; Compensation the limit switch from z-axis drive 2 (!!can be adjusted here!!)
                                          G4 P100
                                          
                                          M584 Z2:3 P3                ; Join U to Z again
                                          G4 P100
                                          
                                          G92 Z282.00                 ; set position of Z relativ to the bed (!!must be adjusted here!!)
                                          
                                          G90                         ; Back to absolute mode
                                          
                                          G1 S2 Z270 F900
                                          ; End of file
                                          

                                          Thomas

                                          1 Reply Last reply Reply Quote 0
                                          • Torroundefined
                                            Torro
                                            last edited by

                                            Good to know. Thanks!

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