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

    SOLVED: Homing already homed XY axis fails

    Scheduled Pinned Locked Moved
    Tuning and tweaking
    5
    12
    1.2k
    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.
    • SupraGuyundefined
      SupraGuy
      last edited by

      It also seems to me that even if this works, because you're moving at 45 degrees, you will get a motor stall when the print head hits EITHER X or Y limit, with no guarantee at all the you'll have hit the other. So if your print head were at X=150, Y=10, your print head would move back to X=140, Y=0, and the motor would stall, since it cannot move Y any further. If it now thinks that X=0, you're going to have a problem.

      Lead screw driven printer, powered by Duet 2 Wifi
      MPCNC powered by Duet 2 Wifi
      CoreXY printer driven by Duet 3 6HC
      LowRider CNC powered by Duet 2 Wifi

      1 Reply Last reply Reply Quote 0
      • toskiumundefined
        toskium
        last edited by

        I deliberately positioned the head at X 150 and Y 30 and started homing. What happens is that Y hits the axis low end earlier but X continues moving to the low end and stops there and homing seems to finish as expected.

        Do you think that this behavior is any different in a second homing pass?

        1 Reply Last reply Reply Quote 0
        • toskiumundefined
          toskium @rs4race
          last edited by

          @rs4race
          Currently:
          M208 X0 Y0 Z0 S1
          M208 X300 Y300 Z410 S0

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

            @toskium said in Homing already homed XY axis fails:

            G1 S1 X-330 Y-330 F3600 ; move right/back 330mm, stopping at the endstop

            Why are you moving both X and Y when you only want to home X?

            See https://duet3d.dozuki.com/Wiki/ConfiguringRepRapFirmwareCoreXYPrinter#Section_Homing_files if you haven't already.

            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

            toskiumundefined 1 Reply Last reply Reply Quote 0
            • toskiumundefined
              toskium @dc42
              last edited by

              @dc42 TBH I thought I could take a shortcut since it first appeared to be working. I will change the homex and homey.g files so they only home their respective axis and try again. Maybe that is all it takes.

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

                @dc42 said in Homing already homed XY axis fails:

                G1 S1 X-330 Y-330 F3600 ; move right/back 330mm, stopping at the endstop

                When you execute that on a CoreXY machine, it should move the print head until either the X or the Y axis reaches its endstop; then stop. On a Cartesian printer the move will continue until both X and Y have reached the endstops.

                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

                toskiumundefined 1 Reply Last reply Reply Quote 0
                • toskiumundefined
                  toskium @dc42
                  last edited by toskium

                  @dc42 I modified my homex.g and homey.g files so they only home their own axis. However nothing has changed in the outcome. For testing the homex.g looks like this:

                  ;Sensorless Homing XY
                  M564 H0 		; allow movement of axis that have not been homed
                  M400 			; make sure everything has stopped before we make changes
                  M915 X Y S3 F0 R0 H400	; configure stall detection
                  M913 X40 Y40		; reduce motor current to 40% to prevent belts slipping
                  G91 			; use relative positioning
                  ;G1 Z5 F6000 S2 		; lift Z relative to current position
                  G1 X30 F4600		; move away from home
                  G1 S1 X-330 F4600 	; move right/back 330mm, stopping at the endstop
                  G1 X6 	 		; move away from home
                  M400 			; make sure everything has stopped before we reset the motor currents
                  M913 X100 Y100		; motor currents back to 100%
                  G90 			; back to absolute positioning
                  G92 X0			; Set X and Y to 0
                  M574 X1 Y1 S1 		; define active low microswitches
                  

                  What I observed is, that the G1 S1 X-330 F4600 is not executed at all. It only does G1 X30 F4600 and the G1 X6 afterwards.

                  In addition to that, if I do move X and Y at the same time, the first triggered endstop does not terminate the movement at all.

                  In case it helps, here is my config.g:

                  ; Configuration file for Duet WiFi (firmware version 1.20 or newer)
                  ; executed by the firmware on start-up
                  ;
                  ; generated by RepRapFirmware Configuration Tool on Wed Jul 11 2018 18:31:06 GMT+0200 (W. Europe Daylight Time)
                  
                  ; General preferences
                  G90                              ; Send absolute coordinates...
                  M83                              ; ...but relative extruder moves
                  M555 P1                          ; Set firmware compatibility to look like RepRapFirmare
                  
                  M667 S1                          ; Select CoreXY mode
                  
                  ; Network
                  M550 PHypercube Evolution 001    ; Set machine name
                  M552 S1                          ; Enable network
                  ;*** Access point is configured manually via M587
                  M586 P0 S1                       ; Enable HTTP
                  M586 P1 S0                       ; Disable FTP
                  M586 P2 S0                       ; Disable Telnet
                  
                  ; Drives
                  M569 P0 S1                       ; Drive 0 goes forwards
                  M569 P1 S1                       ; Drive 1 goes forwards
                  M569 P2 S1                       ; Drive 2 goes forwards
                  M569 P3 S0                       ; Drive 3 goes forwards
                  M350 X16 Y16 Z16 E16 I1          ; Configure microstepping with interpolation
                  M92 X160 Y160 Z3200 E2649        ; Set steps per mm
                  M566 X900 Y900 Z12 E40           ; Set maximum instantaneous speed changes (mm/min)
                  M203 X12000 Y12000 Z600 E1800    ; Set maximum speeds (mm/min)
                  M201 X3000 Y3000 Z250 E120       ; Set accelerations (mm/s^2)
                  M906 X1600 Y1600 Z1600 E800 I30  ; Set motor currents (mA) and motor idle factor in per cent
                  M84 S30                          ; Set idle timeout
                  
                  ; Axis Limits
                  M208 X0 Y0 Z0 S1                 ; Set axis minima
                  M208 X300 Y300 Z410 S0           ; Set axis maxima
                  
                  ; Endstops
                  M574 X1 Y1 S3                    ; Set endstops controlled by motor load detection
                  M574 Z1 S2 			 ; Set endstops controlled by probe ( Z-endstop is Z-probe)
                  
                  ; Z-Probe
                  M558 P8 A3 I1 H3 R1 F480 T6000
                  G31 P100 X0 Y0 Z0.05                               ; Set Z probe trigger value, offset and trigger height
                  
                  ; Heaters
                  M307 H0 B0 S1.00                 ; Disable bang-bang mode for the bed heater and set PWM limit
                  M305 P0 T100000 B4138 C0 R4700  ; Default Values Set thermistor + ADC parameters for heater 0 (bed)
                  M143 H0 S150                     ; Set temperature limit for heater 0 to 150C (bed)
                  M305 P1 T100000 B4138 C0 R4700   ; Set thermistor + ADC parameters for heater 1 (hotend)
                  M143 H1 S350                     ; Set temperature limit for heater 1 to 350C (hotend)
                  
                  ; Fans
                  M106 P0 S0.3 I0 F500 H-1         ; Set fan 0 value, PWM signal inversion and frequency. Thermostatic control is turned off
                  M106 P1 S1 I0 F500 H1 T45        ; Set fan 1 value, PWM signal inversion and frequency. Thermostatic control is turned on
                  M106 P2 S1 I0 F500 H1 T45        ; Set fan 2 value, PWM signal inversion and frequency. Thermostatic control is turned on
                  
                  ; Tools
                  M563 P0 D0 H1                    ; 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
                  
                  ; Automatic saving after power loss is not enabled
                  
                  ; Custom settings
                  M557 X0:300 Y0:300 S30 ; probe from X=15 to 285, Y=15 to 285mm with a mesh spacing of 30mm
                  
                  ; Pressure Advance
                  M572 D0 S0.06
                  
                  ; Enable use of sys/config-override.g
                  M501
                  
                  1 Reply Last reply Reply Quote 0
                  • toskiumundefined
                    toskium
                    last edited by

                    Update:

                    The repeated homing seems to work 99% now, I decreased the the current to the steppers from 1600mA to 1300mA in config.g. I am wondering if this might have been the reason behind the problem all the time.

                    The steppers I am using are the 0.9° high torque motors from E3D, in case you like to read the datasheet, it can be found here: https://e3d-online.dozuki.com/Item/High_torque_motor

                    What happens sometimes is that when the steppers get a bit temperature the stall threshold seems to be too low and it triggers early, however immediate homing again works fine, regardless the temperature.
                    Unfortunately it does not work reliable when I increase the stall threshold by 1.

                    Phaedruxundefined 1 Reply Last reply Reply Quote 1
                    • Phaedruxundefined
                      Phaedrux Moderator @toskium
                      last edited by

                      @toskium stall detection is a very tricky way to home the printer. Lots of variables and some of them change during operation. A simple switch is far more reliable.

                      Z-Bot CoreXY Build | Thingiverse Profile

                      toskiumundefined 1 Reply Last reply Reply Quote 0
                      • toskiumundefined
                        toskium @Phaedrux
                        last edited by

                        @phaedrux It appears so, I was intrigued by the concept and less cables sounded like a nice bonus. But it is rather difficult to set up compared to a switch. It looks like it is working for now, I will mark this as solved, so nobody will invest more time in this.

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