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

    Dual Z after 1.02 to 3.4.1 Upgrade

    Scheduled Pinned Locked Moved Solved
    Firmware installation
    3
    9
    384
    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.
    • wmmc01undefined
      wmmc01
      last edited by

      Trying to comply with setup of Dual Z steppers and endstop after upgrading from 1.02 FW progressively to 3.4.1 FW on a Duet 2 Wifi. I had this working on the old FW by splitting Z into Z and U, but I see that is no longer required in the current FW. (Note X and Y axis run fine, have not tested Z yet due to the errors below)

      I have Z steppers on Drives 2 (Z) and 3 (E0), and endstops zstop and e0stop.

      I assume I am missing something, any help certainly appreciated!

      Running M98 P"coonfig.g" results are:
      M98 P"config.g"
      HTTP is enabled on port 80
      FTP is disabled
      TELNET is disabled
      Error: Pin 'zstop' is not free
      Error: Invalid Z probe index

      My config.g:

      ; Configuration file for Duet WiFi (firmware version 1.21) UPDATED by WMM for Dual Z Motors and End Stops
      ; executed by the firmware on start-up
      ; NEW Indicated for lines edited to support dual Z=Stops
      ; generated by RepRapFirmware Configuration Tool v2 on Tue Dec 18 2018 16:44:11 GMT-0500 (Eastern Standard Time)
      ; Upgraded to FW v3.4.1 7/24/2022

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

      M669 K1 ; New 3 Select CoreXY mode K1

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

      ; Drives
      M569 P0 S0 ; Drive 0 goes BACKWARDS Y Homes to the FRONT X Homes to the LEFT
      M569 P1 S1 ; Drive 1 goes forwards Y Homes to the FRONT X Homes to the LEFT
      M569 P2 S1 ; Drive 2 goes forwards
      M569 P3 S1 ; Drive 3 goes forwards
      M569 P4 S1 ; Drive 4 goes forwards
      M584 X0 Y1 Z2:3 E4 P3 ; New V3 2 steppers for Z
      M350 X16 Y16 Z16 E16 I1 ; NEW V3 Configure microstepping without interpolation Changed E to 16
      M92 X80.00 Y80.00 Z400.00 E476.5 ; NEW V3 Set steps per mm With the change in microstepping above, all stepps/mm needed to be cut in half except E for some reason
      M566 X100.00 Y100.00 Z12.00 E20.00 ; NEW V3 Set maximum instantaneous speed changes (mm/min) JERK NEW Added U was 900 for X/Y
      M203 X3600.00 Y3600.00 Z600.00 E2400.00 ; NEW V3 Set maximum speeds (mm/min) NEW Added U Changed Max Speed for Z/U to 600 was 6000
      M201 X800.00 Y800.00 Z20.00 E500.00 ; NEW V3 Set accelerations (mm/s^2) NEW Added U - changed X+Y to 1500 from 3000
      M906 X1000.00 Y1000.00 Z1400.00 E800.00 I30 ; NEW V3 Set motor currents (mA) and motor idle factor in per cent NEW Added U
      M84 S30 ; Set idle timeout

      ; Axis Limits NEW Added
      M208 X1 Y0 Z0 S1 ; Set axis minima NEW added U0 was all 1
      M208 X400 Y370 Z380 S0 ; Set axis maxima NEW Revised max from X390 Y390

      ; Endstops
      M574 Z1 P"nil" ; In theory frees up zstop from preassigned
      M574 X1 S1 P"xstop" ; New for ver 3 Note if using Stallgaurd less info is required All
      M574 Y1 S1 P"ystop" ; New for ver 3
      M574 Z1 S1 P"zstop+e0stop" ; New for ver 3

      ; Z-Probe
      ;M558 P5 X0 Y0 Z0 H2 F60 T6000 ; Set Z probe type to switch, the axes for which it is used and the dive height + speeds, edited P0 to P4 indicating switch
      M558 P5 C"zstop+e0stop" H2 F60 T6000 ; New V3
      G31 P600 X0 Y0 Z0 ; Set Z probe trigger value, offset and trigger height
      M557 X20:360 Y20:360 S20 ; Define mesh grid

      ; HEATERS
      ; Bed
      M308 S0 P"bedtemp" Y"thermistor" T100000 B3950 R4700 ; New 3 Bed Keenovo
      M950 H0 C"bedheat" T0 ; New 3
      ;M307 H0 B0 S1.00 ; Disable bang-bang mode for the bed heater and set PWM limit
      M307 H0 A90.0 C700.0 D10.0 S1.00 V0.0 B0 ; Copied from override file
      M140 H0 ;
      M143 H0 S120 ; Set temperature limit for heater 0 to 120C

      ; Hotend
      M308 S1 P"e0temp" Y"thermistor" T100000 B4138 C7.060000e-8 ; New 3
      M950 H1 C"e0heat" T1 ; New 3
      M307 H1 A232.6 C90.5 D0.9 S0.50 V12.1 B0 ; Copied from override file
      M143 H1 S300 ; Set temperature limit for heater 1 to 300C; Before Revo was 280

      ; Fans
      M950 F0 C"fan0" Q500 ; New 3
      M106 P0 S0 H-1 ; Revised V3 Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off Changed from S0.3
      M950 F1 C"fan1" Q500 ; New 3
      M106 P1 S1 H-1 ; New 3

      ; 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

      ; PanelDue
      M575 P1 B57600 S1 ; New V3 PanelDue specific

      ; Automatic saving after power loss is not enabled

      ; Custom settings are not configured

      ; Miscellaneous
      T0 ; Select first tool
      ;M501 ; Load latest PID Tune for H1

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

        @wmmc01 said in Dual Z after 1.02 to 3.4.1 Upgrade:

        M574 Z1 S1 P"zstop+e0stop" ; New for ver 3
        ; Z-Probe
        ;M558 P5 X0 Y0 Z0 H2 F60 T6000 ; Set Z probe type to switch, the axes for which it is used and the dive height + speeds, edited P0 to P4 indicating switch
        M558 P5 C"zstop+e0stop" H2 F60 T6000 ; New V3

        You can't connect a Z probe and an endstop switch to the same pin. Which of the following do you have:

        1. A single Z endstop switch
        2. Two Z endstop switches, one for each motor.
        3. No Z endstop switches, instead you use the Z probe to home Z.

        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

        wmmc01undefined 1 Reply Last reply Reply Quote 0
        • wmmc01undefined
          wmmc01 @dc42
          last edited by

          @dc42 Hi DC42!
          I have 2 end stop switches, one for each motor. What do I need to change?
          Thanks!

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

            Do you have a Z probe in addition to the two Z endstops?

            What pin is it actually using?

            Error: Pin 'zstop' is not free
            Error: Invalid Z probe index

            The errors are because you are trying to use the same pins for the Z endstops and for the Z probe.

            M574 Z1 S1 P"zstop+e0stop" ; New for ver 3
            M558 P5 C"zstop+e0stop"

            How do you actually have things wired?

            Z-Bot CoreXY Build | Thingiverse Profile

            wmmc01undefined 1 Reply Last reply Reply Quote 0
            • wmmc01undefined
              wmmc01 @Phaedrux
              last edited by

              @phaedrux
              This is how they are actually wired: I have Z steppers on Drivers 2 (Z) and 3 (E0), and endstops: zstop and e0stop.

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

                So no probe at all?

                If that's the case, you can remove the entire zprobe section

                ; Z-Probe
                ;M558 P5 X0 Y0 Z0 H2 F60 T6000 ; Set Z probe type to switch, the axes for which it is used and the dive height + speeds, edited P0 to P4 indicating switch
                M558 P5 C"zstop+e0stop" H2 F60 T6000 ; New V3
                G31 P600 X0 Y0 Z0 ; Set Z probe trigger value, offset and trigger height
                M557 X20:360 Y20:360 S20 ; Define mesh grid
                

                And for the endstops you just need

                ; Endstops
                M574 X1 S1 P"xstop" ; New for ver 3 Note if using Stallgaurd less info is required All
                M574 Y1 S1 P"ystop" ; New for ver 3
                M574 Z1 S1 P"zstop+e0stop" ; New for ver 3
                

                Then in your homing files for Z you just home the Z axis as normal. It will move both motors until their respective endstops are triggered.

                Make sure the motor on driver 2 is using the zstop endstop, and driver 3 motor is using e0stop endstop to match the order you have the drivers and endstops listed.

                Z-Bot CoreXY Build | Thingiverse Profile

                wmmc01undefined 1 Reply Last reply Reply Quote 0
                • wmmc01undefined
                  wmmc01 @Phaedrux
                  last edited by wmmc01

                  @phaedrux Simpler than I thought. And No probe.

                  And yes driver 2 is zstop, and driver 3 is eostop.

                  Thanks again!

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

                    Note that this assumes your endstops are at equal positions. If you need to do an offset for one or the other you'd still need to do a split axis arrangement.

                    Z-Bot CoreXY Build | Thingiverse Profile

                    wmmc01undefined 1 Reply Last reply Reply Quote 0
                    • wmmc01undefined
                      wmmc01 @Phaedrux
                      last edited by

                      @phaedrux Yes they are equal, and homing all axis works fine - Thanks for your help!

                      1 Reply Last reply Reply Quote 0
                      • Phaedruxundefined Phaedrux marked this topic as a question
                      • Phaedruxundefined Phaedrux has marked this topic as solved
                      • First post
                        Last post
                      Unless otherwise noted, all forum content is licensed under CC-BY-SA