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

    Triple Z motors not correcting

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    4
    12
    440
    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.
    • mrenz999undefined
      mrenz999
      last edited by mrenz999

      When I run bed leveling it checks all lead screws and then seems to tilt the wrong way.

      ; bed.g
      ; called to perform automatic bed compensation via G32
      ;
      ; generated by RepRapFirmware Configuration Tool v3.1.1 on Thu Jun 04 2020 11:20:24 GMT-0700 (Pacific Daylight Time)
      M561 ; clear any bed transform
      G28 ; home
      ;M401 ; deploy Z probe
      G30 P0 X20 Y250 Z-99999 ; probe near an adjusting screw
      G30 P1 X450 Y80 Z-99999 ; probe near an adjusting screw
      G30 P2 X450 Y420 Z-99999 S3 ; probe near an adjusting screw and calibrate 3 motors
      ;G29
      ;M402 ; retract probe

      Is there an order that should be setup for which is right or left ? Current configuration is 0,0 far left.

      1 Reply Last reply Reply Quote 0
      • nrivieraundefined
        nriviera
        last edited by

        You're correct in that the error is in your config file with the order in the M671. Annoyingly you can't make each Z axis move independent of the other to test that they are correct in the config. I just trial and error'd my way around until I got it correct.

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

          @nriviera said in Triple Z motors not correcting:

          Annoyingly you can't make each Z axis move independent of the other to test that they are correct in the config.

          You can if you temporarily bind each Z motor driver to its own axis. Then you can move them independently manually. Just be careful not to rip your bed apart.

          @mrenz999 said in Triple Z motors not correcting:

          Current configuration is 0,0 far left.

          Far left as in rear left? That may be a bit of a problem as you're not using a right handed coordinate system. 0,0 should be in the front left, +X to the right, -X to the left, -Y to the front, +Y to the back.

          Regardless, this is the key part of the configuration that you're missing

          You must use the M671 command to define the X and Y coordinates of the leadscrews. The M671 command must come after the M584 command and must specify the same number of X and Y coordinates as the number of motors assigned to the Z axis in the M584 command; and these coordinates must be in the same order as the driver numbers of the associated motors in the M584 command. The M671 command must also come after any M667 or M669 command.

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

          Z-Bot CoreXY Build | Thingiverse Profile

          mrenz999undefined 1 Reply Last reply Reply Quote 0
          • mrenz999undefined
            mrenz999 @Phaedrux
            last edited by

            @Phaedrux A right handed system ? My endstops are Y to the far rear and x to the left. Therefore, Y + is towards the front and X+ is to the right.

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

              left_right_hand.gif dbot axis.png Cartesian-coordinate-system.png Bed Area.png

              With Y flipped like that you're likely to get mirrored prints.

              Your Y axis endstop is at the high end of travel in that case and when triggered would set the coordinate position to the M208 Y maxima, rather than 0.

              Z-Bot CoreXY Build | Thingiverse Profile

              mrenz999undefined 1 Reply Last reply Reply Quote 0
              • mrenz999undefined
                mrenz999 @Phaedrux
                last edited by

                @Phaedrux As my endstops are to the rear and left what should I change to make that flip without changing where the endstops are ?

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

                  Post your config.g and homeall.g

                  M574 Y2 and in homeall the direction of the Y homing move would be positive instead of negative.

                  If this is corexy you'll also need to do some tests to verify your motor connections and rotation directions are correct.

                  https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter#Section_Testing_motor_movement

                  Z-Bot CoreXY Build | Thingiverse Profile

                  mrenz999undefined 1 Reply Last reply Reply Quote 0
                  • mrenz999undefined
                    mrenz999 @Phaedrux
                    last edited by

                    @Phaedrux

                    ; generated by RepRapFirmware Configuration Tool v3.1.1 on Thu Jun 04 2020 11:20:25 GMT-0700 (Pacific Daylight Time)

                    G91 ; relative positioning

                    G1 H2 Z5 F6000 ; lift Z relative to current position

                    G1 H1 X-450 Y-450 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)

                    G1 H1 X-450

                    G1 H1 Y-450

                    G1 X5 Y5 F6000 ; go back a few mm

                    G1 H1 X-450 Y-450 F360 ; move slowly to X and Y axis endstops once more (second pass)

                    G1 X264 Y250 F9000 ; go to first bed probe point and home Z

                    G30 ; probe the bed

                    ; Configuration file for Duet 3 (firmware version 3)
                    ; executed by the firmware on start-up
                    ;
                    ; generated by RepRapFirmware Configuration Tool v3.1.3 on Tue Jun 16 2020 08:02:01 GMT-0700 (Pacific Daylight Time)

                    ; General preferences
                    G90 ; send absolute coordinates...
                    M83 ; ...but relative extruder moves
                    G21 ; Set units to MM
                    M550 P"Duet 3" ; set printer name
                    M669 K1 ; select CoreXY mode

                    ;Network
                    M552 S1 ; enable network
                    M586 P0 S1 ; enable HTTP
                    M586 P1 S0 ; disable FTP
                    M586 P2 S0 ; disable Telnet

                    ; Drives
                    M569 P0.0 S0 ; physical drive 0.0 goes forwards
                    M569 P0.1 S1 ; physical drive 0.1 goes backwards
                    M569 P0.2 S0 ; physical drive 0.2 goes forwards
                    M569 P0.3 S0 ; physical drive 0.3 goes forwards
                    M569 P0.4 S1 ; physical drive 0.4 goes backwards
                    M569 P0.5 S0 ; physical drive 0.3 goes forwards
                    M584 X0.0 Y0.1 Z0.2:3:4 E0.5 ; set drive mapping
                    M350 X16 Y16 Z16 E16 I1 ; configure microstepping with interpolation
                    M92 X80.00 Y80.00 Z400.00 E405.18 ; set steps per mm
                    M566 X600.00 Y600.00 Z24.00 E300.00 ; set maximum instantaneous speed changes (mm/min)
                    M203 X20000 Y20000 Z600 E2000.00 ; set maximum speeds (mm/min)
                    M201 X3000.00 Y3000.00 Z600.00 E5000.00 ; set accelerations (mm/s^2)
                    M906 X1600 Y1600 Z1600 E1600 I30 ; set motor currents (mA) and motor idle factor in per cent
                    M84 S30 ; Set idle timeout
                    M671 X20:20:430 Y110:365:240 S9 ; leadscrews at rear left, front middle and rear right

                    ; Axis Limits
                    M208 X-20 Y-15 Z0 S1 ; set axis minima
                    M208 X500 Y500 Z465 S0 ; set axis maxima

                    ; Endstops
                    M574 X1 S1 P"!io0.in" ; configure active-high endstop for low end on X via pin !io0.in
                    M574 Y1 S1 P"!io1.in" ; configure active-high endstop for low end on Y via pin !io1.in
                    M574 Z1 S2 ; configure Z-probe endstop for low end on Z

                    ; Z-Probe
                    ;M950 S0 C"io7.out" ; create servo pin 0 for BLTouch
                    ;M558 P9 C"^io7.in" H5 F120 T6000 ; set Z probe type to bltouch and the dive height + speeds height + speeds
                    ;G31 P500 X-40 Y-10 Z6 ; set Z probe trigger value, offset and trigger height
                    M557 X20:430 Y15:410 S20 ; define mesh grid
                    Z-Probe
                    M558 P8 C"^io7.out"
                    G31 P500 X-20 Y-15 Z2

                    ; Heaters
                    M308 S0 P"temp0" Y"thermistor" T100000 B4008 ; 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 B0 S1.00 ; disable 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 B3950 ; 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 S300
                    M307 H0 A188.5 C683.1 D0.2 S1.0 V24.1 B0
                    M307 H1 A351.2 C120.5 D7.2 S1.0 V24.1 B0

                    ; Fans
                    M950 F0 C"out7" Q500 ; create fan 0 on pin out7 and set its frequency
                    M106 P0 S1 H-1 ; set fan 0 value. Thermostatic control is turned off
                    M950 F1 C"out8" Q500 ; create fan 1 on pin out8 and set its frequency
                    M106 P1 S1 H-1 ; set fan 1 value. Thermostatic control is turned off
                    M950 F2 C"out9" Q500 ; create fan 2 on pin out9 and set its frequency
                    M106 P2 S1 H-1 ; set fan 2 value. Thermostatic control is turned off

                    ; Tools
                    M563 P0 D0 H1 F0 ; 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

                    ; Miscellaneous
                    T0
                    M575 P1 S1 B57600 ; enable support for PanelDue
                    M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss
                    M501

                    1 Reply Last reply Reply Quote 0
                    • Vetiundefined
                      Veti
                      last edited by

                      @mrenz999 said in Triple Z motors not correcting:

                      M671 X20:20:430 Y110:365:240 S9 ; leadscrews at rear left, front middle and rear right

                      are you sure thats correct? this would mean the leadscrews are inside the bed.

                      mrenz999undefined 1 Reply Last reply Reply Quote 0
                      • mrenz999undefined
                        mrenz999 @Veti
                        last edited by

                        @Veti It's the probe spot. On the bed where it can probe closest to the leadscrew.

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

                          @mrenz999 said in Triple Z motors not correcting:

                          G1 H1 X-450 Y-450 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
                          G1 H1 X-450
                          G1 H1 Y-450
                          G1 X5 Y5 F6000 ; go back a few mm
                          G1 H1 X-450 Y-450 F360 ; move slowly to X and Y axis endstops once more (second pass)
                          G1 X264 Y250 F9000 ; go to first bed probe point and home Z
                          G30 ; probe the bed

                          In your homeall switch the direction of all the Y moves as shown here. Also the move to position the probe should probably be defined in absolute coordinates.

                          G1 H1 X-450 Y450 F1800 ; move quickly to X and Y axis endstops and stop there (first pass)
                          G1 H1 X-450
                          G1 H1 Y450
                          G1 X5 Y-5 F6000 ; go back a few mm
                          G1 H1 X-450 Y450 F360 ; move slowly to X and Y axis endstops once more (second pass)
                          G90 ; absolute position
                          G1 X264 Y250 F9000 ; go to first bed probe point and home Z
                          G30 ; probe the bed
                          

                          Then in config.g you'd need to change the M574 for the Y axis to tell it the endstop is at the high end. That's Y2 instead of Y1
                          M574 Y2 S1 P"!io1.in" ; configure active-high endstop for low end on Y via pin !io1.in

                          M584 X0.0 Y0.1 Z0.2:3:4 E0.5 ; set drive mapping
                          M671 X20:20:430 Y110:365:240 S9 ; leadscrews at rear left, front middle and rear right
                          

                          The order and position of the lead screws will need to change, first to match the order of the motors defined in M584 but also the coordinates will be different now that your Y axis is flipped.

                          And as Veti says, try to estimate where the lead screws are actually positioned in absolute space relative to the 0,0 position in the front left corner even if they are outside the reachable area. It's only the points defined in the bed.g that need to be within the reachable area.

                          Which leads us to the bed.g points. You'll need to amend those as well now that the Y axis is flipped.

                          Also, don't forget to do those motor movement tests for corexy I linked.

                          Oh and your Z probe offset will need to be redone to reflect the new Y axis direction.

                          Oh and you might want to edit homey.g as well to change the directions of the homing moves.

                          Z-Bot CoreXY Build | Thingiverse Profile

                          1 Reply Last reply Reply Quote 0
                          • Vetiundefined
                            Veti @mrenz999
                            last edited by

                            @mrenz999 said in Triple Z motors not correcting:

                            It's the probe spot. On the bed where it can probe closest to the leadscrew.

                            those go in the bed.g not the M671 command.

                            the M671 are the actual positions of the leadscrew.

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