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

4 motors on one axis homing

Scheduled Pinned Locked Moved
Tuning and tweaking
5
18
772
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.
  • undefined
    Phaedrux Moderator
    last edited by 25 Mar 2021, 05:15

    https://duet3d.dozuki.com/Wiki/Bed_levelling_using_multiple_independent_Z_motors#Section_In_RepRapFirmware_Num_3

    Using endstops to home is pretty easy in RRF3.

    Using sensorless homing is also straightforward. Just define the sensorless endstop type and it will take care of the rest. Home the axis as normal. Though you will have to tune the stall detection settings, and long belt runs and multiple motors might make that a bit harder.

    Endstop switches really not an option?

    Z-Bot CoreXY Build | Thingiverse Profile

    undefined 1 Reply Last reply 30 Mar 2021, 11:36 Reply Quote 0
    • undefined
      dk
      last edited by 25 Mar 2021, 18:36

      I probably can place endstops for the Y axis. But for X and Z it will be almost impossible.
      For sensorless homing should I use both motors pulling one belt or just one of them?

      1 Reply Last reply Reply Quote 0
      • undefined
        dk @Phaedrux
        last edited by 30 Mar 2021, 11:36

        @phaedrux any idea if sensorless homing should use both motors pulling one belt or just one of them?

        undefined 1 Reply Last reply 30 Mar 2021, 14:47 Reply Quote 0
        • undefined
          o_lampe @dk
          last edited by 30 Mar 2021, 14:47

          @dk
          How would you use only one motor? Turning down the motorcurrent works per axis and is the same for all motors AFAIK.

          undefined 1 Reply Last reply 5 Apr 2021, 01:32 Reply Quote 0
          • undefined
            fcwilt
            last edited by 30 Mar 2021, 15:25

            Why multiple motors on a single belt?

            Thanks.

            Frederick

            Printers: a small Utilmaker style, a small CoreXY and a E3D MS/TC setup. Various hotends. Using Duet 3 hardware running 3.4.6

            undefined 1 Reply Last reply 5 Apr 2021, 01:39 Reply Quote 0
            • undefined
              dk @o_lampe
              last edited by 5 Apr 2021, 01:32

              @o_lampe
              in this case endstop detection will be considered at a stall detection from the first of the two motors if they do not stall simultaneously? Or do both motors need stall detection to trigger the endstop?

              undefined 1 Reply Last reply 19 Apr 2021, 02:26 Reply Quote 0
              • undefined
                dk @fcwilt
                last edited by 5 Apr 2021, 01:39

                @fcwilt
                Heavy X axis with Z axis mounted on it.
                taking into account the low cost of the steppers, and 6+3 driver on Duet3 + 3HC I decide to put 2 motors for 1 belt and thereby reduce the backlash and increase the torque. Which is especially important for high accelerations of a heavy head. And I plan to put a spindle in addition to the print head to be able to finish the surface after printing and drilling holes

                undefined 1 Reply Last reply 5 Apr 2021, 07:31 Reply Quote 0
                • undefined
                  o_lampe @dk
                  last edited by o_lampe 4 May 2021, 07:33 5 Apr 2021, 07:31

                  @dk said in 4 motors on one axis homing:

                  and drilling holes

                  You think there's enough bed adhesion to keep the part in place while drilling?
                  Don't get me wrong, I like the idea.
                  Maybe I'd use a quick release mount for the spindle and only attach it when needed.

                  1 Reply Last reply Reply Quote 0
                  • undefined
                    dk @dk
                    last edited by 19 Apr 2021, 02:26

                    Stall homing resolved.
                    But I cant get Y to home properly. I add 2 endstop for each of Y rails and everything work great if I use only 2 Y motors, one for left rail and one for right rail. But my setup have two Y motors on both rails (4 total for Y).
                    M584 X0.2:1.2 Y0.0:0.3:0.4:1.0 Z0.1:1.1 ; set drive mapping
                    In this case first homing stops when the first endstop is triggered.
                    @dc42
                    Is it possible to independently homing the right and left rails of the Y axis if there are 2 motors on right rail and 2 motors on left rail of Y axis?

                    undefined 1 Reply Last reply 19 Apr 2021, 05:22 Reply Quote 0
                    • undefined
                      Phaedrux Moderator @dk
                      last edited by 19 Apr 2021, 05:22

                      @dk https://duet3d.dozuki.com/Wiki/Gcode#Section_M574_RepRapFirmware_Num_3

                      See M574 S4 for multi-motor load stall detection.

                      Z-Bot CoreXY Build | Thingiverse Profile

                      undefined 1 Reply Last reply 19 Apr 2021, 12:52 Reply Quote 0
                      • undefined
                        dk @Phaedrux
                        last edited by 19 Apr 2021, 12:52

                        @phaedrux
                        Yes, S4 works well on Z - 2 motors on Z stopped individually. But for Y axis I use 2 optical endstop and so my only choice M574 S1
                        But because of 4 motors on Y, left and right rail do not stoped individually

                        undefined 1 Reply Last reply 21 Apr 2021, 14:20 Reply Quote 0
                        • undefined
                          Phaedrux Moderator
                          last edited by 19 Apr 2021, 17:29

                          Ah ok. It's even easier with with endstops, you just need to specify all the endstop pins used for that axis in the M574 command.

                          Please post your full config.g

                          Z-Bot CoreXY Build | Thingiverse Profile

                          undefined 1 Reply Last reply 21 Apr 2021, 00:28 Reply Quote 0
                          • undefined
                            dk @Phaedrux
                            last edited by 21 Apr 2021, 00:28

                            @phaedrux
                            Config file

                            G90 ; send absolute coordinates...
                            M83 ; ...but relative extruder moves
                            M550 P"Duet3" ; set printer name

                            ; Drives
                            M569 P0.0 S0 ; physical drive 0.0 goes forwards
                            M569 P0.1 S1 ; physical drive 0.1 goes forwards
                            M569 P0.4 S1 ; physical drive 0.5 goes forwards
                            M569 P0.2 S1 ; physical drive 0.2 goes forwards
                            M569 P0.3 S0 ; physical drive 0.3 goes forwards
                            M569 P1.0 S1 ; physical drive 1.0 goes forwards
                            M569 P1.1 S1 ; physical drive 1.1 goes forwards
                            M569 P1.2 S1 ; physical drive 1.2 goes forwards
                            M584 X0.2:1.2 Y0.0:0.3:1.0:0.4 Z0.1:1.1 ; set drive mapping
                            M350 X16 Y16 Z16 I1 ; configure microstepping with interpolation
                            M92 X80.00 Y80.00 Z400.00 ; set steps per mm
                            M566 X900.00 Y900.00 Z90.00 ; set maximum instantaneous speed changes (mm/min)
                            M203 X19000.00 Y19000.00 Z900.00 ; set maximum speeds (mm/min)
                            M201 X1200.00 Y1200.00 Z120.00 ; set accelerations (mm/s^2)
                            M906 X800 Y2200 Z1000 ; set motor currents (mA) and motor idle factor in per cent
                            M84 S30 ; Set idle timeout

                            ; Axis Limits
                            M208 X0 Y0 Z0 S1 ; set axis minima
                            M208 X300 Y660 Z110 S0 ; set axis maxima
                            M564 H0 ; allow move without homing

                            ; Endstops
                            M574 X1 S3 ; configure sensorless endstop for low end on X
                            M574 Y1 S1 P"0.io0.in+1.io0.in" ; configure active-low endstop for low end on Y via pin io0.in
                            M574 Z1 S4 ; configure sensorless endstop for low end on Z
                            M915 X Z R0 F0 ; configure sensorless homing for X and Z

                            ; Z-Probe
                            M558 P0 H5 F1200 T6000 ; disable Z probe but set dive height, probe speed and travel speed
                            M557 X50:250 Y50:650 S50 ; define mesh grid

                            ; Heaters
                            M308 S0 P"temp0" Y"thermistor" T100000 B4138 ; configure sensor 0 as thermistor on pin temp0
                            M950 H0 C"out0" T0 ; create bed heater output on out0 and map it to sensor 0
                            M307 H0 B1 S1.00 ; enable bang-bang mode for the bed heater and set PWM limit
                            M140 H0 ; map heated bed to heater 0
                            M143 H0 S120 ; set temperature limit for heater 0 to 120C
                            M308 S1 P"temp1" Y"thermistor" T100000 B4138 ; configure sensor 1 as thermistor on pin temp1
                            M950 H1 C"out1" T1 ; create nozzle heater output on out1 and map it to sensor 1
                            M307 H1 B0 S1.00 ; disable bang-bang mode for heater and set PWM limit
                            M143 H1 S280 ; set temperature limit for heater 1 to 280C

                            ; Fans
                            M950 F0 C"out4" Q500 ; create fan 0 on pin out4 and set its frequency
                            M106 P0 S0 H-1 ; set fan 0 value. Thermostatic control is turned off
                            M950 F1 C"out5" Q500 ; create fan 1 on pin out5 and set its frequency
                            M106 P1 S1 H1 T45 ; set fan 1 value. Thermostatic control is turned on

                            ; Tools
                            M563 P0 F-1 ; 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

                            ; Custom settings are not defined

                            ; homeall.g
                            ; called to home all axes
                            ;M400 ; Clear buffer
                            M913 X30 Z50 ; Drop motor current 30% for X 50% for Z
                            M400 ; Clear buffer
                            G91 ; relative positioning
                            G1 H2 Z5 F600 ; lift Z relative to current position
                            G1 H1 X-305 F6000 ; move quickly to X axis endstop and stop there (first pass)
                            G1 H2 X5 F6000 ; go back 5 mm
                            G1 H1 X-15 F3000 ; move slowly to X axis endstop once more (second pass)
                            G1 H1 Y-685 F3000 ; move quickly to X and Y axis endstops and stop there (first pass)
                            G1 H2 Y5 F5000 ; go back a few mm
                            G1 H1 Y-15 F600 ; move slowly to X and Y axis endstops once more (second pass)
                            G1 H1 Z-125 F600 ; move Z down stopping at the endstop
                            G90 ; absolute positioning
                            G92 Z0 ; set Z position to axis minimum (you may want to adjust this)
                            G91 ; relative positioning
                            G1 Z5 F500 ; lift Z relative to current position
                            G90 ; absolute positioning
                            M400 ; Clear buffer
                            M913 X100 Z100 ; motor current back to 100%
                            M400 ; Clear buffer

                            1 Reply Last reply Reply Quote 0
                            • undefined
                              Phaedrux Moderator
                              last edited by 21 Apr 2021, 03:21

                              @dk said in 4 motors on one axis homing:

                              M584 X0.2:1.2 Y0.0:0.3:1.0:0.4 Z0.1:1.1 ; set drive mapping

                              It looks like you have your drives spread out all across the mainboard and expansion. Is there any way to get them grouped together or is that due to wiring runs?

                              @dk said in 4 motors on one axis homing:

                              ; Endstops
                              M574 X1 S3 ; configure sensorless endstop for low end on X
                              M574 Y1 S1 P"0.io0.in+1.io0.in" ; configure active-low endstop for low end on Y via pin io0.in
                              M574 Z1 S4 ; configure sensorless endstop for low end on Z

                              So sensorless on X, endstops on Y, and sensorless on Z?

                              What kinematics type is this printer?

                              What kind of motors?

                              How much of your homing currently works? Are you able to home each axis individually? Please explain where each fails.

                              Z-Bot CoreXY Build | Thingiverse Profile

                              undefined 1 Reply Last reply 21 Apr 2021, 13:21 Reply Quote 0
                              • undefined
                                dk @Phaedrux
                                last edited by 21 Apr 2021, 13:21

                                @phaedrux
                                Yes, this drivers spread due to wiring. I have 4 NEMA23 for Y (2 motors move one belt for left and right rail), 2 Nema17 34mm with lead screw for Z, 2 NEMA17 20mm for X.
                                Cartesian kinematic. Dual Y axis rails (its actually dual 16mm shafts on both sides of printer) moving two Z rails, which hold X axis.

                                For now sensorless homing on X and sensorless on Z works find.

                                Endstops on Y also work, but not independently for two Y rails. if the axis is slightly shifted (I specifically moved one rail by 10 mm relative to the second), the homing is triggered when the first rail touches the endstop. And printer remains shifted Y axis by 10 mm.
                                If I disconnect 2 motors
                                (M584 X0.2:1.2 Y0.3:1.0 Z0.1:1.1 instead of M584 X0.2:1.2 Y0.0:0.3:0.4:1.0 Z0.1:1.1 ),
                                then the independent homing works as it should, both rails go to the endstop.
                                So, I want to achieve independent homing for two Y axis rails with four motors (2 motors for each rail)

                                1 Reply Last reply Reply Quote 0
                                • undefined
                                  dc42 administrators @dk
                                  last edited by dc42 21 Apr 2021, 14:20

                                  @dk said in 4 motors on one axis homing:

                                  @phaedrux
                                  Yes, S4 works well on Z - 2 motors on Z stopped individually. But for Y axis I use 2 optical endstop and so my only choice M574 S1
                                  But because of 4 motors on Y, left and right rail do not stoped individually

                                  That's correct. The built-in multiple-endstop homing requires you to have the same number of endstops as axis motors.

                                  Here are three possible solutions:

                                  1. Connect two Y motors to each to two drivers, so that they look like single motors. As you are using Duet 3 which can drive motors with up to 6.3A peak, you can connect two motors in parallel to make a pair, and set the current to 4400 in M906 instead of 2200.

                                  2. Alternatively, you can continue to use a separate driver per motor, and during homing split the Y axis into two axes (e.g. Y and U), just as we had to do in RRF2 when using multiple endstop switches. See https://duet3d.dozuki.com/Guide/Independent+Z+motors+and+endstop+switches+in+RRF2/18 but adapt the GCode commands for RRF3 (e.g. use endstop pin names in the M574 commands).

                                  3. Pretend that you have 4 endstop switches. M574 will not allow you to use the same input more than once, so you would need to use 4 inputs and connect each endstop switch to 2 of 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

                                  undefined 1 Reply Last reply 22 Apr 2021, 00:24 Reply Quote 1
                                  • undefined
                                    dk @dc42
                                    last edited by 22 Apr 2021, 00:24

                                    @dc42
                                    the first option looks the most interesting. This way I can get 2 more spare drivers for future upgrades!
                                    Do you have wiring diagram for parallel stepper connection?
                                    Should steppers wire length be the same? or 500mm difference in wires lengths does not effect synchronies of motor movements?

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