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

Help with 3 independant Z motor leveling

Scheduled Pinned Locked Moved
My Duet controlled machine
4
16
414
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
    PaulHew
    last edited by 5 Feb 2021, 09:55

    I have a RailCore with 3 independent Z leveling screws, 2 on left and 1 on the right.

    I suspect the bed leveling routine is not working correctly as the nozzle is clearly too high on the right hand side of the bed.

    I use a M208 in my config to specify where the bed is which obviously corrects the endstop positions.

    M208 X-10:310 Y-8:293 Z-0:550                 ; set axis minima and low homing switch positions (adjust to make X=0 and Y=0 the edges of the bed)
    

    when setting up M671 is it relevant to the actual X0 Y0 positions , or the corrected ones, which is the corner of my print surface?

    Hoping my question makes sense.

    Regards,

    Paul

    RailCore II - Duet Mini + 1LC, Voron V0.1 - Duet Mini
    Voron 2.4 disassembled..... Waiting for the RailCore Mini....

    undefined 1 Reply Last reply 5 Feb 2021, 16:25 Reply Quote 0
    • undefined
      Veti
      last edited by 5 Feb 2021, 09:57

      post your config.g and bed.g

      what do you mean by corrected coordinates?
      the lead screw positions need to be the actual position in reference to 0,0.

      1 Reply Last reply Reply Quote 0
      • undefined
        PaulHew
        last edited by 5 Feb 2021, 10:11

        Hi @Veti
        M208 modifies the original coordinates as after homing 0,0 becomes the print plate corner.
        If I jog to the endstops after homing I get X-10 and Y-8

        I use the endstop locations and for reference I attach my bed and config.g's

        Regards

        Paul.

        Bed.g

        ; New 2/5/2020
        M98 P"0:/macros/Lighting/Red-On.g"
        if !move.axes[0].homed || !move.axes[1].homed ; If the printer hasn't been homed, home it
        M98 P"0:/sys/homex.g" ; home x
        M98 P"0:/sys/homey.g" ; home Y
        M98 P"0:/sys/homez.g" ; home z
        ;
        M561 ; clear any bed transform
        ;M558 P9 H5 F120 T24000 ; increase dive height
        ;M98 P"0:/sys/bed_FourScrews.g" ; perform bed tramming
        M98 P"0:/sys/bed_ThreeScrews.g" ; perform bed tramming
        ;
        echo "Bed Traming Cycle: 1 - Difference was " ^ move.calibration.initial.deviation ^ "mm"
        ;
        while move.calibration.initial.deviation >= 0.02 ; perform additional tramming if previous deviation was over 0.02mm
        if iterations = 5
        abort "Too many auto tramming attempts"
        M98 P"0:/sys/bed_ThreeScrews.g"
        echo "Bed Traming Cycle: " ^ iterations + 2 ^ " - Difference was " ^ move.calibration.initial.deviation ^ "mm"
        continue
        ;
        G28 Z ; home z
        M98 P"0:/macros/Lighting/Red-Off.g"
        M98 P"0:/macros/Lighting/Green-On.g"

        config.g

        ; Config file for RailCore II 300 ZL Paul Hewson
        ; Last Change LEDs 03/05/2020
        M111 S0 ; Debug off
        ;Network
        M550 P"RailCore II" ; Set machine name
        M552 P192.168.0.7 S1 ; Enable network and set IP address
        M553 P255.255.255.0 ; Set netmask
        M554 P192.168.0.1 ; Set gateway
        M586 P0 S1 ; Enable HTTP
        M586 P1 S0 ; Disable FTP
        M586 P2 S1 ; Enable Telnet
        M575 P1 B57600 S1 ; Comms parameters for PanelDue
        G21 ; Work in millimetres
        G90 ; Send absolute coordinates...
        M83 ; ...but relative extruder moves
        ; Axis and motor configuration
        M669 K1 ; CoreXY mode
        ; Drives
        M569 P0 S1 ; Drive 0 goes forwards (change to S0 to reverse it) X stepper (Rear)
        M569 P1 S0 ; Drive 1 goes backwards Y Stepper (Front)
        M569 P2 S1 ; Drive 2 goes forwards Unused
        M569 P3 S1 ; Drive 3 goes forwards Extruder
        M569 P4 S1 ; Drive 4 goes forwards Extruder (unused)
        M569 P5 S1 ; Drive 5 goes backwards Front Left Z
        M569 P6 S1 ; Drive 6 goes backwards Rear Left Z
        M569 P7 S1 ; Drive 7 goes backwards Right Z
        M584 X0 Y1 Z5:6:7 E3 ; Map Z to drivers 5, 6, 7. Define unused drivers 3,4,8 and 9 as extruders
        M84 S30 ; Set idle timeout
        ;Leadscrew locations
        ;M671 X-10:-10:333 Y22.5:277.5:150 S7.5 ;Front left, Rear Left, Right S7.5 is the max correction - measure your own offsets, to the bolt for the yoke of each leadscrew
        M671 X-34:-34:380 Y22.5:274:155 S7.5
        ;_positions:
        # -10, 22.5 #Left Front = M671 X-34:-34:380 Y22.5:274:155
        # -34, 19 #Left Front
        # 34, 274 #Left Rear
        # 380, 155 #Right
        ; Axis and motor configuration
        M350 X16 Y16 Z16 E16 I1 ; set 16x microstepping for axes& extruder, with interpolation
        ;Endstop Configuration
        M574 X1 S1 P"xstop" ; _RRF3
        M574 Y1 S1 P"ystop" ; _RRF3
        ;Speeds
        ;M906 X1400 Y1400 Z1700 E700 I60 ; Set motor currents (mA)
        M906 X1280 Y1280 Z1220 E700 I50 ; Johns and a bit of mine!
        ;M906 X1280 Y1280 Z1220 E860 I50 ; JOHNs Set motor currents (mA) and motor idle factor in per cent (docs say rounds to 100, but this is where I'd like them to be)
        ;M201 X4000 Y4000 Z100 E1500 ; Accelerations (mm/s^2)
        M201 X1750 Y1750 Z250 E1500 ; Set accelerations (mm/s^2) JohnOFCII
        ;M203 X24000 Y24000 Z900 E3600 ; Maximum speeds (mm/min)
        M203 X24000 Y24000 Z900 E3600 ; Set maximum speeds (mm/min) JohnOFCII
        ;M566 X1200 Y1200 Z100 E1500 ; Maximum jerk speeds mm/minute
        M566 X600 Y600 Z200 E3600 ; Set maximum instantaneous (jerk) speed changes JohnOFCII
        M92 X200 Y200
        M92 Z1600
        M92 E412 ; steps/mm
        ; 0.4 nozzleE412
        ;E407 TechOut PLA
        ;M204 P2000 T1700
        ;
        M208 X-10:310 Y-8:293 Z-0:550 ; set axis minima and low homing switch positions (adjust to make X=0 and Y=0 the edges of the bed)
        ; Thermistors
        ;Bed Configuration
        ;M308 S0 P"bedtemp" Y"thermistor" A"Bed-Top" T100000 B3950 R4700 H0 L0 ;A"Bed-Top"
        M308 S0 P"exp.thermistor6" Y"thermistor" A"Keenovo" T100000 B3950 R4700 H0 L0
        M950 H0 C"bedheat" T0
        M140 H0
        M143 H0 S120
        M307 H0 A481.6 C758.5 D11.3 V24.2 B0
        ;HotEnd Configuration
        M308 S1 P"e0temp" Y"thermistor" A"Mosquito" T500000 B4723 C1.19622e-7 ; configure sensor 1 as thermistor on pin e0temp
        ;
        ;M308 S1 P"e0temp" Y"thermistor" A"E3Dv6" T100000 B4725 R4700 C7.06e-8 H0 L0 ;Removed 19th June 2020
        ;
        M950 H1 C"e0heat" T1 ;
        M143 H1 S280
        M307 H1 A461.0 C201.3 D3.6 V24.2 B0 ;
        ; Other Tempreture Inputs
        ;M308 S6 P"exp.thermistor6" Y"thermistor" A"Keenovo" T100000 B3950 R4700
        M308 S7 P"exp.thermistor7" Y"thermistor" A"Chamber" T100000 B3950 R4700
        M308 S0 P"bedtemp" Y"thermistor" A"Bed-Top" T100000 B3950 R4700
        ; Fans
        M950 F0 C"fan0" ;Part Cooling Fan
        M106 P0 H-1
        ;
        M950 F1 C"fan1" Q500 ;Hotend Fan
        M106 P1 S1 H1 T50
        ;
        M950 F2 C"fan2" ;_RRF3_ define fan2
        M106 P2 H-1
        ;
        M106 P0 S0 ; turn off fans
        ; Tool definitions
        M563 P0 D0 H1 ; Define tool 0
        G10 P0 S0 R0 ; Set tool 0 operating and standby temperatures
        ; Z probe and compensation definition
        M558 P9 C"^zprobe.in" H5 R1 F120 T6000 A5 S0.02 ;BLTouch connected to Z probe IN pin
        M950 S0 C"duex.pwm1" ;BLTouch Servo (S0) on duet pwm1
        G31 X-7 Y32 Z1.324 P25 ; Customize your offsets appropriately - do a paper test, and put the probed value in the Z value here
        M557 X30:280 Y45:240 S20
        ;Lighting
        M950 F8 C"duex.fan8"
        M106 P8 S0 H-1 C"Front Lights"
        M950 F7 C"duex.fan7"
        M106 P7 S0 H-1 C"Red RGB"
        M950 F6 C"duex.fan6"
        M106 P6 S0 H-1 C"Blue RGB"
        M950 F5 C"duex.fan5"
        M106 P5 S0 H-1 C"Green RGB"
        T0 ; select first hot end
        ;Let get some lights in the Build area!
        M98 P"0:/macros/Lights On"
        M702 ;Unload Filament

        RailCore II - Duet Mini + 1LC, Voron V0.1 - Duet Mini
        Voron 2.4 disassembled..... Waiting for the RailCore Mini....

        1 Reply Last reply Reply Quote 0
        • undefined
          Veti
          last edited by 5 Feb 2021, 10:14

          @PaulHew said in Help with 3 independant Z motor leveling:

          bed_ThreeScrews.g

          post that also

          1 Reply Last reply Reply Quote 0
          • undefined
            PaulHew
            last edited by 5 Feb 2021, 10:17

            threescrews.g

            ;three screw est
            G30 P0 X30 Y45 Z-99999 ;was X15
            G30 P1 X30 Y275 Z-99999 ;was X15
            G30 P2 X300 Y150 Z-99999 S3

            RailCore II - Duet Mini + 1LC, Voron V0.1 - Duet Mini
            Voron 2.4 disassembled..... Waiting for the RailCore Mini....

            1 Reply Last reply Reply Quote 0
            • undefined
              Veti
              last edited by 5 Feb 2021, 10:19

              the drive connections must match

              Z5:6:7
              must match
              M671 X-34:-34:380 Y22.5:274:155 S7.5

              location.

              1 Reply Last reply Reply Quote 0
              • undefined
                PaulHew
                last edited by PaulHew 2 May 2021, 15:17 5 Feb 2021, 15:15

                So I have gone back to basics.
                Calculated my probe offset 7mm left of the nozzle, 35mm behind the nozzle.
                Changed G31 to suit.

                G31 X-7 Y35 Z1.324 P25 ; Customize your offsets appropriately - do a paper test, and put the probed value in the Z value here

                My 3screw.g contains

                G30 P0 X10 Y35 Z-99999
                G30 P1 X10 Y275 Z-99999
                G30 P2 X280 Y150 Z-99999 S3

                When I probe it probes @ X17 for points 0 and 1

                Have I configured the G31 wrong?

                I use M208 to define my 0,0 so it will print on the bed and not off it.

                Regards,

                Paul.

                RailCore II - Duet Mini + 1LC, Voron V0.1 - Duet Mini
                Voron 2.4 disassembled..... Waiting for the RailCore Mini....

                1 Reply Last reply Reply Quote 0
                • undefined
                  Veti
                  last edited by 5 Feb 2021, 16:08

                  @PaulHew said in Help with 3 independant Z motor leveling:

                  When I probe it probes @ X17 for points 0 and 1

                  10-7 = 17. sound correct

                  1 Reply Last reply Reply Quote 0
                  • undefined
                    PaulHew
                    last edited by 5 Feb 2021, 16:18

                    No, 10-7=3

                    RailCore II - Duet Mini + 1LC, Voron V0.1 - Duet Mini
                    Voron 2.4 disassembled..... Waiting for the RailCore Mini....

                    1 Reply Last reply Reply Quote 0
                    • undefined
                      Veti
                      last edited by 5 Feb 2021, 16:22

                      when probing at position 10 the nozzle has to be at x=17

                      so 17 -7 = 10

                      that way

                      1 Reply Last reply Reply Quote 0
                      • undefined
                        fcwilt @PaulHew
                        last edited by 5 Feb 2021, 16:25

                        @PaulHew said in Help with 3 independant Z motor leveling:

                        Please post your homeZ.g file.

                        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

                        1 Reply Last reply Reply Quote 0
                        • undefined
                          PaulHew
                          last edited by 5 Feb 2021, 18:05

                          Homez.g as requested

                          ; New 2/5/2020
                          ; homez.g
                          ; called to home the Z axis
                          ;
                          ; generated by RepRapFirmware Configuration Tool v2.1.8 on Sat May 02 2020 07:42:48 GMT+0100 (British Summer Time)
                          G91 ; relative positioning
                          G1 H2 Z5 F6000 ; lift Z relative to current position
                          G90 ; absolute positioning
                          G1 X150 Y150 F6000 ; go to first probe point
                          G30 ; home Z by probing the bed
                          ; Uncomment the following lines to lift Z after probing
                          G91 ; relative positioning
                          G1 Z5 F100 ; lift Z relative to current position
                          G90 ; absolute positioning

                          RailCore II - Duet Mini + 1LC, Voron V0.1 - Duet Mini
                          Voron 2.4 disassembled..... Waiting for the RailCore Mini....

                          undefined 1 Reply Last reply 5 Feb 2021, 18:25 Reply Quote 0
                          • undefined
                            fcwilt @PaulHew
                            last edited by 5 Feb 2021, 18:25

                            @PaulHew said in Help with 3 independant Z motor leveling:

                            Homez.g as requested

                            G1 X150 Y150 F6000 ; go to first probe point

                            Thanks.

                            It doesn't appear you are taking into account the Z probe X and Y offsets in the G1 above - assuming you are tying to probe the center of the bed.

                            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

                            1 Reply Last reply Reply Quote 0
                            • undefined
                              PaulHew
                              last edited by 5 Feb 2021, 18:39

                              No, I can probe the centre of the bed with no issues.
                              I was struggling with what looked like the Z offsets were not being taken into account and have had 2 gantry crashes.
                              Also on the lhs it was trying to probe off of the bed, even though I had defined my offsets.

                              I use M208 to define where my bed is but it seems like RRF does not take any of this into consideration when bed tramming.

                              My main issue is that I cannot print on the right hand side of my bed, hence why I went back to basics to try and alleviate the issue.
                              Nozzle is too far from the bed on the RHS.

                              RailCore II - Duet Mini + 1LC, Voron V0.1 - Duet Mini
                              Voron 2.4 disassembled..... Waiting for the RailCore Mini....

                              undefined 1 Reply Last reply 5 Feb 2021, 18:43 Reply Quote 0
                              • undefined
                                fcwilt @PaulHew
                                last edited by fcwilt 2 May 2021, 19:05 5 Feb 2021, 18:43

                                @PaulHew said in Help with 3 independant Z motor leveling:

                                I use M208 to define where my bed is but it seems like RRF does not take any of this into consideration when bed tramming.

                                My main issue is that I cannot print on the right hand side of my bed, hence why I went back to basics to try and alleviate the issue.
                                Nozzle is too far from the bed on the RHS.

                                Here is your M208 X-10:310 Y-8:293 Z-0:550. The values for X and Y I gather are based on the locations of the end stop sensors. Correct?

                                I use a different approach.

                                My M208 specifies just the printable area - in my case M208 X-150:150 Y-150:150 - which puts 0,0 in the middle of the bed - which is where I like it.

                                The X end stop sensor triggers very close to -150 but the Y sensor triggers at +160.

                                After homing the firmware thinks X is at -150 and Y is at +150 because the axis min or max value is used with the end stop sensor triggers during a G1 H1 move - even though the actual Y position is +160.

                                So after homing X and Y I do this:

                                G90 ; absolute moves
                                G1 X0 Y-10 F6000 ; move as needed to place nozzle at bed center (adjusting for actual endstop location)
                                G92 X0 Y0 ; set this position as X = 0 and Y = 0

                                When probing the bed the limits are ignored since the probe is offset from the nozzle.

                                When using G30 P0 Xaaa Ybbb as an example the firmware takes into account the probe offsets and puts the probe at the specified location.

                                When setting the Z=0 datum with a "plain" G30 you have to use a G1 move to position the probe taking into account the probe offsets yourself.

                                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

                                1 Reply Last reply Reply Quote 0
                                • undefined
                                  Phaedrux Moderator
                                  last edited by 5 Feb 2021, 19:47

                                  Using M208 to set 0,0 or G92 in a homing file are both valid ways of doing it. The important thing is that the lead screw positions in M671 are relative to the 0,0 point.

                                  The points used for probing should get the probe as close to the lead screws as possible.

                                  Z-Bot CoreXY Build | Thingiverse Profile

                                  1 Reply Last reply Reply Quote 1
                                  9 out of 16
                                  • First post
                                    9/16
                                    Last post
                                  Unless otherwise noted, all forum content is licensed under CC-BY-SA