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

    Sagging of the Z - axis

    Scheduled Pinned Locked Moved
    Duet Hardware and wiring
    5
    9
    386
    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.
    • UserXYundefined
      UserXY
      last edited by

      Hallo
      ich habe ein Drucker mit 2 Z Achsen jedes mal wenn ich den
      Strom ausschalte sackt mir die nach unten ab noch bevor die Bremsen aktiveren.
      Das Absacken beträgt nur an einer Seite um 3 mm das erzeug
      aber bei mein Kartesischen Drucker mit X/Y Core zu massiven Problemen.

      Es würde mir schon helfen wenn ich ein Referenzieren der
      Z - Achsen nach dem die Achsen abgesackt sind.
      Ich stelle mir das so vor das die eine Z - Achse den Taster berührt die andere aber noch nicht.
      Diese dann stehen bleit und die Z - Achse die den Taster noch nicht berührt hat bis zum Schalter weiter fährt so das die beiden Z - Achsen wieder auf einer graden ebene sind.

      Ist so ein Vorgehensweise (Referenzierung) möglich?

      Kennt jemand eine solche Anweisung?

      Hello
      I have a printer with 2 Z axles every time I switch the
      power off, it sags downwards even before the brakes are activated.
      The sagging is only on one side by 3 mm that created
      but with my cartesian printer with X/Y core to massive problems.

      It would already help me if I could reference the
      Z - axes after the axes are sagged.
      I imagine that the one Z - axis touches the button but the other not yet.
      This then stops and the Z-axis that has not yet touched the button continues to the switch so that the two Z-axes are again on a level plane.

      Is such a procedure (referencing) possible?

      Does anyone know such an instruction?

      Translated with www.DeepL.com/Translator (free version)

      jay_s_ukundefined 1 Reply Last reply Reply Quote 0
      • jay_s_ukundefined
        jay_s_uk @UserXY
        last edited by

        @UserXY can you give a bit more info? what boards are you running. post your config
        do you use a z probe to level?

        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

        1 Reply Last reply Reply Quote 0
        • UserXYundefined
          UserXY
          last edited by

          Ich benutze das Duet Mainboard 6HC
          Version 1.01a.
          Die Firmware Version ist 3.5.4 beta 3

          Der Störfall tritt nur auf wenn ich den Strom aus schalte.
          Sonst nicht.
          Genauso wenn ich mit M84 den Leerlauf beende (Motorhalte Strom).

          Das Bett Nivelliere ich mit einem BL - Touch.
          Zusätzlich habe ich oben noch Endschalter die das MAX bestimmen.

          Meine Gedanke ist es auf die Endschalter oben zu fahren und dann eine gleich Stellung zu machen.
          Ist dies Möglich?

          I use the Duet Mainboard 6HC
          version 1.01a.
          The firmware version is 3.5.4 beta 3.

          The glitch only occurs when I turn off the power.
          Otherwise not.
          The same when I end the idle with M84 (motor holding current).

          I level the bed with a BL - Touch.
          In addition, I have limit switches on top that determine the MAX.

          My thought is to drive on the limit switches above and then make an equal position.
          Is this possible?

          1 Reply Last reply Reply Quote 0
          • UserXYundefined
            UserXY
            last edited by

            Hier noch meine Config datei.

            ; Configuration file for Duet 3 MB 6HC (firmware version 3.3)
            ; executed by the firmware on start-up
            ;
            ; generated by RepRapFirmware Configuration Tool v3.3.15 on Fri Mar 03 2023 12:36:13 GMT+0100 (Mitteleuropäische Normalzeit)
            
            ; General preferences
            M575 P1 S1 B57600                                                                                               ; enable support for PanelDue
            G90                                                                                                             ; send absolute coordinates...
            M83                                                                                                             ; ...but relative extruder moves
            M550 P"Schneider 4D Drucker"                                                                                    ; set printer name
            M669 K1                                                                                                         ; select CoreXY mode
            
            ; Wait a moment for the CAN expansion boards to start
            G4 S2
            
            ; Drives
            M569 P0.0 S0 ;X - Achse                                                                                         ; physical drive 0.0 goes backwards
            M569 P0.1 S0 ;Y - Achse	                                                                                        ; physical drive 0.1 goes backwards
            M569 P0.2 S0 ;Z - Achse 1                                                                                       ; physical drive 0.2 goes backwards
            M569 P0.3 S0 ;Z - Achse 2																						; physical drive 0.3 goes backwards
            M569 P0.4 S1 ;Flies Spanner 1 																					; physical drive 0.4 goes forwards
            M569 P0.5 S1 ;Flies Spanner 2                                                                                   ; physical drive 0.5 goes forwards
            M569 P1.0 S1 ;Flies Spanner 3																					; physical drive 1.0 goes forwards
            M569 P1.1 S1 ;Flies Spanner 4                                                                                   ; physical drive 1.1 goes forwards
            M569 P1.2 S0 ;Kabelzug 1                                                                                        ; physical drive 1.2 goes forwards
            M569 P2.0 S0 ;Kabelzug 2                                                                                        ; physical drive 2.0 goes forwards
            M569 P2.1 S0 ;Kabelzug 3                                                                                        ; physical drive 2.1 goes forwards
            M569 P2.2 S0 ;Kabelzug 4                                                                                        ; physical drive 2.2 goes forwards
            M569 P121.0 S0                                                                                                  ; physical drive 121.0 goes forwards
            M569 P122.0 S0                                                                                                  ; physical drive 122.0 goes forwards
            M569 P123.0 S0                                                                                                  ; physical drive 123.0 goes forwards
            M569 P124.0 S1                                                                                                  ; physical drive 124.0 goes forwards
            M584 X0.0 Y0.1 Z0.2:0.3 A0.4 B0.5 C1.0 D1.1 U1.2 V2.0 W2.1   E121.0:122.0:123.0:124.0                                           	; set drive mapping
            M350 X16 Y16 Z16:16  A16 B16 C16 D16 U16 V16 W16 E16:16:16:16 I1                                                             			; configure microstepping with interpolation
            M92 X55.66 Y55.66 Z640.00:640.00  A190.0 B190.0 C190.0 D190.0 U80.0 V80.0 W80.0  E120.00:120.00:120.00:120.00		                ; set steps per mm
            M566 X6000.00 Y6000.00 Z160.00:160.00  A120.0 B120.0 C120.0 D120.00  U120.0 V120.0 W120.0   E120.0:120.00:120.00:120.00		        ; set maximum instantaneous speed changes (mm/min)
            M203 X9000.00 Y9000.00 Z350.00:350.0  A200.0 B2200.0 C2200.0 D2200.0  U180.0 V180.0 W180.0   E1200.00:1200.00:1200.00:1200.00		; set maximum speeds (mm/min)
            M201 X500.00 Y500.00 Z200.00:200.00  A20.00 B20.0 C20.0 D20.00 U20.0 V20.0 W20.0  E250.0:250.00:250.00:250.00			            ; set accelerations (mm/s^2)
            M906 X2300 Y2300 Z2800:2800  A800 B800 C800 D800  U800 V800 W800  E800:800:800:800 I90                                               	; set motor currents (mA) and motor idle factor in per cent
            M84 S30                                                                                                         					; Set idle timeout
            
            ; Axis Limits
            M208 X0 Y0 Z0 U0 V0 W0 A0 B0 C0 D0 S1                                                                                               ; set axis minima
            M208 X1000 Y1000 Z220 U30 V30 W30 A700 B700 C700 D700 S0																				; set axis maxima
            
            ; Endstops
            M574 X1 S1 P"io1.in+io3.in"                                                                                         ; configure switch-type (e.g. microswitch) endstop for low end on X via pin io2.in
            M574 Y1 S1 P"io2.in+io4.in"						                                                                    ; configure switch-type (e.g. microswitch) endstop for low end on Y via pin io1.in
            M574 Z1 S1 P"2.io2.in"                                                                         		              	; configure switch-type (e.g. microswitch) endstop for low end on Z via pin io4.in
            
            M574 U1 S1 P"1.io4.in"
            M574 V1 S1 P"1.io5.in"
            M574 W1 S1 P"2.io0.in"
            
            M574 i1 S1 P"2.io1.in"
            
            M574 A1 S1 P"io5.in+io6.in"
            M574 B1 S1 P"io7.in+io8.in"
            M574 C1 S1 P"1.io0.in+1.io1.in"
            M574 D1 S1 P"1.io2.in+1.io3.in"
            
            
            
            ; Z-Probe
            M950 S18 C"121.io0.out"
            M558 P9 C"121.io0.in" H10 F200 T6000                                                                               ; disable Z probe but set dive height, probe speed and travel speed
            ;G31 P500 X0 Y0 Z3
            M557 X15:200 Y15:195 S20                                                                                        ; define mesh grid
            
            ; Heaters	T:1000.0 B:3950.0 C:7.06e-8 R:2200.0 L:127 H:127
            ;T:1000.0 B:3950.0 C:7.06e-8 R:2200.0 L:0 H:-17
            
            M308 S0 P"temp1" Y"thermistor" T50000
            ;M308 S0 P"temp0" Y"PT1000" T1000  B3950 	
            M950 H0 C"out0" T0                                                                                              ; create bed heater output on out0 and map it to sensor 0
            M307 H0 R1.1 D300 B0 S1.0                                                                                     ; enable bang-bang mode for the bed heater and set PWM limit
            M140 H0 R0                                                                                                        ; map heated bed to heater 0
            M143 H0 S100                                                                                                    ; set temperature limit for heater 0 to 100C
            
            ;M308 S10 P"temp1" Y"thermistor" T50000
            M308 S10 P"temp0" Y"PT1000" T1000  B3950 				                                                       ; configure sensor 10 as thermistor on pin temp0
            
            
            
            
            M308 S1 P"121.temp0" Y"thermistor" T100000         																	; configure sensor 1 as PT1000 on pin 121.temp0
            M950 H1 C"121.out0" T1                       																	; create nozzle heater output on 121.out0 and map it to sensor 1
            M307 H1 B0 S1.0                                                                                                ; enable bang-bang mode for the bed heater and set PWM limit
            M143 H1 S250                                                                                                    ; set temperature limit for heater 0 to 200C
            
            M308 S2 P"122.temp0" Y"thermistor" T100000 
            M950 H2 C"122.out0" T2
            M307 H2 B0 S1.0
            M143 H2 S250
            
            M308 S3 P"123.temp0" Y"thermistor" T100000
            M950 H3 C"123.out0" T3
            M307 H3 B0 S1.0
            M143 H3 S250
            
            M308 S4 P"124.temp0" Y"thermistor" T100000
            M950 H4 C"124.out0" T4
            M307 H4 B0 S1.0
            M143 H4 S250
            
            
            
            ; Fans
            
            M308 S15 Y"mcu-temp" A"MCU"
            M950 F15 C"!out4" Q500  ;CPU Lüfter                                                                             ; create fan 0 on pin !out4 and set its frequency
            M106 P15 S10 T30 H15 C"CPU Lüfter Mainboard"                                                                    ; set fan 0 value. Thermostatic control is turned off
            
            M950 F16 C"2.out3" Q500                                                                                         ; create fan 1 on pin !2.out3 and set its frequency
            M106 P16 S1,0 C"Board Lüfter"                                                                                   ; set fan 1 value. Thermostatic control is turned off
            
            M950 F1 C"121.out1" Q250
            M106 P1 S10 T30 H3 
            
            M950 F2 C"122.out1" Q250
            M106 P2 S10 T30 H2 
            
            
            M950 F3 C"123.out2" Q500
            M106 P3 S10 T30 H1 
            
            M950 F4 C"124.out2" Q500
            M106 P4 S10 H-1 
            
            ;M950 F3 C"123.out1" Q250
            ;M106 P3 S100 H-1 
            
            ;M950 F4 C"124.out1" Q250
            ;M106 P4 S100 H-1
            
            M950 F5 C"121.out2" Q500
            M106 P5 S100 H-1
            
            M950 F6 C"122.out2" Q500
            M106 P6 S100 H-1 
            
            
            ; Tools
            ;Werkzeug Nr. 1
            M563 P1 D0 H1 F5                               							    									; define tool 1
            G10 P1 X0 Y0 Z0                                    																; set tool 1 axis offsets
            G10 P1 R0 S0           
            ;Werkzeug Nr.2
            M563 P2 D1 H2 F6
            G10 P2 X0 Y0 Z0
            G10 P2 R0 S0
            ;Werkzeug Nr.3
            M563 P3 D2 H3 F6
            G10 P3 X0 Y0 Z0
            G10 P3 R0 S0
            ;Werkzeug Nr.4
            M563 P4 D3 H4 F5
            G10 P4 X0 Y0 Z0
            G10 P4 R0 S0
            
            
            ; set initial tool 0 active and standby temperatures to 0C
            
            ;Filament Senoren
            Tool 1
            M591 P3 C"121.io1.in" S1 D0 ; filament monitor connected to E0 endstop
            ;M591 D0 P3 C"121.io1.in" S1 R70:130 L28.4 E3.0 A0;
            M591 D0 ; display filament sensor parameters for extruder drive 0
            Tool 2
            M591 P3 C"122.io1.in" S1 D1 ; filament monitor connected to E1 endstop
            M591 D1 ; display filament sensor parameters for extruder drive 1
            Tool 3
            M591 P3 C"123.io1.in" S1 D2 ; filament monitor connected to E2 endstop
            M591 D2 ; display filament sensor parameters for extruder drive 2
            Tool 4
            M591 P3 C"124.io1.in" S1 D3 ; filament monitor connected to E4 endstop
            M591 D3 ; display filament sensor parameters for extruder drive 4
            
            ; Custom settings are not defined
            ;M950 P11 C"!Out1"
            ;M42 P11 S0
            
            M569.7 P0.3 C"out1" ;Bremsen Ansteuerung
            M17
            
            ;Alle Achsen Freigen ohne Referenzfahrt
            M564 H0 S1	;Achsen Freigen
            G4 S1		;Wartezeit 1 Sekunden
            G91 
            G1 Z1 		;Z - Achse 15mm nach oben fahren
            G92
            M564 H1 S1 	;Freigabe zurük nehemen
            ;Lüfter Einschalten
            M106 P1 S255
            M106 P2 S255
            M106 P3 S255
            M106 P4 S255
            M106 P5 S255
            M106 P6 S255
            
            ; Miscellaneous
            M501                                                                                                            ; load saved parameters from non-volatile memory
            M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000"                                                              ; set voltage thresholds and actions to run on power loss
            
            
            
            jay_s_ukundefined 1 Reply Last reply Reply Quote 0
            • jens55undefined
              jens55
              last edited by jens55

              Why is the sagging causing you issues? What is different between the two motors? This is more than likely a mechanical problem. You are talking about touching a button - do you have end limit switches on both motors (which would be odd AFAIK) ? The limit switches are only used during homing and should not have any effect when you switch the printer off.
              When you remove power from the motors completely (ie not just reducing the power), you have lost your position. You will always have to re-home. If you have two z axis motors you will need to home both motors which will automatically 'fix' the sagged end. Of course you need to make sure that the moving head (during homing) does not run into the bed.

              1 Reply Last reply Reply Quote 0
              • jay_s_ukundefined
                jay_s_uk @UserXY
                last edited by

                @UserXY you could try changing using 3.5beta4 as that allows a delay between enabling the brake and turning the motor off.
                you also only seem to have 1 brake port configured. are they both connected to 1 output?

                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

                1 Reply Last reply Reply Quote 0
                • UserXYundefined
                  UserXY
                  last edited by UserXY

                  Guten Morgen zusammen,

                  ja ich habe ein Ausgang für beide Bremsen zu steuern der Bremsen.

                  Die Bremsen sind Parallel geschaltet ( mit einem Y - Verteiler ).

                  Ich habe mich in der Zwischenzeit an den Hersteller Duet gewendet und

                  die haben mir auch direkt sofort geholfen.

                  Ja es mussten zwei Schalter für die Z - Achse definiert werden.

                  ich habe nun zwei Schalter an der Z - Achse verbaut die dann mit der Anweisung

                  und der Konfiguration das durchhängen der Z - Achse nach dem Homing kompensiert.
                  hier meine neue Config.g Datei

                  ;Endstops
                  M574 Z1 S1 P"2.io5.in+2.io2.in"   ;two endstop for high end on Z
                  

                  Meine Homing Anweisung,

                  G1 H1 Z9999 F800        ;move up two end switch and 
                  
                  G92 Z200                       ;make a max limit.
                  

                  Ist nicht so ganz ideal aber es funktioniert.

                  Dennoch habe ich immer noch das Problem das die Achse beim Ausschalten

                  nach unten fällt auch beim M112 und M84 obwohl ich den Bremsen Anschluss

                  Konfiguriert habe.
                  Config.g

                  M569.7 P0.3 C"out1" ;Break Connection
                  M17
                  

                  Geht die Bremse nicht zu.
                  Ich verstehe den Sinn des Befehls M567.9 nicht wenn man M18 sendet passiert auch nichts.

                  Als würde das Mainboard den Befehlt gar nicht Akzeptieren.

                  Ich kämpfe der zeit mit dem Problem.
                  Melde mich wenn ich eine Lösung habe.

                  vielen Dank an euch für euer Unterstützung ihr seit echt cool.👍

                  englisch

                  Good morning all,

                  yes I have an output for both brakes to control the brakes.

                  The brakes are connected in parallel ( with a Y - distributor ).

                  I have turned in the meantime to the manufacturer Duet and

                  they have helped me also directly immediately.

                  Yes there had to be defined two switches for the Z - axis.

                  I have now installed two switches on the Z - axis which then with the instruction

                  and the configuration compensates the sagging of the Z - axis after homing.
                  here my new Config.g file

                  ;Endstops
                  M574 Z1 S1 P "2.io5.in+2.io2.in" ;two endstop for high end on Z
                  

                  My homing instruction,

                  G1 H1 Z9999 F800 ;move up two end switch and 
                  
                  G92 Z200 ;make a max limit.
                  

                  This is not ideal but it works.

                  However, I still have the problem that the axis falls down when I switch off

                  down even with the M112 and M84 although I have configured the brake connection

                  configured.
                  Config.g

                  M569.7 P0.3 C "out1" ;Break Connection
                  M17
                  

                  The brake does not close.
                  I don't understand the sense of the command M567.9 when sending M18 nothing happens.

                  As if the mainboard would not accept the command.

                  I am struggling with this problem.
                  I will report when I have a solution.

                  Thanks to all of you for your support you are really cool👍

                  dc42undefined 1 Reply Last reply Reply Quote 1
                  • mrehorstdmdundefined
                    mrehorstdmd
                    last edited by

                    If you want an alternative solution that works every time, drive all Z axis screws with a single motor and worm gear reducer. The worm gear reducer will stop the bed from moving when you power down without having to mess around in the configuration or having to drive brakes that don't turn on instantly. My 300x300x695 mm corexy printer uses that type of set-up in Z axis without any mesh compensation or autotramming and I haven't touched the tramming in about 2 years. The bed does not move when power is cut. When power is reapplied, it could jump a few um, but since there's only one motor, the bed won't tilt, ever.

                    This is the motor/worm drive used in my printer. It lifts the bed using two belts, but it could be used with screws, too. I chose pulleys that move the bed 20 um per full step of the motor so I can print in any layer thickness that is a whole number multiple of 20 um.

                    You could use cheaper motors with high reduction planetary gearboxes, but most of those have odd reduction ratios that will result in ugly whole step movement values. For example... Note, the description says 27:1 reduction, but a closer look at the specs shows the reduction is actually 26.85:1. As Tom Waits once said "The large print giveth, and the small print taketh away".

                    There are a lot of Chinese motor/planetary gearbox sellers who show only the large print values. I suspect the actual reduction ratios are similarly odd. Odd ratios result in weird whole step movement, which in turn requires weird print layer thickness values, assuming you print in whole number multiples of the full step value. It's not necessarily a problem if you don't mind it, but that sort of thing drives me nuts.

                    Gear reduction ratio isn't the whole story. You also have to consider the mass being lifted, friction, the detent torque of the motor, and the type of gear reduction. High ratio worm drives usually can't be back-driven (regardless of detent torque) by the masses lifted in 3D printers, which will prevent Z axis movement when power to the motor is cut. Planetary or other types of gear reducers may allow the motor to be turned by the load when power is off, so the Z axis may drop. If you're lifting a light weight X axis in a desktop cartesian printer, almost any type of reducer might work, but if you're lifting a massive bed or XY stage in a larger printer, a worm drive is the safest bet.

                    https://drmrehorst.blogspot.com/

                    1 Reply Last reply Reply Quote 0
                    • dc42undefined
                      dc42 administrators @UserXY
                      last edited by

                      @UserXY said in Sagging of the Z - axis:

                      M569.7 P0.3 C "out1" ;Break Connection

                      Remove the space character between the letter C and the opening double quotation mark, like this:

                      M569.7 P0.3 C"out1" ;Break Connection

                      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

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