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.
    • PaulHewundefined
      PaulHew
      last edited by

      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....

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

        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
        • PaulHewundefined
          PaulHew
          last edited by

          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
          • Vetiundefined
            Veti
            last edited by

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

            bed_ThreeScrews.g

            post that also

            1 Reply Last reply Reply Quote 0
            • PaulHewundefined
              PaulHew
              last edited by

              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
              • Vetiundefined
                Veti
                last edited by

                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
                • PaulHewundefined
                  PaulHew
                  last edited by PaulHew

                  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
                  • Vetiundefined
                    Veti
                    last edited by

                    @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
                    • PaulHewundefined
                      PaulHew
                      last edited by

                      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
                      • Vetiundefined
                        Veti
                        last edited by

                        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
                        • fcwiltundefined
                          fcwilt @PaulHew
                          last edited by

                          @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
                          • PaulHewundefined
                            PaulHew
                            last edited by

                            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....

                            fcwiltundefined 1 Reply Last reply Reply Quote 0
                            • fcwiltundefined
                              fcwilt @PaulHew
                              last edited by

                              @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
                              • PaulHewundefined
                                PaulHew
                                last edited by

                                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....

                                fcwiltundefined 1 Reply Last reply Reply Quote 0
                                • fcwiltundefined
                                  fcwilt @PaulHew
                                  last edited by fcwilt

                                  @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
                                  • Phaedruxundefined
                                    Phaedrux Moderator
                                    last edited by

                                    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
                                    • First post
                                      Last post
                                    Unless otherwise noted, all forum content is licensed under CC-BY-SA