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

    Weird behaviour homing Y-axis (only)

    Scheduled Pinned Locked Moved
    General Discussion
    4
    12
    455
    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.
    • Tomiundefined
      Tomi
      last edited by Tomi

      Hi all
      I have quite a strange behavior homing the y-axis – it looks like the G1 H2 command «turns» the moving direction of the axis temporarly!

      It's a core-xy machine (Voron 300mm) with max-endstops on x and y. Running on a 6HC with the 1LC toolboard. RepRapFirmware for Duet 3 MB6HC version 3.4.0 (2022-03-15 18:57:24) running on Duet 3 MB6HC v1.01 or later (standalone mode)

      Even though this should crash, it's the only way it works. From the homey.g (config.g and this one attached):

      G91                             ; REL
      M913 X30 Y30			; Current to 30%
      G1 H2 Z2 F6000
      G1 H1 Y310 F10000               ; +Y probe move, fast, set axis limit
      G1 H2 Y10 F1000                 ; back off from the endstop, individual motor mode
      G1 H1 Y5.2 F1000                ; +Y probe move, slow, set axis limit
      G1 H2 Y10 F10000                ; back off from the endstop, Individual motor mode
      G1 H2 Z-2 F6000
      M913 X100 Y100			; Current to 100%
      G90                             ; ABS
      

      Please note the "wrong" direction backing off from the touch&set axis limits on the two "G1 H2 Y10 F1000". I think this is not correct and it took me a long time to set it this way!?

      Everything else works correct: the endstops are sensed, and all axis behave correct (and in the correct direction) after homing. On the X the homing is not behaving this way.

      Am I missing something here? This is really very confusing…

      Thank you for your inputs – Tomi

      ; Configuration file for Duet 3 (firmware version 3.3)
      ; 220508
      
      ; Startup ---------------------------------------------------
      G21												 ; work in millimeters
      G90                                              ; send absolute coordinates...
      M83                                              ; ...but relative extruder moves
      M550 P"Boron"                                    ; set printer name
      G4 S2											 ; CAN expansion pause
      
      ; Network -------
      M552 P192.168.1.211 S1                           ; enable network and set IP address
      M553 P255.255.255.0                              ; set netmask
      M554 P192.168.1.1                                ; set gateway
      M586 P0 S1                                       ; enable HTTP
      M586 P1 S1                                       ; enable FTP
      M586 P2 S1                                       ; enable Telnet
      
      
      ; Drives ---------------------------------------------------
      ;   Z1  |  Z2         A      B
      ;   0.1 | 0.2       0.4    0.5
      ; –––––––––––––
      ;   Z0  |  Z3            E
      ;   0.0 | 0.3          121.0  
      
      M569 P0.0 S1                                     ; Z0 physical drive 0.0    goes forwards
      M569 P0.1 S0                                     ; Z1 physical drive 0.1 	goes backwards
      M569 P0.2 S1                                     ; Z2 physical drive 0.2 	goes forwards
      M569 P0.3 S0                                     ; Z3 physical drive 0.3 	goes backwards
      M569 P0.4 S1                                     ; A  physical drive 0.4 	goes forwards
      M569 P0.5 S1                                     ; B  physical drive 0.5 	goes forwards
      M569 P121.0 S1                                   ; E  physical drive 121.0 	goes forwards
      
      ; Bindings -------
      M584 Z0.0:0.1:0.2:0.3                            ; Bindings Z-Motor Board 0 Pin 0 to 3
      M584 X0.4 Y0.5 E121.0                            ; Bindings other
      
      ; Conventionals -------
      M350 X16 Y16 Z16 E16 I1                          ; configure microstepping with interpolation
      M92 X80.00 Y80.00 Z320.00 E655.00                ; set steps per mm 
      M906 I30                  						 ; motor idle current percentage
      M84 S60                                          ; Set idle timeout
      
      ; velocity, acceleration, and current settings are in these macros
      M98 P"/macros/drives/xy_fullcurrent.g"
      M98 P"/macros/drives/z_fullcurrent.g"
      M98 P"/macros/drives/e_fullcurrent.g"
      
      
      ; GEOMETRY ------------------------------------------------
      ; Limits -------
      M669 K1                                          ; select CoreXY mode
      M208 X0 Y0 Z0 S1                                 ; set axis minima
      M208 X300 Y300 Z225 S0                           ; set axis maxima
      
      ; Endstops (M574) -------
      M574 X2 S1 P"^io3.in"                            ; X high end, active high
      M574 Y2 S1 P"^io4.in"                            ; Y high end, active high
      M574 Z1 S1 P"^io6.in"                            ; Z low end , active high
      ;M574 Z0 P"nil"                 				 ; No Z endstop
      
      ; Z-Probe -------
      M558 P8 C"^121.io0.in" H5 F300 T500	        	 ; Z probe type + the dive height + speeds
      												 ; Fnnn Feed rate (i.e. probing speed, mm/min)
      												 ; Hnnn Dive height (mm)
      												 ; Tnnn Travel speed to and between probe points (mm/min)
      												 ; In 1==invert
      G31 P500 X25 Y25 Z2.5                            ; set Z probe trigger value, offset and trigger height
      M557 X40:260 Y40:260 S20                         ; define mesh grid
      
      
      ; THERMIC ------------------------------------------------
      ; Heaters
      M308 S0 P"spi.cs0" Y"rtd-max31865" A"Bed"		 ; configure sensor 0 as thermistor on pin temp0
      M950 H0 C"out0" T0                               ; create bed heater output on out0 and map it to sensor 0
      M307 H0 B1 S1.00                                 ; enable bang-bang mode for the bed heater and set PWM limit
      M140 H0                                          ; map heated bed to heater 0
      M143 H0 S120                                     ; set temperature limit for heater 0 to 120C
      M308 S1 P"121.temp0" Y"pt1000" A"Hotend"         ; configure sensor 1 as thermistor 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.00                                 ; disable bang-bang mode for heater  and set PWM limit
      M143 H1 S280                                     ; set temperature limit for heater 1 to 280C
      M308 S2 P"spi.cs1" Y"rtd-max31865" A"Short"      ; define temperature sensor number 3 as a PT100 
      M950 H2 C"spi.cs1" T2
      M308 S3 A"Chamber" P"temp_0" Y"thermistor" T100000 B4725 C7.06e-8 	; configure sensor 0 as thermistor on pin temp0
      
      
      ; Fans ------------------------------------------------
      M950 F0 C"121.out1" Q10                          ; PARTS - create fan 0 on pin 121.out1 and set its frequency
      M106 P0 C"Fan_Part" S0 H-1                       ; PARTS - set fan 0 name and value. Thermostatic control is turned off
      M950 F1 C"121.out2" Q250                         ; HOTEND - create fan 1 on pin 121.out2 and set its frequency
      M106 P1 C"Fan_Hotend" S1 H1 T45                  ; HOTEND - set fan 1 name and value. Thermostatic control is turned on
      
      ; Tools ------------------------------------------------
      M563 P0 S"Dragon Hotend" 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
      T0                                               ; select first tool
      
      ; Custom settings ------------------------------------------------
      M575 P1 S1 B57600                                ; PanelDue
      M950 J1 C"io8.in"								 ; eStop Definition -> https://docs.duet3d.com/User_manual/Connecting_hardware/IO_E_stop
      M581 P1 T0 S1 R0								 ; eStop Behaviour
      
      ; Misc ------------------------------------------------
      ;M501                                             ; load sys/config-override.g on the SD card
      
      ; homey.g
      ; Basis https://duet3d.dozuki.com/Wiki/Stall_detection_and_sensorless_homing
      
      if sensors.probes[0].value[0] = 1000
        ;G92 Y0
        G91                                    	; REL
        M913 X30 Y30								; Current to 30%
        G1 H2 Z2 F6000
        G1 H1 Y310 F10000                       	; +Y probe move, fast, set axis limit
        G1 H2 Y10 F1000                      		; back off from the endstop, individual motor mode
        G1 H1 Y5.2 F1000                          ; +Y probe move, slow, set axis limit
        G1 H2 Y10 F10000                       	; back off from the endstop, Individual motor mode
        G1 H2 Z-2 F6000
        M913 X100 Y100							; Current to 100%
        G90                                    	; ABS
      else
      	echo "homey.g: REMOVE THE PROBE
      
      ; homey.g
      ; Basis https://duet3d.dozuki.com/Wiki/Stall_detection_and_sensorless_homing
      
      if sensors.probes[0].value[0] = 1000
        G92 X0
        G91                                    	; REL
        M913 X30 Y30								; Set Current to 30%
        G1 H2 Z2 F3000
        G1 H1 X310 F10000                       	; +X probe move, fast, set axis limit
        G1 H2 X-5 F10000                      	; back off from the endstop, individual motor mode
        G1 H1 X6 F1000                          	; +X probe move, slow, set axis limit
        G1 H2 X-10 F10000                       	; back off from the endstop, Individual motor mode
        G1 H2 Z-2 F3000
        M913 X100 Y100							; Set Current to 100%
        G90                                    	; ABS
        ;G1 H2 X20 F99999
      else
        echo "homex.g: REMOVE THE PROBE"
      
      === Diagnostics ===
      RepRapFirmware for Duet 3 MB6HC version 3.4.0 (2022-03-15 18:57:24) running on Duet 3 MB6HC v1.01 or later (standalone mode)
      Board ID: 08DJM-956BA-NA3TN-6J9DD-3S86T-KUBGS
      Used output buffers: 14 of 40 (14 max)
      === RTOS ===
      Static ram: 151000
      Dynamic ram: 96296 of which 328 recycled
      Never used RAM 103048, free system stack 200 words
      Tasks: NETWORK(ready,26.3%,227) ETHERNET(notifyWait,0.1%,173) HEAT(notifyWait,0.0%,321) Move(notifyWait,0.0%,352) CanReceiv(notifyWait,0.0%,797) CanSender(notifyWait,0.0%,374) CanClock(delaying,0.0%,339) TMC(notifyWait,8.1%,92) MAIN(running,65.5%,925) IDLE(ready,0.0%,30), total 100.0%
      Owned mutexes:
      === Platform ===
      Last reset 00:08:33 ago, cause: software
      Last software reset at 2022-05-08 10:50, reason: User, GCodes spinning, available RAM 102976, slot 2
      Software reset code 0x0003 HFSR 0x00000000 CFSR 0x00000000 ICSR 0x00400000 BFAR 0x00000000 SP 0x00000000 Task MAIN Freestk 0 n/a
      Error status: 0x00
      Aux0 errors 0,0,0
      Step timer max interval 130
      MCU temperature: min 36.3, current 38.0, max 38.1
      Supply voltage: min 23.8, current 23.8, max 23.9, under voltage events: 0, over voltage events: 0, power good: yes
      12V rail voltage: min 12.0, current 12.0, max 12.1, under voltage events: 0
      Heap OK, handles allocated/used 0/0, heap memory allocated/used/recyclable 0/0/0, gc cycles 0
      Events: 0 queued, 0 completed
      Driver 0: standstill, SG min 0, mspos 8, reads 41462, writes 14 timeouts 0
      Driver 1: standstill, SG min 0, mspos 8, reads 41462, writes 14 timeouts 0
      Driver 2: standstill, SG min 0, mspos 8, reads 41461, writes 15 timeouts 0
      Driver 3: standstill, SG min 0, mspos 8, reads 41462, writes 15 timeouts 0
      Driver 4: standstill, SG min 0, mspos 888, reads 41462, writes 15 timeouts 0
      Driver 5: standstill, SG min 0, mspos 248, reads 41462, writes 15 timeouts 0
      Date/time: 2022-05-08 11:13:32
      Slowest loop: 12.43ms; fastest: 0.05ms
      === Storage ===
      Free file entries: 10
      SD card 0 detected, interface speed: 25.0MBytes/sec
      SD card longest read time 3.0ms, write time 1.8ms, max retries 0
      === Move ===
      DMs created 125, segments created 0, maxWait 0ms, bed compensation in use: none, comp offset 0.000
      === MainDDARing ===
      Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
      === AuxDDARing ===
      Scheduled moves 0, completed 0, hiccups 0, stepErrors 0, LaErrors 0, Underruns [0, 0, 0], CDDA state -1
      === Heat ===
      Bed heaters 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1, chamber heaters -1 -1 -1 -1, ordering errs 0
      Heater 1 is on, I-accum = 0.0
      === GCodes ===
      Segments left: 0
      Movement lock held by null
      HTTP is idle in state(s) 0
      Telnet is idle in state(s) 0
      File is idle in state(s) 0
      USB is idle in state(s) 0
      Aux is idle in state(s) 0
      Trigger is idle in state(s) 0
      Queue is idle in state(s) 0
      LCD is idle in state(s) 0
      SBC is idle in state(s) 0
      Daemon is idle in state(s) 0
      Aux2 is idle in state(s) 0
      Autopause is idle in state(s) 0
      Code queue is empty
      === CAN ===
      Messages queued 4628, received 6153, lost 0, boc 0
      Longest wait 2ms for reply type 6053, peak Tx sync delay 6, free buffers 50 (min 49), ts 2566/2565/0
      Tx timeouts 0,0,0,0,0,0
      === Network ===
      Slowest loop: 29.08ms; fastest: 0.02ms
      Responder states: HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) HTTP(0) FTP(0) Telnet(0), 0 sessions Telnet(0), 0 sessions
      HTTP sessions: 1 of 8
      - Ethernet -
      State: active
      Error counts: 0 0 0 0 0
      Socket states: 5 5 2 2 2 2 0 2```
      oliofundefined 1 Reply Last reply Reply Quote 0
      • oliofundefined
        oliof @Tomi
        last edited by

        @tomi just to make sure, if you check endstop state using M119 they show as not triggered when they aren't? Otherwise you will have to invert the pins.

        <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

        Tomiundefined 1 Reply Last reply Reply Quote 0
        • Tomiundefined
          Tomi @oliof
          last edited by

          @oliof M119 shows the right status and reacts as intended by activating the endstops. Same with the movement of the gantry: before and after the home script it moves the correct way (in all ways XY and Z) – just with this homey.g it's behaving strange…

          oliofundefined 1 Reply Last reply Reply Quote 0
          • oliofundefined
            oliof @Tomi
            last edited by

            @tomi I just noticed

            G1 H1 Y310 F10000               ; +Y probe move, fast, set axis limit
            G1 H2 Y10 F1000                 ; back off from the endstop, individual motor mode
            

            should be Y-10

            G1 H1 Y5.2 F1000                ; +Y probe move, slow, set axis limit
            

            should be Y11 (larger than the backoff)

            G1 H2 Y10 F10000                ; back off from the endstop, Individual motor mode
            

            should be Y-10

            <>RatRig V-Minion Fly Super5Pro RRF<> V-Core 3.1 IDEX k*****r <> RatRig V-Minion SKR 2 Marlin<>

            Tomiundefined 1 Reply Last reply Reply Quote 1
            • Tomiundefined
              Tomi @oliof
              last edited by

              @oliof Thanks oliof: that‘s right what you mention.
              But this is exactly the problem. If I use those (negative) G1 movements to back off it crashes into the endstop - not as you expect changing the direction!!!
              Only if I keep the positive numbers it goes away from the endstop. As I said: weird!

              fcwiltundefined 1 Reply Last reply Reply Quote 0
              • fcwiltundefined
                fcwilt @Tomi
                last edited by

                @tomi said in Weird behaviour homing Y-axis (only):

                @oliof Thanks oliof: that‘s right what you mention.
                But this is exactly the problem. If I use those (negative) G1 movements to back off it crashes into the endstop - not as you expect changing the direction!!!
                Only if I keep the positive numbers it goes away from the endstop. As I said: weird!

                What direction do the G1 H1 moves go? Away from or towards the endstop?

                And what is the purpose of checking the probe when homing?

                Thanks.

                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

                Tomiundefined 1 Reply Last reply Reply Quote 0
                • Tomiundefined
                  Tomi @fcwilt
                  last edited by

                  @fcwilt said in Weird behaviour homing Y-axis (only):
                  Hi Frederik

                  What direction do the G1 H1 moves go? Away from or towards the endstop?

                  • The G1 H1 moves towards the endstop. Intended behavior in all axes – everything good here. BTW same as when I move the carriage by typing the commands.

                  • The G1 H2 though behaves different:
                    – on homeX.g it works as we would expect (moving away from the endstop by using «negative values»).
                    – but on the homeY.g with negative values it moves towards the endstop (it overshoots). Therefore I had do change this to positive values – what seems very silly to me…

                  And what is the purpose of checking the probe when homing?

                  I'm not yet probing – and I don't have touched the z-axis yet, because of the described strange behavior. The probing will use the clicky probe (https://github.com/jlas1/Klicky-Probe) combined with the z-endstop (https://github.com/protoloft/klipper_z_calibration).

                  But this is fiction at the moment: since I don't like a machine not to behave in a predictable manner... 🙂

                  Greetings and thanks – Tomi

                  fcwiltundefined 1 Reply Last reply Reply Quote 0
                  • fcwiltundefined
                    fcwilt @Tomi
                    last edited by

                    @tomi

                    Thanks for the feedback.

                    Just FYI:

                    I have a Euclid Z probe (a removeable type) and I have found no reason to check the mounted state of the probe during homing of any axis other than Z.

                    I equip all my printers with both a Z endstop and a Z probe. Having a Z endstop speeds homing and simplifies homing code.

                    As to your Y issue:

                    It's more than weird it simply shouldn't be happening.

                    I would suggest you comment out the M913 commands in homeY.g and see if that makes a difference.

                    Also you need to put a M400 command immediately before each M913 command you use.

                    Let us know what happens.

                    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

                    A Former User? 1 Reply Last reply Reply Quote 0
                    • A Former User?
                      A Former User @fcwilt
                      last edited by

                      This post is deleted!
                      fcwiltundefined 1 Reply Last reply Reply Quote 0
                      • fcwiltundefined
                        fcwilt @A Former User
                        last edited by

                        @arnold_r_clark said in Weird behaviour homing Y-axis (only):

                        @fcwilt said in Weird behaviour homing Y-axis (only):

                        Having a Z endstop speeds homing and simplifies homing code.

                        How so ?

                        When you home with a Z probe the X and Y homing code has commands to raise/lower Z to be sure the nozzle is clear of the bed. No need for that with a Z endstop since you first home Z.

                        And generally you can use fasters speeds with an endstop sensor then you can with a Z probe, but the varies with the specific endstop sensor and Z probe type.

                        I use optical endstop sensors and you can use very fast speeds with them since there is no impact and they can be mounted so there is plenty of room for movement to stop.

                        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

                        A Former User? 1 Reply Last reply Reply Quote 0
                        • A Former User?
                          A Former User @fcwilt
                          last edited by A Former User

                          This post is deleted!
                          fcwiltundefined 1 Reply Last reply Reply Quote 0
                          • fcwiltundefined
                            fcwilt @A Former User
                            last edited by

                            @arnold_r_clark said in Weird behaviour homing Y-axis (only):

                            When you home with a Z probe the X and Y homing code has commands to raise/lower Z to be sure the nozzle is clear of the bed.

                            im sorry but that statement is not 100% correct which you tried to cover by stating "but varies with the specific end-stop sensor and z probe type" so in effect your initial statement should be preceded with "in my opinion"

                            That part about moving Z up/down during homing X and Y does not depend on the type of hardware. It's about being sure nothing is touching the bed during the XY moves.

                            And the statement about "varying" was part of the sentence dealing with speed and it is not an opinion.

                            And to throw another spanner into the mix what about a z probe that uses an optical end-stop on its trigger ?

                            The only device I know like that is servo based and you have to deploy/retract some part of it, which takes time. A Z endstop if fixed in place.

                            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

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