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

    Bug: Unable to home U axis on 3HC

    Scheduled Pinned Locked Moved Solved
    Beta Firmware
    3
    10
    286
    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.
    • TypQxQundefined
      TypQxQ
      last edited by TypQxQ

      Hi!

      Running Duet3 6HC +3HC and want to home the U axes. Both stepper and endstop are connected to 3HC.
      Endstop consists of 2 microswitches connected in series.
      It reads as triggered in the webinterface when pushed.

      Using 3.01-RC11 on 6HC and 3HC, DSF Version: 2.1.3 and connected to RPI.

      The U axis shows up in the web interface and the stepper moves but does not stop on triggering the endstop.
      The U axis is for locking/unlocking tools.

      Update:
      Moving the stepper and edstop to main board fixed it.
      Stepper from 1.1 to 0.2 and endstop from 1.3 to 0.2 fixed the problem.

      Here is the config.g

      ; Configuration file for Duet 3 (firmware version 3)
      ; executed by the firmware on start-up
      ;
      ; generated by RepRapFirmware Configuration Tool v2.1.8 on Tue Mar 17 2020 22:56:04 GMT+0100 (centraleuropeisk normaltid)
      
      ; General preferences
      G90                                             ; send absolute coordinates...
      M83                                             ; ...but relative extruder moves
      M550 P"qTC"                                  	; set printer name
      
      ; General Preferences
      M111 S0                                 		; Debug off
      M929 P"eventlog.txt" S1							; start logging to file eventlog.txt
      ;M555 P2                                 		; Set Marlin-style output
      G21			                                    ; Set dimensions to millimetres
      G90                                     		; Send absolute coordinates...
      M83                                     		; ...but relative extruder moves
      
      M669 K1                                         ; select CoreXY mode
      
      ; Drives
      M569 P1.0 S1 F4                                 ; physical drive 1.0 goes forwards  X
      M569 P1.2 S0 F4                                 ; physical drive 1.2 goes forwards  Y
      M569 P1.1 S1	                                ; physical drive 1.2 goes forwards  Toolchanger Actuator
      M569 P0.0 S1                                    ; physical drive 0.0 goes forwards	Z
      M569 P0.1 S1                                    ; physical drive 0.1 goes forwards	Z
      M569 P0.2 S1                                    ; physical drive 0.2 goes forwards	Z
      M569 P0.3 S1                                    ; physical drive 0.3 goes forwards	E
      M569 P0.4 S1                                    ; physical drive 0.4 goes forwards	E
      M569 P0.5 S1                                    ; physical drive 0.5 goes forwards	E
      M584 X1.0 Y1.2 Z0.0:0.1:0.2 E0.3:0.4:0.5 U1.1   ; set drive mapping
      M350 X8 Y8 Z16 E16 U4 I1                    	; configure microstepping with interpolation
      
      ; Motor currents
      M906 X1300 Y1300 Z800 E800:800 I30              ; set motor currents (mA) and motor idle factor in per cent
      M84 S30                                         ; Set idle timeout
      M906 U900 I60                           		; StepperOnline Toolchanger Elastic Lock Motor current and idle motor percentage
      
      ; Steps per mm
      M92 X160.00 Y160.00 Z4000.00 E420.00 S16 ; set steps per mm as defined for 16 microsteps
      M92 U11.515                            ; Stepper-Online Toolchanger Elastic Lock Motor Steps/deg for U from (200 * 4 * 5.18181)/360
      
      ; Motor speeds
      M203 X24000.00 Y24000.00 Z360.00 E3600.00 U9000 ; set maximum speeds (mm/min)
      M566 X900.00 Y900.00 Z12.00 E600 U50      		; set maximum instantaneous speed changes (mm/min)
      M201 X1000.00 Y1000.00 Z20.00 E2000.00 U800     ; set accelerations (mm/s^2)
      
      ; Kinematic bed ball locations.
      ; Locations are extracted from CAD model assuming lower left build plate corner is (0, 0) on a 305x305mm plate.
      ; M671 X297:2.5:150 Y313.5:313.5:-16.5 S10 ; Front Left: (297.5, 313.5) | Front Right: (2.5, 313.5) | Back: (150, -16.5)
      
      ; Axis Limits
      M208 X0 Y0 Z0 U0 S1                             ; set axis minima
      M208 X600 Y500 Z200 U360 S0                     ; set axis maxima
      
      ; Endstops
      M574 X1 S1 P"!1.io0.in"							; Endstop for X is on io0 on expansion 1 uses a reprap microswitch
      M574 Y1 S1 P"^1.io1.in"							; Endstop for Y is on io1 on expansion 1 uses a microswitch
      M574 Z0
      ;M574 Z2	S1 P"^1.io2.in"							; Z uses a microswitch as the others
      M574 U1	S1 P"^1.io3.in"							; U uses two microswitches in series
      
      ; Z probing settings
      ;M557 X15:215 Y15:195 S20                        ; define mesh grid
      ;M558 P8 C"^1.io2.in" H5 A1 T10000  S0.02
      ; P8 --> probe type: Unfiltered switch
      ; C"^1.io2.in" --> endstop
      ; H5 --> dive height
      ; A1 --> max number of times to probe
      ; T100000 --> travel speed between probe points
      ; S0.02 --> tolerance when probing multiple times
      
      ; Emergency Button
      M950 J1 C"0.io0.in"								; Use the input pin on io0 on the main board
      M581 P1 T0 S0									; Use above to trigger Emergency Reset. PowerCycle afterwards.
      
      
      
      ; Heaters
      M308 S0 P"1.temp0" Y"thermistor" T100000 B4138  ; configure sensor 0 as thermistor on pin 1.temp0
      M950 H0 C"1.out0" T0                            ; create bed heater output on 1.out0 and map it to sensor 0
      M143 H0 S120                                    ; set temperature limit for heater 0 to 120C
      M307 H0 B0 S1.00                                ; disable bang-bang mode for the bed heater and set PWM limit
      M140 H0                                         ; map heated bed to heater 0
      M308 S1 P"temp0" Y"thermistor" T100000 B4138    ; configure sensor 1 as thermistor on pin temp0
      M950 H1 C"out0" T1                              ; create nozzle heater output on out0 and map it to sensor 1
      M143 H1 S280                                    ; set temperature limit for heater 1 to 280C
      M307 H1 B0 S1.00                                ; disable bang-bang mode for heater  and set PWM limit
      
      ; Fans
      M950 F0 C"out3" Q500                            ; create fan 0 on pin out3 and set its frequency
      M106 P0 S0 H-1                                  ; set fan 0 value. Thermostatic control is turned off
      M950 F1 C"out4" Q500                            ; create fan 1 on pin out4 and set its frequency
      M106 P1 S1 H1 T45                               ; set fan 1 value. Thermostatic control is turned on
      
      ; Tools
      M563 P0 D0 H1 F0                                ; define tool 0
      G10 P0 X0 Y0 Z0                                 ; set tool 0 axis offsets
      G10 P0 R0 S0                                    ; set initial tool 0 active and standby temperatures to 0C
      
      ; Tool definitions
      M563 P0 S"Extruder 0" D0 H1 F0          ; Define tool 0
      G10 P0 X-4.5 Y44.02 Z-2.25              ; Set tool 0 offset from the bed
      G10 P0 S190 R170                        ; Set tool 0 operating and standby temperatures(-273 = "off")
      M572 D0 S0.1				; Set pressure advance on Extruder Drive 0
      
      M563 P1 S"Extruder 1" D1 H2 F2          ; Define tool 1
      G10 P1 X-4.15 Y44.62 Z-2.45               ; Set tool 1 offset from the bed with tool-0 as a reference.
      G10 P1 S190 R170                        ; Set tool 1 operating and standby temperatures(-273 = "off")
      M572 D1 S0.1                            ; Set pressure advance on Extruder Drive 1
      
      M563 P2 S"Extruder 2" D1 H2 F2          ; Define tool 1
      G10 P1 X-4.15 Y44.62 Z-2.45               ; Set tool 1 offset from the bed with tool-0 as a reference.
      G10 P1 S190 R170                        ; Set tool 1 operating and standby temperatures(-273 = "off")
      M572 D1 S0.1                            ; Set pressure advance on Extruder Drive 1
      
      
      ; Custom settings are not defined
      
      ; Miscellaneous
      M501                                            ; load saved parameters from non-volatile memory
      

      And the homeu.g

      ; Home U Axis
      
      G91               		; relative positioning
      G1 H1 U-360 F100 		; move quickly to X or Y endstop and stop there (first pass) 9000
      G1 U5 F600          	; go back a few mm
      G1 H1 U-10 F600         ; move slowly to X axis endstop once more (second pass)
      G90                     ; absolute positioning
      
      
      deckingmanundefined 1 Reply Last reply Reply Quote 0
      • deckingmanundefined
        deckingman @TypQxQ
        last edited by

        @TypQxQ I'm not exactly sure how you have your U axis or what it's intended use is but a few things leap out at me.

        M667 is deprecated and you should use M669. Instead of M667 S1 you would normally use M669 K1 for CoreXY but if this is a true CoreXYU then you need to use M669 K5 to define the kinematics. https://duet3d.dozuki.com/Wiki/Gcode#Section_M669_Set_kinematics_type_and_kinematics_parameters

        Not sure on this next bit but I think the default is to only show 3 axes. If so then you will need to use M584 P4 to make the U axis visible for homing.

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

        1 Reply Last reply Reply Quote 0
        • TypQxQundefined
          TypQxQ
          last edited by

          Thanx Deckingman but that did not solve it. I changed to M669 K1.

          The U axis shows up in the web interface and the stepper moves but does not stop on triggering the endstop.
          The U axis is for locking/unlocking tools.

          I'll change original post to reflect this.

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

            @TypQxQ Hmmm. That's odd. I could think of a few possibilities if the end stop didn't show triggered when you manually press it, but you say that part works OK. Your home U doesn't look fundamentally any different to mine (but mine is custom kinematics - CoreXYUVAB). Just out of interest, try adding M584 P4 to the start of your homeU even though the axis is visible. It's one of the few differences I can see between my working home U and your non-working one.

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

            TypQxQundefined 1 Reply Last reply Reply Quote 0
            • TypQxQundefined
              TypQxQ @deckingman
              last edited by

              @deckingman That did not change anything.

              1 Reply Last reply Reply Quote 0
              • TypQxQundefined
                TypQxQ
                last edited by

                Have narrowed it down to the homeu.g file.
                Having it only read:

                G1 H1 U-360 F100
                

                I now get an error when homing. Status flashes busy, then idle. Stepper continues to rotate untill I press the "Emergency Stop".

                G28 U
                Error: Homing failed
                

                Ruining the same command in the console works fine and homes the axis without problem.

                1 Reply Last reply Reply Quote 0
                • TypQxQundefined
                  TypQxQ
                  last edited by

                  Definitly a bug.

                  Changing name from U to A did not help.
                  Moving the stepper and edstop to main board fixed it.
                  Stepper from 1.1 to 0.2 and endstop from 1.3 to 0.2 fixed the problem.

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

                    @TypQxQ It definitely looks like you might have a found a bug. I don't see anything that would explain your problem in the list of known limitations https://duet3d.dozuki.com/Wiki/Duet_3_firmware_configuration_limitations

                    For info, my XY and Z motors are all on expansion board 3. UVA and B motors are all on the main board. Extruders are all on expansion boards 1 and 2 (3 on each board). End stops are scattered around various boards - the U axis end stop is on expansion board 1.

                    So from that it would seem that the main X, Y and Z axes can be on expansion boards but not additional axes (excluding extruders). But there is a caveat to that in that I use custom kinematics like so

                    M584 X3.2:0.0:0.2 Y3.1:0.1:0.3 Z3.0 U0.0 V0.1 A0.2 B0.3 E1.0:1.1:1.2:2.0:2.1:2.2 P7; XYZ on ex board 3, UVAB on main board, extruders 0 to 2 to ex board 1, extruders 3 to 5 on exp 2

                    M669 K8 A0:0:0:0:0:1:1 B0:0:0:0:0:1:-1;

                    It may be that for your U axis to work on an expansion board, you need to do something similar? Or use M669 K5 for CoreXYU? I'm just guessing at this point. Hopefully DC42 or one of the more knowledgeable mods will step in and advise soon.

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

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

                      It's a documented limitation of current Duet 3 firmware that an endstop connected to the main board cannot stop movement of an axis motor connected to an expansion board unless that axis also has a motor connected to the main board. See the Known Limitations section of the release notes, also https://duet3d.dozuki.com/Wiki/Duet_3_firmware_configuration_limitations.

                      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

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

                        @dc42 said in Bug: Unable to home U axis on 3HC:

                        It's a documented limitation of current Duet 3 firmware that an endstop connected to the main board cannot stop movement of an axis motor connected to an expansion board unless that axis also has a motor connected to the main board. See the Known Limitations section of the release notes, also https://duet3d.dozuki.com/Wiki/Duet_3_firmware_configuration_limitations.

                        True. But the OP initially had his U axis motor and his U axis end stop on the same expansion board.

                        EDIT. He fixed the problem by moving both the motor and the end stop to the main board.

                        Edit 2. From his original config g.
                        M569 P1.1 S1
                        M574 U1 S1 P"^1.io3.in"

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

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