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.
    • toskiumundefined
      toskium
      last edited by toskium

      Hello there,

      I am using a corexy printer with stall detection for sensorless homig of X and Y. This basically works, however there is a problem when X and Y are already homed and I want to home a second time, for example when using G28 in the default startup gcode of my slicer.

      What happens is, that X and Y only move a tiny bit, don't return to the low end and report both axis homed but the carriage is somewhere relative to their last position.

      Help is much appreciated!
      Cheers, Markus

      Here is my homex.g (homey.g is identical):

      ;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 Y30 F3600	; wake up motors and move away from current position
      G1 S1 X-330 Y-330 F3600 ; move right/back 330mm, stopping at the endstop
      G1 X6 Y5 		; position nozzle over ultrabase
      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 Y0		; Set X and Y to 0
      M574 X1 Y1 S1 		; define active low microswitches
      
      1 Reply Last reply Reply Quote 0
      • rs4raceundefined
        rs4race
        last edited by

        I'm just guessing but are you reaching axis minimum before the axes stall out?

        Check what you have for M208. I bet your stopping at the minimum and then setting that to your new home position.

        toskiumundefined 1 Reply Last reply Reply Quote 0
        • 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