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

    Issue Leveling with G32 using 4 lead screws and motors

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    6
    10
    446
    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.
    • SignPostManundefined
      SignPostMan
      last edited by

      I am using a setup like the Rat Rig, where there are steel balls attached to the bed that are sitting on parallel bars. The steel balls can slide to accommodate any movement needed to sit level. Gravity and a small magnet is all that holds the bed ball on the parallel bars. This system works great and I am getting good first layers when I use a dial indicator to level the bed prior to running G32. Then of course G29 to build a mesh.

      The problem I am having, is when running G32, the bed will try to compensate by lower one of the screws to low, this makes to ball in that corner no longer touch the parallel bars. Trying to by running G32 again only make the problem worse. Are there any kind of a solution for this issue?

      A Former User? jay_s_ukundefined ToWi1989undefined 3 Replies Last reply Reply Quote 0
      • A Former User?
        A Former User @SignPostMan
        last edited by A Former User

        This post is deleted!
        1 Reply Last reply Reply Quote 1
        • jay_s_ukundefined
          jay_s_uk @SignPostMan
          last edited by

          @SignPostMan You probably have your M671 in a different order to how the z motors are declared in M584

          Owns various duet boards and is the main wiki maintainer for the Teamgloomy LPC/STM32 port of RRF. Assume I'm running whatever the latest beta/stable build is

          SignPostManundefined 1 Reply Last reply Reply Quote 1
          • ToWi1989undefined
            ToWi1989 @SignPostMan
            last edited by ToWi1989

            @SignPostMan a plane is defined by 3 points. 4 points make it overconstrained. Bed leveling will try to even out any deviations, but that simply isn't possible when the interfaces aren't mounted to the z axis. The only thing I can imagine is that you'd have the leveling algorithm only take 3 points into account, and then calculate where to move the 4th axis, just for additional support. I don't think the firmware is currently capable of doing that.

            What is your purpose for the 4th axis? Why not follow the ratrig/hevort triple z setup?

            Small side note; you have to make sure the 'leadscrew coordinates' are actually the coordinates of the center of the balls that support the bed, otherwise the calculation will be off even more.

            1 Reply Last reply Reply Quote 0
            • SignPostManundefined
              SignPostMan @jay_s_uk
              last edited by

              @jay_s_uk Ok I will check that out, my bed is 680x680 and I was afraid if I used 3 points I would get to much sag in back corners. Also the bed is 10mm thick and is pretty heavy, so 4 motors handle the weight pretty good. I would also like to make even larger and proving out the 4 motors first.

              deckingmanundefined 1 Reply Last reply Reply Quote 0
              • deckingmanundefined
                deckingman @SignPostMan
                last edited by

                @SignPostMan On the basis that for many years I have been running my 400 x 400 x 10mm thick bed with 12mm of insulation underneath and 6mm of glass on top, with a single motor, three screws and a continuous belt, then 4 motors for your 680 X 680 bed is definitely overkill.

                One problem with multiple motors is that whenever power is cycled, the motors will jump and change position by up to 4 full steps. With 3 screws, the bed will tilt so re-lelling will fix the error. It should be noted that this means bed levelling will have to be done every time the machine is turned on. However, with 4 screws the situation is different and one of two things will happen. On the one hand, if the screws are constrained from any vertical movement then the bed will get twisted. On the other hand, if the screws can move vertically, then one or more will become unseated and the bed will be held in position by the other 3 but may rock. I.e. it will be like a 4 legged chair or table on an uneven surface.
                For those reasons and IMO, the best arrangement is a single Z motor, 3 screws, and a continuous belt. The second best is 3 screws with individual motors. The least desirable is having any more than 3 screws.

                Ian
                https://somei3deas.wordpress.com/
                https://www.youtube.com/@deckingman

                SignPostManundefined 1 Reply Last reply Reply Quote 0
                • SignPostManundefined
                  SignPostMan @deckingman
                  last edited by

                  @deckingman I think you may be right. I was hopping for some voodoo, that I didn't know about. Thanks

                  jumpedwithbothfeetundefined 1 Reply Last reply Reply Quote 0
                  • jumpedwithbothfeetundefined
                    jumpedwithbothfeet @SignPostMan
                    last edited by

                    @SignPostMan while I understand and agreed with the triangle/three leg stool principle, I run a voron trident with 4 z motors due to the flex/sag of the bed, and always level my bed regardless.

                    I believe @jay_s_uk to be correct, I have had the same issue maybe post your config.g to confirm before disassembling your printer?

                    6HC Voron Trident based, 6XD CNC, Mini 5 polar printer

                    deckingmanundefined SignPostManundefined 2 Replies Last reply Reply Quote 0
                    • deckingmanundefined
                      deckingman @jumpedwithbothfeet
                      last edited by

                      @jumpedwithbothfeet said in Issue Leveling with G32 using 4 lead screws and motors:

                      @SignPostMan while I understand and agreed with the triangle/three leg stool principle, I run a voron trident with 4 z motors due to the flex/sag of the bed, and always level my bed regardless.

                      IMO, it's more likely that you 4 attachment points are what is causing the flex, rather than the weight of the plate itself. Plugging the OP's plate dimensions (680 x 680 x 10mm thick) into one of the many online calculators shows a displacement of 0.00294mm. Using the same calculator shows that the plate would need to be upwards of 4 metres x 4 metres before the deflection becomes greater than 0.1mm and hence problematic.

                      Ian
                      https://somei3deas.wordpress.com/
                      https://www.youtube.com/@deckingman

                      1 Reply Last reply Reply Quote 0
                      • SignPostManundefined
                        SignPostMan @jumpedwithbothfeet
                        last edited by

                        @jumpedwithbothfeet ```

                        G90                                     ; send absolute coordinates...
                        M83                                     ; ...but relative extruder moves
                        M550 P"RR 650-1"                        ; set printer name
                        M669 K1                                 ; CoreXY
                        G21                                     ; Set Units to Millimeters
                        
                        M552 S1                                 ; enable network
                        M586 P0 S1                              ; enable HTTP
                        M586 P1 S0                              ; disable FTP
                        M586 P2 S0                              ; disable Telnet
                        
                        M569 P0.0 S1                            ; physical drive 0.0 goes forwards
                        M569 P0.1 S1                            ; physical drive 0.1 goes forwards
                        M569 P0.2 S1                            ; physical drive 0.2 goes forwards
                        M569 P0.3 S1                            ; physical drive 0.3 goes forwards
                        M569 P0.4 S1                            ; physical drive 0.4 goes forwards
                        M569 P0.5 S0                            ; physical drive 0.5 goes forwards
                        M569 P0.6 S0                            ; physical drive 0.5 goes forwards
                        
                        M584 X0.5 Y0.6 Z0.0:0.1:0.2:0.3 E0.4    ; set drive mapping
                        M350 X16 Y16 Z16 E16 I1                 ; configure microstepping with interpolation
                        
                        M92 X80.00 Y80.00 Z800.00 E400          ; set steps per mm
                        M906 X1600 Y1600 Z1600 E700 I30         ; set motor currents (mA) and motor idle factor in per cent -- safe for Duet 3 mini 5+
                        M84 S30                                 ; Set idle timeout
                        
                        M566 X600.00 Y600.00 Z8.00 E120.00 P1          ; set maximum instantaneous speed changes (mm/min)
                        M203 X30000.00 Y30000.00 Z1600.00 E6000.00     ; set maximum speeds (mm/min)
                        M201 X3000.00 Y3000.00 Z100.00 E3600.00        ; set accelerations (mm/s^2)
                        
                        M208 X0 Y0 Z0 S1                               ; set axis minima
                        M208 X650 Y650 Z480 S0                         ; set axis maxima
                        
                        M574 X1 S1 P"io2.in"                           ; configure active low endstops
                        M574 Y2 S1 P"io1.in"                           ; configure active high endstops
                        ;(PanelDue is on io0)
                        
                        M671 X26:26:685:685 Y29:686:686:29 S5          ; position of leadscrew/bed pivot point at front left, rear left, rear right and front right
                        
                        M557 X30:618 Y30:650 S50                       ; define 5x5 mesh grid
                        
                        ;PanelDue set baud rate-----------------------------
                        M575 P1 B57600 S1
                        
                        ;--------------------bed need work------------------
                        M308 S0 P"temp0" Y"thermistor" T100000 B3950 A"Bed"     ; configure sensor 0 as thermistor on pin temp0
                        M950 H0 C"out0" T0 Q11                                  ; create bed heater output on out5 and map it to sensor 0, lower switching frequency to 11Hz
                        M307 H0 B0 S1.00                                       ; disable bang-bang mode for the bed heater and set PWM limit
                        ;M307 H0 A240.3 C608.7 D8.2 V24.1 B0                     ; Bed Heater from other printer
                        M140 H0                                                 ; map heated bed to heater 0
                        M143 H0 S110                                            ; set temperature limit for heater 0 to 110C
                        
                        ;------------------Chamber Temp---------------------
                        M308 S2 P"temp1" Y"thermistor" T100000 B3950 A"Chamber"; configure sensor 2 as thermistor on pin temp2
                        M950 H2 C"out2" T2                                     ; create chamber heater output on out2 and map it to sensor 2
                        ;M307 H2 B0 S1.00                                      ; disable bang-bang mode for the chamber heater and set PWM limit
                        M307 H2 R6 K0.17:0.11 D5.67 S1.00                      ; set the process parameters for heater 1
                        M141 H2                                                ; map chamber to heater 2
                        M143 H2 S70                                            ; set temperature limit for heater 2 to 60C
                        
                        ;---------------------Fans-------------------------
                        M950 F0 C"out4" Q500                       ; create fan 0 on pin out4 and set its frequency
                        M106 P0 C"Layer Fan" S0 H-1                ; set fan 0 name and value. Thermostatic control is turned off
                        M950 F1 C"out3" Q500                       ; create fan 1 on pin out3 and set its frequency
                        M106 P1 C"Hotend Fan" S0 H1 T45            ; set fan 1 name and value. Thermostatic control turned on for Hotend
                        M950 F3 C"out6"                            ; create fan 3 on pin out5
                        M106 P3 C"Chamber Filter Fan" S1 H2 T45    ; set fan 3 name and value. Thermostatic control turned on for Chamber Temp
                        
                        ;----------------------------------------
                        M563 P0 D0 H1 F0                       ; define tool 1
                        G10 P0 X0 Y0 Z0                        ; set tool 1 axis offsets
                        G10 P0 R0 S0                           ; set initial tool 1 active and standby temperatures to 0C
                        
                        M950 H1 C"out1" T1                     ; create nozzle heater output on out2 and map it to sensor 1
                        M307 H1 B0 S1.00                       ; disable bang-bang mode for heater and set PWM limit
                        M143 H1 S350                           ; set the maximum temperature in C for heater
                        
                        T0
                        
                        M308 S1 P"spi.cs2" Y"rtd-max31865"     ; configure sensor 1 as PT100 on pin spi.cs1
                        
                        ;----Euclid Probe------------------------
                        M558 P8 C"io3.in" H5 F800 T10000       ; set Z probe type to unmodulated and the dive height + speeds
                        G31 P500 X-31.5 Y0 Z3.4                ; set Z probe trigger value, offset and trigger height, more Z means closer to the bed
                        
                        ; Pressure Advance
                        M572 D0 S.055                          ;set tool 0 pressure advance
                        
                        M593 P"zvd" F41.5                      ; use ZVD input shaping to cancel ringing at 40.5Hz
                        
                        
                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post
                        Unless otherwise noted, all forum content is licensed under CC-BY-SA