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

In Duet3: Z does not respond as expected

Scheduled Pinned Locked Moved
Duet Hardware and wiring
3
12
417
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
    Aitor
    last edited by 24 Aug 2021, 08:36

    Good morning,

    I have some problems with the Z axis of my printer, I have the feeling that sometimes it doesn't respond properly.

    I am using:
    M115 B0
    FIRMWARE_NAME: RepRapFirmware for Duet 3 MB6HC FIRMWARE_VERSION: 3.3 ELECTRONICS: Duet 3 MB6HC v0.6 or 1.0 FIRMWARE_DATE: 2021-06-15 21:45:56
    M115 B1
    Duet EXP3HC firmware version 3.3 (2021-06-15 16:12:41)
    M115 B2
    Duet EXP3HC firmware version 3.3 (2021-06-15 16:12:41)
    Machine with 4 independent tools (XYZUVWA) (the limit switches are on the nameplate that corresponds to your motor)
    M569 P0.0 S1
    M569 P0.1 S1
    M569 P0.2 S0
    M569 P0.3 S0
    M569 P0.4 S1
    M569 P0.5 S0
    M569 P1.0 S0
    M569 P1.1 S1
    M569 P1.2 S1
    M569 P2.1 S1
    M569 P2.2 S1
    M584 X0.0 Y0.4 Z1.0 U0.1 V0.2 W0.3 A0.5 E1.1:1.2:2.1:2.2:2.2

    For example, the home Z that I usually use in duet2 does not work correctly, performs the first home, it separates but does not perform the second touch, leaving Z at position 0 when it is actually at 5.

    ; homez.g
    ; Z-axis home call
    M106 P2 S1 ; Switch LED on
    G91 ; Relative positioning
    G1 H1 Z{-move.axes[2].max} F3000 ; Move Z down until end stop triggers
    G1 H2 Z5 F3000 ; Raise Z relative to the current position
    G1 H1 Z{-move.axes[2].max/2} F380 ; Move Z downward until the end stop is triggered
    G92 Z0 ; Adjust the Z position to the minimum axis position
    G90 ; Absolute positioning
    M400 ; Terminate data

    I have had to modify the following to make it work, I have read that the expansion boards have some delay so I came up with this solution, the problem is that during printing it also ends up being misaligned.

    ; homez.g
    ; Z-axis home call
    M106 P2 S1 ; Switch LED on
    G91 ; Relative positioning
    G1 H1 Z{-move.axes[2].max} F3000 ; Move Z down until end stop triggers
    G1 H2 Z2 F6000 ; Raise Z relative to the current position
    G4 P500
    M400
    G1 H1 Z{-move.axes[2].max/2} F60 ; Move Z downward until the end stop is triggered
    G92 Z0 ; Adjust the Z position to the minimum axis position
    G90 ; Absolute positioning
    M400 ; Terminate data

    How can I solve this?
    Is this due to the delay I mentioned?
    I've read that in version 3.4beta2 this is fixed or is being worked on, is it?
    If the solution is to install 3.4beta2, should I also install it on the expansion boards?

    Greetings and thanks in advance

    undefined 1 Reply Last reply 24 Aug 2021, 08:39 Reply Quote 0
    • undefined
      jay_s_uk @Aitor
      last edited by 24 Aug 2021, 08:39

      @aitor are you using a z probe or an endstop?

      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

      undefined 1 Reply Last reply 24 Aug 2021, 09:08 Reply Quote 0
      • undefined
        Aitor @jay_s_uk
        last edited by 24 Aug 2021, 09:08

        Good morning @jay_s_uk

        I am using an endstop

        undefined 1 Reply Last reply 24 Aug 2021, 09:11 Reply Quote 0
        • undefined
          jay_s_uk @Aitor
          last edited by 24 Aug 2021, 09:11

          @aitor could you post your complete config, just another couple of things I am interested in

          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

          undefined 1 Reply Last reply 24 Aug 2021, 09:18 Reply Quote 0
          • undefined
            Aitor @jay_s_uk
            last edited by 24 Aug 2021, 09:18

            @jay_s_uk this is my config, still unchecked, I also have it translated to spanish.

            config.g

            ; Preferencias Generales
            G90 ; Enviar coordenadas absolutas...
            M83 ; ...pero el extrusor relativo se mueve
            M550 P"4 Tools TEST" ; Establecer el nombre de la impresora
            ;M551 P"password" ; Establece password WEB
            G4 S2 ; Espere un momento a que se inicien las tarjetas de expansión CAN
            ; Electrónicas Duet Ethernet (solo para electrónicas con Ethernet)
            ;M540 PDE:AD:BE:EF:CA:FE ; Establecer direccion MAC (SOLO SI ES NECESARIO)
            ;M552 P192.168.1.114 ; IP address
            ;M554 P192.168.1.255 ; Gateway
            ;M553 P255.255.255.0 ; Netmask
            ; Network
            M552 S1 ; Enable network
            M586 P0 S1 ; Enable HTTP
            M586 P1 S0 ; Disable FTP
            M586 P2 S0 ; Disable Telnet
            ; Controladores
            M569 P0.0 S1 ; El motor gira hacia Snnn: 0 = hacia atras, 1 = hacia adelante
            M569 P0.1 S1 ; El motor gira hacia Snnn: 0 = hacia atras, 1 = hacia adelante
            M569 P0.2 S0 ; El motor gira hacia Snnn: 0 = hacia atras, 1 = hacia adelante
            M569 P0.3 S0 ; El motor gira hacia Snnn: 0 = hacia atras, 1 = hacia adelante
            M569 P0.4 S1 ; El motor gira hacia Snnn: 0 = hacia atras, 1 = hacia adelante
            M569 P0.5 S0 ; El motor gira hacia Snnn: 0 = hacia atras, 1 = hacia adelante
            M569 P1.0 S0 ; El motor gira hacia Snnn: 0 = hacia atras, 1 = hacia adelante
            M569 P1.1 S1 ; El motor gira hacia Snnn: 0 = hacia atras, 1 = hacia adelante
            M569 P1.2 S1 ; El motor gira hacia Snnn: 0 = hacia atras, 1 = hacia adelante
            M569 P2.1 S1 ; El motor gira hacia Snnn: 0 = hacia atras, 1 = hacia adelante
            M569 P2.2 S1 ; El motor gira hacia Snnn: 0 = hacia atras, 1 = hacia adelante
            M584 X0.0 Y0.4 Z1.0 U0.1 V0.2 W0.3 A0.5 E1.1:1.2:2.1:2.2 ; Establecer el mapeo de la unidad de disco
            M350 I1 X16 Y16 Z16 U16 V16 W16 A16 E16 ; Configurar los micropasos con interpolacion
            M92 X100 Y100 Z1600 U100 V100 W100 A100 E150:250:250:150 ; Establecer pasos por mm
            M566 X600 Y600 Z12 U600 V600 W600 A600 E8000:600:600:8000 ; Establecer los máximos cambios de velocidad instantanea (mm/min)
            M203 X6000 Y6000 Z600 U6000 V6000 W6000 A6000 E9000:6000:6000:9000 ; Establecer las velocidades maximas (mm/min)
            M201 X1200 Y1200 Z24 U1200 V1200 W1200 A1200 E8000:1200:1200:8000 ; Establecer las aceleraciones (mm/s^2)
            M906 I30 X360 Y1530 Z1600 U360 V360 W360 A1530 E1360:1360:1360:1360 ; Establecer las corrientes del motor (mA) y el factor de ralenti del motor en porcentaje
            M84 S60 ; Establecer el tiempo de espera para desactivar motores
            ; Límites del eje
            M208 S1 X-62 Y57 Z-0.7 U10 V-62 W10 A0 ; Establecer los minimos del eje
            M208 S0 X490 Y402 Z200 U562 V490 W562 A345 ; Establecer los maximos de los ejes
            ; Finales de carrera
            M574 X1 S1 P"io7.in" ; Configurar final de carrera
            M574 Y2 S1 P"io4.in" ; Configurar final de carrera
            M574 Z1 S1 P"1.io5.in" ; Configurar final de carrera
            M574 U2 S1 P"io1.in" ; Configurar final de carrera
            M574 V1 S1 P"io2.in" ; Configurar final de carrera
            M574 W2 S1 P"io3.in" ; Configurar final de carrera
            M574 A1 S1 P"io5.in" ; Configurar final de carrera
            ; Sonda Z
            M558 P0 H1.7 F120 T6000 ; Desactivar la sonda Z pero ajustar la altura de inmersion, la velocidad de la sonda y la velocidad de desplazamiento
            M557 P3:3 X15:{move.axes[0].max-15} Y15:{move.axes[1].max-15} ; Definir la red de mallaDefinir la red de malla
            G31 K0 P500 X0 Y0 Z0 U0 ; Establecer el estado actual de la sondaEstablecer el estado actual de la sonda
            ; Calentadores
            M308 S0 P"temp0" Y"thermistor" T100000 B4138 A"BASE" ; Configurar el sensor 0 como termistor en el pin bedtemp
            M950 H0 C"out0" T0 ; Crear la salida del calentador de la cama en el calentador de la cama y asignarlo al sensor 0
            M143 H0 S125 ; Establecer el límite de temperatura para el calentador de 0 a 150C
            M307 H0 B1 S1.00 ; Habilitar el modo bang-bang para el calentador de cama y establecer el límite PWM
            M570 H0 S0 P900 T45 ; Configurar la detección de fallas del calentadorConfigurar la detección de fallas del calentador
            M140 H0 ; Mapa cama calefactora a calefactor 0
            M308 S1 P"temp1" Y"thermistor" R2200 T100000 B3950 A"B.L_HEATER" ; Configurar el sensor
            M950 H1 C"out1" T1 ; Crear la salida del calentador
            M143 H1 S300 ; Establecer el limite de temperatura para el calentador a 350C
            M307 H1 B0 S1.00 ; Deshabilitar el modo bang-bang para el calentador y establecer el limite PWM
            M308 S3 P"temp2" Y"thermistor" R2200 T100000 B3950 A"B.R_OUTPUT" ; Configurar el sensor
            M950 H3 C"out2" T3 ; Crear la salida del calentador
            M143 H3 S300 ; Establecer el limite de temperatura para el calentador a 350C
            M307 H3 B0 S1.00 ; Deshabilitar el modo bang-bang para el calentador y establecer el limite PWM
            M308 S4 P"temp3" Y"thermistor" R2200 T100000 B3950 A"B.R_INPUT" ; Configurar el sensor
            M950 H4 C"out3" T4 ; Crear la salida del calentador
            M143 H4 S300 ; Establecer el limite de temperatura para el calentador a 350C
            M307 H4 B0 S1.00 ; Deshabilitar el modo bang-bang para el calentador y establecer el limite PWM
            M308 S5 P"2.temp0" Y"thermistor" R2200 T100000 B3950 A"F.R_OUTPUT" ; Configurar el sensor
            M950 H5 C"2.out0" T5 ; Crear la salida del calentador
            M143 H5 S300 ; Establecer el limite de temperatura para el calentador a 350C
            M307 H5 B0 S1.00 ; Deshabilitar el modo bang-bang para el calentador y establecer el limite PWM
            M308 S6 P"2.temp1" Y"thermistor" R2200 T100000 B3950 A"F.R_INPUT" ; Configurar el sensor
            M950 H6 C"2.out1" T6 ; Crear la salida del calentador
            M143 H6 S300 ; Establecer el limite de temperatura para el calentador a 350C
            M307 H6 B0 S1.00 ; Deshabilitar el modo bang-bang para el calentador y establecer el limite PWM
            M308 S7 P"1.temp2" Y"thermistor" R2200 T100000 B3950 A"F.L_HEATER" ; Configurar el sensor
            M950 H7 C"1.out2" T7 ; Crear la salida del calentador
            M143 H7 S300 ; Establecer el limite de temperatura para el calentador a 350C
            M307 H7 B0 S1.00 ; Deshabilitar el modo bang-bang para el calentador y establecer el limite PWM
            M302 P0 S140 R140 ; Pnnn Estado de permiso, Snnn Temp. min. extrusion, Rnnn Temp. min. retraccion
            M308 S10 Y"mcu-temp" A"MCU" ; Configurar el sensor 10 como MCU
            M308 S11 Y"drivers" A"Drivers" ; Configurar el sensor 11 como Steppers
            M308 S12 Y"dhthumidity" A"Humedad" ; Configurar el sensor 12 Como Humedad
            ; Ventiladores
            M950 F0 C"out4" Q500 T1 ; Crear el ventilador y establecer su frecuencia
            M106 P0 S1 T45 H1 C"Back Left Tool Fan" ; Ponga el nombre y el valor del ventilador. El control termostatico esta activado
            M950 F1 C"out7" Q500 ; Crear el ventilador y establecer su frecuencia
            M106 P1 S0 H-1 C"T0 L.Fan" ; Ajustar el valor del ventilador. El control termostatico esta apagado
            M950 F2 C"out9" Q500 ; Crea la salida fan2 para la tira LED a 500Hz
            M106 P2 C"LED" B0 S255 X255 ; Activa el ventilador a 255
            M950 F3 C"out5" Q500 T3:4 ; Crear el ventilador y establecer su frecuencia
            M106 P3 S1 T45 H3:4 C"Back Right Tool Fan" ; Ponga el nombre y el valor del ventilador. El control termostatico esta activado
            M950 F4 C"out8" Q500 ; Crear el ventilador y establecer su frecuencia
            M106 P4 S0 H-1 C"T1 L.Fan" ; Ajustar el valor del ventilador. El control termostatico esta apagado
            M950 F5 C"2.out3" Q500 T1 ; Crear el ventilador y establecer su frecuencia
            M106 P5 S1 T45 H5:6 C"Front Left Tool Fan" ; Ponga el nombre y el valor del ventilador. El control termostatico esta activado
            M950 F6 C"2.out6" Q500 ; Crear el ventilador y establecer su frecuencia
            M106 P6 S0 H-1 C"T2 L.Fan" ; Ajustar el valor del ventilador. El control termostatico esta apagado
            M950 F7 C"1.out4" Q500 T3:4 ; Crear el ventilador y establecer su frecuencia
            M106 P7 S1 T45 H7 C"Front Right Tool Fan" ; Ponga el nombre y el valor del ventilador. El control termostatico esta activado
            M950 F8 C"1.out7" Q500 ; Crear el ventilador y establecer su frecuencia
            M106 P8 S0 H-1 C"T3 L.Fan" ; Ajustar el valor del ventilador. El control termostatico esta apagado
            ; Herramientas
            M563 P0 D0 F1 H1 S"Back_Left" ; P = Definir la herramienta, D = Extrusora, H = Calentador, F = Ventilador
            M563 P1 D1 F4 H3:4 X3 S"Back_Right" ; P = Definir la herramienta, D = Extrusora, H = Calentador, F = Ventilador
            M563 P2 D2 F6 H5:6 X4 Y6 S"Front_Right" ; P = Definir la herramienta, D = Extrusora, H = Calentador, F = Ventilador
            M563 P3 D3 F8 H7 X5 Y6 S"Front_Left" ; P = Definir la herramienta, D = Extrusora, H = Calentador, F = Ventilador
            M563 P4 D0:1:2:3 X0:3:4:5 Y1:6 F1:4:6:8 S"Copy / Mirror" H1:3:4:5:6:7 ; P = Definir la herramienta, D = Extrusora, H = Calentador, F = Ventilador
            G10 P0 Z0 X0 Y0 ; Establecer la herramienta 0 desplazamientos del eje
            G10 P1 Z0 X0 Y-12.2 U-2.4 ; MODIFICA U e Y si es necesario Establecer la herramienta 1 desplazamientos del eje
            G10 P2 Z0 X0 Y0 V-0.7 A-1 ; MODIFICA V e A si es necesario Establecer la herramienta 2 desplazamientos del eje
            G10 P3 Z0 X0 Y0 W0.2 A-12.5 ; MODIFICA W e A si es necesario Establecer la herramienta 3 desplazamientos del eje
            G10 P4 Z0 X0 Y{-move.axes[6].max-move.axes[1].min} U{-move.axes[0].max-move.axes[3].min} V0 W{-move.axes[4].max-move.axes[5].min} A0 ; Establecer la herramienta 4 desplazamientos del eje
            G10 P0 R0 S0 ; Establecer la herramienta inicial 0 activa y las temperaturas de espera a 0C
            G10 P1 R0 S0 ; Establecer la herramienta inicial 1 activa y las temperaturas de espera a 0C
            G10 P2 R0 S0 ; Establecer la herramienta inicial 2 activa y las temperaturas de espera a 0C
            G10 P3 R0 S0 ; Establecer la herramienta inicial 2 activa y las temperaturas de espera a 0C
            G10 P4 R0 S0 ; Establecer la herramienta inicial 2 activa y las temperaturas de espera a 0C
            ; LCD
            M575 P1 S1 B57600 ; Establecer parámetros de comunicacion serie
            ; Variables Globales (no modificables)
            global delete = 0 ; Crea una variable para borrar runonce.g
            global respuesta = false ; Crea una variable para respuesta de mensajes.g
            global titulo = "titulo" ; Crea una variable para titulo de mensajes.g
            global mensaje = "mensaje" ; Crea una variable para mesaje de mensajes.g
            global altura = -10 ; Crea una variable para mesaje de mensajes.g
            global tool = 0 ; Crea una variable para ver cabezal activo
            global E0ac = 0 ; Crea una variable para ver temperatura del calentador
            global E0st = 0 ; Crea una variable para ver temperatura del calentador
            global E2ac = 0 ; Crea una variable para ver temperatura del calentador
            global E2st = 0 ; Crea una variable para ver temperatura del calentador
            global E3ac = 0 ; Crea una variable para ver temperatura del calentador
            global E3st = 0 ; Crea una variable para ver temperatura del calentador
            global E4ac = 0 ; Crea una variable para ver temperatura del calentador
            global E4st = 0 ; Crea una variable para ver temperatura del calentador
            global E5ac = 0 ; Crea una variable para ver temperatura del calentador
            global E5st = 0 ; Crea una variable para ver temperatura del calentador
            global E6ac = 0 ; Crea una variable para ver temperatura del calentador
            global E6st = 0 ; Crea una variable para ver temperatura del calentador
            ; Modificables por usuario
            ;M912 P0 S-6 ; Corrige la temperatura de la CPU
            ;G29 S1 ; Cargar mapa de altura por defecto
            ;M21 P1 ; Inicializar la tarjeta SD si esta disponible
            ; Siempre al final
            M911 S22 R23 P"M913 X0 Y0 Z0 E0 M28""0:/sys/runonce.g"" M98 P""run.g"" M29 M400" ; Configure el guardado automatico en la perdida de energia
            ;M501 ; Lee parametros almacenados. Establezca los parametros activos a los almacenados en sys / config-override.g en la tarjeta SD
            T0 P0 ; Seleccion de herramienta por defecto
            undefined 1 Reply Last reply 24 Aug 2021, 09:34 Reply Quote 0
            • undefined
              jay_s_uk @Aitor
              last edited by 24 Aug 2021, 09:34

              @aitor whats confusing me if you move the z axis to the maximum position

              G1 H1 Z{-move.axes[2].max} F3000
              

              but your endstop is configured to be on the low end

              M574 Z1 S1 P"1.io5.in"	
              

              could you maybe provide some more information about where your endstop is on your machine?

              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

              undefined 1 Reply Last reply 24 Aug 2021, 09:43 Reply Quote 0
              • undefined
                Aitor @jay_s_uk
                last edited by Aitor 24 Aug 2021, 09:43

                @jay_s_uk that configuration is correct, my limit switch is at the low end, my maximum travel is 200 when having a negative in front is like putting G1 H1 Z-200 F3000, using this way I don't have to worry if I change at some point M208 as it will take the corresponding value.

                undefined fcwiltundefined 2 Replies Last reply 24 Aug 2021, 09:46 Reply Quote 0
                • undefined
                  jay_s_uk @Aitor
                  last edited by 24 Aug 2021, 09:46

                  @aitor sorry. missed the negative at the front.
                  my only other suggestion is to increase the delay at machine start up from S2 to S5.
                  Other than that, I don't see why you've had to change your homing file

                  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

                  undefined 1 Reply Last reply 24 Aug 2021, 09:53 Reply Quote 0
                  • undefined
                    Aitor @jay_s_uk
                    last edited by Aitor 24 Aug 2021, 09:53

                    @jay_s_uk I will perform the test you tell me

                    The thing is that when I do homeZ without the delay, it does not perform G1 H1 Z{-move.axes[2].max/2} F380

                    My feeling is that it detects that the limit switch is already pressed, by looking before I move away from it, I think I read @dc42 mentioned something about this, but I can't find where.

                    1 Reply Last reply Reply Quote 0
                    • fcwiltundefined
                      fcwilt @Aitor
                      last edited by 24 Aug 2021, 14:53

                      @aitor said in In Duet3: Z does not respond as expected:

                      @jay_s_uk that configuration is correct, my limit switch is at the low end, my maximum travel is 200 when having a negative in front is like putting G1 H1 Z-200 F3000, using this way I don't have to worry if I change at some point M208 as it will take the corresponding value.

                      Well it actually doesn't matter very much what value you use for the G1 H1 - you could use G1 H1 Z-999 and it would work just fine.

                      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

                      undefined 1 Reply Last reply 24 Aug 2021, 16:03 Reply Quote 0
                      • undefined
                        Aitor @fcwilt
                        last edited by 24 Aug 2021, 16:03

                        Good morning @fcwilt , you're right, that would work anyway, but from experience, if you miss an endstop, it will try to get to it for all that extra run and it's annoying, but yes, it would work anyway.

                        Anyway, I installed firmware 3.4beta3 and it doesn't fail me anymore, and from what I've read in the fixes, it's fixed since 3.4beta1, now I just need to test the rest of the stuff XD

                        Best regards and thanks to all

                        fcwiltundefined 1 Reply Last reply 24 Aug 2021, 16:29 Reply Quote 2
                        • fcwiltundefined
                          fcwilt @Aitor
                          last edited by 24 Aug 2021, 16:29

                          @aitor

                          Good luck.

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